Publications, papers, and presentations

Divider Top

To raise new questions, new possibilities, to regard old problems from a new angle, requires creative imagination and marks real advance in science.
-- Albert Einstein

What is written without effort is read without pleasure.

-- Samuel Johnson

Links

Table of Contents:

COPYRIGHT NOTICE. This material is presented to ensure timely dissemination of scholarly and technical work. Copyright and all rights therein are retained by authors or by other copyright holders. All persons copying this information are expected to adhere to the terms and constraints invoked by each author's copyright. In most cases, these works may not be reposted without the explicit permission of the copyright holder.
Divider

Most popular

(In reverse chronological order; see statistics)

Amnon H. Eden, Rick Kazman. “Architecture, Design, Implementation.” In: Laurie Dillon, Walter Tichy (eds.) Proc. 25th Int'l Conf. Software Engineering—ICSE (3–10 May 2003), Portland, OR, USA, pp. 149–159. Los Alamitos, USA: IEEE Computer Society Press [.pdf]

Abstract. The distinction between the terms architecture, design, and implementation is largely informal. We provide a formal insight into the distinction using the Intension/Locality Criteria. We demonstrate that, regardless the choice of specification language, architectural styles are intensional and non-local; that design patterns are intensional and local; and that implementations are extensional and local.

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.

Parts of this paper also appeared as: Amnon H. Eden, Yoram Hirshfeld. “Principles in Formal Specification of Object-Oriented Design and Architecture.” Proc. Centre for Advanced Studies CONference—CASCON (5–8 Nov. 2001), Toronto, Canada.

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.

Amnon H. Eden. “LePUS: A Visual Formalism for Object-Oriented Architectures.” Proc. 6th World Conf. Integrated Design and Process Technology—IDPT (22–28 Jun. 2002), Pasadena, CA, USA [.pdf]

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 [.pdf]

Abstract. Software architectures and designs “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

Amnon H. Eden. “Precise Specification of Design Patterns and Tool Support in Their Application.” PhD Dissertation, Department of Computer Science, Tel Aviv University (2000) [information]

Amnon H. Eden, Yoram Hirshfeld, Amiram Yehudai. “LePUS—A Declarative Pattern Specification Language.” Technical report 326/98, Department of Computer Science, Tel Aviv University (1998).

Amnon H. Eden. “Giving 'The Quality' a Name.” Journal of Object Oriented Programming, Guest Column, Vol. 11, No. 3 (Jun. 1998), pp. 5–11. New York, USA: SIGS Publications [.pdf]

Abstract. We discuss the prospects of precise specification of design patterns. We analyze the manuscript of the GoF patterns catalogue, and prove that the essence of many design patterns can be preserved through the translation to some formal language.

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 [.pdf]

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

Amnon H. Eden, Joseph Gil, Amiram Yehudai. “Automating the Application of Design Patterns.” Journal of Object-Oriented Programming, Vol. 10, No. 2 (May 1997), pp. 44–46. New York, USA: SIGS Publications. [See: "Precise Specification and Automatic Application of Design Patterns"]

Divider

Recent papers

Epameinondas Gasparis, Jonathan Nicholson, Amnon H. Eden, Rick Kazman. “Navigating Through the Design of Object-Oriented Programs”. Tool demonstration, 15th Working Conf. on Reverse Engineering—WCRE (15–18 Oct. 2008), Antwerp, Belgium [.pdf]

Epameinondas Gasparis, Jonathan Nicholson, Amnon H. Eden. “LePUS3: An Object-Oriented Design Description Language”. In: Gem Stapleton et al. (eds.) DIAGRAMS 2008. LNAI 5223, pp. 364–367. Berlin: Springer, 2008 [.pdf]

Epameinondas Gasparis, Amnon H. Eden, Jonathan Nicholson, Rick Kazman. “The Design Navigator: Charting Java Programs”. Companion, 30th Int'l Conf. on Software Engineering—ICSE (10–18 May 2008), Leipzig, Germany, pp. 945–946 [.pdf]

