A formal approach to object-oriented software engineering

Abstract The goal of this paper is to show how formal specifications can be integrated into one of the current pragmatic object-oriented software development methods. Jacobson's method OOSE (“Object-Oriented Software-Engineering”) is combined with object-oriented algebraic specifications by extending object and interaction diagrams with formal annotations. The specifications are based on Meseguer's Rewriting Logic and are written in an extension of the language Maude by process expressions. As a result any such diagram can be associated with a formal specification, proof obligations ensuring invariant properties can be automatically generated, and the refinement relations between documents on different abstraction levels can be formally stated and proved. Finally, we provide a schematic translation of the specification to Java and thus an automatic generation of an object-oriented implementation.

[1]  Luca Aceto,et al.  Towards Action-Refinement in Process Algebras , 1993, Inf. Comput..

[2]  Ulrike Lechner Object-oriented specifications of distributed systems in the mu-Calculus and Maude , 1996, WRLA.

[3]  H. B. M. Jonkers,et al.  An Introduction to COLD-K , 1987, Algebraic Methods.

[4]  Coln Atkinson,et al.  Object-oriented development: The fusion method , 1996 .

[5]  Gul Agha,et al.  Research directions in concurrent object-oriented programming , 1993 .

[6]  Gianna Reggio,et al.  Entities: An Institution for Dynamic Systems , 1990, ADT.

[7]  M. Clavel Reflection in general logics and in rewriting logic with applications to the maude languaje , 1998 .

[8]  William E. Lorensen,et al.  Object-Oriented Modeling and Design , 1991, TOOLS.

[9]  Ivar Jacobson,et al.  Object-oriented software engineering - a use case driven approach , 1993, TOOLS.

[10]  Grit Denker,et al.  Information Systems Modelling with TROLL Formal Methods at Work , 1997, Inf. Syst..

[11]  Ivar Jacobson,et al.  Object-Oriented Software Engineering , 1991, TOOLS.

[12]  James Martin,et al.  Object-oriented analysis and design , 1992 .

[13]  José Meseguer,et al.  Parallel Programmming in Maude , 1991, Research Directions in High-Level Parallel Programming Languages.

[14]  Friederike Nickl,et al.  (Objects + Concurrency) & Reusability - A Proposal to Circumvent the Inheritance Anomaly , 1996, ECOOP.

[15]  J. Davenport Editor , 1960 .

[16]  Anneke Kleppe,et al.  The object constraint language: precise modeling with UML , 1998 .

[17]  Grady Booch,et al.  Object-Oriented Analysis and Design with Applications , 1990 .

[18]  Grady Booch,et al.  Object-oriented analysis and design with applications (2nd ed.) , 1993 .

[19]  Iso. Lotos,et al.  A Formal Description Technique Based on the Temporal Ordering of Observational Behaviour , 1985 .

[20]  Hans-Jörg Kreowski,et al.  Recent Trends in Data Type Specification , 1985, Informatik-Fachberichte.

[21]  José Meseguer,et al.  Order-Sorted Algebra I: Equational Deduction for Multiple Inheritance, Overloading, Exceptions and Partial Operations , 1992, Theor. Comput. Sci..

[22]  Jos Warmer,et al.  The object constraint language , 1998 .

[23]  Richard A. Kemmerer,et al.  Integrating formal methods into the development process , 1990, IEEE Software.

[24]  Hélène Kirchner,et al.  ELAN: A logical framework based on computational systems , 1996, WRLA.

[25]  Kevin Lano,et al.  Formal object-oriented development , 1995, FACIT: Formal approaches to computing and information technology.

[26]  J. C. M. Baeten,et al.  Process Algebra: Bibliography , 1990 .

[27]  Luca Aceto,et al.  Adding Action Refinement to a Finite Process Algebra , 1994, Inf. Comput..

[28]  Heinrich Hußmann,et al.  Formal Foundations for Pragmatic Software Engineering Methods , 1994, GI Jahrestagung.

[29]  John Daniels,et al.  Designing object systems: object-oriented modelling with Syntropy , 1995 .

[30]  Gianna Reggio,et al.  On the Parameterized Algebraic Specification of Concurrent Systems , 1985, TAPSOFT, Vol.1.

[31]  José Meseguer,et al.  A logical theory of concurrent objects and its realization in the Maude language , 1993 .

[32]  Heinrich Hußmann,et al.  Formal Foundations for Software Engineering Methods , 1997, Lecture Notes in Computer Science.

[33]  José Meseguer,et al.  Membership algebra as a logical framework for equational specification , 1997, WADT.

[34]  Stephen J. Mellor,et al.  Object lifecycles: modeling the world in states , 1992 .

[35]  Shin Nakajima,et al.  An Object-Oriented Modeling Method for Algebraic Specifications in CafeOBJ , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[36]  Sjouke Mauw,et al.  An Algebraic Specification of Process Algebra, Including Two Examples , 1987, Algebraic Methods.

[37]  Martin Wirsing,et al.  Algebraic Specification , 1991, Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics.

[38]  Jan A. Bergstra,et al.  Algebra of Communicating Processes with Abstraction , 1985, Theor. Comput. Sci..

[39]  Jan van Leeuwen,et al.  Handbook of Theoretical Computer Science, Vol. B: Formal Models and Semantics , 1994 .

[40]  Wolfram Schulte,et al.  A Formal OO Method Inspired by Fusion and Object-Z , 1997, ZUM.

[41]  Martin Gogolla,et al.  Objects and their Specification , 1991, COMPASS/ADT.