Tue 4 Apr 2017 09:45 - 10:30 at D0.08 - Session I

Software is becoming increasingly large, complex and critical to our society. Modularity is a key principle to manage its growing size and complexity. The purpose of this talk is to provide some insights into todays and upcoming challenges and possible solutions for software modularity at the programming language level. To achieve this, we will look at the patterns and lessons learned from the past, in particular 25+ years of research on modularity and software composition at the University of Twente. We will also address current and upcoming modularity challenges in the state of the practice of the software industry.

To illustrate the issues, we will look at examples from large scale embedded systems, and energy management in particular: such systems typically bring high technical complexity, caused by a complex problem domain and strong technical requirements. This requires the composition of many different concerns, with substantial long-term benefits for modular software.

Looking back in time, we will discuss the ‘inheritance anomalies’ by Matsuoka et.al., which provided a first structured look into the challenges of composing functional and synchronisation concerns in objects. This led to a generalized model for describing issues in the composition and reuse of multiple concerns. Over time, new composition challenges appeared, such as crosscutting concerns over multiple objects and composing the behavior of message interactions. We will particularly focus on examples of software engineering challenges that are posed by typical (embedded) optimization problems, such as energy conservation policies.

Finally, we will look into a number of modularization challenges, mostly from the perspective of the state-of-the practice in large-scale industrial software development: what innovations have been adopted and have made a significant change, what trends have impact on modularization issues, and what is needed to make sure better, more modular software is actually created in practice?

Bio

Lodewijk Bergmans is a consultant at the Software Improvement Group, where he helps clients in understanding and addressing their software problems regarding quality, architecture and best practices, taking the business context, risks and costs into account. Lodewijk has over 25 years of experience in the field of object-oriented and aspect-oriented software development. He has worked in industry as an architect, coach and trainer, and as a researcher/assistant professor at the University of Twente. He has published well over 50 refereed articles in international books, journals, conferences and workshops. He holds M.Sc. and Ph.D. degrees in Computer Science, both from the University of Twente.