Object-oriented design methodologies for software systems
In the last few years, demand for object-oriented software systems has increased dramatically, and it is widely accepted that present software engineering methodologies are unable to cope with the needs of that demand. The object-oriented paradigm has promised to revolutionise software development, and it has been seen as an attempt to extend and apply the techniques of encapsulation and inheritance, not only in the implementation phase but also during the design and system analysis phases of the software development process. As a result, several methodologies have recently arisen to support software development based on an object-oriented approach. This thesis is concerned with object-oriented design methodologies for software systems and addresses four points. First, a classification scheme for object-oriented development methodologies is proposed and their problems and limitations are pointed out. Second, a general methodology for objectoriented design (called MOOD) is presented. MOOD is unrelated to any programming language, yet is capable of being used to design a variety of object-oriented software systems. In particular, MOOD allows the creation of a design mainly in terms of classes, objects and inheritance, and the representation of a design graphically by a set of class hierarchy diagrams, composition diagrams, object diagrams and operation diagrams. Third, the thesis puts software development into a new perspective, by proposing an alternative software life cycle model which links system analysis, domain analysis, design and implementation to form a coherent object-oriented software development life cycle model that takes reusability into account during the design phase. Lastly, a prototype of an environment which supports MOOD has been developed and is described.