topical media & game development
object-oriented programming
This chapter presented an overview
of the issues involved in the design and software engineering
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
- perspectives of modeling
- requirements engineering -- Fusion
- methods for analysis and design -- a comparative study
slide: Section 3.1: Development methods
In section 1,
we discussed perspectives of modeling and requirements
engineering.
We looked at the second-generation development method Fusion
and made a comparative study of analysis and design methods.
We then discussed the differences between
functional and object-oriented development approaches.
2
- {\em 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 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 the refinement of contractual obligations.
4
- contracts -- formal specification
- verification -- as a design methodology
- runtime consistency -- invariance
slide: Section 3.4: Towards a formal approach
Finally, in section 4, we reflected on the possible
contribution of formal methods to
the software engineering of
object-oriented systems,
and concluded that the notion of
contracts may play an invaluable role,
both as a design methodology and as
a means to establish the runtime
consistency of a system.
(C) Æliens
04/09/2009
You may not copy or print any of this material without explicit permission of the author or the publisher.
In case of other copyright issues, contact the author.