Information Systems Frontiers 4:4, 379–391, 2002 C 2002 Kluwer Academic Publishers. Manufactured in The Netherlands.
A Theory of Object-Oriented Design
Amnon H. Eden
Center for Inquiry, Amherst, NY, USA E-mail: email@example.com
Abstract. Progress was made in the understanding of objectoriented (O-O) design through the introduction of patterns of design and architecture. Few works, however, offer methods of precise speciﬁcation for O-O design. This article provides a well-deﬁned ontology and an underlying framework for the formal speciﬁcation 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. Key Words. software design theory, software architecture, object oriented programming, formal foundations, design patterns
Architectural speciﬁcations provide software with “a unifying or coherent form or structure” (Perry and Wolf, 1992). Coherence is most effectively achieved through formal manifestations, allowing for unambiguous and veriﬁable representation of the architectural speciﬁcations. Various formalisms and Architecture Description Languages (ADLs) (Medvidovic and Taylor, 1997) were proposed for this purpose, each of which derives from an established formal theory. For example, Allen and Garlan extend CSP (Hoare, 1985) in WRIGHT (Allen and Garlan, 1997); Dean and Cordy (1995) use typed, directed multigraphs; and Abowd, Allen, and Garlan (1993) chose Z (Spivey, 1989) as the underlying theory. Other formalisms rely on Statecharts (Harel, 1987) and Petri Nets (Petri, 1962). In contrast, techniques