Frank Buschmann, Siemens Corporate Technology |
Tutorial: Component Construction with Patterns Component-based software is a promising technology for increasing developer productivity and software quality. Unfortunately, many components do not meet their users' expectations, even when they are based on popular component middleware, such as EJB, COM+, or the CORBA Component Model (CCM). The reason is simple: middleware component models only provide the infrastructure that forms the basic building blocks for large-scale systems. In particular, the internal design of components, particularly the aspects related to component evolution, component configuration, distribution, concurrency, and scalability, are not addressed by conventional component models. Handling these issues effectively remains the responsibility of component developers. In addition to providing the ``right'' functional abstractions and services, the ``correct'' resolution of these issues is critical for a component's success. With help of a real-world telecommunication network managament case study, this tutorial demonstrates how patterns help researchers and developers design and implement components that adapt readily to evolution and change, employ distribution and concurrency effectively, and which scale up gracefully as systems grow in scope and complexity. The patterns explained and used in this tutorial include Wrapper Facade, Strategy, Visitor, Interceptor, Abstract Factory, Service Configurator, Scoped Locking, Strategized Locking, Thread-Safe Interface, Double-Checked Locking, Active Object, Publisher-Subscriber, and Half Object plus Protocol, which are available in the books Pattern-Oriented Software Architecture, volumes 1 and 2 (John Wiley & Sons), Design Patterns: Elements of Reusable Software Architecture (Addison-Wesley) and in the various volumes of the Pattern Languages of Programming Design series (Addison-Wesley). We will generalize from the specifics of the case study in the tutorial to derive guidelines for applying patterns and discuss how patterns can help in building high-quality software components with predictable performance properties and qualities. The tutorial concludes with a summary of our experiences from several distributed object computing system projects in which we applied patterns, i.e., what worked, what could be improved, and how to leverage this experience in your projects. Who Should Attend? Researchers and developers with solid knowledge of OO design and programming, and basic knowledge of patterns and UML notation, who are interested in seeing how patterns and framework components can be applied to develop object-oriented and component-oriented communication software systems. Monday 11:00 - 12:00 (Part I) Tuesday 15:30 - 17:15 (Part II) Biography: Frank Buschmann is Software Engineer at Siemens Corporate Technology in Munich, Germany. His research interests include object technology, software architecture, application frameworks, and patterns. He has published widely in all these areas, most visibly as a co-author of the two volumes of the Pattern-Oriented Software Architecture book series: "A System of Patterns" and "Patters for Concurrent and Networked Objects". In his development work, Frank has lead the design and implementation of several large-scale industrial software projects, including business information, industrial automation, and telecommunication systems. |