Also about LePUS3 and Class-Z:

Amnon H Eden, Epameinondas Gasparis, Jonathan Nicholson. “LePUS3 and Class-Z Reference Manual”. Department of Computer Science, University of Essex, Tech. Rep. CSM-474, ISSN 1744-8050 (2007) [.pdf]

Amnon H Eden, Epameinondas Gasparis, Jonathan Nicholson. “The 'Gang of Four' Companion: Formal specification of design patterns in LePUS3 and Class-Z.” Department of Computer Science, University of Essex, Tech. Rep. CSM-472, ISSN 1744-8050 (2007) [.pdf]

Jonathan Nicholson, Amnon H Eden, Epameinondas Gasparis. “Verification of LePUS3/Class-Z Specifications: Sample models and Abstract Semantics for Java 1.4 (Part I; Part II).” Department of Computer Science, University of Essex, Tech. Rep. CSM-471, ISSN 1744-8050 (2007) [.pdf]

Epameinondas Gasparis, Amnon H. Eden. “Design mining in LePUS3/Class-Z: search space and abstraction/concretization operators.” Department of Computer Science, University of Essex, Tech. Rep. CSM-473, ISSN 1744-8050 (2007) [.pdf]

Amnon H Eden. “Three Paradigms of Computer Science.” Minds and Machines, Special issue on the Philosophy of Computer Science, Vol. 17, No. 2 (Jul. 2007), pp. 135–167. London: Springer [.pdf]

Abstract. We examine the philosophical disputes among computer scientists concerning methodological, ontological, and epistemological questions: Is computer science a branch of mathematics, an engineering discipline, or a natural science? Should knowledge about the behaviour of programs proceed deductively or empirically? Are computer programs on a par with mathematical objects, with mere data, or with mental processes? We conclude that distinct positions taken in regard to these questions emanate from distinct sets of received beliefs or paradigms within the discipline:

  • The rationalist paradigm, which was common among theoretical computer scientists, defines computer science as a branch of mathematics, treats programs on a par with mathematical objects, and seeks certain, a priori knowledge about their “correctness” by means of deductive reasoning.
  • The technocratic paradigm, promulgated mainly by software engineers, defines computer science as an engineering discipline, treats programs as mere data, and seeks probable, a posteriori knowledge about their reliability empirically using testing suites.
  • The scientific paradigm, prevalent in the branches of artificial intelligence, defines computer science as a natural (empirical) science, takes programs to be entities on a par with mental processes, and seeks a priori and a posteriori knowledge about them by combining formal deduction and scientific experimentation.

We demonstrate evidence corroborating the tenets of the scientific paradigm, in particular the inherently unpredictable (even chaotic) nature of a large class of computer programs. We conclude with a discussion in the influence that the technocratic paradigm has been having over computer science.

Key terms: philosophy of computer science, ontology and epistemology of computer programs, scientific paradigms

Amnon H. Eden, Raymond Turner. “Problems in the ontology of computer programs.” Applied Ontology Vol. 2, No. 1 (2007), pp. 13–36. Amsterdam: IOS Press [.pdf]

Also appeared as: Technical report CSM-461, Department of Computer Science, University of Essex (Sep. 2006), ISSN 1744-8050.

Abstract. As a first step in the larger project of charting the ontology of computer programs, we pose three central questions:

  1. Can programs, hardware, and metaprograms be organized into a meaningful taxonomy?
  2. To what ontology are computer programs committed?
  3. What explains the proliferation of programming languages and how do they come about?

Taking the complementary perspectives software engineering and mathematical logic, we suggest that the notions of abstraction and concretization must take a central role in this investigation.

Key terms: Philosophy of computer science, software ontology, science of software design.

Related terms: Mathematical logic, finite model theory, programming languages, revisionary metaphysics.

