What happened to the architecture of Eclipse?

We propose to use a historical perspective on generic laws, principles, and guidelines, like Lehman's software evolution laws and Martin's design principles, in order to achieve a multi-faceted process and structural assessment of a system's architectural evolution. We present a simple structural model with associated historical metrics and visualizations that could form part of an architect's dashboard. We perform such an assessment for the Eclipse SDK, as a case study of a large, complex, and long-lived system for which sustained effective architectural evolution is paramount. The twofold aim of checking generic principles on a well-known system is, on the one hand, to see whether there are certain lessons that could be learned for best practice of architectural evolution, and on the other hand to get more insights about the applicability of such principles. We find that while the Eclipse SDK does follow several of the laws and principles, there are some deviations, and we discuss areas of architectural improvement and limitations of the assessment approach.

Graph-Centric Tools for Understanding the Evolution and Relationships of Software Structures

We present a suite of small tools, implemented as a pipeline of text file manipulating scripts, that, on the one hand, measure the evolution of any software structure that can be represented as a directed graph of software elements and relations and, on the other hand, visualise any three attributes of any set of software artefacts that can be related to the elements shown in the graph. We illustrate the applicability of the tool with our work on the evolution of the Eclipse architecture and the relation between bugs and components.
  • Spectral Graph Architecture Visualisation, username: guest, password: checkout
  • The 'Archaeology' of Transformations

    During a software project's lifetime, the software's artefacts and developers go through many transformations: components are added, removed and modified to fix bugs and add new features, people join and leave the project or change their responsibilities, etc. This tutorial looks at some of the challenges faced, techniques developed and findings obtained in reconstructing, measuring and visualising the historical transformations that happen during the evolution of software and developer teams.
  • Tutorial at GTTSE'07
  • Wermelinger, Michel and Yu, Yijun (2011). "Some issues in the 'archaeology' of software evolution". In: Fernandes, J. M.; Lämmel, R.; Visser, J. and Saraiva, J. eds. Generative and Transformational Techniques in Software Engineering III. Lecture Notes in Computer Science (6491). Springer, pp. 426-445.

  • Email: y.yu@open.ac.uk Office: +44 (0) 1908 6 55562