This Article 
 Bibliographic References 
 Add to: 
A Theory-Based Representation for Object-Oriented Domain Models
June 2000 (vol. 26 no. 6)
pp. 500-517

Abstract—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 directly is to translate graphically based, semiformal specifications into formal specifications. However, before this translation can take place, a formal definition of basic object-oriented concepts must be found. This paper presents an algebraic model of object-orientation that defines how object-oriented concepts can be represented algebraically using an object-oriented algebraic specification language O-Slang. O-Slang combines basic algebraic specification constructs with category theory operations to capture internal object class structure, as well as relationships between classes.

[1] C. Green, D. Luckham, R. Balzer, T. Cheatham, and C. Rich, Report on a Knowledge-Based Software Assistant Readings in Artificial Intelligence and Software Eng., C. Rich, and R. Waters, eds., Morgan Kaufmann, 1986.
[2] M.R. Lowry, “Software Engineering in the Twenty-First Century,” AI Magazine, Fall 1992.
[3] D.R. Smith, KIDS: A Semiautomatic Program Development System IEEE Trans. Software Eng., vol. 16, no. 9, pp. 1024-1043, 1990.
[4] D.R. Smith, “Transformational Approach to Transportation Scheduling,” Proc. Eighth Knowledge-Based Software Eng. Conf., pp. 60–68, Oct. 1993.
[5] C.L. Chang, R.A. Stachowitz, and J.B. Combs, “Validation of Nonmonotonic Knowledge-Based Systems,” Proc. IEEE Int'l Conf. Tools for Artificial Intelligence, Nov. 1990.
[6] R. Jullig and Y.V. Srinivas, “Diagrams for Software Synthesis,” Proc. Eighth Knowledge-Based Software Eng. Conf., 1993.
[7] M.D. Faser, K. Kumar, and V.K. Vaishnavi, "Strategies for Incorporating Formal Specifications in Software Development," Comm. ACM, vol. 37, no. 10, Oct. 1994, pp. 74-86.
[8] R.H. Bourdeau and B.H.C. Cheng, “A Formal Semantics of Object Models,” IEEE Trans. Software Eng., vol. 21, pp. 799–821, Oct. 1995.
[9] D. Harel, “Statecharts: A Visual Approach to Complex Systems,” Science of Computer Programming, Vol. 8, No. 3, pp. 231–274, 1987.
[10] T.C. Hartrum and P.D. Bailor,“Teaching formal extensions of informal-based object-oriented analysis methodologies,” Proc. Computer Science Education, pp. 389-409, 1994.
[11] S.A. DeLoach, “Formal Transformations from Graphically-Based Object-Oriented Representations to Theory-Based Specification,” PhD thesis, Wright-Patterson AFB: US Air Force, Inst. of Technology, AFIT/DS/ENG/96-05, AD-A310 608, June 1996.
[12] Kestrel Institute, Slang Language Manual: Specware Version Core4, Oct. 1994.
[13] J.A. Goguen and R.M. Burstall, “Some Fundamental Algebraic Tools for the Semantics of Computation Part I: Comma Categories, Colimits, Signatures and Theories,” Theoretical Computer Science, vol. 31, pp. 175–209, 1984.
[14] K. Lano and H. Houghton, “Specifying a Concept-Recognition System in Z++,” Object-Oriented Specification Case Studies, K. Lano and H. Houghton, eds., pp. 137–157, Prentice-Hall, 1994.
[15] D. Carrington, D. Duke, R. Duke, P. King, G. Rose, and G. Smith, “Object-Z: An Object-Oriented Extension to Z,” Formal Description Techniques, S.T. Voung, ed., 1990.
[16] K. Lano and H. Houghton, “A Comparative Description of Object-Oriented Specification Languages,” Object-Oriented Specification Case Studies, K. Lano and H. Houghton, eds., pp. 20–54, Prentice Hall, 1994.
[17] A.J. Alencar and J.A. Goguen,“Specification in OOZE with examples,” K. Lanno and H. Haughton, eds., Object-Oriented Specification Case Studies.Englewood Cliffs, N.J.: Prentice Hall, 1994, pp. 158-183.
[18] J. Goguen and J. Messeguer, "Unifying Functional, Object-Oriented, and Relational Programming with Logical Semantics," in Research Directions in Object-Oriented Programming, B. Shriver and P. Wegner, eds., MIT Press, Cambridge, Mass., 1987, pp. 417-477.
[19] J.A. Goguen and T. Winkler, “Introducing OBJ3,” Techical Report , Computer Science Laboratory, SRI Int'l, Menlo Park, Calif., Aug. 1988.
[20] Y.V. Srinivas, “Algebraic Specification: Syntax, Semantics, Structure,” Techical Report TR 90-15, Dept. of Information and Computer Science, Univ. of California at Irvine, June 1990.
[21] Y.V. Srinivas, “Category Theory Definitions and Examples,” Techical Report TR 90-14, Dept. of Information and Computer Science, Univ. of California at Irvine, Feb. 1990.
[22] B. Liskov, “Data Abstraction and Hierarchy,” SIGPLAN Notices, vol. 23, no. 5, pp. 17-34, 1988.
[23] T. Bar-David, “Practical Consequences of Formal Defintions of Inheritance,” J. Object-Oriented Programming, vol. 5, pp. 43–49, July/Aug. 1992.
[24] X.-M. Lu and T.S. Dillon, “An Algebraic Theory of Object-Oriented Systems,” IEEE Trans. Knowedge and Data Eng., vol. 6, no. 3, pp. 412–419, June 1994.
[25] H. Lin and M. chi Pong, “Modelling Multiple Inheritance with Colimits,” Formal Aspects of Computing, vol. 2, pp. 301–311, 1990.

Index Terms:
Software engineering, formal methods, domain models, transformation systems.
Scott A. DeLoach, Thomas C. Hartrum, "A Theory-Based Representation for Object-Oriented Domain Models," IEEE Transactions on Software Engineering, vol. 26, no. 6, pp. 500-517, June 2000, doi:10.1109/32.852740
Usage of this product signifies your acceptance of the Terms of Use.