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
- perspectives of modeling
- the identification of objects
- contracts
- design guidelines
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.