Hismo is a meta-model for software evolution analysis and it embodies the following thesis:
To provide a generic meta-model for expressing software evolution analyses, we need to recognize the evolution as an explicit phenomenon and model it as a first class entity.
The essence of Hismo is given in the following UML diagram:
The basic idea is that given a representation of a Snapshot, we can add time information to it through a Version and put the Version in the context of a History.
The below picture shows a parallel between Hismo and the Evolution Matrix. History offers a temporal traversal of the data space, while Version traverses the data space wise:
Various analyses have been implemented based on Hismo. In his PhD, Tudor Girba shows how having History as a first class encapsulation of evolution allows us to express analyses in a more concise way.
Hismo is currently implemented in Moose, in the iPlasma platform from University of Timisoara, Romania, and it stayed at the basis of a research project carried out between University of Zurich and University of Lugano.
- Modeling Software Evolution by Treating History as a
First Class Entity. In Proceedings Workshop on Software Evolution Through
Transformation (SETra 2004), p. 75—86, Elsevier, Amsterdam, 2004. . DOI PDF →
- Visualizing and Characterizing the Evolution of
Class Hierarchies. In WOOR 2004 (5th ECOOP Workshop on Object-Oriented
Reengineering), 2004. . PDF →
- Yesterday's Weather: Guiding Early Reverse
Engineering Efforts by Summarizing the Evolution of
Changes. In Proceedings of 20th IEEE International Conference on
Software Maintenance (ICSM'04), p. 40—49, IEEE Computer Society, Los Alamitos CA, September 2004. . DOI PDF →
- Identifying Entities That Change Together. In Ninth IEEE Workshop on Empirical Studies of Software
Maintenance, 2004. . PDF →
- Using Meta-Model Transformation to Model Software
Evolution. In Proceedings of 2nd International Workshop on
Meta-Models and Schemas for Reverse Engineering
(ATEM 2004), p. 57—64, 2004. . DOI PDF →
- Modeling History to Understand Software Evolution. Ph.D. thesis, University of Bern, Bern, November 2005. . PDF →
- Modeling History to Analyze Software Evolution. In Journal of Software Maintenance: Research and
Practice (JSME) 18 p. 207—236, 2006. . PDF →