vii TABLE OF CONTENTS CHAPTER

advertisement
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
Download