Lepus3

Lepus3

LePUS3 [cite Web | author=Amnon H. Eden, Epameinondas Gasparis, Jonathan Nicholson | title=LePUS3 and Class-Z Reference Manual | url= http://www.lepus.org.uk/ref/refman/refman.xml | Number=CSM-474, ISSN 1744-8050 | Institution=University of Essex | date=2007] [Cite conference | conference = DIAGRAMS 2008 | last = Gasparis | first = Epameinondas | coauthors = Jonathan Nicholson, Amnon H Eden | title = LePUS3: A Object-Oriented Design Description Language | location = Herrsching, Germany | date = 2008-09-19 | url = http://www.eden-study.org/articles/2008/lepus3-oo-design-description-lang.pdf] 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 patterns cite Web | author=Amnon H. Eden, Epameinondas Gasparis, Jonathan Nicholson | title=The 'Gang of Four' Companion: Formal specification of design patterns in LePUS3 and Class-Z | url=http://www.lepus.org.uk/ref/companion/index.xml | Number=CSM-472, ISSN 1744-8050 | Institution=University of Essex | date=2007] . It is defined as an axiomatized subset of First-order predicate logic. LePUS is an abbrevation for "Language for Pattern Uniform Specification".

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 minutia
* "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.

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 [http://ttp.essex.ac.uk/index.php?page=toolkit 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 [ [http://ttp.essex.ac.uk/index.php?page=toolkit Two-Tier Programming Toolkit] ] [Cite conference
conference = 30th IEEE International Conference on Software Engineering--ICSE
last = Gasparis
first = Epameinondas
coauthors = Amnon H. Eden, Jonathan Nicholson, Rick Kazman
title = The Design Navigator: Charting Java Programs
location = Leipzig, Germany
date = 2008-05-10
url = http://www.eden-study.org/articles/2008/design-navigator-icse.pdf
] can be used to create LePUS3 specifications (charts), [http://ttp.essex.ac.uk/index.php?page=verification automatically verifying] their consistency with Java 1.4 programs, and for [http://ttp.essex.ac.uk/index.php?page=navigation 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 [http://www.lepus.org.uk/ref/companion/index.xml "The 'Gang of Four' Companion")]

References

External links

* [http://www.lepus.org.uk/spec/ Sample specifications in LePUS3]
* [http://www.lepus.org.uk/ref/legend/legend.xml
]
* [http://www.lepus.org.uk/ref/refman/refman.xml LePUS3 & Class-Z Reference Manual]
* [http://www.lepus.org.uk/ref/companion/index.xml The 'Gang of Four' Companion: Formal specification of design patterns in LePUS3 and Class-Z]
* [http://www.lepus.org.uk/ref/lepus3-tutorial.pdf Tutorial: Object-Oriented Modelling with LePUS3 and Class-Z]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • LePUS3 — Example: Codechart modelling the Composite pattern in LePUS3 LePUS3[1] is a language for modelling and visualizing object oriented (Java, C++, C#) programs and design patterns …   Wikipedia

  • State pattern — [ LePUS3 ( [http://lepus.org.uk/ref/legend/legend.xml legend] ) ] The state pattern is a behavioral software design pattern, also known as the objects for states pattern. This pattern is used in computer programming to represent the state of an… …   Wikipedia

  • Visitor pattern — [ LePUS3 ( [http://lepus.org.uk/ref/legend/legend.xml legend] ) ] In object oriented programming and software engineering, the visitor design pattern is a way of separating an algorithm from an object structure upon which it operates. A practical …   Wikipedia

  • Strategy pattern — [ LePUS3 ( [http://lepus.org.uk/ref/legend/legend.xml legend] ) ] In computer programming, the strategy pattern (also known as the policy pattern) is a particular software design pattern, whereby algorithms can be selected at runtime.In some… …   Wikipedia

  • Template method pattern — [ LePUS3 ( [http://lepus.org.uk/ref/legend/legend.xml legend] ) ] In software engineering, the template method pattern is a design pattern.It is a so called behavioral pattern, and is unrelated to C++ templates.IntroductionIn a template pattern,… …   Wikipedia

  • Abstract factory pattern — The abstract factory pattern is a software design pattern that provides a way to encapsulate a group of individual factories that have a common theme. In normal usage, the client software creates a concrete implementation of the abstract factory… …   Wikipedia

  • Adapter pattern — In computer programming, the adapter pattern (often referred to as the wrapper pattern or simply a wrapper) is a design pattern that translates one interface for a class into a compatible interface. An adapter allows classes to work together that …   Wikipedia

  • Bridge pattern — The bridge pattern is a design pattern used in software engineering which is meant to decouple an abstraction from its implementation so that the two can vary independently .[1] The bridge uses encapsulation, aggregation, and can use inheritance… …   Wikipedia

  • Factory method pattern — Factory method in UML Facto …   Wikipedia

  • Composite pattern — In software engineering, the composite pattern is a partitioning design pattern. The composite pattern describes that a group of objects are to be treated in the same way as a single instance of an object. The intent of a composite is to compose… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”