Many new techniques and architectures have been introduced in the past decade: self-aware systems (adaptive, learning, optimizing, etc.), cyber-physical systems, event-based systems, emergent systems, hybrid-control systems, systems of systems, eco-systems, big-data management systems, cloud architectures, software-defined networks, distributed sensor systems, ubiquitous systems, secure and safe systems, fault-tolerant systems, high-performance systems are some examples.
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 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.
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.
Conference DayTue 4 AprDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
09:00 - 10:30
|Modular Composition of Reactive Applications (from aspects to events and back)|
Mira MeziniTU Darmstadt
|Some History and Future Perspectives on the Modularity Challenges for Large and Complex Software Systems|
Lodewijk BergmansSoftware Improvement GroupFile Attached
11:00 - 12:00
|Advanced Modularity for the Cloud |
Mario SüdholtÉcole des Mines de Nantes, FranceFile Attached
|Modularity for System-of-Systems|
Bedir TekinerdoganWageningen University, The NetherlandsFile Attached
13:30 - 15:00
|SoC Spaces - Indexes for Composition|
Uwe AßmannTU Dresden, GermanyFile Attached
|Formal Verification for Cross-cutting Modularity|
Shmuel KatzComputer Science Dept., The TechnionFile Attached
15:30 - 17:00
|Modularity from the Trenches|
Stéphane Ducasse INRIA LilleFile Attached
|Concern-Oriented Reuse: Combine MDE, Aspect-Orientation and Software Product Lines to Create Generic, Crosscutting yet Modular Units of Reuse|
Jörg KienzleMcGill University, Canada