Formal transformations from graphically-based object-oriented representations to theory-based specifications

Formal software specification has long been touted as a way to increase the quality and reliability of software; however, it remains an intricate, manually intensive activity. An alternative to using formal specifications is to use graphically-based, semi-formal specifications such as those used in many object-oriented specification methodologies. While semi-formal specifications are generally easier to develop and understand, they lack the rigor and precision of formal specification techniques. The basic premise of this investigation is that formal software specifications can be constructed using correctness preserving transformations from graphically-based object-oriented representations. In this investigation, object-oriented specifications defined using Rumbaugh's Object Modeling Technique (OMT) were translated into algebraic specifications. To ensure the correct translation of graphically-based OMT specifications into their algebraic counterparts, a formal semantics for interpreting OMT specifications was derived and an algebraic model of object-orientation was developed. This model defines how object-oriented concepts are represented algebraically using an object-oriented algebraic specification language O-S scLANG. O-S scLANG combines basic algebraic specification constructs with category theory operations to capture internal object class structure as well as relationships between classes. Next, formal transformations from OMT specifications to O-S scLANG specifications were defined and the feasibility of automating these transformations was demonstrated by the development of a proof-of-concept system.

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

[2]  José Luiz Fiadeiro,et al.  Describing, Structuring and Implementing Objects , 1990, REX Workshop.

[3]  Stephen N. Zilles,et al.  Specification techniques for data abstractions , 1975 .

[4]  Anthony Hall,et al.  Seven myths of formal methods , 1990, IEEE Software.

[5]  Joseph A. Goguen,et al.  Some Fundamental Algebraic Tools for the Semantics of Computation. Part II: Signed and Abstract Theories , 1984, Theor. Comput. Sci..

[6]  Yellamraju V. Srinivas Augmenting Algebraic Specifications with Structured Sorts and Structural Subsorting , 1994, PROCOMET.

[7]  Betty H. C. Cheng,et al.  A Formal Semantics for Object Model Diagrams , 1995, IEEE Trans. Software Eng..

[8]  Will Tracz,et al.  A domain-specific software architecture engineering process outline , 1993, SOEN.

[9]  Richard C. T. Lee,et al.  Symbolic logic and mechanical theorem proving , 1973, Computer science classics.

[10]  K. Lano,et al.  Specifying a concept-recognition system in Z ++ , 1994 .

[11]  Kuldeep Kumar,et al.  Informal and Formal Requirements Specification Languages: Bridging the Gap , 1991, IEEE Trans. Software Eng..

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

[13]  Joseph A. Goguen,et al.  Reusing and Interconnecting Software Components , 1986, Computer.

[14]  Peter Wegner,et al.  The Object-Oriented Classification Paradigm , 1987, Research Directions in Object-Oriented Programming.

[15]  Stephen J. Mellor,et al.  Object Oriented Systems Analysis: Modeling the World in Data , 1988 .

[16]  簡聰富,et al.  物件導向軟體之架構(Object-Oriented Software Construction)探討 , 1989 .

[17]  David E. Monarchi,et al.  A research typology for object-oriented analysis and design , 1992, CACM.

[18]  David E. Brumbaugh Object-oriented development - building CASE tools with C++ , 1993 .

[19]  Grady Booch,et al.  Object-Oriented Design with Applications , 1990 .

[20]  N. Iscoe Domain-specific reuse: an object-oriented and knowledge-based approach , 1988 .

[21]  Federico Vázquez,et al.  An algebra approach to the deduction of data flow diagrams and object oriented diagrams from a set of specifications , 1995, OOPS.

[22]  Sidney C. Bailin,et al.  An object-oriented requirements specifications method , 1989, CACM.

[23]  Joseph A. Goguen,et al.  Parameterized Programming , 1984, IEEE Transactions on Software Engineering.

[24]  David Chenho Kung,et al.  Conceptual Modeling in the Context of Development , 1989, IEEE Transactions on Software Engineering.

[25]  David A. Carrington,et al.  Object-Z: An Object-Oriented Extension to Z , 1989, FORTE.

[26]  Barbara Liskov,et al.  Data Abstraction and Hierarchy , 1987 .

[27]  Michael Ackroyd,et al.  Graphical notation for object-oriented design and programming , 1991 .

[28]  Erich J. Neuhold,et al.  Structure and semantics in OODB class specifications , 1991, SGMD.

[29]  Peretz Shoval,et al.  Specification and Design of Transactions in Information Systems: A Formal Approach , 1991, IEEE Trans. Software Eng..

[30]  Kevin Lano,et al.  Reuse and Adaptation of Z Specifications , 1992, Z User Workshop.

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

[32]  David Chenho Kung,et al.  Formal definition and verification of data flow diagrams , 1991, Journal of Systems and Software.

[33]  Roger Duke,et al.  An object-Z specification of a mobile phone system , 1994 .

[34]  Robert Balzer,et al.  Report on a knowledge-based software assistant , 1986 .

[35]  Rubén Prieto-Díaz,et al.  Domain analysis: an introduction , 1990, SOEN.

