Extensive experience with OO modeling, design and programming is required, common design patterns (Gamma et.al.) should have no secrets. Some experience with AOSD is useful, but not necessary. Abstract The object-oriented paradigm has been successful because of its good modularity characteristics, which supports the separation of concerns from analysis to implementation phases. Composability problems may be experienced when constructing new objects from existing ones, for example when objects need to evolve due to new or changing requirements. This experience has triggered researchers in the past years to come up with enhancements of the OO model in an attempt to solve the composability problems. The most well-known examples in this area are: AOP/AspectJ, Subject-Oriented Programming & HyperJ, Adaptive Programming and Composition Filters. Especially, the so-called non-functional properties of software, such as access-control, history sensitivity, synchronization and real-time behavior, make it difficult to adapt and reuse software components. This tutorial first presents an illustrative example, which evolves due to the changing requirements. Various versions of this example have been implemented in a number of languages such as C++, Java and CORBA. The tutorial will clearly illustrate the limitations of these languages and design patterns in coping with the changing requirements. The origin of the problems will be analyzed in detail. As a solution to the obstacles various approaches will be discussed. The tutorial will further focus on the composition filters approach and will illustrate its advantages, limitations and practical applicability in real projects. Biographies Lodewijk Bergmans and Mehmet Aksit have both been working on software composition for over a decade. Their work has included the analysis of inheritance anomaly for synchronization and real-time specifications (composability problems) and the composition filters approach to solve such issues. They have been involved in the organization of most workshops in this area. Both are experienced teachers who have together given over 100 professional (open/international/in-company) courses. Mehmet Aksit has given several tutorials during ECOOP and OOPSLA in the past.
|