Skip to main content
MSU CSE Colloquium Series 2015-2016: Jens Dietrich On the Modularisation of Java Programs
(or: From Big Balls of Mud to Blocks of Lego)

Jens Dietrich
Associate Professor
Massey University, New Zealand

Time: Monday, November 2, 2015, 10:30am
Location: EB 3105

The vision of component-based software engineering is often described using the Lego block metaphor – complex applications are built by stacking together simple, re-usable and inexpensive parts. It turns out that it is not that easy – after 40+ years (following Doug McIlroy's talk in 69), component-based software engineering is only slowly being adapted. The latest trend is a new generation of dynamic component models supporting a service-oriented programming model. In these systems, components are not assembled manually by software engineers but automatically by component containers based on component metadata. The initial success of these technologies is impressive, and some of the largest and most complex systems such as WebSphere, WebLogic (OSGi) and the Java Development Kit (Project Jigsaw) are now using these new technologies. In this talk, I will discuss whether it is possible to support the modularisation of monolithic legacy systems using OSGi or similar as target platforms. I will present an approach that is based on the idea that the presence of certain antipatterns presents barriers to modularity. I will report the results of an empirical study that shows that (surprisingly) these antipatterns are very common in real world programs. Detecting these antipattern instances is difficult due to the complexity of the underlying graph problem. I will discuss how this problem can be tackled in practice. This leads to a novel graph scoring algorithm that computes critical dependencies that cause these antipatterns. It turns out that by removing a very small set of those dependencies, the overall architecture of systems can be dramatically improved. I will briefly talk about the work done by Ali Shah, one of my PhD students, on automating the execution of these refactorings. At the end I will talk about some of my current work that is somehow related to the topics presented here, including work on novel fast points-to algorithms (OOPSLA-15 paper), and work on binary compatibility and component evolution.

This research has led to the web-based Massey Architecture Explorer ( - a popular design recovery and analysis tool.

The material of this talk is extracted from work published at CBSE, QOSA, ICSM and CSMR/SANER.

Jens is an Associate Professor in the School of Engineering and Advanced Technology (SEAT) at Massey University in New Zealand. He is also the major leader of the Software Engineering program at Massey. He has a Master in Mathematics and a PhD in Computer Science from the University of Leipzig. After completing his PhD degree, he worked for a couple of years in industry as consultant in Germany, Namibia, Switzerland and the UK, and returned in 2003 to academia. His research interests are in the areas of software componentry, evolution and static analysis. Jens studied English at MSU in summer 94!

Dr. Laurie Dillon and Dr. Betty Cheng