CHAPTER 1 The Software Life Cycle 1
1.1 Introduction 1
1.2 Software Life Cycle Models 3
CHAPTER 2 Software Process and Other Models 7
2.1 The Software Process Model 7
2.2 Data Flow Diagrams 9
2.3 Petri Net Models 10
2.4 Object Models 11
2.5 Use Case Diagrams 14
2.7 Sequence Diagrams 15
2.6 Scenarios 15
2.8 Hierarchy Diagrams 16
2.9 Control Flow Graphs 16
2.10 State Diagrams 17
2.11 Lattice Models 19
CHAPTER 3 Software Project Management 30
3.1 Introduction 30
3.2 Management Approaches 30
3.3 Team Approaches 31
3.4 Critical Practices 32
3.5 Capability Maturity Model 33
3.6 Personal Software Process 34
3.7 Earned Value Analysis 35
3.8 Error Tracking 36
3.9 Postmortem Reviews 37
CHAPTER 4 Software Project Planning 47
4.1 Project Planning 47
4.2 WBS-Work Breakdown Structure 47
4.3 PERT-Program Evaluation and Review Technique 50
4.4 Software Cost Estimation 54
CHAPTER 5 Software Metrics 72
5.1 Introduction 72
5.2 Software Measurement Theory 73
5.3 Product Metrics 76
5.4 Process Metrics 83
5.5 The GQM Approach 83
CHAPTER 6 Risk Analysis and Management 91
6.1 Introduction 91
6.2 Risk Identification 91
6.3 Risk Estimation 92
6.4 Risk Exposure 92
6.5 Risk Mitigation 94
6.6 Risk Management Plans 94
7.2 Formal Inspections and Technical Reviews 99
CHAPTER 7 Software Quality Assurance 99
7.1 Introduction 99
7.3 Software Reliability 101
7.4 Statistical Quality Assurance 102
CHAPTER 8 Requirements 112
8.1 Introduction 112
8.2 Object Model 112
8.3 Data Flow Modeling 113
8.4 Behavioral Modeling 114
8.5 Data Dictionary 116
8.6 System Diagrams 117
8.7 IEEE Standard for Software Requirements Specification 118
CHAPTER 9 Software Design 127
9.1 Introduction 127
9.2 Phases of the Design Process 128
9.3 Design Concepts 130
9.4 Measuring Cohesion 132
9.5 Measuring Coupling 135
9.6 Requirements Traceability 136
CHAPTER 10 Software Testing 145
10.1 Introduction 145
10.2 Software Testing Fundamentals 145
10.3 Test Coverage Criterion 146
10.4 Data Flow Testing 154
10.5 Random Testing 155
10.6 Boundary Testing 157
CHAPTER 11 Object-Oriented Development 169
11.1 Introduction 169
11.2 Identifying Objects 171
11.3 Identifying Associations 175
11.4 Identifying Multiplicities 178
CHAPTER 12 Object-Oriented Metrics 183
12.1 Introduction 183
12.2 Metrics Suite for Object-Oriented Design 184
12.3 The MOOD Metrics 189
CHAPTER 13 Object-Oriented Testing 199
13.1 Introduction 199
13.2 MM Testing 200
13.3 Function Pair Coverage 201
CHAPTER 14 Formal Notations 208
14.1 Introduction 208
14.2 Formal Specifications 208
14.3 Object Constraint Language(OCL) 210
INDEX 219