LePUS3 [1] [2] is an object-oriented, visual Design Description Language, namely a software modelling language and a formal specification language that is suitable primarily for modelling large object-oriented (Java, C++, C#) programs and design motifs such as design patterns [3]. It is defined as an axiomatized subset of First-order predicate logic.
Contents |
Overview
LePUS3 is tailored for the following purposes:
- Scalability: To model industrial-scale programs using small charts with only few symbols
- Automated verifiability: To allow programmers to continuously keep the design in synch with the implementation
- Program visualization: To allow tools to reverse-engineer legible charts from plain source code modelling their design
- Pattern implementation: To allow tools to determine automatically whether your program implements a design pattern
- Design abstraction: To specify unimplemented programs without committing prematurely to implementation minutiae
- Genericity: To model a design pattern not as a specific implementation but as a design motif
- Rigour: To allow software designers to be sure exactly what design charts mean and reason rigorously about them
Examples
LePUS3 is particularly suitable for modelling large programs, design patterns, and object-oriented application frameworks. It is unsuitable for modelling non object-oriented programs, architectural styles, and undecidable and semi-decidable properties.
|
The Factory method pattern in LePUS3 |
The Enterprise JavaBeans in LePUS3 |
LePUS3 Topics
Context
LePUS3 belongs to the following families of languages:
- Object oriented software modelling languages (e.g., UML): LePUS3 is a visual notation that is used to represent the building-blocks in the design of programs object-oriented programming languages
- Formal specification Languages: Like other Logic Visual Languages, LePUS3 charts articulate sentences in mathematical logic. LePUS3 is axiomatized in and defined as a recursive (turing-decidable) subset of first-order predicate calculus. Its semantics are defined using finite structure (mathematical logic).
- Architecture Description Languages: LePUS3 is a non-functional specification language used to represent design decisions about programs in class-based object-oriented programming languages (such as Java and C++).
- Tool supported specification languages: Verification of LePUS3 charts (checking their consistency with a Java 1.4 program) can be established (‘verified’) by a click of a button, as demonstrated by the Two-Tier Programming Toolkit.
- Program Visualization Notations are notations which offer a graphical representation of the program, normally generated by reverse-engineering the source code of the program.
Vocabulary
LePUS3 was designed to accommodate for parsimony and for economy of expression. Its vocabulary consists of only 15 visual tokens.
Tool support
Version 0.5.1 of the Two-Tier Programming Toolkit[4] [5] can be used to create LePUS3 specifications (charts), automatically verifying their consistency with Java 1.4 programs, and for reverse-engineering these charts from Java source code.
Design Patterns
LePUS3 was specifically designed to model, among others, the 'Gang of Four' design patterns, including Abstract Factory, Factory Method, Adapter, Decorator, Composite, Proxy, Iterator, State, Strategy, Template Method, and Visitor. (See "The 'Gang of Four' Companion") [3] Indeed, LePUS is abbrevation for Language for Pattern Uniform Specification because the precursor of this language was primarily concerned with design patterns.
References
- ^ Amnon H. Eden, Epameinondas Gasparis, Jonathan Nicholson (2007). "LePUS3 and Class-Z Reference Manual".
- ^ Gasparis, Epameinondas; Jonathan Nicholson, Amnon H Eden (2008-09-19). "LePUS3: A Object-Oriented Design Description Language" in DIAGRAMS 2008..
- ^ a b Amnon H. Eden, Epameinondas Gasparis, Jonathan Nicholson (2007). "The 'Gang of Four' Companion: Formal specification of design patterns in LePUS3 and Class-Z".
- ^ Two-Tier Programming Toolkit
- ^ Gasparis, Epameinondas; Amnon H. Eden, Jonathan Nicholson, Rick Kazman (2008-05-10). "The Design Navigator: Charting Java Programs" in 30th IEEE International Conference on Software Engineering--ICSE..
External links
| Wikimedia Commons has media related to: LePUS3 |
- Sample specifications in LePUS3
- Legend: Key to LePUS3 and Class-Z Symbols
- LePUS3 & Class-Z Reference Manual
- The 'Gang of Four' Companion: Formal specification of design patterns in LePUS3 and Class-Z
- Tutorial: Object-Oriented Modelling with LePUS3 and Class-Z
No comments have been added.






