Introducing Syntactical Constraints in Object-Oriented Programming Supporting Design Pattern Principles

Project Lead

Project Duration

01/01/2009 - 31/12/2010

Project URL

Go to Website

Publications

2010

A JML Specification of the Design Pattern "Visitor"

Wolfgang Schreiner

Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria. Technical report, September 2010. [pdf]
[bib]
@techreport{RISC4101,
author = {Wolfgang Schreiner},
title = {{A JML Specification of the Design Pattern "Visitor"}},
language = {english},
abstract = {We describe a generic Java framework that implements the software design pattern "visitor"and that is formally specified in the Java Modeling Language (JML). In addition to theinformation provided by a typical UML specification of the pattern, the JML specificationdescribes the the sequence of visited objects in the order in which they are visited. A visitormay then specify its concrete behavior with respect to this sequence.},
year = {2010},
month = {September},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria},
keywords = {formal methods, program specification, program verification},
sponsor = {Austrian Academic Exchange Service (ÖAD) under the contract HU 14/2009},
length = {30}
}

Implementing Design Patterns in AspectJ and JavaMOP

Gergely Kovasznai

Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria. Technical report, December 2010. [pdf]
[bib]
@techreport{RISC4189,
author = {Gergely Kovasznai},
title = {{Implementing Design Patterns in AspectJ and JavaMOP}},
language = {english},
abstract = {In this report, we primarily investigate what are the strengths ofaspect-oriented programming in implementing design patterns. Further-more, we propose a higher-level specification layer by employing monitoring-oriented programming (MOP). Since we develop a generic Java frameworkfor design pattern specification, we use AspectJ and JavaMOP . In thisreport, we implement the Observer design pattern, for the sake of demon-strating the usefulness of those tools. Furthermore, we show a case studyof using our generic framework.},
year = {2010},
month = {December},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria},
sponsor = {Austrian Academic Exchange Service (ÖAD) under the contract HU 14/2009},
length = {23}
}

From Types to Contracts: Supporting by Light-Weight Specifications the Liskov Substitution Principle

Wolfgang Schreiner

Technical report no. 10-22 in RISC Report Series, Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Schloss Hagenberg, 4232 Hagenberg, Austria. February 2010. [pdf]
[bib]
@techreport{RISC4193,
author = {Wolfgang Schreiner},
title = {{From Types to Contracts: Supporting by Light-Weight Specifications the Liskov Substitution Principle}},
language = {english},
abstract = {In this paper we review the main theoretical elements of behavioral subtypingin object-oriented programming languages in a semi-formal style that shouldallow software developers to understand better in which situations the Liskovsubstitution principle (objects of subclasses may stand for objects ofsuperclasses) is violated. We then shortly discuss the specification of classcontracts in behavioral specification languages that allow to ensure that thesubstitution principle is preserved. Since many software developers may shyaway form these languages because the learning curve is esteemed as too steep,we propose a language of light-weight specifications that provides by ahierarchy of gradually more expressive specification forms a more lenient pathtowards the use of behavioral specification languages. The specifications donot demand the use of predicate logic; by automatic checking certainviolations of the substitution principle may be detected.},
number = {10-22},
year = {2010},
month = {February},
keywords = {formal methods, design patterns, object-oriented programming, type systems},
sponsor = {Supported by the Austrian-Hungarian Scientific/Technical Cooperation Contract HU 14/2009},
length = {35},
type = {RISC Report Series},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz},
address = {Schloss Hagenberg, 4232 Hagenberg, Austria}
}

2009

A JML Specification of the Design Pattern "Proxy"

Wolfgang Schreiner

Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria. Technical report, April 2009. [pdf]
[bib]
@techreport{RISC3818,
author = {Wolfgang Schreiner},
title = {{A JML Specification of the Design Pattern "Proxy"}},
language = {english},
abstract = {We describe a generic Java framework that implements the software designpattern ``proxy'' (in two variants ``virtual proxy'' and ``remote proxy'')and that is formally specified in the Java Modeling Language (JML). Inaddition to the information provided by a typical UML specification of thepattern, the JML specification exactly describes how a request issued to theproxy is propagated to the underlying object and how the result is forwardedfrom this object to the user of the proxy},
year = {2009},
month = {April},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University, Linz, Austria},
sponsor = {Austrian Academic Exchange Service ({\"O}AD) under the contract HU~14/2009.},
length = {22}
}

Java Framework Implementing Design Patterns by the Use of JML and Contract4J

Gergely Kovasznai

Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria. Technical report, 2009. [pdf]
[bib]
@techreport{RISC3872,
author = {Gergely Kovasznai},
title = {{Java Framework Implementing Design Patterns by the Use of JML and Contract4J}},
language = {english},
abstract = {We develop a generic Java framework that implements software designpatterns. In this paper, the Decorator and State patterns are focused.Nevertheless, our current results can be considered in connection withany design pattern which employs delegation constraints. We investigatehow such constraints could be expressed in Java by the help of Design-by-Contract tools like JML or Contract4J. Furthermore, we illustrate how touse our generic framework, through examples.},
year = {2009},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria},
sponsor = {Austrian Academic Exchange Service ({\"O}AD) under the contract HU~14/2009},
length = {17}
}

Supporting the Design Pattern "Object Structures as Plain Values"

Wolfgang Schreiner

Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria. Technical report, September 2009. [pdf]
[bib]
@techreport{RISC3895,
author = {Wolfgang Schreiner},
title = {{Supporting the Design Pattern "Object Structures as Plain Values"}},
language = {english},
abstract = {We sketch the principles of a type system for an object-oriented languagesuch as Java which allows to statically ensure that an object structureis not modified by a method call, if the primary reference of thatobject structure is stored in a local variable of the method and this variabledoes not syntactically occur in the call. The object structure thusbehaves like a “plain value”, say a machine number, stored in a localvariable in that no hidden side-effects can change it. We call the correspondingdesign pattern “object structures as plain values”. The modelis presented in an informal style; its validity still remains to be shown bya formal definition and soundness proof.},
year = {2009},
month = {September},
institution = {Research Institute for Symbolic Computation (RISC), Johannes Kepler University Linz, Austria},
sponsor = {Supported by the Austrian-Hungarian Scientific/Technical Cooperation Contract HU 13/2007},
length = {16}
}

Loading…