Specialization/Generalization in Object-Oriented Analysis: Strengthening and Multiple Partitioning

The driving force in object-oriented analysis to use the concept of specialization/generalization is polymorphism: the capability and need to reason about the union of the sets of objects of the specialization classes. Hereby features will be defined at the appropriate place. The fact that classes have common features is not a sufficient condition to generalize. The principle of strengthening specifications of features is an indispensable rule to manage class hierarchies. From the viewpoint of polymorphism, multiple specialization/generalization is only a logical extension of this modeling concept and not an optional or exotic one. Further, we discuss some guidelines to build sound class hierarchies, such as using (multiple) partitions.

[1]  Ivar Jacobson,et al.  The unified modeling language reference manual , 2010 .

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

[3]  Stefan Van Baelen,et al.  Constraints in Object-Oriented Analysis and Design , 1994, TOOLS.

[4]  Ole Lehrmann Madsen,et al.  Object-oriented programming in the BETA programming language , 1993 .

[5]  Barbara Liskov,et al.  Keynote address - data abstraction and hierarchy , 1988, OOPSLA '87.

[6]  Timothy A. Budd An introduction to object-oriented programming (2nd ed.) , 1997 .

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

[8]  John Mylopoulos,et al.  On formal requirements modeling languages: RML revisited , 1994, Proceedings of 16th International Conference on Software Engineering.

[9]  Pieter Bekaert,et al.  Non-determinism in conceptual models , 2001, OOPSLA 2001.

[10]  Pieter Bekaert,et al.  Using non-determinism for the separate specification of structure and behaviour , 2002 .

[11]  Friedrich Steimann,et al.  On the representation of roles in object-oriented and conceptual modelling , 2000, Data Knowl. Eng..

[12]  J. L. Contreras,et al.  "Technology of Object-Oriented Languages and Systems , 2001 .

[13]  Timothy A. Budd,et al.  An introduction to object-oriented programming , 1991 .

[14]  Bertrand Meyer,et al.  Object-Oriented Software Construction, 2nd Edition , 1997 .

[15]  Stefan Van Baelen,et al.  EROOS: an entity-relationship based object-oriented specification method , 1992 .

[16]  Alexander Borgida,et al.  Features Of Languages for the Development of Information Systems at the conceptual Level , 1985, IEEE Software.

[17]  Bertrand Meyer The many faces of inheritance: a taxonomy of taxonomy , 1996, Computer.