The paper presents a formalization of (some) design patterns as operators between classes. A concrete design pattern is understood as an operator that modifies certain classes into the design proposed by the pattern. In such this way, we present a way to understand design patterns in a formal context, what aims for formal reasoning about them. Furthermore, the view of design patterns as class operators proposes a method to incorporate design patterns into object oriented development tools. It also can give some hints to easily compose patterns , and to identify design patterns in a given specification.
The paper presents the reflection facilities of the specification language Slam-sl. Slam-sl is an object oriented specification language where class methods are specified by pre and postconditions. The reflection capabilities permit managing these pre and postconditions in specifications what means that semantic reflection is possible. The range of interesting applications is very wide: formal specification of interfaces and abstract classes, specification of component based software, formalization of design pattern, using Slam-sl as a pattern language, etc. The paper discusses the last two advantages in some detail.
The paper presents the reflection facilities of the specification language Slam-sl. Slam-sl is an object oriented specification language where class methods are specified by pre and postconditions. The reflection capabilities permit managing these pre and postconditions in specifications what means that semantic reflection is possible. The range of interesting applications is very wide: formal specification of interfaces and abstract classes, specification of component based software, formalization of design pattern, using Slam-sl as a pattern language, etc. The paper discusses the last two advantages in some detail.
This paper shows the debugging facilities provided by the Slam system. The Slam system includes (i) a specification language that integrates algebraic specifications and model-based specifications using the object oriented model. Class operations are defined by using rules each of them with logical pre and postconditions but with a functional flavour. (ii) A development environment that, among other features, is able to generate readable code in a high level object oriented language. (iii) The generated code includes (part of) the pre and postconditions as assertions, that can be automatically checked in the debug mode execution of programs. We focus on this last aspect. The Slam language is expressive enough to describe many useful properties and these properties are translated into a Prolog program that is linked (via an adequate interface) with the user program. The debugging execution of the program interacts with the Prolog engine which is responsible for checking properties.
This file was generated by bibtex2html 1.98.