Amnon H. Eden. “Foreword”. Ch. in: Toufik Taibi (ed.) Design Pattern Formalization Techniques. Hershey, USA: Idea Group Inc, 2007 [.pdf]

Raymond Turner, Amnon H. Eden. “Towards a Programming Language Ontology.” Ch. 10 in: Gordana Dodig-Crnkovic, Susan Stuart (eds.) Computation, Information, Cognition—The Nexus and the Liminal, pp. 147–159. Cambridge, UK: Cambridge Scholars Press, 2007 [.pdf]

Abstract. We examine the role of semantic theory in determining the ontology of programming languages. We explore how different semantic perspectives result in different ontologies. In particular, we compare the ontological implications of set-theoretic versus type-theoretic semantics.

Key terms: Philosophy of computer science

Related terms: Mathematical logic, type theory

Amnon H. Eden, Yoram Hirshfeld, Rick Kazman. “Abstraction Classes in Software Design.” IEE Software, Vol. 153, No. 4 (Aug. 2006), pp. 163–182. London, UK: The Institution of Engineering and Technology [.pdf]

Also appeared as: Amnon H. Eden, Yoram Hirshfeld, Rick Kazman. “Abstraction Strata in Software Design.” Technical report CSM-411, Department of Computer Science, University of Essex (2005), ISSN 1744-8050.

Abstract. We distinguish between three abstraction strata in software design statements:

  1. Strategic statements (“architectural design”) determine global design constraints, such as programming paradigms, architectural styles, component-based software engineering standards, design principles, and law-governed regularities;
  2. Tactical statements (“detailed design”) determine local design constraints, such as design patterns, programming idioms, and refactorings
  3. Implementation statements determine specific properties of the implementation, such as class diagrams and program documentation.

Seeking to ground this intuition in a well-defined vocabulary, we define two criteria of distinction in mathematical logic. We present the Intension/Locality Hypothesis, postulating that the spectrum of software design statements is divided into three well-defined “abstraction classes”:

  1. Class NL (“non-local”) contains strategic statements
  2. Class LI (“local and intensional”) contains tactical statements
  3. Class LE (“local and extensional”) contains implementation statements

We demonstrate a broad range of software design statements that corroborate our hypothesis.

We conclude with a proof of the Architectural Mismatch theorem, according to which architectural mismatch arises from attempting to combine components that assume conflicting non-local statements.

Keywords: Software design theory, software architecture, model theory.

Amnon H. Eden, Tom Mens. “Measuring Software Flexibility.” IEE Software Vol. 153, No. 3 (Jun. 2006), pp. 113–126. London, UK: The Institution of Engineering and Technology [.pdf]

Also appeared as: Amnon H. Eden, Tom Mens. “Evolution Complexity.” Technical report CSM-424, ISSN 1744-8050, Department of Computer Science, University of Essex (2005).

Abstract. Flexibility has been recognized as a desirable quality of software since the earliest days of software engineering. Classic and contemporary software design literature suggest that particular implementations are more flexible than others but stop short of suggesting objective criteria for quantifying such claims. To establish intuitions on flexibility in precise terms, we introduce the notion of evolution complexity and demonstrate how evolution cost metrics can be used to measure and compare the flexibility of—

  • programming paradigms: object-oriented and procedural programs;
  • architectural styles: Shared data, Pipes and Filters, and Abstract Data Type;
  • design patterns: Visitor and Abstract Factory.

We also demonstrate how evolution complexity can be used to choose the most flexible design policy. We conclude with experimental results corroborating our predictions.

Key terms: Software evolution, software flexibility, science of software design, software metrics.

Related terms: Design patterns, software architecture, computational complexity, software complexity.

Other

Amnon H. Eden, Raymond Turner. “Towards an ontology of software design: The Intension/Locality Hypothesis.” 3rd European conf. Computing And Philosophy—ECAP (2–4 Jun. 2005), Västerås, Sweden [.pdf]

