Availability of papers

The papers:

  • Amnon H. Eden. “Precise specification of design patterns and tool support in their application.” PhD Dissertation, Department of Computer Science, Tel Aviv University, 2000.
  • Amnon H. Eden, Yoram Hirshfeld, Amiram Yehudai. “Towards a Mathematical Foundation For Design Patterns.” Technical report 1999-004, Department of Information Technology, Uppsala University.
  • Amnon H. Eden, Yoram Hirshfeld, Amiram Yehudai. “LePUS—A Declarative Pattern Specification Language” Technical report 326/98, Department of Computer Science, Tel Aviv University.

are no longer available, but their contents still is from the following:

Building blocks of object-oriented design

Amnon H. Eden. “A Theory of Object-Oriented Design.” Information Systems Frontiers, Vol. 4, No. 4 (Nov.–Dec. 2002), pp. 379–391. Amsterdam, The Netherlands: Kluwer Academic Publishers.

Abstract. Progress was made in the understanding of object-oriented (O-O) design through the introduction of patterns of design and architecture. Few works, however, offer methods of precise specification for O-O design.

This article provides a well-defined ontology and an underlying framework for the formal specification of O-O design: 1. We observe key design motifs in O-O design and architectures. 2. We provide a computational model in mathematical logic suitable for the discussion in O-O design. 3. We use our conceptual toolkit to analyze and compare proposed formalisms.

Keywords: Software design theory, software architecture, object oriented programming, formal foundations, design patterns.

pdf
LePUS: LanguagE for Patterns Uniform Specification

Amnon H. Eden. “Formal Specification of Object-Oriented Design.” Proc. Int'l Conf. Multidisciplinary Design in Engineering CSME-MDE 2001 (21–22 Nov. 2001), Montreal, Canada.

Abstract. Software architectures and design notations are typically based on bubble-and-arc diagrams. Embellishing these diagrams may increase their information content but does not make a language. A formal language has syntax, semantics, and inference rules, so that reasoning and automatic manipulation are made possible.

We describe LePUS, a formal language for describing and reasoning about object oriented software architectures, designs, and patterns. A LePUS formula imposes constraints on the software at an appropriate level of abstraction but does not unnecessarily restrict the implementation. LePUS is not an ad hoc collection of loosely related concepts but instead originates from an insight on a small number of necessary and sufficient basic building blocks that are ubiquitous in object oriented design. A LePUS specification can be expressed as either a formula or a semantically equivalent diagram. We provide examples of LePUS descriptions ranging from simple design patterns, such as Factory Method, to popular current architectures, such as Enterprise JavaBeansâ„¢.

Keywords: Software architecture, object oriented programming, design patterns, formal methods

LePUS Home Page

The Patterns Wizard: An earlier piece of work on tool support for procedural specifications of design patterns

Amnon H. Eden, Joseph Gil, Amiram Yehudai. “Precise Specification and Automatic Application of Design Patterns.” In: Michael Lowry, Yves Ledru (eds.) Proc. 12th IEEE Int'l Automated Software Engineering conf.—ASE (2–5 Nov. 1997), Lake Tahoe, NV, USA, pp. 143–152.

Abstract. Despite vast interest in design patterns, the specification and application of patterns is generally assumed to rely on manual implementation. We describe a precise method of specifying how a design pattern is applied: by phrasing it as an algorithm in a meta-programming language.

We present a prototype of a tool that supports the specification of design patterns and their realization in a given program. Our prototype allows automatic application of design patterns without obstructing the source code text from the programmer, whom may edit it at will. We demonstrate pattern specification in meta-programming techniques and a sample outcome of its application.

Keywords: Application of design patterns, tool support for design patterns, metaprogramming

PDF