This chapter presented an overview
of the issues involved in the design
of object-oriented software.
The approach taken may be characterized
as eclectic, in that various methods are referred to
when illustrating design issues
without commitment to a particular method
or approach.
}
1
- software development process -- components, aspects
- modeling reality -- perspectives of modeling
- design model -- as a justification
- dimensions of modeling -- object, dynamic, functional
slide: Section 3.1: The process of design
In section 1,
we discussed the components or aspects
of the software development process
and characterized the perspectives of
modeling associated with the various
phases of development.
We also looked at the various modeling
dimensions distinguished in the OMT method.
2
- object-oriented design -- decomposition into objects
- object model -- objects suffer and require
- heuristics -- balance between nouns and verbs
- evaluation -- eliminating spurious classes
- class design -- class, responsibilities and collaborations
slide: Section 3.2: Identifying objects
In section 2,
we then discussed the issues that arise in
defining an object model.
We looked at heuristics for identifying objects,
based on a linguistic analysis of the requirements document,
and discussed the evaluation criteria
that may be used for eliminating
spurious classes.
Also, the CRC method,
which approaches class design by delineating responsibilities and collaborations,
was illustrated with some examples.
3
- types -- as an organizing principle
- contracts -- obligations and benefits
- subtyping -- the substitutability requirement
- partial types -- designed to have subtypes
slide: Section 3.3: Contracts
The object model resulting from
an initial exploration may be formalized
by employing types.
In section 3, we discussed the notion of contracts
as a means to characterize the behavioral
aspects of types,
specifying the restrictions and obligations
of an object and its clients.
We also looked at the requirements
for subtype refinement
and discussed the notion of partial types.
4
- modeling -- structural versus behavioral
- specification -- state and operations
- abstract systems -- as a design methodology
slide: Section 3.4: From specification to design
In section 4,
we discussed the distinction between
structural and behavioral modeling.
Also we looked at a model-based specification
formalism and
and discussed a design methodology
employing abstract systems and events
to realize the specification of user actions.