Also appeared as: Amnon H. Eden, Raymond Turner. “The Intension/Locality Hypothesis.” Technical report CSM-419, ISSN 1744-8050, Department of Computer Science, University of Essex.

See also: The Intension/Locality Hypothesis

Raymond Turner, Amnon H Eden. “The Philosophy of Computer Science: Introduction to the Special Issue.” Minds and Machines, Vol. 17, No. 2 (Jul. 2007), pp. 129–133. Berlin: Springer [.pdf]

Amnon H. Eden. Book review: Alan M. Turing, B. Jack Copeland (ed.) The Essential Turing: The ideas that gave birth to the computer age. Minds and Machines Vol. 17, No. 1 (Mar. 2007), pp. 121–123 [.pdf]

Tom Mens, Amnon H. Eden. “Revised experiment in evolution complexity: Instructions to Subjects.” Technical report CSM-439, ISSN 1744-8050, Department of Computer Science, University of Essex (Nov. 2005) [.pdf]

Amnon H. Eden. “An experiment in evolution complexity: Instructions to Subjects.” Technical report CSM-431, ISSN 1744-8050, Department of Computer Science, University of Essex (Jun. 2005) [.pdf]

Amnon H Eden. “Problems in software ontology.” Proc. American Philosophers Association (APA) Eastern Division (27–30 Dec. 2006), Vol. 80, No. 1, Washington DC, USA.

Amnon H Eden, Raymond Turner. “Problems in software ontology.” 4th European conf. Computing And Philosophy—ECAP (22–24 Jun. 2006), Trondheim, Norway.

