SOSYA - Systems of Systems Analysis
So far, the analysis of software has focused on investigating software projects by means of mining software archives, refactoring or reengineering, or by visualizing contexts of interest. Still, it is an investigation of single systems, yet many of them, but in isolation. Current state-of-the-art technologies do not allow us to reason across the boundaries of individual software systems and get insights about longitudinal evolu- tionary effects that take place in many of them and how to deal with these effects. The complexity is far beyond what current technologies can cope with, both in terms of scale and analyses. Given today's plentitude of software systems, we need to address the complexity of what is called software ecosystems or systems of systems. Such systems of systems and the associated knowledge are the most valuable asset of their owners: they typically form the very basis for the success of companies, organizations, or communities. They have become a reality of the current IT landscape, where companies and open source communities manage in parallel dozens or hundreds of projects belonging to the same product family or IT portfolio. The challenges in this context are not only an exploding amount of information, but also completely novel types of data not taken into account so far: systems have multi-dimensional dependency relationships between them. Indeed, managing the co-evolution of systems, application programming interfaces (APIs), services, and libraries is emerging as one of the next grand challenges of software engineering. We argue that there is a need for novel approaches to analyze systems of systems and to tackle the challenges that they pose. The goal of this project SoSYA is to build on our previous work on distributed collaborative software analysis in the context of the predecessor project DiCoSA, and to devise theories, models, and prototypes for "systems of systems analysis." In particular, we will address theories and models for systems of systems, systems of systems analysis algorithms and techniques, and methods for tangible rendering of systems of systems.