Share on Facebook Share on Twitter Email
Answers.com

Lepus3

 
Wikipedia: Lepus3
Example: A composite pattern in LePUS3.

LePUS3 is an object-oriented, visual Design Description Language, namely a software modelling language and a formal specification language[1] [2] 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. A Codechart is a diagram that is also a well-formed specification in LePUS3.

LePUS is an abbreviation for Language for Pattern Uniform Specification.

Contents

Purpose

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

Context

LePUS3 belongs to the following families of languages:

Vocabulary

LePUS3 was designed to accommodate for parsimony and for economy of expression. Its vocabulary consists of only 15 visual tokens.

LePUS3 Vocabulary

Tool support

The Two-Tier Programming Toolkit[4] [5] can be used to--

  • create LePUS3 specifications (charts)
  • verify automatically [6] the consistency of LePUS3 charts with Java 1.4 programs; and
  • reverse-engineer 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] The abbreviation LePUS for "Language for Pattern Uniform Specification" became because the precursor of this language was primarily concerned with design patterns. The implementation of design patterns specified in LePSU3 can be automatically verified by the TTP Toolkit [6].

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.

References

  1. ^ Amnon H. Eden, Epameinondas Gasparis, Jonathan Nicholson (2007). "LePUS3 and Class-Z Reference Manual". http://www.lepus.org.uk/ref/refman/refman.xml. 
  2. ^ Gasparis, Epameinondas; Jonathan Nicholson, Amnon H Eden (2008-09-19). "LePUS3: A Object-Oriented Design Description Language". DIAGRAMS 2008. Herrsching, Germany. 
  3. ^ 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". http://www.lepus.org.uk/ref/companion/index.xml. 
  4. ^ Two-Tier Programming Toolkit
  5. ^ Gasparis, Epameinondas; Amnon H. Eden, Jonathan Nicholson, Rick Kazman (2008-05-10). "The Design Navigator: Charting Java Programs". 30th IEEE International Conference on Software Engineering--ICSE. Leipzig, Germany. 
  6. ^ a b Nicholson, Jonathan; Epameinondas Gasparis, Amnon H Eden, Rick Kazman (2009). "“Automated Verification of Design Patterns with LePUS3". The 1st NASA Formal Methods Symposium–NFM 2009. Moffett Field, CA. 

External links


Search unanswered questions...
Enter a question here...
Search: All sources Community Q&A Reference topics
 
 
Learn More
Adapter pattern
State pattern
Abstract factory pattern

Post a question - any question - to the WikiAnswers community:

 

Copyrights:

Wikipedia. This article is licensed under the Creative Commons Attribution/Share-Alike License. It uses material from the Wikipedia article "Lepus3" Read more