Software Engineering


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