Abstract:
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
(xplrarc.massey.ac.nz) - a popular design recovery and analysis tool.
The material of this talk is extracted from work published at CBSE, QOSA, ICSM
and CSMR/SANER.
Biography:
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!
Host:
Dr. Laurie Dillon and Dr. Betty Cheng
|