Improving consistency of UML and its implementation using reverse engineering approach

Software development deals with various changes and evolution that cannot be avoided and it is an important activity in software life cycle because development processes are vastly incremental and iterative. In Model Driven Engineering, inconsistency between model and its implementation has huge imp...

Full description

Saved in:
Bibliographic Details
Main Author: Kaliappan, Vasanthi
Format: Thesis
Language:English
Published: 2018
Online Access:http://psasir.upm.edu.my/id/eprint/68955/1/FSKTM%202018%2038%20IR.pdf
http://psasir.upm.edu.my/id/eprint/68955/
Tags: Add Tag
No Tags, Be the first to tag this record!
Description
Summary:Software development deals with various changes and evolution that cannot be avoided and it is an important activity in software life cycle because development processes are vastly incremental and iterative. In Model Driven Engineering, inconsistency between model and its implementation has huge impact on the development process in terms of added cost, time and effort. The later the inconsistencies are found, it could add more cost to the project. Thus, this project aim to propose a mechanism and to develop a tool that can improve consistency between UML design models and its C# implementation using reverse engineering approach. A list of informal consistency rules are set to check vertical and horizontal consistencies between structural (class diagram) and behavioural (sequence diagram and use case diagram) UML models against the implemented C# source code. The work deals with reverse engineering of source code using .NET Reflection API and parsing of UML XMI file using C# XMLReader. The inconsistency found between design diagram and source code are presented in textual description and visualized in tree view structure. The project is evaluated via end user evaluation. The contribution of this project is to aid software developers to maintain design models consistency in a faster and correct way and to guide them to take measures to not let design models and source code drift apart.