Font Size: a A A

Iterative Model Maintenance Based On Source Code Changes

Posted on:2014-05-14Degree:MasterType:Thesis
Country:ChinaCandidate:Y K LiFull Text:PDF
GTID:2308330482950338Subject:Computer software and theory
Abstract/Summary:PDF Full Text Request
As the major viewpoint of model driven engineering puts it, models are im-portant artifacts during software development process. Models came into being before the source code, and programmers would implement a whole software sys-tem according to the models. However, afterwards the source code as a complicate and evolving system might change ahead of its corresponding models. As a conse-quence, the related models are gradually becoming obsolete, i.e., inconsistent with the new source code. It is well-known that as software system evolves, the source code tends to deviate from its design model so that maintaining their consistence is challenging. But the obsolete models should be updated and synchronized to the source code since they would play an important role in many scenarios. One of the problems that the commercial organizations who’ve adopted model driven engineering approach have to dealt with is to update the obsolete models, since they would play an important role in many scenarios.Our objective is to detect code changes that influence designed program behaviour which are referred as design level changes or model related changes and update the behavioural model timely and automatically to maintain consistence. To get an updated model which is conform with the new source code, all we need is to detect the related changes between old and new code, and then propagate them back to the old model. In this paper, we attempt to tackle this practical problem which arose in real world software industry by offering a framework to detect the behavioral changes and update the obsolete models automatically.We first describe the real world situation and the context, since the source code is generally written according to the guidance of design models. So it is possible to dig out the traceability between the source code and models. We adopted the static semantic analysing and recover the connections between AST and the elements from UML activity diagram.Then we analyze and detect the changes, especially behavioral changes be-tween versions of source code, which is relevant to UML activity diagram. Notic-ing that the traditional differencing tool are too weak in assisting meaningful change detection, we customized the front end of compiler and managed to de-tect the semantic changes, resulting in structured edit scripts.Finally we propose an approach that filters out low-level source code changes that do not influence program behaviour, abstracts code changes into updating operations for behavioral model, and automates the integration and update of activity diagrams to maintain consistence.At last we implemented a prototype tool and use open source code to perform case study.
Keywords/Search Tags:model updating, change detection, software maintenance
PDF Full Text Request
Related items