Apply Now
Contents
SECTION I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1 Introduction to Software Engineering . . . . . . . . . . . . . . . . . . . 5
The Software Developer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
The SDLC: Systems Development Life Cycle . . . . . . . . . . . . . 8
The Feasibility Study: The First Step . . . . . . . . . . . . . . . . . . . 9
Information-Gathering Channels . . . . . . . . . . . . . . . . . . . . . . . 10
Diagramming or Modeling the System . . . . . . . . . . . . . . . . . . 12
Developmental Methodologies . . . . . . . . . . . . . . . . . . . . . . . . 14
System Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Object-Oriented Methodologies . . . . . . . . . . . . . . . . . . . . . . . 22
Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
Standards and Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Documentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Training. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2 The Feasibility Study and Cost/Benefit Analysis . . . . . . . . . . 35
Feasibility Study Components . . . . . . . . . . . . . . . . . . . . . . . . . 35
Cost/Benefit Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Scheduling the Feasibility Study . . . . . . . . . . . . . . . . . . . . . . . 40
The Feasibility Study Process . . . . . . . . . . . . . . . . . . . . . . . . . 41
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3 Writing the Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Why Write a Project Plan? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Who Writes the Project Plan?. . . . . . . . . . . . . . . . . . . . . . . . . . 48
What Goes into the Project Plan? . . . . . . . . . . . . . . . . . . . . . . 48
The Project Plan Unwrapped . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Is It Worth It? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4 Requirements Elicitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Stakeholder Analysis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
viii
Software Engineering Handbook
Elicitation Techniques. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
A Checklist for Requirements Management . . . . . . . . . . . . . . 71
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5 Designing User-Oriented Systems . . . . . . . . . . . . . . . . . . . . . . 75
Secrets of the Trade. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Tailoring the System to End Users’ Needs . . . . . . . . . . . . . . . 76
Drumming Up Enthusiasm . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Distributing Data to Its Rightful Owner — the End User . . . 80
The Systems Choice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6 The Outsourcing Decision . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Phase 1: Analysis and Evaluation. . . . . . . . . . . . . . . . . . . . . . . 85
Phase 2: Needs Assessment and Vendor Selection . . . . . . . . 85
Phase 3: Implementation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
An Outsourcing Example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Should You Outsource? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Questions to Ask Potential Outsourcing Companies . . . . . . 94
Outsourcing Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
7 Methodology Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
A Brief Summary of Common Generic Methodologies . . . . . 97
Rating Your Methodology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Determining Your Methodology’s Rating . . . . . . . . . . . . . . . . 107
8 Selecting and Integrating a Repository for Effective
Resource Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
Effective Information Resource Management . . . . . . . . . . . . 109
How to Use This Chapter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Scoring the Repository Workbench. . . . . . . . . . . . . . . . . . . . . 126
9 Structured Methodology Review . . . . . . . . . . . . . . . . . . . . . . . 129
Rapid Applications Development (RAD). . . . . . . . . . . . . . . . . 131
Joint Application Design (JAD) . . . . . . . . . . . . . . . . . . . . . . . . 133
Group Support Systems (GSS) . . . . . . . . . . . . . . . . . . . . . . . . . 134
CASE Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
A Variety of Structured Methodologies. . . . . . . . . . . . . . . . . . 135
Extreme Programming. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
10 Extreme Programming Concepts . . . . . . . . . . . . . . . . . . . . . . . 139
The Rules of Extreme Programming . . . . . . . . . . . . . . . . . . . . 139
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
11 Development Before the Fact Technology . . . . . . . . . . . . . . . 147
ix
Contents
What Is Wrong with Systems . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Development Before the Fact. . . . . . . . . . . . . . . . . . . . . . . . . . 149
The Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
Integrated Modeling Environment. . . . . . . . . . . . . . . . . . . . . . 152
Primitive Structures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
Defined Structures. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
FMaps, TMaps, and Their Integration. . . . . . . . . . . . . . . . . . . 159
Universal Primitive Operations . . . . . . . . . . . . . . . . . . . . . . . . 160
Performance Considerations . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Inherent Integration with System-Oriented Objects . . . . . . . 164
12 The Design Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
The Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
The Details of Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
Logical and Physical Design. . . . . . . . . . . . . . . . . . . . . . . . . . . 175
The Systems Specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
A System Spec Walkthrough. . . . . . . . . . . . . . . . . . . . . . . . . . . 179
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
13 Object-Oriented Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
What Is OO? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
OO from the Bottom Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
OOAD Methodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
OOAD Simplified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
14 User Interface Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
User Interface (UI) Design Principles . . . . . . . . . . . . . . . . . . . 199
The UI Design Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
Designing Effective Input and Output . . . . . . . . . . . . . . . . . . . 203
Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
Summary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
15 Software Re-Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
What is Software Re-Engineering? . . . . . . . . . . . . . . . . . . . . . . 211
Why We Need Software Re-Engineering . . . . . . . . . . . . . . . . . 211
Software Re-Engineering Strategies. . . . . . . . . . . . . . . . . . . . . 212
The Process of Re-Engineering . . . . . . . . . . . . . . . . . . . . . . . . 213
Forward Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
16 Software Testing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
What Is Software Testing?. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
Software Testing Strategy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
Test Automation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 225
Practical Approach to Automated Software Testing. . . . . . . 227
Using Automated Testing Tools . . . . . . . . . . . . . . . . . . . . . . . . 228
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229
x
Software Engineering Handbook
17 The Process of EDP Auditing . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Organizing Your Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
Systemic Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
Security and Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
Ergonomics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
Customer Service. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
Legality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
18 The Management of Software Maintenance . . . . . . . . . . . . . . 245
The Maintenance Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
Types of Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 247
Maintenance Costs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
A Model for Maintenance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
Managing Maintenance Personnel. . . . . . . . . . . . . . . . . . . . . . 250
Measuring Effectiveness . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
Controlling Maintenance Requests . . . . . . . . . . . . . . . . . . . . . 251
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
19 The Science of Documentation . . . . . . . . . . . . . . . . . . . . . . . . 255
What Exactly Is Documentation? . . . . . . . . . . . . . . . . . . . . . . . 255
Methods and Standards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 258
Generating Documentation the Right Way . . . . . . . . . . . . . . . 259
Maintaining Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
20 Survey on IT Productivity and Quality . . . . . . . . . . . . . . . . . . 271
Planning for Quality . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
The Process of Measurement. . . . . . . . . . . . . . . . . . . . . . . . . . 273
The Original Metric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
The HP Way. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
The Function Point Advantage. . . . . . . . . . . . . . . . . . . . . . . . . 278
The Quality Equation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
SECTION II . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283
21 Putnam’s Software Equation and SLIM . . . . . . . . . . . . . . . . . . 287
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
22 The COCOMO II Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Application Composition Model . . . . . . . . . . . . . . . . . . . . . . . 291
The Early Design Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
The Post-Architecture Model . . . . . . . . . . . . . . . . . . . . . . . . . . 293
xi
Contents
23 Putnam’s Cost Estimation Model. . . . . . . . . . . . . . . . . . . . . . . 297
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
24 Malcolm Baldrige Quality Award . . . . . . . . . . . . . . . . . . . . . . . 299
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
25 Zachman’s Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
26 Linkman’s Method for Controlling Programs through
Measurement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
27 Kellner’s Nontechnological Issues in Software
Engineering. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
28 Martin and Carey’s Survey of Success in Converting
Prototypes to Operational Systems . . . . . . . . . . . . . . . . . . . . 313
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
29 Putnam’s Trends in Measurement, Estimation,
and Control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 318
30 Sprague’s Technique for Software Configuration
Management in a Measurement-Based Software
Engineering Program. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Procedures for Developing an SCM Process . . . . . . . . . . . . . 321
31 Corbin’s Methodology for Establishing a Software
Development Environment. . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 325
32 Couger’s Bottom-Up Approach to Creativity
Improvement in IS Development . . . . . . . . . . . . . . . . . . . . . . . 329
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
xii
Software Engineering Handbook
33 Shetty’s Seven Principles of Quality Leaders . . . . . . . . . . . . . 333
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 333
34 Simmons’ Statistics Concerning Communications’
Effect on Group Productivity . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
35 Gould’s Points on Usability. . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
Procedures/Issues/Policies: . . . . . . . . . . . . . . . . . . . . . . . . . . . 341
36 Prescott’s Guidelines for Using Structured Methodology . . . 345
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 345
37 Kemayel’s Controllable Factors in Programmer
Productivity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
38 AT&T’s “Estimeeting” Process for Developing Estimates . . . 355
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 356
39 Burns’ Framework for Building Dependable Systems. . . . . . 361
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 361
40 Avison’s Multiview Meta-Methodology . . . . . . . . . . . . . . . . . . 365
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
41 Byrne’s Reverse Engineering Technique. . . . . . . . . . . . . . . . . 369
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 370
42 Prieto-Diaz’ Reusability Model . . . . . . . . . . . . . . . . . . . . . . . . . 373
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
43 Farbey’s Considerations on Software Quality Metrics
during the Requirements Phase. . . . . . . . . . . . . . . . . . . . . . . . 377
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 377
44 Redmill’s Quality Considerations in the Management
of Software-Based Development Projects . . . . . . . . . . . . . . . . 381
xiii
Contents
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 381
45 Contel’s Software Metrics in the Process Maturity
Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
46 Kydd’s Technique to Induce Productivity through
Shared Information Technology . . . . . . . . . . . . . . . . . . . . . . . 389
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 389
47 Bellcore’s Software Quality Metrics . . . . . . . . . . . . . . . . . . . . 391
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 391
48 Keyes’ Value of Information . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 393
49 Pfleeger’s Method for CASE Tool Selection Based
on Process Maturity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 395
50 McCabe’s Complexity Metric . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 399
51 Halstead’s Effort Measure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 401
52 DEC’s Overview of Software Metrics. . . . . . . . . . . . . . . . . . . . 403
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 403
53 Hewlett Packard’s TQC (Total Quality Control)
Guidelines for Software Engineering Productivity . . . . . . . . 407
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
54 Motorola’s Six Sigma Defect Reduction Effort . . . . . . . . . . . . 411
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
Procedures/Issues/Policies . . . . . . . . . . . . . . . . . . . . . . . . . . . 411
55 Lederer’s Management Guidelines for Better Cost
Estimating. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413
xiv
Software Engineering Handbook
56 Kanter’s Methodology for Justifying Investment
in Information Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
57 The “Make–Buy” Decision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 421
58 Software Selection from Multiple Packages . . . . . . . . . . . . . . 423
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 423
59 The Boehm COCOMO Model . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
60 IEEE Standard Dictionary of Measures to Produce
Reliable Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 427
61 IEEE Framework for Measures . . . . . . . . . . . . . . . . . . . . . . . . . 435
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
Procedures/Issues/Policies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 435
62 Gillies’ Method for Humanization of the Software
Factory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439
Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440
63 Pfleeger’s Approach to Software Metrics Tool
Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
Procedures/Issues/Policie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 443
64 Maiden’s Method for Reuse of Analogous Specifications
through Human Involvement in Reuse Process . . . . . . . . . . . 447
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447
Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 448
65 Tate’s Approaches to Measuring Size of Application
Products with CASE Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Abstract. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451
Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452
SECTION III . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455
Appendices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457
xv
Contents
Appendix A System Service Request Form. . . . . . . . . . . . . . . . . . 459
Appendix B Project Statement of Work. . . . . . . . . . . . . . . . . . . . . 461
Appendix C Feasibility Study Template . . . . . . . . . . . . . . . . . . . . 489
Appendix D Sample Cost/Benefit Analysis Worksheets . . . . . . . 499
Appendix E Sample Business Use Case . . . . . . . . . . . . . . . . . . . . 509
Appendix F Sample Project Plan . . . . . . . . . . . . . . . . . . . . . . . . . . 519
Appendix G Sample SRS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
Appendix H Sample Survey. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
Appendix I Sample Architectural Design. . . . . . . . . . . . . . . . . . . 579
Appendix J Sample SDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
Appendix K Sample Data Dictionary . . . . . . . . . . . . . . . . . . . . . . . 639
Appendix L Sample OO SDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Appendix M Sample Class Dictionary . . . . . . . . . . . . . . . . . . . . . . 749
Appendix N Control Sheet. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 753
Appendix O Test Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 755
Appendix P QA Handover Document . . . . . . . . . . . . . . . . . . . . . . 795
Appendix Q Software Metrics Capability Evaluation
Questionnaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 797
Appendix R IT Staff Competency Survey . . . . . . . . . . . . . . . . . . . 819
Appendix S Function Point Counting Guide. . . . . . . . . . . . . . . . . 825
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 859