Skip to main content
Log in

Design by framework completion

  • Published:
Automated Software Engineering Aims and scope Submit manuscript

Abstract

An object-oriented framework in essence defines an architecture for a family of applications or subsystems in a given domain. Every application in the family obeys these architectural restrictions. Such frameworks are typically delivered as collections of inter-dependent abstract classes, together with their concrete subclasses. The abstract classes and their interdependencies implicitly realize the architecture. Developing a new application reusing classes of a framework requires a thorough understanding of the framework architecture.

We introduce an approach called “Design by Framework Completion”, in which an exemplar (an executable visual model for a minimal instantiation of the architecture) is used for documenting frameworks. We propose exploration of exemplars as a means for learning the architecture, following which new applications can be built by replacing selected pieces of the exemplar. For the piece to be replaced, the inheritance lattice around its class provides the space of alternatives, one of these classes may be suitably adapted (say, by sub-classing) to create the new replacement.

“Design by Framework Completion” proposes a paradigm shift when designing in presence of reusable components: It enables a much simpler “top-down” approach for creating applications, as opposed to the prevalent “search for components and assemble them bottom-up” strategy. We believe that this paradigm shift is essential because components can only be fitted together if they all obey the same architectural rules that govern the framework.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Institutional subscriptions

Similar content being viewed by others

References

  • De Pauw, W., Helm, R., Kimelman, D., and Vlissides, J. 1993. Visualizing the behavior of object-oriented systems. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA) 1993, ACM SIGPLAN Notices, 28(10):326–337.

  • Deutsch, L.P. 1989. Design reuse and frameworks in the smalltalk-80 system. T.J. Biggerstaff and A.J. Perlis (Eds.), In Software Reusability, ACM Press, pp. 57–72.

  • Fischer, G. 1987. Cognitive view of reuse and redesign. IEEE Software, pp. 60–72.

  • Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1994. Design patterns: Elements of reusable object-oriented software, Addison-Wesley.

  • Gangopadhyay, D. and Helm, A.R. 1989. A model driven approach for the reuse of classes from domain specific object-oriented class repositories. Research Report RC14510, IBM Research Division.

  • Gangopadhyay, D., Mitra, S., and Dhaliwal, S.S. 1993. ObjChart-builder: An environment for executing visual object models. In Proceedings of the Eleventh International Conference and Exhibition of TOOLS USA (Technology of Object-Oriented Languages and Systems).

  • Gangopadhyay, D. and Mitra, S. 1993. ObjChart: Tangible specification of reactive object behavior. In Proceedings of the European Conference on Object Oriented Programming (ECOOP'93), 701:432–457 of Lecture Notes in Computer Science.

  • Gangopadhyay, D. 1991. On tangible representation of compositions of software components. Position paper. In Proceedings of 14th Minnowbrook Workshop on Software Engineering.

  • Gangopadhyay, D. 1994. ObjChart User Guide, IBM Internal Report.

  • Garlan, D., Allen, R., and Ockerbloom, J. 1995. Architectural mismatch or why it's hard to build systems out of existing parts. In Proceedings of the International Conference in Software Engineering (ICSE-17).

  • Goldberg, A. and Robson, D. 1984. SMALLTALK-80: The Language and Its Implementation, Addison-Wesley, Chap. 17.

  • Helm, R., Holland, I.M., and Gangopadhyay, D. 1990. Contracts: Specifying behavioral compositions in object-oriented systems. In Proceedings of OOPSLA/ECOOP'90, ACM SIGPLAN Notices, 25(10):169–180.

  • Jacobson, I., Christerson, M., Jonsson, P., and Overgaard, G. 1992. Object-oriented software engineering: A use case driven approach, Addison-Wesley.

  • Maarek, Y.S. 1990. Indexing software components for reuse by using natural language documentation. In Proceedings of the Third Annual Workshop: Methods and Tools for Reuse.

  • Pietro-Diaz, R. and Freeman, P. 1987. Classifying software for reusability. IEEE Software.

  • Pree, W. 1994. Designing with Patterns, Addison-Wesley Publication.

  • Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, R, and Lorensen, W. 1991. Object-oriented modeling and design, Prentice-Hall.

  • Rollins, E.J. and Wing, J.M. 1991. Specifications as search keys for software libraries. In Proceedings of 8th International Conference Logic Programming.

  • Rosson, M.B. and Carroll, J.M. Active programming strategies in reuse. In Proceedings of the European Conference on Object Oriented Programming (ECOOP'93), 707:4–20 of Lecture Notes in Computer Science.

  • Soetarman, B. 1994. Personal Communication.

  • Schappert, A. 1994. Demo at OOPSLA.

  • Introduction to OS/2 System Object Model, IBM Publication No. S246-0108-00.

  • Commonpoint Application System: Documented Samples, Publication No. Z123-7461-0, 1995.

Download references

Author information

Authors and Affiliations

Authors

Rights and permissions

Reprints and permissions

About this article

Cite this article

Gangopadhyay, D., Mitra, S. Design by framework completion. Autom Software Eng 3, 219–237 (1996). https://doi.org/10.1007/BF00132567

Download citation

  • Issue Date:

  • DOI: https://doi.org/10.1007/BF00132567

Keywords

Navigation