Applications in Software Engineering

Examples for systems that are most commonly studied from a complex systems perspective can predominantly been found in the context of biological and social systems. However, it is important to realise that also man-made, engineered systems fall into this category. A particular class of complex engineered systems whose importance for society has increased tremendously over the last few years are software systems. Typical modern software systems consist of hundreds or even thousands of interdependent modules or subsystems, which are working together in complex ways and which mutually depend on each others' functionality. A proper understanding of the structure of such software systems, as well as of the evolution of these structures as their development progresses is fundamental for the design and management of secure, reliable and maintainable software. Naturally, such systems can be studied from a complex networks perspective, where functions, classes, or packages are represented by nodes and the interdependencies between them are modeled as links.-

 

The application of network-analytic techniques allows us to study the modularity of software systems from a network perspective. Our most recent research in this area has shown not only that we can use such a network perspective to quantify the evolution of modularity in software systems. It has also proven to be useful for the development of remodularisation algorithms, which can be used to support developers in developing software structures that are easy to understand and thus to maintain. In addition to developing quantitative measures and algorithms for the remodularisation of software, we also use agent-based modeling techniques to study the temporal evolution of software systems. This interdisciplinary approach not only helps us to better understand why software systems evolve the way they do, it also allows us to identify which growth processes are sustainable in the sense that they lead to software structure which can easily be maintained by engineers.

Notably our research in this area is truly interdisciplinary, being published both in interdisciplinary journals like Europhysics Letters as well as at premium software engineering venues like the International Conference on Modularity.

Selected Publications

Automated Software Remodularization Based on Move Refactoring

[2014]
Zanetti, Marcelo Serrano; Tessone, Claudio Juan; Scholtes, Ingo; Schweitzer, Frank

In Proceedings of the 13th International Conference on Modularity 2014

more»

The Link between Dependency and Cochange: Empirical Evidence

[2012]
Geipel, Markus Michael; Schweitzer, Frank

IEEE Transactions on Software Engineering, pages: 1432-1444, volume: 38, number: 6

more»

A network perspective on software modularity

[2012]
Zanetti, Marcelo Serrano; Schweitzer, Frank

Architecture of Computing Systems (ARCS) Workshops 2012

more»

Sustainable growth in complex networks

[2011]
Tessone, Claudio Juan; Geipel, Markus Michael; Schweitzer, Frank

Europhysics Letters, pages: 58005, volume: 96, number: 5

more»

Software change dynamics: Evidence from 35 Java projects

[2009]
Geipel, Markus Michael; Schweitzer, Frank

Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering

more»

A complementary view on the growth of directory trees

[2009]
Geipel, Markus Michael; Tessone, Claudio Juan; Schweitzer, Frank

The European Physical Journal B, pages: 641-648, volume: 71, number: 4

more»

A Complex Networks Perspective On Collaborative Software Engineering

[2015]
Cataldo, Marcelo; Scholtes, Ingo; Valetto, Giuseppe

ACS - Advances in Complex Systems, pages: 1430001, volume: 17, number: 07n08

more»