This paper discusses a step towards reverse engineering source code to produce UML sequence diagrams, with the aim to aid program comprehension and other activities (e.g., verification). Specifically, our objective being to obtain a lightweight instrumentation and therefore disturb the software behaviour as little as possible in order to eventually produce accurate sequence diagrams. To achieve this, we combine static and dynamic analyses of a Java software, reducing information we collect at runtime (lightweight instrumentation) and compensating for the reduced runtime information with information obtained statically from source code. Static and dynamic information are represented as models and UML diagram generation becomes a model transformation problem. Our validation against a previous, correct approach shows that we indeed reduce the execution overhead inherent to dynamic analysis, while still producing useful diagrams.

Additional Metadata
Keywords Dynamic analysis, Reverse-engineering, Scenario diagram, Sequence diagram, Static analysis
Persistent URL dx.doi.org/10.1109/ICSM.2013.24
Conference 29th IEEE International Conference on Software Maintenance, ICSM 2013
Citation
Labiche, Y, Kolbah, B. (Bojana), & Mehrfard, H. (Hossein). (2013). Combining static and dynamic analyses to reverse-engineer scenario diagrams. Presented at the 29th IEEE International Conference on Software Maintenance, ICSM 2013. doi:10.1109/ICSM.2013.24