The area of software technology is very dynamic

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.

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.

About Modularity

Call for Proposals

Modularity 2017 will be a single day, invited presentations only symposium, collocated with <Programming> 2017.

To support an inclusive invited presentation symposium program, the organizers invite researchers, practitioners, and students to submit proposals for presentations. A successful presentation proposal should describe the topic, the essential points being made, the ideal audience, and why the proposed presenter is the most appropriate choice. A presentation need not present new work, nor must it conform to novel content requirements. Presentations aimed at topics strongly related to but not directly in the heart of modularity concerns are welcome, as are vision and experience presentations.

If you want to submit a research paper about modularity, please consider submitting it to <Programming> 2017. <Programming> explicitly welcomes modularity papers on all topics of interest to Modularity. Accepted and presented papers will be published in the Journal on the Art, Science, and Engineering of Programming.

For past editions of Modularity, please visit http://www.modularity.info/conference/.