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
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.
Office: +44 (0) 1908 6 55562