Thesis Adrian Yankov
Total Page:16
File Type:pdf, Size:1020Kb
Eindhoven University of Technology MASTER Re-engineering the re-engineering process Yankov, A.G. Award date: 2018 Link to publication Disclaimer This document contains a student thesis (bachelor's or master's), as authored by a student at Eindhoven University of Technology. Student theses are made available in the TU/e repository upon obtaining the required degree. The grade received is not published on the document as presented in the repository. The required complexity or quality of research of student theses may vary by program, and the required minimum study period may vary in duration. General rights Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain Department of Mathematics and Computer Science Model Driven Software Engineering Research Group Re-engineering the re-engineering process Master Thesis Adrian Yankov Supervisors: prof.dr. M.G.J. (Mark) van den Brand dr. Y. (Yaping) Luo ir. M. (Marc) Hamilton dr. N. (Natalia) Sidorova Eindhoven, Jan 2018 Abstract The number of legacy systems around the world that still function is high. Their maintenance has turned problematic, due to the original developers leaving or lack of proper documentation. Re-engineering can be one of the solutions to these problems. It applies reverse engineering to recover the missing artifacts and then forward engineering to generate a new and more modern software product. Additionally, the re-engineering process can be backed up by models turning it into model-based re-engineering. Nevertheless, the existing model-based re-engineering standards are not precise enough and do not talk about verification and validation of the new process and product. In this thesis we give an overview of the current model-based re-engineering standards. Then we suggest a new more detailed approach depicted in Business Process Model and Notation (BPMN) with sample activities, process input and outputs. We also investigate reverse engineering as an essential part of the main re-engineering process by scanning the available literature and inter- viewing some experts from industry. We conclude with a case study on an Internet of Things (IoT) project, where our model-based re-engineering approach is applied. ii Re-engineering the re-engineering process Acknowledgements Completing this thesis provided me with a large amount of satisfaction. This important event of my life would not have been possible without a few people, to whom I would like to greatly acknowledge. First of all, I would like to express special gratitude to prof. Mark van den Brand for supervising the overall graduation process. He also helped me greatly with my personal devel- opment. Secondly, I would like to thank dr. Yaping Luo for agreeing to be my daily supervisor and always supporting me in word and deed. She was of huge help of me for mediating between the academic and industrial world. In addition to daily supervisor, dr. Yaping Luo is also a good friend. Thirdly, I would like to express gratitude to Marc Hamilton for providing irreplaceable feedback from an industrial point of view and being my main contact in Altran. His many years of work experience contributed greatly to my research. Last, but not least, my gratitude also goes to dr. Natalia Siderova for playing an essential role as a committee member and assessing my thesis. This last paragraph, I dedicate to my loving parents, girlfriend and friends. They are the main drive behind my motivation. I could not have gone through this journey alone without their moral support. Re-engineering the re-engineering process iii List of Acronyms Acronyms ADL architecture description language API Application Programming Interface AST Abstract Syntax Tree BPMN Business Process Model and Notation CMMI Capability Maturity Model Integration CRUD Create Read Update Delete DSL Domain Specific Language EMF Eclipse Modeling Framework GUI Graphical User Interface IDE Integrated Development Environment IoT Internet of Things IRE integrated reverse-engineering environment KLOC Kilo Lines of Code KPI Key Performance Indicators MDE Model Driven Engineering MDSE Model Driven Software Engineering MOF Meta-Object-Facility MVC Model-View-Controller OMG Object Management Group QVT Query/View/Transformation UML Unified Modeling Language iv Re-engineering the re-engineering process Contents Contents v List of Figures vii List of Tables viii 1 Introduction 1 1.1 General Introduction...................................1 1.2 Problem Definition....................................1 1.3 Research Questions....................................2 1.4 Structure of Thesis....................................2 2 Background 3 2.1 Legacy Systems......................................3 2.2 Re-engineering......................................4 2.3 Reverse Engineering...................................4 2.4 Forward Engineering...................................5 2.5 Model-driven software engineering...........................5 3 The typical process of model-based re-engineering6 3.1 Introduction........................................6 3.2 Related work.......................................6 3.3 Re-engineering scenarios.................................8 3.3.1 Scenario I.....................................8 3.3.2 Scenario II....................................9 3.4 A model-based re-engineering process.........................9 3.4.1 Detailed re-engineering process in BPMN...................9 3.5 Re-engineering process inputs and outputs....................... 11 3.6 Conclusion........................................ 13 4 Status of reverse engineering 14 4.1 Introduction........................................ 14 4.2 Part I: Literature Study................................. 14 4.3 Pretty printers and code visualization......................... 15 4.4 Static and Dynamic Analyses.............................. 15 4.4.1 Static Analysis.................................. 16 4.4.2 Dynamic Analysis................................ 16 4.5 Reverse Engineering Challenges............................. 17 4.6 Reverse Engineering Tools................................ 17 4.7 Part II: Interviews.................................... 20 4.7.1 Planning..................................... 20 4.7.2 Design....................................... 20 4.7.3 Performing the interview............................ 20 Re-engineering the re-engineering process v CONTENTS 4.7.4 Results...................................... 20 4.7.5 Threats to validity................................ 21 4.8 Conclusion........................................ 22 5 Validation of the re-engineering process in an industrial environment 23 5.1 Introduction........................................ 23 5.2 The YouKnowWatt Project............................... 23 5.2.1 Project introduction............................... 23 5.3 Challenges with IoT projects.............................. 24 5.4 Chimera(A-B-C-D).................................... 24 5.5 Lotte............................................ 26 5.6 Validating the model-based re-engineering process.................. 28 5.6.1 Overview..................................... 28 5.6.2 Mapping to the proposed BPMN model.................... 28 5.6.3 Gathering all available project information.................. 29 5.6.4 Reverse Engineering Plan............................ 30 5.6.5 Reverse Engineering Tools: Old YouKnowWatt ! models.......... 31 5.6.6 Perform early validation............................. 35 5.6.7 Applying model-driven engineering....................... 35 5.6.8 Analyzing the results............................... 38 5.7 Extended BPMN after validation............................ 40 5.8 Conclusion........................................ 41 6 Conclusions 42 6.1 Research questions and conclusions........................... 42 6.2 Future work........................................ 43 Bibliography 44 Appendix 49 A Interview materials 50 B Reverse Engineering Plan 52 B.1 Introduction........................................ 52 B.2 Definition & Justification................................ 52 B.2.1 Phase 1.1: Analyze the project goals...................... 52 B.2.2 Phase 1.2: Inventory of available existing components............ 52 B.2.3 Phase 1.3: Determine reverse engineering strategy.............. 52 B.3 Execution......................................... 53 vi Re-engineering the re-engineering process List of Figures 3.1 The SEI Horseshoe Model [1]..............................7 3.2 OMG ADM Standards and the ADM Horseshoe [2]..................7 3.3 Scenario I - same process, two similar products....................8 3.4 Scenario II - two different processes, two similar products..............9 3.5 Detailed Re-engineering Process expressed in BPMN................. 10 4.1 Collected papers' overview................................ 15 4.2 Reverse Engineering Requirements results from interview.............. 21 5.1 YouKnowWatt customer example............................ 24 5.2 A-B-C-D Framework................................... 25 5.3 A-B-C-D Framework evolution............................. 25 5.4 Lotte and YouKnowWatt relation..........................