vii TABLE OF CONTENTS CHAPTER 1 TITLE PAGE DECLARATION ii DEDICATION iii ACKNOWLEDGEMENT iv ABSTRACT v TABLE OF CONTENTS vii INTRODUCTION 1.1 Introduction 1 1.2 Introduction to Software Evolution 1 1.3 Background of the Problem 4 1.3.1 Broader Maintenance Perspective 4 1.3.2 Effective Change Communication 5 1.3.3 Importance of System Documentation 6 1.3.4 Incomplete Maintenance Supported CASE tools 6 1.4 Statement of the Problem 7 1.5 Objectives of the Study 8 1.6 Importance of the Study 9 1.7 Scope of Work 9 1.8 Thesis Outline 11 2 LITERATURE REVIEW ON SOFTWARE EVOLUTION AND TRACEABILITY 2.1 Introduction 13 viii 2.2 Software Evolution Models 13 2.3 Software Traceability in Software Engineering 16 2.3.1 Software Configuration Management 16 2.3.2 System Documentation 18 2.3.3 Requirements Traceability 21 2.3.4 Change Management Process 23 2.4 2.5 Review and Further Remarks on Software Evolution and Traceability 27 Impact Analysis Versus Traceability 29 2.5.1 Definitions of Impact Analysis and Traceability 29 2.5.2 Vertical Traceability 32 2.5.2.1 Data Dependencies 32 2.5.2.2 Control Dependencies 33 2.5.2.3 Component Dependencies 33 Horizontal Traceability 34 2.5.3.1 Explicit Links 34 2.5.3.2 Implicit Links 35 2.5.3.3 Name Tracing 36 2.5.3.4 Concept Location 37 2.5.3 2.5.4 Review on Impact Analysis and Traceability Techniques 2.6 Critiques on State-of-the-art Software Traceability Approaches 41 2.6.1 The Comparison Framework 41 2.6.2 Existing Software Traceability Models and Approaches 2.6.3 44 The Comparative Evaluation of Software Traceability Modeling 2.7 38 Summary of the Proposed Solution 48 49 3 RESEARCH METHODOLOGY 3.1 Introduction 51 3.2 Research Design 51 ix 3.3 Operational Framework 52 3.4 Formulation of Research Problems 54 3.4.1 Need of Change Process Support 54 3.4.2 Establish Communications Within a Project 55 3.4.3 Understanding Requirements to Support Software Evolution 3.5 55 Some Considerations for Validation Process 55 3.5.1 Supporting tools 56 3.5.2 Data Gathering and Analysis 57 3.5.3 Benchmarking 58 3.6 Some Research Assumptions 62 3.7 Summary 62 4 REQUIREMENTS TRACEABILITY MODELING 4.1 Introduction 64 4.2 Overview of Requirements Traceability 64 4.3 A Proposed Requirements Traceability Model 65 4.3.1 A Conceptual Model of Software Traceability 66 4.3.2 Dynamic and Static Analyses 67 4.3.3 Horizontal Links 68 4.3.4 Vertical Links 71 4.3.5 Program Dependencies 73 Defining Object-Oriented Impact Analysis 76 4.4.1 Ripple Effects of Program Dependencies 76 4.4.2 Defined Dependencies 79 4.4 4.5 Total Traceability of Artifact Links 80 4.6 Summary 81 5 DESIGN AND IMPLEMENTATION OF SOFTWARE TRACEABILITY 5.1 Introduction 82 5.2 System Traceability Design 82 5.2.1 82 Software Traceability Architecture x 5.2.2 CATIA Use Case 86 5.2.3 CATIA Class Interactions 87 5.3 CATIA Implementation and User Interfaces 102 5.4 Other Supporting Tools 105 5.4.1 Code Parser 105 5.4.2 Instrumentation Tool 106 5.4.3 Test Scenario tool 108 Summary 109 5.5 6 EVALUATION 6.1 Introduction 110 6.2 Evaluating Model 110 6.2.1 Hypothesizing Traces 111 6.2.2 Software Traceability and Artifact Links 114 6.3 6.4 6.5 6.6 6.7 Case Study 116 6.3.1 Outlines of Case Study 116 6.3.2 About the OBA Project 117 6.3.3 OBA Functionality 118 Controlled Experiment 122 6.4.1 Subjects and Environment 123 6.4.2 Questionnaires 123 6.4.3 Experimental Procedures 124 6.4.4 Possible Threats and Validity 125 Experimental Results 127 6.5.1 User Evaluation 127 6.5.2 Scored Results 134 Overall Findings of the Analysis 137 6.6.1 Quantitative Evaluation 138 6.6.2 Qualitative Evaluation 140 6.6.3 Overall Findings and Discussion 144 Summary 145 7 CONCLUSION xi 7.1 Research Summary and Achievements 146 7.2 Summary of the Main Contributions 149 7.3 Research Limitation and Future Work 150 REFERENCES 152-166 APPENDICES 167 - 236 Appendix A – E xii LIST OF TABLES TABLE NO. TITLE PAGE 2.1 An overview of the general SRS, SDD and STD documents 20 2.2 Sample form of PCR (MIL-STD-498, 2005) 23 2.3 A comparative study of traceability approaches 45 2.4 Existing features of software traceability approaches 49 3.1 Benchmark of AIS# and EIS# possibilities(Arnold and Bohner, 93) 59 3.2 Evaluation for impact effectiveness (Arnold and Bohner, 1993) 60 3.3 Effectiveness metrics 60 4.1 Software documents and corresponding artifacts 65 4.2 Program relations in C++ 77 4.3 Classifications of artifact and type relationships 79 6.1 Summary of model specifications and used techniques 115 6.2 Cross tabulation of experience versus frequencies 127 6.3 Cross tabulation of previous jobs versus frequencies 128 6.4 Cross tabulation of previous jobs versus group distribution 128 6.5 Cross tabulation of experience versus group distribution 129 6.6 Cross tabulation of program familiarity versus group classification 129 6.7 Mean of previous jobs for groups 129 6.8 Mean of experience for groups 130 6.9 Mean of program familiarity for groups 130 6.10 Point average of group distribution 130 6.11 Mean of scores for impact analysis features 131 6.12 Results of bottom-up impact analysis 135 6.13 Results of top-down impact analysis 137 6.14 Results of artifact S-Ratio 138 6.15 Existing features of software traceability systems 141 xiii C1 Summary of object oriented relationships 206 D1 A set of package-class references 231 D2 A set of method-class-package references 232 xiv LIST OF FIGURES FIGURE NO. TITLE PAGE 2.1 A Stage Model (Bennett and Rajlich, 2000) 15 2.2 MIL-STD-498 Data Item Descriptions 19 2.3 SADT diagram of software maintenance activities (Bohner, 1991) 25 2.4 SADT diagram of change process (Small and Downey, 2001) 26 2.5 The comparison framework 44 3.1 Flowchart of the operational framework 53 4.1 Conceptual model of traceability system 66 4.2 Hypothesizing traces 67 4.3 Traceability from the requirement perspective 69 4.4 System artifacts and their links 80 5.1 A view of software traceability architecture 83 5.2 Use Case diagram of CATIA system 86 5.3 CATIA class diagrams 88 5.4 CATIA sequence diagrams 89 5.5 First User Interface of CATIA 102 5.6 Primary artifacts at method level 103 5.7 Summary of the impacted artifacts 104 5.8 The Instrumented Code 107 5.9 Some ‘markers’ extracted from a class CruiseManager 108 5.10 The impacted methods of a class CcruiseManager 108 6.1 Hypothesized and observed traces 113 6.2 CSC relationships within a CSCI OBA 118 6.3 Easiness to Use in Overall 131 6.4 Easiness to Find SIS 132 6.5 AIS Support 132 xv 6.6 Cost Estimation Support 133 6.7 Traceability Support 133 6.8 Documentation Support 133 B1 primary option of requirement artifacts 179 B2 Potential effects and impact summary 180 B3 First CATIA interactive window 181 B4 Primary artifacts at method level 182 B5 Detailed results of secondary artifacts 183 B6 Summary of impacted artifacts by methods 184 B7 Impacted artifacts in a message window 185 B8 Primary artifacts at requirement level 186 B9 Summary of impacted artifacts by requirements 186 B10 A hyperlink between CATIA and documentation 187 C1 Table structures of recognizable tokens 189 D1 Start vehicle class diagram 208 D2 Set calibration class diagram 209 D3 Control cruising speed class diagram 210 D4 Request trip assistance class diagram 211 D5 Fill fuel class diagram 212 D6 Service vehicle class diagram 213 xvi LIST OF ACRONYMS AND SYMBOLS AIS - Actual Impact Set ANOVA - Analysis of Variance AST - Analysis Syntax Tree CASE - Computer Aided Software Engineering CBO - Coupling Between Object Classes CCB - Change Control Board CI - Component Identification CMM - Capability Maturity Model CSC - Computer Software Components CSCI - Computer Software Configuration Item CSU - Computer Software units DIF - Documentation Integration Facility DIT - Depth of Inheritance tree FSM - Functional Specification Manual GEOS - Global Entity Operations System HTML - Hypertext Markup Language IA - Impact Analysis LCOM - Lack of Cohesion Metric LOC - Lines of code MDD - Model Dependency Descriptor NOC - Number of Children OBA - Automobile Board Auto Cruise OMT - Object Modeling Technique OOP - Object Oriented Programming PCR - Problem Change Report PIS - Primary Impact Set xvii RFC - Response for a Class RUP - Rational Unified Process SADT - Structured Analysis Design Technique SCM - Software Configuration Management SDLC - Software Development Lifecycle SDP - Software Development Plan SIS - Secondary Impact Set SPEM - Software Process Engineering Meta Model SPS - Specification Product System SRS - Software Requirement Specification STD - Software Test Description SUM - Software User Manual TRAM - Tool for Requirement and Architectural Management UML - Unified Modeling Language VG - Values of complexity WMC - Weighted Methods per Class XML - Extensible Markup Language xviii LIST OF APPENDICES APPENDIX TITLE APPENDIX A Procedures and Guidelines of the PAGE Controlled Experiment 167-176 APPENDIX B CATIA Manual and Descriptions 177-188 APPENDIX C Code Parser 189-206 APPENDIX D OBA System – The Case Study 207-234 APPENDIX E Published papers 235-236