This paper proposes a methodology and instrumentation infrastructure toward the reverse engineering of UML (Unified Modeling Language) sequence diagrams from dynamic analysis. One motivation is, of course, to help people understand the behavior of systems with no (complete) documentation. However, such reverse-engineered dynamic models can also be used for quality assurance purposes. They can, for example, be compared with design sequence diagrams and the conformance of the implementation to the design can thus be verified. Furthermore, discrepancies can also suggest failures in meeting the specifications. Due to size constraints, this paper focuses on the distribution aspects of the methodology we propose. We formally define our approach using metamodels and consistency rules. The instrumentation is based on Aspect-Oriented Programming in order to alleviate the effort overhead usually associated with source code instrumentation. A case study is discussed to demonstrate the applicability of the approach on a concrete example.

, , , , , ,
IEEE Transactions on Software Engineering
Department of Systems and Computer Engineering

Briand, L.C. (Lionel C.), Labiche, Y, & Leduc, J. (Johanne). (2006). Toward the reverse engineering of UML sequence diagrams for distributed Java software. In IEEE Transactions on Software Engineering (Vol. 32, pp. 642–663). doi:10.1109/TSE.2006.96