This Article 
 Bibliographic References 
 Add to: 
Toward Constraint-Object-Oriented Development
July 2000 (vol. 26 no. 7)
pp. 594-616

Abstract—In this paper, we propose to conservatively extend object-oriented decomposition by letting it affect also operations (methods). Different objects may support different parts of the same operation. The responsibility of defining an operation, in terms of enabling conditions and effects on the state, is distributed over several interacting objects, which act as constraints and express different, partial views about the system behavior. Constraint-oriented reasoning has already been explored and applied in the context of formal specification languages for concurrent and reactive systems, and is sufficiently different from object-oriented reasoning to be considered as a paradigm in itself, with its own specific advantages. Nevertheless, the paper shows that the two approaches are sufficiently compatible to be profitably integrated. We introduce a constraint-oriented style for an object-oriented programming language (JAVA).

[1] T. Bolognesi, “A Graphical Composition Theorem for Networks of LOTOS Processes,” Proc. Tenth Int'l Conf. Distributed Computing Systems (ICDCS 10), pp. 88-95, 1990.
[2] T. Bolognesi, “Expressive Flexibility of a Constraint-Oriented Notation,” The Computer J., vol. 40, no. 5, Oxford Univ. Press, pp. 259-277, 1997.
[3] T. Bolognesi and F. Accordino, “Constraint-Oriented Specification Style and Notation,” Technical Report IEI B4-43, Istituto di Elaborazione dell'Informazione, Pisa, Italy, 1996.
[4] T. Bolognesi and F. Accordino, “A Layer on Top of Prolog for Composing Behavioral Constraints,” Software Practice and Experience, vol. 28, no. 13, John Wiley, pp. 1,415-1,435, 1998.
[5] T. Bolognesi and A. Bracciali, “Formal Specification of Discrete Systems by Active Redicates and Dynamic Constraints,” Proc. IFIP TC6/WG6.1 Third Int'l Conf. Formal Methods for Open Object-Based Distributed Systems (FMOODS), pp. 161-168, 1999.
[6] E. Brinksma and T. Bolognesi, "Introduction to the ISO Specification Language LOTOS," Computer Networks and ISDN Systems, vol. 14, pp. 25-59, 1987.
[7] T. Bolognesi and J. Derrick, “Constraint-Oriented Style for Object-Oriented Formal Specification,” IEE Proceedures-Software, vol. 145, no 2-3, pp. 61-69, April-June 1998.
[8] T. Bolognesi, J.v.d. Lagemaat, and C. Vissers, LotoSphere: Software Development with LOTOS. Kluwer Academic Publishers, 1995.
[9] Grady Booch, "Object-Oriented Development," IEEE Transactions on Software Engineering, vol. 12, p. 212, Feb. 1986.
[10] H. Bowman and J. Derrick, “A Junction between State-Based and Behavioral Specification,” Proc. IFIP TC6/WG6.1 Third Int'l Conf. Formal Methods for Open Object-Based Distributed Systems (FMOODS), pp. 213-240, 1999.
[11] E. Brinksma, ISO—Information Processing Systems—Open Systems Interconnection—LOTOS—A Formal Description Technique Based on the Temporal Ordering of Observational Behavior—IS 8807. Geneva: ISO, 1989.
[12] P. Coad, “Object-Oriented Patterns,” Comm. ACM, vol. 35, no. 9, pp. 152-159, Sept. 1992.
[13] D. Coleman et al., Object‐Oriented Development: The Fusion Method, Prentice‐Hall, Englewood Cliffs, N.J., 1994.
[14] R. Duke, G. Rose, and G. Smith, “Object-Z, A Specification Language Advocated for the Description of Standards,” Computer Standards and Interfaces, vol. 17, pp. 511-533, 1995.
[15] C. Fisher, “CSP-OZ - A Combination of CSP and Object-Z,” Proc. Second IFIP Int'l Conf. Formal Methods for Open Object-Based Distributed Systems, pp. 423-438, July 1997.
[16] E. Gamma et al., Design Patterns: Elements of Object-Oriented Software, Addison-Wesley, Reading, Mass., 1994.
[17] H.J. Genrich, “Predicate/Transition Nets,” Computer Science, vol. 254, Springer-Verlag, pp. 207-247, 1987.
[18] C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, Englewood Cliffs, N.J., 1985.
[19] Building Object-Oriented Frameworks, IBM, .
[20] C. B. Jones,Systematic Software Development Using VDM. Englewood Cliffs, NJ: Prentice-Hall, 1990, 2nd ed.
[21] K. Kim, “Object Structures for Real-Time Systems and Simulators,” IEEE Computer, vol 30, no. 8, pp. 62-70, Aug. 1997.
[22] L. Lamport and N. Lynch, “Distributed Computing: Models and Methods,” Handbook of Theoretical Computer Science—Formal Models and Semantics, J. van Leeuwen, ed. Elsevier: MIT Press, vol. B, 1990.
[23] K.C. Lano and S. Goldsack, “Integrated Formal and Object-Oriented Methods: The VDM++ Approach,” Methods Integration, Electronic Workshops in Computing, Y. Bryant and L. Semmens, eds. Springer-Verlag, 1996.
[24] D. Lea, “Concurrent Programming in JAVA—Design Principles and Patterns,” The JAVA Series. Addison Wesley, 1997.
[25] B. Meyer, “The Future of Object Technology,” IEEE Computer, vol. 31, no. 1, pp. 140-141, Jan. 1998.
[26] R. Milner, A Calculus of Communicating Systems. Berlin: Springer Verlag, vol. 92, 1980.
[27] R. Milner, J. Parrow, and D. Walker, “A Calculus of Mobile Processes,” Information and Computation, vol. 100, pp. 1-77, 1992.
[28] C. Nelson, “A Forum for Fitting the Task,” IEEE Computer, vol. 27, no. 3, pp. 104-109, Mar. 1994.
[29] W. Reisig, “Petri Nets—An Introduction,” EATCS Monographs on Theoretical Computer Science. Springer-Verlag, vol. 4, 1985.
[30] G. Smith, “A Semantic Integration of Object-Z and CSP for the Specification of Concurrent Systems,” Proc. Formal Methods Europe (FME '97), Sept. 1997.
[31] G. Smith and J. Derrick, “Refinement and Verification of Concurrent Systems Specified in Object-Z and CSP for the Specification of Concurrent Systems,” Proc. First IEEE Int'l Conf. Formal Engineering Methods (ICFEM '97), pp. 293-302, 1997.
[32] J. M. Spivey,The Z Notation: A Reference Manual. Englewood Cliffs, NJ: Prentice-Hall, 1989.
[33] L. Sterling and E. Shapiro, “The Art of Prolog—Advanced Programming Techniques,” MIT Press Series in Logic Programming, 1986.
[34] Using Formal Description Techniques: An Introduction to Estelle, Lotos, and SDL, K.J. Turner, ed., John Wiley&Sons, 1993.
[35] P.H.J. van Eijk, C.A. Vissers, and M. Diaz, The Formal Description Technique LOTOS—Results of the ESPRIT/SEDOS Project. North-Holland, 1989.
[36] C.A. Vissers, G. Scollo, and M. Van Sinderen, “Architecture and Specification Style in Formal Descriptions of Distributed Systems,” Proc. IFIP WG6.1 Int'l Conf. Protocol Specification, Testing, and Verification VIII, pp. 189-204, 1988.

Index Terms:
Constraint-oriented specification, LOTOS, Co-Notation, constraint-object-oriented design, multi-object operation, method decomposition, JAVA programming style.
Tommaso Bolognesi, "Toward Constraint-Object-Oriented Development," IEEE Transactions on Software Engineering, vol. 26, no. 7, pp. 594-616, July 2000, doi:10.1109/32.859530
Usage of this product signifies your acceptance of the Terms of Use.