Abstract
LePUS3 is a formal design description language for specifying decidable (i.e. automatically verifiable) properties of object-oriented design. LePUS3 has been successfully applied to both design verification and reverse engineering applications. However, LePUS3 is becoming over zealously pragmatic. Its current definition is inflexible, limiting is expressivity, extensibility and reasoning capabilities. We present a new theory of classes derived from the theoretical foundations of LePUS3, and defined in the Typed Predicate Logic. The expressive power of our theory is demonstrated by specifying and reasoning over design patterns.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Beck, K., Cunningham, W.: Using pattern languages for Object-Oriented programs. In: OOPSLA 1987 workshop on the Specification and Design for Object-Oriented Programming, Florida, USA (September1987)
Blewitt, A., Bundy, A., Stark, I.: Automatic verification of design patterns in Java. In: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pp. 224–232. ACM, CA (2005)
Craig, I.: The Interpretation of Object-Oriented Programming Languages, 2nd edn. Springer, Heidelberg (2000)
Eden, A.H., Gasparis, E., Nicholson, J.: LePUS3 and Class-Z reference manual. Technical Report CSM-474, School of Computer Science and Electronic Engineering, University of Essex (December 2007); ISSN 1744-8050
Eden, A.H., Nicholson, J.: Codecharts: Roadmaps and Blueprints for Object-Oriented Programs. Wiley-Blackwell (2011)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading (1994)
Gasparis, E.: Design Navigation: Recovering Design Charts From Object-Oriented Programs. PhD, University of Essex (February 2010)
Hinchey, M., Jackson, M., Cousot, P., Cook, B., Bowen, J.P., Margaria, T.: Software engineering and formal methods. Communications of the ACM 51(9), 54–59 (2008)
Huth, M.R.A., Ryan, M.D.: Logic in Computer Science: Modelling and Reasoning about Systems, 2nd edn. Cambridge University Press, Cambridge (2000)
Maplesden, D., Hosking, J., Grundy, J.: A visual language for design pattern modeling and instantiation. In: Design Patterns Formalization Techniques. IGI Global, USA (2007)
Nicholson, J.: On the Theoretical Foundations of LePUS3 and its Application to Object-Oriented Design Verification. PhD, University of Essex, UK (2011)
Nicholson, J., Gasparis, E., Eden, A.H., Kazman, R.: Automated verification of design patterns in LePUS3. In: Proceedings of the 1st NASA Formal Methods Symposium, pp. 76–85. NASA, Moffett Field (2009)
Schmidt, D.C., Fayad, M., Johnson, R.E.: Software patterns. Communications of the ACM 39(10), 37–39 (1996)
Spivey, J.M.: The Z Notation: a Reference Manual, 2nd edn. Prentice-Hall, Englewood Cliffs (1992)
Sun Microsystems Inc.: Java 6 SDK: standard edn. documentation (2006)
Taibi, T.: Design Patterns Formalization Techniques. IGI Global, Hershey (2007)
Taivalsaari, A.: On the notion of inheritance. ACM Computing Surveys 28(3), 438–479 (1996)
Turner, R.: Computable Models. Springer, Heidelberg (2009)
Turner, R.: Logic and computation (May 2010), http://cswww.essex.ac.uk/staff/turnr/Mypapers/TPLessex.pdf
Wing, J.M.: A specifier’s introduction to formal methods. Computer 23(9), 8–23 (1990)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nicholson, J. (2011). A Theory of Classes from the Theoretical Foundations of LePUS3. In: Qin, S., Qiu, Z. (eds) Formal Methods and Software Engineering. ICFEM 2011. Lecture Notes in Computer Science, vol 6991. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-24559-6_35
Download citation
DOI: https://doi.org/10.1007/978-3-642-24559-6_35
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-24558-9
Online ISBN: 978-3-642-24559-6
eBook Packages: Computer ScienceComputer Science (R0)