Software Evolvability Measurement Framework During an Open Source Software Evolution
Total Page:16
File Type:pdf, Size:1020Kb
Master of Science in Software Engineering February 2017 Software Evolvability Measurement Framework during an Open Source Software Evolution Jianhao Zhang and Xuxiao Chen Faculty of Computing Blekinge Institute of Technology SE-371 79 Karlskrona Sweden This thesis is submitted to the Faculty of Computing at Blekinge Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science in Software Engineering. The thesis is equivalent to 20 weeks of full time studies. Contact Information: Authors: Jianhao Zhang E-mail: [email protected] Xuxiao Chen E-mail: [email protected] University advisor: Bodgan Marculescu Department of Computing Faculty of Computing Internet : www.bth.se Blekinge Institute of Technology Phone : +46 455 38 50 00 SE-371 79 Karlskrona, Sweden Fax : +46 455 38 50 57 Abstract Context : Software evolution comes with the increasing growth of software applications both in size and complexity. Unlike the software maintenance, software evolution addresses more on the adaption of the new fast-changing requirements. Then the term of “software evolvability” comes with its importance for evaluating the evolution status of the software. However, it is not clearly identified especially in the context of open source software (OSS). Besides the most studies are about the description of software evolvability as a quality attribute, and very few research have done on the measurement of software evolvability during the software evolution process. Objectives: In this study we perform an in-depth investigation on identification of the OSS evolvability, and figure out the appropriate metrics used for measuring the OSS evolvability. Based on that we finally proposed the open source software evolvability measurement framework (OSEM) which could be used for measuring the software evolvability generally in an OSS context. Methods: At first, we conducted a literature review by combining backward snowballing search with systematic database search. Two research questions which are RQ1 and RQ2 are proposed for helping us to retrieve the key information for building the needed framework. Then we performed a case study on VLC media player (an OSS project) to validate the processes of the proposed framework. Results: Based on literature we could explicitly identify the OSS evolvability, and figure out the differences of software evolvability addressed in OSS context and non OSS context (e.g, the traceability refers to documentation in non OSS context, however in OSS context it refers to the release version of OSS project). Besides we also fulfill the evolvability measuring method by addressing the process of prioritization of evolvability sub- characteristics. In the end we implement the OSEM framework on VLC media player and get the well documented results which are clearly presented and easy to understand. Such results could be taken by the VLC developers as an input for the design and development of the VLC. Conclusions: We conclude that the open source software measurement framework (OSEM) is applicable, based on the time we spent on the case of VLC media player it is quite fast and efficient to use such framework. The results from the conduction of this framework are documented well and very clear for OSS users/developers to follow. Keywords: Open source software evolvability, Open source software evolution, Software measurement 3 Acknowledgement First of all we would express our sincere gratitude to our supervisor: Bogdan Marculescu, Doktorand, Department of Software Engineering, for his guidance and support through this study. He continuously gave us very precious suggestions during the whole working time of our research both on conducting the thesis and writing thesis. His advices always give us a clear direction to guide where we are going. Without that we may not complete the thesis. Secondly we feel lucky that we got our parents’ support. We are highly motivated by their love and encouragement when we encountered a lot of problems of conducting the thesis study. Besides we are glad to have some lovely friends. Thanks for them always stood by our side in our all study time in Sweden. 4 Content ABSTRACT..............................................................................................................................................3 ACKNOWLEDGEMENT.............................................................................................................................4 CONTENT................................................................................................................................................5 FIGURE LIST...........................................................................................................................................8 TABLE LIST............................................................................................................................................9 1. INTRODUCTION............................................................................................................................10 1.1 Structure of Thesis............................................................................................................. 11 1.2 Glossary.............................................................................................................................13 2. BACKGROUND............................................................................................................................. 14 2.1 Software Evolution & Maintenance...................................................................................14 2.2 Lehman’s Laws of Software Evolution.............................................................................. 15 2.3 Software Aging...................................................................................................................16 2.4 Software Architecture Evolution........................................................................................17 3. RELATED WORK..........................................................................................................................20 3.1 Open Source Software Evolution.......................................................................................20 3.2 Software Evolvability.........................................................................................................21 4. RESEARCH QUESTIONS AND RESEARCH METHODOLOGY...........................................................27 4.1 Aim and Objectives............................................................................................................27 4.2 Research Question.............................................................................................................27 4.3 Research Questions within Their Research Methodologies.............................................. 28 4.4 Mapping Research Question to Research Methodology....................................................28 5. CREATION OF FRAMEWORK........................................................................................................ 31 5.1 Search Strategy..................................................................................................................31 5.2 Choice of Database............................................................................................................32 5.3 Search Criteria.................................................................................................................. 32 5.4 Review Protocol.................................................................................................................32 5.5 Search String Identification...............................................................................................33 5 5.6 Quality Assessment............................................................................................................ 34 5.7 Data Extraction and Synthesis...........................................................................................34 5.8 Open Source Software Evolvability Measurement Framework Proposed..................... 35 6. CASE STUDY.................................................................................................................................... 41 6.1 Case Selection and Overview............................................................................................ 41 6.2 Context of the Case Study..................................................................................................44 6.3 Preparation........................................................................................................................45 6.4 Data Collection..................................................................................................................46 6.5 Evolvability Sub-Characteristics from Case Perspective..................................................47 6.6 Applying the Evolvability Measuring Method................................................................... 47 7. RESULT ANALYSIS AND DISCUSSION...............................................................................................57 7.1 Literature Review Result Analysis.....................................................................................57 7.2 Case Study Result Analysis and Discussion...................................................................... 64 7.3 Validity Discussion............................................................................................................ 69 8. CONCLUSION