Software intensive systems are becoming extremely complex

With the emergence of new techniques and architectures, the complexity of software intensive systems continue to grow. To maximally profit from the recent advancements of technologies, however, software intensive systems must be designed, implemented, verified and maintained in a cost-effective way. Complexity is the major obstacle in accomplishing these objectives. As such, many “good ideas” may never be realized in practice, unless complexity is managed.

Effective modularity and composition

Effective decomposition of systems into modules and/or composition of modules into systems are two major ways of reducing complexity. However, variations of the concepts in the application domains and increased dynamicity in runtime environments make traditional module-based abstractions less suitable. New ways of defining modules and composition mechanisms are necessary. Moreover, effective decomposition and composition require expressive quality models and efficient trade-off analysis techniques. To this aim, it is crucial to understand the modularity and composition needs of the emerging techniques and architectures.

Much has been accomplished in modularization and composition

During the last two decades, extensive research work has been carried out to modularize and compose complex systems. For example, object-oriented programming, component-oriented programming, reflective-programming, aspect-oriented programming, context-oriented programming, model-driven engineering, feature-oriented programming, event-based programming and their variations have been introduced. Furthermore, incremental verification and testing techniques have been developed to assure correctly functioning systems. Obviously, to be able to address the problems of the future, we need to understand very well the techniques introduced in the past, in particular in terms of their potential benefits and their limitations.

This symposium aims to address the challenges of optimal decomposition and effective composition for emergent software techniques and architectures from two perspectives: (1) Assessment of the state-of-the-art techniques and methods, and (2) modularization and composition challenges in designing today’s and tomorrow’s software intensive systems.