Tom Mens, Amnon H. Eden. “On the Evolution Complexity of Design Patterns.” Electronic Lecture Notes in Computer Science, Vol. 127, No. 3, pp. 147–163. Amsterdam, The Netherlands: Elsevier, 2004 See: Measuring Software Flexibility ["Measuring Software Flexibility"

Amnon H. Eden. “Strategic Versus Tactical Design.” Proc. 38th Annual Hawaii Int'l Conf. System Sciences—HICSS'05 (3–6 Jan. 2005), Track 9, Vol. 9, Honolulu, HI, USA. Los Alamitos: IEEE Computer Society [.pdf]

Abstract. We seek to distinguish strategic design decisions (e.g., to adopt a programming paradigm, architectural style, CBSE standard or application framework) from tactical design decisions (e.g. to use a design pattern, refactoring or programming idiom). This distinction is important since strategic statements carry far-reaching implications over the implementation and therefore must be made early in the development process, whereas tactical statements have localized effect and must be deferred to a latter stage in the process.

We formulate the Locality criterion, a well-defined and language-independent criterion which divides all design statements in two abstraction classes, L (local) and NL (non-local). We apply our criterion to a broad range of statements and demonstrate that strategic statements are in NL and that tactical design statements are in L. We also demonstrate that assumptions leading to architectural mismatch are in NL.

Keywords: Software design theory.

See also: The Two-Tier Programming Project

Amnon H. Eden, Rick Kazman, Chris J. Fox. “Two-Tier Programming.” Technical report CSM-387, ISSN 1744-8050, Department of Computer Science, University of Essex (Jul. 2003) [.pdf]

Rick Kazman, Amnon H. Eden. “Defining the Terms Architecture, Design, and Implementation”. News@SEI, Vol. 6, No. 1 (Jan. 2003). Pittsburgh, PA, USA: The Software Engineering Institute See: "Architecture, Design, Implementation"

Amnon H. Eden. “Directions in Architectural Specifications.” Proc. Workshop on Software Architecture Recovery and Modelling, 8th Working Conf. Reverse Engineering—WCRE (2 Oct. 2001), Stuttgart, Germany.

Amnon H. Eden. “Visualization of Object Oriented Architectures.” Proc. Workshop on Software Visualization, Int'l Conf. Software Engineering—ICSE (13–14 May 2001), Toronto, Canada, pp. 5–10. [.pdf]

Amnon H. Eden, Jens Jahnke. “Coordinating Software Evolution Via Two-Tier Programming”. Chapter in: Farhad Arbab, Carolyn L. Talcott (eds.), Lecture Notes in Computer Science 2315 (COORDINATION 2002), pp. 149–159. London, UK: Springer-Verlag, 2002. See: The Two-Tier Programming Project

Amnon H. Eden, Yoram Hirshfeld. “LePUS—Symbolic-Logic Modelling of Object Oriented Architectures: A Case Study.” Proc. 2nd Nordic Workshop on Software ArchitectureNOSA (12–13 Aug. 1999), Ronneby, Sweden. [.pdf]

Amnon H. Eden, Joseph Gil, Yoram Hirshfeld, Amiram Yehudai. “Motifs in Object-Oriented Architecture”. Unpublished manuscript [information]

Amnon H. Eden, Yoram Hirshfeld, Amiram Yehudai. “Towards a Mathematical Foundation For Design Patterns.” Technical report 1999-004, Department of Information Technology, Uppsala University [information]

Amnon H. Eden, Yoram Hirshfeld, Amiram Yehudai. “Multicast – Observer ≠ Typed Message.” C++ Report, Vol. 10, No. 9 (Oct. 1998), pp. 33–39. New York, USA: SIGS Publications.

Abstract. A discussion was chronicled in previous issues of C++ Report comparing three [candidate] patterns: Observer, Multicast, and Typed Message. The comparison took a number of pages to be conveyed, mostly using informal means or concrete instances.

We use a formal pattern specification language—LePUS—to define each design pattern and to illuminate the difference between the three. We translate each diagram to predicate calculus to establish their relationship, thereby demonstrating how LePUS can in general serve in the study of design patterns.

Amnon H. Eden, Amiram Yehudai. “Tricks Generate Patterns.” Technical report 324/97, Department of Computer Science, Tel Aviv University [.pdf]

Abstract. This is a catalogue of micro-patterns, as defined in [Eden, Gil & Yehudai 97b; Eden & Yehudai 97c]. A detailed description of the trick [ibid.] that implements the lattice [ibid.] of the CACHE-PROXY design pattern [GoF 95] by a Smalltalk routine is included, and also the source code of a sample Eiffel program whose elements served as arguments to the CACHE-PROXY trick.

Amnon H. Eden, Amiram Yehudai. “Patterns of the Agenda.” In: J. Bosch, S. Mitchell (eds.) Lecture Notes in Computer Science No. 1357, pp. 100–104. Berlin, Germany: Springer-Verlag, 1997 [.pdf]

Amnon H. Eden, Joseph Gil, Amiram Yehudai. “A Formal Language for Design Patterns.” Proc. 3rd Annual Conf. on the Pattern Languages of Programs—PLoP (4–6 Sep. 1996), Washington University technical report WUCS-97-07, Monticello, IL, USA [information]

Amnon H. Eden. “Supervised Learning of Natural Concepts.” MSc thesis, Department of Computer Science, Tel Aviv University, 1994 [Reference]

Presentations

A scientist who can speak without jargon is either an idiot or a genius
-- A. Anderson
Lecture notes from some of my recent talks

Towards an ontology of software design: The Intension/Locality Hypothesis.” European Conf. Computing And Philosophy—ECAP'05, Västerås, Sweden (2–4 Jun. 2005). [.ppt] [.pdf]

Software engineering state-of-the-art: An introduction to the not-so-innocent.” Guest lecture (9 Feb. 2005). [.pdf]

Abstraction strata in software design.” SEUJP-FC, Department of Computer Science, University of Essex (21 May 2004). [.ppt][.pdf]

A Theory of Object-Oriented Design.” Seminar, Dept. of Computer Science, University of Essex (25 Oct. 2002). [.ppt] [.pdf]