A Theory of Classes from the Theoretical Foundations of LePUS3

  • Jonathan Nicholson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6991)


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.


Formal Specification and Modelling LePUS3 Typed Predicate Logic Design Patterns 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    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)Google Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    Craig, I.: The Interpretation of Object-Oriented Programming Languages, 2nd edn. Springer, Heidelberg (2000)CrossRefzbMATHGoogle Scholar
  4. 4.
    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-8050Google Scholar
  5. 5.
    Eden, A.H., Nicholson, J.: Codecharts: Roadmaps and Blueprints for Object-Oriented Programs. Wiley-Blackwell (2011)Google Scholar
  6. 6.
    Gamma, E., Helm, R., Johnson, R., Vlissides, J.M.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Professional, Reading (1994)zbMATHGoogle Scholar
  7. 7.
    Gasparis, E.: Design Navigation: Recovering Design Charts From Object-Oriented Programs. PhD, University of Essex (February 2010)Google Scholar
  8. 8.
    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)CrossRefGoogle Scholar
  9. 9.
    Huth, M.R.A., Ryan, M.D.: Logic in Computer Science: Modelling and Reasoning about Systems, 2nd edn. Cambridge University Press, Cambridge (2000)zbMATHGoogle Scholar
  10. 10.
    Maplesden, D., Hosking, J., Grundy, J.: A visual language for design pattern modeling and instantiation. In: Design Patterns Formalization Techniques. IGI Global, USA (2007)Google Scholar
  11. 11.
    Nicholson, J.: On the Theoretical Foundations of LePUS3 and its Application to Object-Oriented Design Verification. PhD, University of Essex, UK (2011)Google Scholar
  12. 12.
    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)Google Scholar
  13. 13.
    Schmidt, D.C., Fayad, M., Johnson, R.E.: Software patterns. Communications of the ACM 39(10), 37–39 (1996)CrossRefGoogle Scholar
  14. 14.
    Spivey, J.M.: The Z Notation: a Reference Manual, 2nd edn. Prentice-Hall, Englewood Cliffs (1992)zbMATHGoogle Scholar
  15. 15.
    Sun Microsystems Inc.: Java 6 SDK: standard edn. documentation (2006)Google Scholar
  16. 16.
    Taibi, T.: Design Patterns Formalization Techniques. IGI Global, Hershey (2007)CrossRefGoogle Scholar
  17. 17.
    Taivalsaari, A.: On the notion of inheritance. ACM Computing Surveys 28(3), 438–479 (1996)CrossRefGoogle Scholar
  18. 18.
    Turner, R.: Computable Models. Springer, Heidelberg (2009)CrossRefzbMATHGoogle Scholar
  19. 19.
    Turner, R.: Logic and computation (May 2010),
  20. 20.
    Wing, J.M.: A specifier’s introduction to formal methods. Computer 23(9), 8–23 (1990)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Jonathan Nicholson
    • 1
  1. 1.University of EssexUK

Personalised recommendations