Object-oriented design

In the previous chapter we looked at the mechanisms that are available to define (classes of) objects and their relations at an implementation level. In this chapter we will focus on the design of object oriented systems and the role of the design document.


Object-oriented design

3

Additional keywords and phrases: requirements, analysis, implementation, design as transition, CRC cards, responsibilities, heuristics, abstract data types, polymorphism, contracts, abstract type hierarchies, behavioral compositions, validation
slide: Object-oriented design

Design involves the identification of objects and the description of their attributes and relations at a (higher) conceptual level, since the product of design is (usually) not meant to be executed by a machine but to be inspected and criticized by a human reader. Before discussing actual design issues, concerning class design and guidelines for good design, we will briefly reflect on the process of design and the notion of modeling, which occupies a central role in the object-oriented approach. Also, we will explore the notion of contracts and their possible role in the development of type hierarchies and behavioral compositions.