[36]  Ana Cavalcanti,et al.  The Unix filing system: a MooZ specification , 1994 .

[37]  Allen T. Goldberg,et al.  Knowledge-based programming: A survey of program design and construction techniques , 1986, IEEE Transactions on Software Engineering.

[38]  Richard Jüllig,et al.  Diagrams for software synthesis , 1993, Proceedings of 8th Knowledge-Based Software Engineering Conference.

[39]  Swapan Mitra Object-oriented specification in VDM++ , 1994 .

[40]  David Harel,et al.  Statecharts: A Visual Formalism for Complex Systems , 1987, Sci. Comput. Program..

[41]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[42]  G. Arango Domain analysis: from art form to engineering discipline , 1989, IWSSD '89.

[43]  Patrice Enjalbert,et al.  Multimodal Logic Programming Using Equational and Order-Sorted Logic , 1992, Theor. Comput. Sci..

[44]  James Milne Neighbors,et al.  Software construction using components , 1980 .

[45]  Ruben Prieto-Diaz,et al.  Domain analysis for reusability , 1988 .

[46]  James B. Martin,et al.  Principles of object-oriented analysis and design , 1993, notThenot James Martin Books.

[47]  Kanth Miriyala,et al.  Automatic Derivation of Formal Software Specifications From Informal Descriptions , 1991, IEEE Trans. Software Eng..

[48]  Joseph A. Goguen,et al.  Some Fundamental Algebraic Tools for the Semantics of Computation. Part 1: Comma Categories, Colimits, Signatures and Theories , 1984, Theor. Comput. Sci..

[49]  Anthony I. Wasserman,et al.  The object-oriented structured design notation for software design representation , 1990, Computer.

[50]  Jeffrey D. Ullman,et al.  Introduction to Automata Theory, Languages and Computation , 1979 .

[51]  Ruben Prieto-Diaz,et al.  Criteria for Comparing Reuse-Oriented Domain Analysis Approaches , 1992, Int. J. Softw. Eng. Knowl. Eng..

[52]  José Meseguer,et al.  Unifying Functional, Object-Oriented and Relational Programming with Logical Semantics , 1987, Research Directions in Object-Oriented Programming.

[53]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

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

[55]  Joseph A. Goguen,et al.  OOZE: An Object Oriented Z Environment , 1991, ECOOP.

[56]  K. Lano,et al.  Object-oriented specification languages in the software life cycle , 1994 .

[57]  Michael R. Lowry Software Engineering in the Twenty-First Century , 1992, AI Mag..

[58]  Sudin Bhat,et al.  KBSA Concept Demo , 1993 .

[59]  Stephen J. Garland,et al.  Larch: Languages and Tools for Formal Specification , 1993, Texts and Monographs in Computer Science.

[60]  K. Lano,et al.  Specification and analysis techniques in object-oriented methods , 1994 .

[61]  Tharam S. Dillon,et al.  An Algebraic Theory of Object-Oriented Systems , 1994, IEEE Trans. Knowl. Data Eng..

[62]  Joseph A. Goguen,et al.  Putting Theories Together to Make Specifications , 1977, IJCAI.

[63]  Rodney J. Douglas KIDS: A Semi-Automatic Program Development System , 1990 .

[64]  Amir Pnueli,et al.  On the Formal Semantics of Statecharts (Extended Abstract) , 1987, LICS.

[65]  Karl J. Lieberherr,et al.  Object-oriented design , 1996, CSUR.

[66]  Fan Weicheng,et al.  A methodology for high-level software specification construction , 1995, SOEN.

[67]  Kuldeep Kumar,et al.  Strategies for incorporating formal specifications in software development , 1994, CACM.

[68]  Scott Danforth,et al.  Type theories and object-oriented programmimg , 1988, CSUR.

[69]  Bruno Alabiso,et al.  Transformation of Data Flow Analysis Models to Object-Oriented Design , 1988, OOPSLA.

[70]  Guillermo Arango,et al.  Domain Analysis and Software Systems Modeling , 1991 .

[71]  Edward Yourdon,et al.  Object-oriented analysis (2. ed.) , 1990, Yourdon Press computing series.

[72]  Tong Zhou,et al.  Calculating Software Generators from Solution Specifications , 1995, TAPSOFT.

[73]  Eric G. Wagner Categorical Semantics, Or Extending Data Types to Include Memory , 1984, ADT.

[74]  Yellamraju V. Srinivas Category Theory Definitions and Examples , 1990 .

[75]  Mike Adler,et al.  An Algebra for Data Flow Diagram Process Decomposition , 1988, IEEE Trans. Software Eng..

[76]  K. Lano,et al.  A comparative description of object-oriented specification languages , 1994 .

[77]  Douglas R. Smith,et al.  Transformational approach to transportation scheduling , 1993, Proceedings of 8th Knowledge-Based Software Engineering Conference.

[78]  G.-H. Bagherzadeh Rafsanjani,et al.  From Object-Z to C++: A Structural Mapping , 1992, Z User Workshop.

[79]  Jeannette M. Wing A specifier's introduction to formal methods , 1990, Computer.