Design and implementation are two major aspects of the software development and the deviation between them needs to be minimized to the best extent possible. Of the many difficulties in detecting the deviation is the absence of common notation to compare the implementation artefact (code) against the design artefact. In this paper we present an approach to bridge the gap by providing a methodology to construct call trees from both the artefacts and thus enabling comparison of both using a common notation. Design is usually captured as scenarios and hence we use sequence diagrams for its specification. An implementation is accurately understood when it is executed and hence we use execution events to capture it. Building on these two artefacts, we provide a systematic procedure to construct call trees that can be compared against each other for deviation. This paper is an outcome of our ongoing work towards automatic detection of deviations and our experiments in designing and implementing several scenarios confirm the utility of this methodology towards this goal. While we demonstrate the methodology in the UML and Java setting, the technique is generic and can be applied in the context of any language.
K. Aparna and Swaminathan J., “Building a common notation for enabling comparison of design and execution”, in 2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI), Udupi, India, 2017.