This chapter has dealt with the implications
an object-oriented approach has
for practical application development.
1
- integration -- interface standards
- object services -- object request broker
- persistent objects -- design principles
- events -- actions involving objects
slide: Section 11.1: Application development
In section 1,
the Microsoft object linking and embedding
facility and
the OMG proposal
for the integration of disparate
components, which involves
an interface description language (IDL),
general object services and
an object request broker (ORB), were discussed.
We also looked at the ODMG standard for
persistent objects, which extends the
OMG proposal with object storage facilities.
Further, we discussed the duality between
objects and events, which plays a role
in analysis, design and implementation.
In section 2,
we looked at the issues that arise in the
design of reusable software libraries,
and we discussed the conventions and
support tools that were developed for the Eiffel
libraries.
We also looked at the realization of
template classes for the abstract data structures bag and set
in C++.
2
- reuse -- library design
- conventions -- naming, taxonomy
- indexing -- archival and querying
- template classes -- bags and sets
}
In section 3,
when considering methods and tools
for object-oriented application development,
we discussed the heritage from structured
approaches and looked at the Fusion method as an example of a strongly
systematic approach to the process of development.
The Fusion method has been compared with a number of other methods,
including Objectory, OMT, Booch OOD
and CRC.
Further, we looked at some CASE tools
and programming environments,
as well as some of the object database
systems for C++.
3
- methods -- structural object-oriented
- tools --
analysis, design, implementation
- comparative study -- Fusion
- program development --
environments for C++
- object database systems --
with C++ interface
4
- criteria for libraries --
user specific, domain, features
- requirements --
data structures, mathematics, simulation, GUI
We concluded, in section 4, with an overview of the
libraries for C++.
In particular, we looked at the criteria
guiding the choice for a particular
library,
including user-specific criteria,
domain-specific criteria and features
concerning documentation and support.
- Discuss the problems involved in developing
large applications.
What solutions can you think of?
- Discuss the standardization efforts
initiated by the OMG.
What are they aimed at?
What solutions are proposed?
What problems are involved in realizing
these aims?
- Discuss the design principles underlying the ODMG
standardization efforts.
How is the ODMG standard related to the OMG standard?
- Discuss the role of events in analysis,
design and implementation.
How would you characterize the relation
between objects and events?
- Discuss the problems involved
in library design.
How would you solve the problem
of maintaining consistency between
different releases?
- What are your preferences with regard
to naming conventions for object methods?
Discuss the pros and cons of your approach.
- What tools can you think of
to support reuse in practice?
- Give an overview of the methods available for object-oriented
development. Indicate what part of the software lifecycle
they cover.
- Describe the Fusion method.
What do you consider as its most characteristic feature?
- How would you compare the Fusion method with the
following methods: Objectory, OMT, Booch OOD, CRC?
Explain.
- What criteria can you think of
for evaluating software libraries?
- What do you consider to be the minimal
functionality requirements
for a library of data structures?
And for mathematics?
Discuss also what classes you expect
to find in a GUI library.
Further reading
As further reading I recommend
[Pinson90] and [Harmon93], describing object oriented
applications.
When you are looking for a practical method,
I recommend the study of [Fusion], which describes
Fusion.
You may also consult [OMG]
and [Cattell94]
and, naturally, the conference
proceedings of OOPSLA, ECOOP and TOOLS.
For an overview of libraries for C++
consult [Locke].
See also appendix [internet].