This tutorial lets you experience the evolution of an object-oriented design from an initial class to a full-blown real-world framework. It is structured as a sequence of evolutionary steps, each of which adds new required functionality to the design. At each step, we learn new techniques that let us cope with the increasing complexity of the design. In its first part, we discuss the effective use of classes and interfaces for modeling and code reuse, design by primitives and the narrow inheritance interface principle, and the use of method types and design by contract. In its second larger part, we discuss the use of design patterns and their composition in object-oriented design. We see how objects collaborate while playing roles and learn how to break up complex designs into patterns and UML collaborations. On this basis, we learn how to best extend object-oriented frameworks and how to be precise about requirements put upon use-clients. Finally, we discuss how to define the resulting framework as a component with well-defined boundaries.
Attendees learn new techniques for coping with the complexity of object-oriented frameworks. Each technique matches a specific level of complexity so that attendees learn to better choose techniques for their problems.
Dirk Riehle. "The Story of a Framwork" In OOPSLA 2000 Tutorial Notes, OOPSLA 2000. ACM Press, 2000.
Dirk Riehle is a software developer at Skyva International. Dirk holds a Ph.D. in computer science from ETH Zurich. He has given many presentations at research and commercial conferences and has lectured at University of Zurich. At OOPSLA, he may be best known for his technical paper presentations. His research and technical interests revolve around model-driven business systems, business modeling languages, and software architecture. He has published extensively on object-oriented design patterns, frameworks, and software architecture.
The tutorial handouts are available as a PDF file.