Continuous Quality Control of Long-Lived Software Systems
Total Page:16
File Type:pdf, Size:1020Kb
Continuous Quality Control of Long-Lived Software Systems Florian Deißenböck Institut für Informatik der Technischen Universität München Continuous Quality Control of Long-Lived Software Systems Florian Deißenböck Vollständiger Abdruck der von der Fakultät für Informatik der Technischen Universität München zur Erlangung des akademischen Grades eines Doktors der Naturwissenschaen (Dr. rer. nat.) genehmigten Dissertation. Vorsitzender: Univ.-Prof. Dr. Arndt Bode Prüfer der Dissertation: 1. Univ.-Prof. Dr. Dr. h.c. Manfred Broy 2. Univ.-Prof. Dr. Dr. h.c. H. Dieter Rombach Technische Universität Kaiserslautern Die Dissertation wurde am 11.05.2009 bei der Technischen Universität München eingere- icht und durch die Fakultät für Informatik am 08.10.2009 angenommen. Abstract Virtually any soware dependent organization has a vital interest in reducing its spending for so- ware maintenance activities. In addition to financial savings, for many organizations, the time needed to complete a soware maintenance task largely determines their ability to adapt their business pro- cesses to changing market situations or to implement innovative products and services. With the present yet increasing dependency on large scale soware systems, the ability to change existing so- ware in a timely and economical manner hence becomes critical for numerous enterprises of diverse branches. e ability of a soware system to be changed and extended in an efficient manner is commonly re- ferred to with the term maintainability. Despite its widely acknowledged importance, many soware developing organizations today do not explicitly define processes nor apply specialized techniques to ensure maintainability. is is especially precarious as the quality of soware systems typically undergoes a gradual decay in the process of their evolution and therefore needs to be controlled continuously. We claim that a major obstacle to a mature discipline of maintainability engineering is posed by the unsatisfyingly vague definitions of maintainability used today. Various approaches, usually in the form of quality models, have been proposed over the last four decades to remedy this problem. However, no comprehensive basis for controlling the maintainability of large soware sys- tems in a continuous manner has been established so far. is thesis proposes a novel approach for modeling maintainability that explicitly associates sys- tem properties with the activities carried out during maintenance and thereby facilitates a structured decomposition of maintainability. e separation of activities and properties supports the identifi- cation of sound quality criteria and allows to reason about their interdependencies. As the activities are the main cost factor in soware maintenance, we consider this separation a crucial step towards the ultimate goal of a truly economically justified practice of maintainability engineering. e ap- proach is based on a quality metamodel that supports a systematic construction of maintainability models and fosters preciseness as well as completeness. Furthermore, we describe how maintainability models defined by the presented metamodel can be operationalized in the maintenance processes to support continuous quality control. is includes the definition a maintainability assurance process based on the presented concepts and a set of sup- porting tools. ese tools enable the design of quality models based on our metamodel as well as the automatic generation of guideline documents to communicate quality requirements to the de- velopers. To support quality assurance activities, the tools allow the generation of review checklists and provide an integration of a defined maintainability model with quality assessment tools used for automated analyses. We demonstrate the applicability of our maintainability modeling approach, the generation of de- veloper guidelines and review checklists as well as the integrated use of quality assessment tools in multiple case studies carried out in academical and industrial contexts. Acknowledgements I’d like to express my gratitude to all people who helped me making this project a success. First, I want to thank Prof. Manfred Broy for his support and for providing a truly open-minded research environment that was, and still is, a fertile ground for my ideas. Also, I want to thank Prof. Dieter Rombach for co-supervising this thesis. Important parts of my work could not have been realized without the continuous support of our in- dustrial partners. I’dlike to use this opportunity to thank everybody I worked with at ABB, Interasco, MAN, Munich Re and Siemens. I particularly enjoyed ABB’s warm hospitality during our visits to Finland and Poland. Furthermore, my thanks go to all the people of Prof. Broy’s research group I had the pleasure to work with during the last years. In particular, I want to thank Markus Pizka for initiating me in the world of scientific research and, most importantly, for teaching me to question everybody and everything. My colleagues and friends Elmar Jürgens, Benjamin Hummel and Stefan Wagner were not only tough sparring partners in our frequent discussions but also a tremendous support. Not a single request for helping me out when things got over my head was ever turned out. My deepest thanks for this! Ad- ditionally, I want to thank Martin Feilkas, Judith Hartmann, Markus Herrmannsdörfer, Silke Müller, Birgit Penzenstadler, Christian Pfaller, Daniel Ratiu, Sabine Rittmann, Wolfang Schwitzer, Tilman Seifert and Sebastian Winter for their assistance. I’dlike to thank my friends Eckart Foos, Lorenz Herdeis, Lucien Hoogendoorn and Fabian Nagelmüller for the distraction that was vital to be able to complete this work. Beyond this, I thank Lorenz for inspiring scientific discussions outside the world of soware engineering. e completion of this thesis concludes a 25 year period of education. During all these years my par- ents and grandparents never ceased to support me morally and materially. What I achieved would not have been possible without them. I want to thank them not only for their assistance but, partic- ularly, for the unconditional and trusting way they gave it. My brother I simply thank for the way he is. His thinking oen puts mine back into perspective. Above all, I want to thank my wife for her enduring support, patience and for giving me the greatest joy of my life, our daughters Johanna and Sophia. I have to thank Johanna for the countless nights of carrying her around. ese vain attempts to get her to sleep gave rise to some of the best ideas in this thesis. I am grateful to Sophia for postponing her birth until this thesis was (almost) completed. Tini, Johanna and Sophia, you are doubtlessly the most important factor of success for this work and for all the happiness in my life! Contents Abstract 3 Acknowledgments 5 1 Introduction 11 1.1 Problem Statement . 11 1.2 Contribution ....................................... 12 1.3 Contents ......................................... 14 2 Software Maintenance & Software Product Quality 15 2.1 Soware Maintenance & Evolution . 15 2.1.1 Terms & Definitions . 16 2.1.2 Characteristics of Soware Maintenance . 18 2.1.3 Soware Maintenance Process . 19 2.1.4 Soware Maintenance Productivity . 21 2.2 SowareQuality ..................................... 23 2.2.1 Process Quality vs Product Quality . 23 2.2.2 Product Quality . 24 2.2.3 Quality Attributes . 26 2.2.4 Cost of Quality . 26 2.3 Product Quality in Long-lived Systems . 27 2.4 Summary......................................... 30 3 State of the Art 33 3.1 Maintainability Engineering . 33 3.2 Definitional Approaches . 34 3.2.1 Concrete Quality Models . 35 3.2.2 Quality Modeling Frameworks . 38 3.3 Constructive Approaches . 44 3.4 Analytic Approaches . 47 3.4.1 Soware Metrics . 47 3.4.2 Metric Methodologies . 53 3.4.3 Reviews & Inspections . 55 3.4.4 Quality Analysis Tools . 56 3.5 Summary......................................... 60 4 Defining & Controlling Maintainability 63 4.1 Maintainability Management . 63 7 Contents 4.2 An Activity-Based Model for Maintainability . 66 4.2.1 Modeling Rationale . 67 4.2.2 Overview . 71 4.2.3 e Quality Metamodel QMM . 76 4.2.4 Example . 83 4.3 Operationalization . 86 4.3.1 Manual Reviews . 88 4.3.2 Automated Assessments . 89 4.3.3 Guidelines . 92 4.4 Summary......................................... 95 5 Tool Support 97 5.1 Quality Model Editor QMM.editor . 97 5.1.1 Metamodel Implementation . 97 5.1.2 Overview . 99 5.1.3 Model Design & Maintenance . 101 5.1.4 Checklist & Guideline Generation . 102 5.1.5 Implementation & Architecture . 103 5.1.6 Summary . 104 5.2 QualityControlToolkitConQAT . 105 5.2.1 Requirements . 105 5.2.2 Design Considerations . 108 5.2.3 Architecture . 109 5.2.4 Configuration . 111 5.2.5 Modularization & Feature Overview . 114 5.2.6 Documentation . 120 5.2.7 Configuration Editor cq.edit . 121 5.2.8 Integration with the QMM . 122 5.2.9 Summary . 124 5.3 Summary......................................... 125 6 Case Studies 127 6.1 Model-Based Development of Embedded Systems (MAN) . 127 6.1.1 Environment . 127 6.1.2 Goals . 128 6.1.3 Study Description . 128 6.1.4 Results . 131 6.1.5 Discussion . 135 6.2 Web User Interface Frameworks (Interasco GmbH) . 136 6.2.1 Environment . 136 6.2.2 Goals . 136 6.2.3 Study Description . 136 6.2.4 Results . 140 6.2.5 Discussion . 141 6.3 Mainframe Development Infrastructure (BMW) . 143 6.3.1 Environment . 143 8 Contents 6.3.2 Goals . 144 6.3.3 Study Description . 144 6.3.4 Results . 148 6.3.5 Discussion . 151 6.4 Quality Dashboards (ABB & Munich Re) . 152 6.4.1 Environment . 152 6.4.2 Goals . 152 6.4.3 Study Description . 152 6.4.4 Results . ..