Purpose: Between Types and Code
The quality of software architectures is highly related to the easiness of evolution and maintenance of the system. Meyer says that ‘Those (quality factors) for which current software is most badly in need of better methods, and which the object-oriented method directly addresses, are the safety-related factors correctness and robustness, together known as reliability, and the factors requiring more decentralised software architectures: reusability and extendibility, together known as modularity’ . Nevertheless, it still does not exist a set of precise rules to determine the quality of an object oriented design, but there are some constructions that are known to have good characteristics. Polymorphic hierarchies, described by Woolf in  show a number of these characteristics, ‘a polymorphic hierarchy encapsulates code that is highly reusable, flexible, extensible and just plain good OO’. A rigorous definition of these constructions is useful to identify them in order to assess the quality of a system.
KeywordsSoftware Architecture Maintenance Phase Proof System Concurrent System Common Behaviour
- 1.M. Abadi and L. Cardelli, A Theory of Objects, Monographs in Computer Science, Springer, 1996.Google Scholar
- 2.V. Argañaraz, M.J. Presso and N. Romero, A formal implementation of delegation using objects and messages, poster, 1998 ACM Student Research Poster Competition.Google Scholar
- 3.B. Meyer, Object Oriented Software Construction, Second Edition, Prentice Hall, 1997.Google Scholar
- 4.B. Woolf, Polymorphic Hierarchy, The Smalltalk Report, January 1997.Google Scholar