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
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
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
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
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
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
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
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
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
Leave us your details we will revert you as soon as possible.
Copyright © 2014 - All Rights Reserved - nimtweb.org Google
Powered by Nasbar Infotech