Anda di halaman 1dari 5

Course Guides ix xiv

Topic 1: Overview 1
1.1 Software 2
1.2 Software Engineering 3
1.3 Software Process 4
1.4 Software Process Model 4
1.5 Software Engineering Methods 6
1.6 Attributes of Good Software 7
Summary 8
Key Terms 9
Self-Assessment 1 9
Self-Assessment 2 9
References 9
Topic 2: Software Processes 10
2.1 Software Process Models 11
2.1.1 The Waterfall Model 12
2.1.2 Evolutionary Development 13
2.1.3 Formal Systems Development 15
2.1.4 Reuse-oriented Development 17
2.2 Process Iteration 18
2.2.1 Incremental Development 20
2.2.2 Spiral Development 19
2.3 Software Specification 21
2.4 Software Design and Implementation 23
2.4.1 Design Methods 24
2.4.2 Programming and Debugging 25
2.5 Software Validation 26
2.6 Software Evolution 28
Summary 29
Key Terms 30
Self-Assessment 1 30
Self-Assessment 2 31
References 31
Topic 3: Software Prototyping 32
3.1 Software Prototype 33
3.2 Prototyping in the Software Process 35
3.2.1 Evolutionary Prototyping 36
3.2.2 Throw-away Prototyping 39
3.3 Rapid Prototyping Techniques 40
Table of Contents
iv TABLE OF ONTENTS
3.3.1 Dynamic High-level Language Development 40
3.3.2 Database Programming 42
3.3.3 Component Reuse 43
3.4 User Interface Prototyping 44
Summary 45
Key Term 45
Self-Assessment 1 45
Self-Assessment 2 46
References 46

Topic 4: Software Project Management 47
4.1 Tracking Progress 48
4.1.1 Work Breakdown Structure 49
4.1.2 Estimating Completion 52
4.1.3 Project Tracking Tools 53
4.2 Project Personnel 57
4.2.1 Project Organisation 58
4.3 Risk Management 59
4.3.1 Identifying Risk 59
4.3.2 Assessing Risk 60
4.3.3 Responding to Risk 61
Summary 63
Key Terms 63
Self-Assessment 1 64
Self-Assessment 2 64
References 64
Topic 5: Software Requirements 65
5.1 System Requirements 66
5.2 Functional, Non-functional and Domain Requirements 68
5.2.1 Functional Requirements 68
5.2.2 Non-functional Requirements 69
5.2.3 Domain Requirements 72
5.3 User Requirements 73
5.4 System Requirements 74
5.4.1 Structured Language Specifications 76
5.4.2 Requirements Specification Using a PDL 76
5.4.3 Interface Specification 77
5.5 The Software Requirements Document 78
Summary 82
Key Terms 83
Self-Assessment 1 83
Self-Assessment 2 83
References 83
TABLE OF ONTENTS t v
Topic 6: Requirements Engineering Processes 84
6.1 Feasibility Studies 84
6.2 Requirements Elicitation and Analysis 87
6.2.1 Scenarios 89
6.2.2 Ethnography 93
6.3 Requirements Validation 94
6.3.1 Requirements Reviews 96
6.4 Requirements Management 97
6.4.1 Requirements Change Management 98
Summary 99
Key Terms 100
Self-Assessment 1 100
Self-Assessment 2 100
References 100
Topic 7: User Interface Design 101
7.1 Graphical User Interface 102
7.2 User Interface Design Principles 104
7.3 User Interaction 108
7.4 Information Presentation 111
7.4.1 Colour in Interface Design 113
7.5 User Support 114
7.5.1 Error Messages 115
7.5.2 Help System Design 116
7.5.3 User Documentation 118
7.6 Interface Evaluation 120
Summary 121
Key Terms 121
Self-Assessment 1 122
Self-Assessment 2 122
References 122
Topic 8: Design with Reuse 123
8.1 Software Reuse 124
8.2 Component-based Development 127
8.2.1 Application Frameworks 130
8.2.2 COTS Product Reuse 132
8.2.3 Component Development for Reuse 133
8.3 Design Patterns 134
Summary 135
Key Terms 136
Self-Assessment 1 136
Self-Assessment 2 136
References 137
vi TABLE OF ONTENTS
Topic 9: Verification and Validation 138
9.1 Software Verification and Validation 139
9.2 Verification and Validation Planning 141
9.3 Software Inspections 143
9.3.1 Programs Inspection 144
9.4 Automated Static Analysis 148
9.5 Cleanroom Software Development 150
Summary 154
Key Terms 154
Self-Assessment 1 155
Self-Assessment 2 155
References 155
Topic 10: Software Testing 156
10.1 Defect Testing 157
10.1.1 Black-box Testing 158
10.1.2 Equivalent Partitioning 159
10.1.3 Structural Testing 162
10.1.4 Path Testing 163
10.2 Integration Testing 167
10.2.1 Top-down and Bottom-up Testing 167
10.2.2 Interface Testing 169
10.2.3 Stress Testing 171
10.3 Testing Workbenches 172
Summary 175
Key Terms 175
Self-Assessment 1 176
Self-Assessment 2 176
References 176
Topic 11: Process Improvement and Software Quality
Assurance 177
11.1 Process Improvement 178
11.2 Process and Product Quality 181
11.3 Process Analysis and Modelling 182
11.3.1 Process Exceptions 185
11.4 Process Measurement 185
11.5 The SEI Process Capability Maturity Model 188
11.5.1 Capability Assessment 191
11.5.2 Six Sigma for Software Engineering 192
11.5.3 The ISO 9000 Quality Standards 193
11.6 Process Classification 194
Summary 196
TABLE OF ONTENTS t vii
Key Terms 196
Self-Assessment 1 196
Self-Assessment 2 197
References 197
Topic 12: Software Change 198
12.1 Strategies for Software Change 199
12.2 Program Evolution Dynamics 200
12.3 Software Maintenance 202
12.3.1 The Maintenance Process 205
12.3.2 Maintenance Prediction 206
Summary 209
Key Terms 209
Self-Assessment 1 210
Self-Assessment 2 210
References 210

Appendix 211

Anda mungkin juga menyukai