Summary

This chapter has dealt with the implications an object-oriented approach has for practical application development.

Application integration

1


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++.

Library design

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++.

Methods and tools

3

  • methods -- structural -> object-oriented
  • tools -- analysis, design, implementation
  • comparative study -- Fusion
  • program development -- environments for C++
  • object database systems -- with C++ interface

Libraries for C++

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.

Questions

  1. Discuss the problems involved in developing large applications. What solutions can you think of?
  2. 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?
  3. Discuss the design principles underlying the ODMG standardization efforts. How is the ODMG standard related to the OMG standard?
  4. Discuss the role of events in analysis, design and implementation. How would you characterize the relation between objects and events?
  5. Discuss the problems involved in library design. How would you solve the problem of maintaining consistency between different releases?
  6. What are your preferences with regard to naming conventions for object methods? Discuss the pros and cons of your approach.
  7. What tools can you think of to support reuse in practice?
  8. Give an overview of the methods available for object-oriented development. Indicate what part of the software lifecycle they cover.
  9. Describe the Fusion method. What do you consider as its most characteristic feature?
  10. How would you compare the Fusion method with the following methods: Objectory, OMT, Booch OOD, CRC? Explain.
  11. What criteria can you think of for evaluating software libraries?
  12. 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.