Part Ⅰ The Process 1
1 Software Development Best Practices 3
The Value of Software 3
Symptoms and Root Causes of Software Development Problems 4
Software Best Practices 5
Develop Software Iteratively 6
Manage Requirements 8
Use Component-Based Architectures 9
Visually Model Software 11
Continuously Verify Software Quality 12
Control Changes to Software 14
The Rational Unified Process 15
Summary 16
2 The Rational Unified Process 17
What Is the Rational Unified Process? 17
The Rational Unified Process as a Product 18
Process Structure:Two Dimensions 22
Software Best Practices in the Rational Unified Process 23
Other Key Features of the Rational Unified Process 30
A Brief History of the Rational Unified Process 32
Summary 34
3 Static Structure:Process Description 35
A Model of the Rational Unified Process 35
Workers 36
Activities 38
Artifacts 40
Workflows 43
Additional Process Elements 47
A Process Framework 50
Summary 51
4 Dynamic Structure:Iterative Development 53
The Sequential Process 53
Overcoming Difficulties:Iterate! 60
Gaining Control:Phases and Milestones 61
A Shifting Focus across the Cycle 64
Phases Revisited 66
Benefits of an Iterative Approach 76
Summary 78
The Importance of Models 81
5 An Architecture-centric Process 81
Architecture 82
The Importance of Architecture 82
A Definition of Architecture 84
Architecture Representation 85
An Architecture-centric Process 90
The Purpose of Architecture 92
Component-Based Development 93
Other Architectural Concepts 94
Summary 96
6 A Use-Case-Driven Process 97
Definitions 97
Identifying Use Cases 103
Evolving Use Cases 104
Organizing Use Cases 105
Use Cases in the Process 107
Summary 109
Part Ⅱ Process Workflows 111
Purpose 113
7 The Project Management Workflow 113
Planning an Iterative Project 114
The Concept of Risk 117
The Concept of Metrics 119
What Is a Metric? 121
Workers and Artifacts 122
Workflow 123
Building an Iteration Plan 132
Summary 138
Purpose 139
8 The Business Modeling Workflow 139
Why Business Modeling? 140
Using Software Modeling Techniques for Business Modeling 141
Business Modeling Scenarios 143
Workers and Artifacts 144
Workflow 146
From the Business Models to the Systems 148
Modeling the Software Development Business 153
Tool Support 153
Summary 154
Purpose 155
9 The Requirements Workflow 155
What Is a Requirement? 156
Types of Requirements 158
Capturing and Managing Requirements 161
Designing a User-Centered Interface 162
Requirements Workflow 163
Workers in Requirements 165
Artifacts Used in Requirements 167
Summary 169
Tool Support 169
10 The Analysis and Design Workflow 171
Purpose 171
Analysis versus Design 171
How Far Must Design Go? 172
Workers and Artifacts 173
The Design Model 174
The Analysis Model 175
The Role of Interfaces 175
Component-Based Design 176
Artifacts for Real-Time Systems 176
Workflow 177
Tool Support 181
Summary 181
11 The Implementation Workflow 183
Purpose 183
Builds 184
Integration 184
Prototypes 185
Workers and Artifacts 188
Workflow 189
Tool Support 192
Summary 192
12 The Test Workflow 193
Purpose 193
Quality 194
Testing in the Iterative Lifecycle 194
Dimensions of Testing 195
The Test Model 198
Workers and Artifacts 199
Workflow 202
Tool Support 205
Summary 206
13 The Configuration and Change Management Workflow 207
Purpose 207
The CCM Cube 208
Workers and Artifacts 213
Workflow 215
Tool Support 218
Summary 219
14 The Environment Workflow 221
Purpose 221
Workers and Artifacts 222
Workflow 223
Summary 225
15 The Deployment Workflow 227
Purpose 227
Workers and Artifacts 229
Workflow 232
Summary 235
16 Typical Iteration Plans 237
Purpose 237
Defining the Product Vision and the Business Case 238
Building an Architectural Prototype 240
Implementing the System 244
Summary 247
17 Configuring and Implementing the Rational Unified Process 249
Introduction 249
The Effect of Implementing a Process 250
Implementing the Rational Unified Process Step by Step 252
Configuring the Process 258
Implementing a Process Is a Project 260
Summary 262
Appendix A:Summary of Workers 263
Appendix B:Summary of Artifacts 267
Acronyms 271
Glossary 273
Bibliography 279
Index 287