Research OSCAR Instztut fur Switzerland, Directions in Software Composition NIERSTRASZ Informatlk, ( oscar, AND THEO of Bern, unzbe. ch). DIRK MEIJLER CH-3012 Bern, Uruverslty meqler@zam. What is Software Composition? is the construction Software composition of software applications from components that implement abstractions pertaining to a particular problem domain. Raising the level of abstraction is a time-honored way of dealing with complexity, but the real benefit of composable software systems lies in their increased flexibility: a system built from components should be easy to recompose to address new requirements [Nierstrasz and Dami 1995]. A certain amount of success has been achieved in some well-understood application domains, as witnessed by the popularity of user-interface toolkits, fourthgeneration languages, and application generators. But how can we generalize this? are powerful, not because they provide libraries of reusable object classes, but because they define the responsibilities, the collaborations, and the interfaces of the fundamental objects of a system; that is, because they define generic software architectures. Generalizing from successful approaches to software composition, we see that the notion of a framework has a much broader interpretation. We can then understand component-oriented development in terms of the following three ,1 Levels: m Framework level.
/lp/association-for-computing-machinery/research-directions-in-software-composition-RT0tJIWWQt