Waikato University crest

Department of
Computer Science
Tari Rorohiko

Computing and Mathematical Sciences

Upcoming Seminars

 

Dynamic component composition - vision vs reality

Jens Dietrich
School of Engineering and Advanced Technology (SEAT), Massey University, Palmerston North, NZ
Tuesday 22 May 2012
11:00 am
G.1.15
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 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. This includes OSGi and its extensions. In these systems, components are not assembled manually by software engineers at design time but automatically by component containers at runtime. Automated assembly is based on rich component meta data and constraint resolution. The initial success of these technology is impressive, and some of the largest and most complex systems such as IBM WebSphere, Oracle WebLogic and the Java Development Kit (JDK) either have been or are currently being refactored to take advantage of these new technologies.

We are interested in two questions related to these new generation component models: firstly, can existing composition techniques ensure the correctness of assemblies? Secondly, is it possible to automate the modularisation of monolithic legacy systems? We present several studies investigating these two questions.

In the first experiment, we have investigated component contracts in the (OSGi-based) Eclipse ecosystem. It turns out that verification fails for a significant number of contracts, violating some of the Eclipse (social) community rules. In the second experiment, we have analysed a large set of real world programs for occurrences of certain antipatterns that present barriers to modularisation and have developed a novel algorithm based on edge scoring to detect dependencies in systems that compromise modularity. The preliminary results are promising: the algorithm we have developed can detect a small number of basic refactorings that can remove the majority of antipattern instances, confirming that the Pareto principle (aka "80-20 rule") applies here. This result is obtained by running an experiment on the Qualitas Corpus data set.

We will also briefly discuss some tools and libraries we have developed for this purpose, including the Massey Architectural Explorer.

Events Index