Amazon cover image
Image from Amazon.com
Image from Coce

Software Engineering Fundamentals

By: Contributor(s): Material type: TextPublication details: New York : Oxford University Press, 1996.Description: xxvi, 661 p. : ill. ; 24 cmISBN:
  • 9780195681468 (pb)
Subject(s): DDC classification:
  • 005.1
Contents:
1 Overview of System and Software Development Life Cycles . . . 5 1.0 OBJECTIVES . . . 5 1.1 INTRODUCTION . . . 6 1.2 SYSTEMS: DEFINITION AND DISCUSSION . . . 6 1.2.1 System Characteristics . . . 6 Synergism . . . 6 Adaptability . . . 7 Compromise . . . 7 1.2.2 Recurring Problems and Suggested Solutions in Large System Developments . . . 8 Major Problems in System Development . . . 8 < Suggested Solutions . . . 9 1.2.3 System Engineering . 10 1.2.4 System Analysis . . . 11 1 2.5 System Architecture and Design . . . 12 1.3 SYSTEM-LEVEL PROJECT PLANNING 13 1.3.1 System Development Plan . . . 15 Task Description . . . 15 2 Resource and Schedule Estimation . . . 16 Staffing . . . 16 Technical Reviews . . . 17 Risk Management . . . 17 Change Controi . . . 18 Appendices and References . . . 20 1.3.2 Software Development Plan . . . 20 1.4 SYSTEM DEVELOPMENT LIFE CYCLE DEFINITION AND OVERVIEW .20 1.4.1 System Development Life Cycle Models . . . 21 1.4.2 DOD System Development Life Cycle . . . 21 1.4.3 MIS-Oriented System Development Life Cycle . . . 23 Phase 1: Survey the Situation . . . 24 Phase 2: Study the Current System . . . 26 Phase 3: Define New System Requirements . . . 26 Phase 4: Deveiop Logical Design . . . 30 Phase 6: Deveiop Physical Design . . . 30 Phase 6: Construct New System . . . 31 Phase 7: Instali or Deiiver New System . . . 31 Phase 8: Maintain System and Audit Performance . . . 31 1.5 SOFTWARE DEVELOPMENT LIFE CYCLE; BRIEF OVERVIEW . 31 Phase 1: Requirements Analysis . . . 32 Phase 2: Design Specification . . . 34 Phase 3: Coding and Unit Testing . . . 34 Phase 4: Test and Integration . . . 35 Phase 5: Acceptance Test . . . 35 System and Software Maintenance . . . 36 1.6 SWDLC MODELS 36 1.6.1 Generic Waterfall Model . . . 36 1.6.2 DOD Model . 38 1.6.3 Spiral Model 39 1.6.4 NASA Model . 40 1.6.5 Rapid Throwaway Prototype Model . . . 40 1.6.6 Incremental Development Model . . . 40 1.6.7 Evolutionary Prototype Model . . . 41 1.6.8 Reuse and Automated Development Models . . . 41 1.6.9 Resource-and Sctiedule-Driven Model . . . 41 1.6.10 Cleanroom Approacti . . . 42 1.6.11 Comments on SWDLC Models . . . 42 1.6.12 Best Practice . . . 43 1.7 SOFTWARE ENGINEERING PROCESS . 43 1.8 GENERAL OBSERVATIONS ON SDLC AND SWDLC 44 1.9 CHAPTER SUMMARY 46 1.10 EXERCISES .47 REFERENCES .48 Case Studies . . . 50 2.0 OBJECTIVES 50 2.1 INTRODUCTION 50 3 2.2 CASE STUDY PROBLEM STATEMENTS .51 2.2.1 XYZ Project: Problem Statement . . . 51 2.2.2 ABC Project: Problem Statement . . . 54 2.3 XYZ PROJECT: ANALYSIS 56 2.3.1 XYZ Project: System Architecture . . . 57 Database Management . . . 63 Data Gathering ^ . . 63 Explicit Input Requirements . . . 64 Explicit Output Requirements . . . 64 Explicit Process Requirements . ; . 64 2.4 BIDDER'S PERSPECTIVE .66 2.4.1 The Proposal . . . 67 2.4.2 We Win . 70 2.5 CHAPTER SUMMARY . . . 74 2.6 EXERCISES . . . 74 Technical Planning . . . 76 3.0 OBJECTIVES 76 3.1 INTRODUCTION . . . 76 3.2 SOFTWARE DEVELOPMENT PLANNING . . . 78 3.2.1 Introduction . . . 79 3.2.2 Resource and Schedule Estimates 81 3.2.3 Organization and Staffing 81 3.2.4 Work Breakdown Structure, Work Packages, and Cost Accounts . . . 83 3.2.5 Technical Management and Control . . . 85 Change Management . . . 85 • Risk Containment . . . 86 Cost and Schedule Control . . . 86 Issue Resolution . . . 87 3.2.6 Standards and Procedures . . . 87 3.2.7 Reviews, Audits, and Walkthroughs . . . 89 3.2.8 Development Environment 89 3.2.9 Technical Performance Measurements . . . 90 3.2.10 Documentation . . . 91 3.2.11 Verification and Validation .92 3.2.12 Maintenance . . . 92 3.2.13 Human Factors . . . 93 3.2.14 Delivery, Installation, and Acceptance . . . 94 3.2.15 Appendices and References . . . 94 3.3 USE OF SDP AS TECHNICAL MANAGEMENT TOOL . 94 3.4 AHRIBUTE (METRICS) ESTIMATION . 97 3.5 AUTOMATED PLANNING TOOLS .98 3.6 MANAGEMENT, METHODOLOGY, AND METRICS . . . 99 3.7 CHAPTER SUMMARY . 100 3.8 UNIT ONE SUMMARY 100 3.9 EXERCISES 102 REFERENCES 103 UNIT 2 Analysis and Design 4 Software Specifica"tions and Requirements Analysis . . . 107 4.0 OBJECTIVES 107 4.1 INtRbDUCTION 107 4.2 PEOPLE INVOLVED IN SOFTWARE DEVELOPMENT PROCESS . . 109 4.3 SOFTWARE REQUIREMENTS SPECIFICATION (SRS) . . . 110 4.3.1 Introductory Section of SRS (Section 1) . . . Ill 4.3.2 General Description Section of SRS (Section 2) . . . 112 4.3.3 Specific Requirements Section of SRS (Section 3) . . . 113 External Interface Requirements . . . 116 Performance Requirements . . . 117 Overall Design Constraints . . . 117 Attributes . . . 117 4.3.4 Software Requirements Classification . . . 117 4.3.5 Software Requirements Analysis . . . 118 Structured ApfDroach to Requirements Analysis . . . 119 4.4 EXAMPLES OF SRS PREPARATION . . . 120 Example 4.4.1 ABC Project . . . 120 Requirements . . . 121 Requirements Analysis . . . 122 Actual SRS Document . . . 124 Example 4.4.2 Truck and Driver Incident Report Project . . . 130 Problem Statement . . . 130 Clarificatibn of Problem Statement . . . 130 Section 3 of SRS Document . . . 131 Requirements Analysis . . . 137 4.5 OTHER SOFTWARE SPECIFICATION DOCUMENTS . . . 138 Softv/are Design Specification (SDS) . . . 138 Test and Integration Specification . . . 138 Software Performance Specification . . . 139 Maintenance Requirement Specification . . . 139 4.6 SOFTWARE SPECIFICATION ATTRIBUTES . 140 The SRS Must Be Correct . . . 140 The SRS Must Be Precise . . . 140 The SRS Must Be Unambiguous . . . 140 The SRS Must Be Complete . . . 141 The SRS Must Be Verifiable . . . 142 The SRS Must Be Consistent . . . 142 The SRS Must Be Understandable . . . 142 The SRS Must Be Modifiable . . . 142 The SRS Must Be Traceable . . . 143 The SRS Must Separate Whats from Hows . . . 144 The SRS Must Encompass the Entire System . . . 144 The SRS Must Encompass Its Operational Environment . . . 144 The SRS Must Describe the System as Seen by Users . . . 144 5 The SRS Must Be Tolerant of Incompleteness, Ambiguities, and Inconsistencies . . . 144 The SRS Must Be Localized . . . 144 4.7 CHAPTER SUMMARY . . . 145 4.8 EXERCISES . . . 145 REFERENCES . . . 146 Software Specification Tools . . . 147' 6 5.0 OBJECTIVES . . . 147 5.1 INTRODUCTION 147 5.2 DATA DICTIONARY . 148 5.3 DECISION SUPPORT TOOLS 151 5.4 DATA FLOW DIAGRAMS (DFD) . . . 154 5.5 FINITE STATE MACHINES (FSM) . 162 5.6 PETRI NETS . . . 168 5.6.1 Petrl Net State Space . . . 172 5.6.2 Using Petrl Net to Model System . . . 173 5.7 MATHEMATICAL LOGIC . . . 1 76 5.7.1 Problem Speclticotlcn Using Logic . . . 178 5.8 OPERATIONAL TIMELINES . . . 179 5.8.1 Development of OperoNonol Timeline . . . 180 5.8.2 Moving from Mode to Mode . . . 180 5.8.3 Operotlonol Procedures for Eoch System Mode . . . 180 Exomple 5.8.1 . . . 181 5.9 CHAPTER SUMMARY 182 5.10 EXERCISES . . . 182 REFERENCES . . . 184 Software Development Environment. . . 185 6.0 OBJECTIVES . 185 6.1 INTRODUCTION . 185 6.2 SOFTWARE DEVELOPMENT ENVIRONMENT CONFIGURATION . . . 187 6.3 SOFTWARE DEVELOPMENT PLATFORM (SDPF) . . . 189 6.3.1 Essentlol Tools In SDPF . 190 Operating Systems . . . 190 Programming Language(s) . . . 190 Compilers . . . 191 6.3.2 Very Useful Tools . . . 191 Editors . . . 191 Syntax-Directed Editors . . . 191 Linkers . . . 192. Code or Program Generators . . . 192 Debuggers . . . 192 Program Design Languages (PDL) . . . 192 7 6.3.3 Useful Tools . . . 193 Workbenches . . . 193 Integrated CASE Tools . . . 194 6.4 COMPUTER-AIDED SOFTWARE ENGINEERING TOOLS . . . 195 6.4.1 CASE Tools Categorization . . . 197 6.4.2 Groptric Modeling . . . 197 6.4.3 * CASE Repositories . . . 198 6.4.4 CASE Tools as Aid to Reengineering . . . 199 6.4.5 Impact of Object-Oriented Methodology on CASE Tools . . . 199 6.5 IDEAL SOFTWARE DEVELOPMENT PLATFORM . . . 200 6.6 CHAPTER SUMMARY . 201 6.7 EXERCISES .201 REFERENCES . 202 Software Design . . . 204 8 7.0 OBJECTIVES . . . 204 7.1 INTRODUCTION . 204 7.2 OVERVIEW OF SOFTWARE DESIGN PROCESS . . . 2a5 7.2.1 Design Requirements and Criteria . . . 206 7.2.2 Design Levels and Their Objectives . . . 208 7.2.3 input/Process/Output (IPO) Approach . . . 210 7.2.4 Design Tools . . . 211 7.3 SOFTWARE DESIGN . . . 212 7.3.1 Seven Generic Design Steps . . . 213 7.3.2 Component Design . . . 215 7.3.3 Preparing Software Design Specification (SDS) . . . 217 7.4 DESiGNEXAMPLE . 219 7.4.1 Design Process . . . 220 Selecting the Design Architecture . . . 220 Design Steps . . . 221 7.5 CHAPTER SUMMARY .228 7.6 EXERCISES 228. REFERENCES . 229 Object-Oriented Analysis and Design . . . 231 8.0 OBJECTIVES 231 8.1 INTRODUCTION 231 8.2 OBJECT-ORIENTED PARADIGM . 232 8.3 BASIC DEFINITIONS AND SYMBOLS . . . 235 8.3.1 Objects 236 8.3.2 Classes . . . 236 8.3.3 Relationship or Association among Objects . . . 238 Binary Associations . . . 238 n-ary Associations . . . 239 8.3.4 Structures, Inheritance, and Generalization . . . 239 8.3.5 Assembly Structure (or Whole-Part Structure) . . . 241 8.3.6 Combined Structures . . . 241 8.3.7 Comments on Structures . . . 242 8.4 OBJECT-ORIENTED ANALYSIS 245 8.4.1 Finding Objects and Classes . . . 246 8.4.2 Determining Attributes of Each Object/Class . . . 248 8.4.3 Defining/Identifying Senrices for Each Object/ Class . . . 250 8.4.4 Defining Messages for each Object/Class . . . 250 8.4.5 Time-Dependency Considerations . . . 252 8.4.6 Finding Association among Objects . . . 252 8.4.7 Checking Access Paths through Classes . . . 253 8.4.8 Complete OOA Document . . . 253 8.4.9 Final Clean-Up before Design Phase . . 254 8.5 OBJECT-ORIENTED DESIGN .255 8.5.1 Problem Domain . . . 256 8.5.2 Human Interfaces . . . 257 8.5.3 Task Management 258 8.5.4 Data Management . . . 259 8.5.5 Designing Senrices . . . 260 8.6 CHAPTER SUMMARY 260 8.7 EXERCISES 261 UNIT 3 REFERENCES . . . 263 Implementation and Maintenance 9 Fundamentals of Coding . . . 266 9.0 OBJECTIVES . 266 9.1 INTRODUCTION . 266 9.2 PROGRAMMING LANGUAGES . 267 Procedural Languages . . . 267 Nonprocedural Languages . . . 268 Imperative Languages . . . 268 Declarative Languages . . . 268 Functional Languages . . . 268 Logic Languages . . . 269 Object-Oriented Languages . . . 269 Visual Languages . . . 269 - Fourtti-Generation Languages (4GL) . . . 269 Fifth-Generation Languages (5GL) . . . 270 9.2.1 Specific Programming Language Features . . . 270 Preprocessor . . . 270 Naming Constraints . . . 270 Named Constants . . . 270 User-Defined Data Type . . . 271 Subprograms . . . 271 Recursive Subprograms . . . 272 Scoping . . . 272 Available Operations . . . 272 Variety of Control Structures . . . 272 Data Structure Support . . . 273 Data Abstraction and information Hiding . . . 273 Memory Aiiocation . . . 273 File Handling Utilities . . . 273 Access to Other System Utilities . . . 273 Compilers . ! . 274 Debuggers . . . 274 Programming Language Ubrary . . . 274 Exception Handling . . . 274 Real-Time Considerations . . . 275 Concurrency Considerations . . . 275 Poralieiism Considerations ... 275 9.2.2 Selecting a Programming Language . . . 275 9.3 PROGRAMMING STYLE AND PROGRAM QUALITY . . . 276 9.3.1 Simple Style Rules . . . 276 9.3.2 Comment Statements . . . 278 9.3.3 Program Quality . . . 279 Readability, Understandabiiity, and Comprehensibiiity (RUC) . . . 279 Logical Structure . . . 280 Physical Layout . . . 280 Robustness . . . 280 CPU Efficiency (Speed of Execution) . . . 280 Memory Efficiency . . . 280 Complexity . . . 281 Human Factors . . . 281 System interfaces . . . 281 Reusable Code . . . 281 9.3.4 Quantifying Program Quality 281 9.4 COMPLETE PROGRAMMING EXAMPLE . . . 283 9.4.1 Top-Level Design Specifications . . . 284 9.4.2 Analysis of Preliminary Design . . . 286 9.4.3 Main Data Structures . . . 286 9.4.4. High-Level Program Structure . . . 287 9.4.5 Detailed Design Description . . . 287 Utility Subprograms . . . 288 9.4.6 Program Development Process . . . 294 9.5 CHAPTER SUMMARY . 295 9.6 EXERCISES . . . 295 10 REFERENCES . . . 297 Software System Test and Integration . . . 298 10.0 OBJECTIVES . 298 10.1 INTRODUCTION . 299 10.2 BASIC CONCEPTS IN TESTING . . . 300 10.2.1 Need for Planning . . . 300 10.2.2 Need for Discipline and Control . . . 301 11 10.2.3 Software Verification and Validation . . . 302 10.2.4 Using Reiiobility Modeis in Testing . . . 303 10.2.5 Software Engineers Find Careers in Testing . . . 304 10.3 OVERVIEW OF SYSTEM AND SOFTWARE TEST AND INTEGRATION 304 10.4 INCREMENTAL BUILD OF MODULES INTO SYSTEMS . . 307 10.5 TEST AND INTEGRATION PLAN . . . 311 10.6 BUILD TEST PLAN AND SPECIFICATION . . .314 Test Design Specification Document . . . 317 Buiid Test Cose Specification Document . . . 317 Buiid Test Case Procedure Document . . . 318 Buiid Test Log Document . . . 318 Build Test Anomaiy Document . . . 319 Buiid Test Summary Document .. . . 319 10.7 PERSPECTIVES ON BUILD TESTING . . . 320 10.8 ALPHA AND BETA TESTING . 321 10.9 CHAPTER SUMMARY 322 10.10 EXERCISES . . 323 REFERENCES . . . 323 Module Level Testing . . . 324 11.0 OBJECTIVES . . . 324 11.1 INTRODUCTION . 324 11.2 MODULE TEST PLANNING .325 11.2.1 Test Requirement Matrices . . . 325 11.2.2 Module Test Pian . . . 327 11.3 STATIC TESTING 329 11.3.1 Static Testing Functions . . . 329 11.4 DYNAMIC TESTING . 331 11.4.1. Block Box or Functional Testing . . . 331 Example 11.4.1 Black Box Testing . . . 334 11.4.2 Wtilte Box Testing 340 Example 11.4.2 Basic Blocks . . . 345 Computing Cyciomatic Complexity . . . 345 11.4.3 Dynamic Test Functions Tools . . . 349 11.5 TEST CASE EXECUTION .350 11.5.1 Test Log Document . . . 351 11.5.2 Test Anomaly or Test Incident Document . . . 351 11.5.3 Test Summary Document . . . 352 11.6 FORMAL TESTING .352 11.6.1 Correctness of Program Structures . . 355 11.6.2 Iteration Termination . . . 358 . 11.6.3 Correctness of Subprogram Calls . . . 360 11.6.4 Remarks on Formal Testing .361 11.7 PERSPECTIVES ON MODULE TESTING . 362 11.8 CHAPTER SUMMARY 363 11.9 EXERCISES 364 REFERENCES 367 12 Debugging . . . 368 12.0 OBJECTIVES .368 12.1 INTRODUCTION . . . 368 12.2 PROGRAM ERRORS (BUGS) 369 Syntax Errors . . . 369 Run-Time Errors . . . 369 Logic Errors-. . . 369 Inherited Errors . . . 370 External Errors . . . 370 12.3 DEBUGGING PROCESS 370 12.3.1 Information Gathering . . . 370 12.3.2 Fault Isoiation . . . 371 Binary Partition Approach . . . 371 Structured Question and Answer Approach . . . 372 invoiving Others Approach . . . 372 New Test Case Approach . . . 373 12.3.3 Fault Confirmation . . 373 Example 12.3.1 . . . 373 12.3.4 Documentation . .374 12.3.5 Fixing the Fault . . . 375 12.3.6 New Testing after Each Correction . . . 376 12.4 PERSPECTIVES ON DEBUGGING 376 12.5 DEBUGGING TOOLS .377 12.6 AN EXAMPLE 377 12.6.1 Test Cose and Results . . . 378 12.6.2 Correcting Program Faults . . . 379 12.6.3 New Testing . . .381 12.7 CHAPTER SUMMARY 381 12.8 EXERCISES .381 13 Software Maintenance and Maintainability . . . 382 13.0 OBJECTIVES 382 13.1 INTRODUCTION . 382 13.2 SOFTWARE MAINTENANCE 383 13.2.1 Maintenance Support Documents/Tools . . 385 13.2.2 Using Support Documentation . . '. 386 13.3 SOFTWARE MAINTENANCE PROCESS 387 13.4 maintenance RESOURCE ESTIMATION .390 13.5 directly SPECIFIED MAINTENANCE AnRIBUTES . 392 13.6 REVERSE ENGINEERING 393 13.7 REENGINEERING SOFTWARE PRODUCT . 394 13.8 CHAPTER SUMMARY 396 13.9 EXERCISES 396 REFERENCES 397 UNIT 4 Software Metrics or Attributes 14 Software Attributes (Metrics) and TIneir Estimation . . . 400 14.0 OBJECTIVES 400 14.1 INTRODUCTION 400 14.2 IDENTIFICATION RELATED AHRIBUTES . . . 402 14.3 SIZE-RELATED AHRIBUTES .403 14.3.1 Function Point Attribute Estimation 404 Example 14.3.1 (Order-Entry Problem) . . . 407 Alternative Approach to Function Point Counting . . . 4C Example 14.3.2 . . . 410 14.3.2 Feature Point Estimation . . .410 Example 14.3.3 (Display Function) . . . 411 14.3.3 Converting Function Point Estimate to SLOC . . . 412 14.3.4 Direct Source Lines of Code Estimation 413 Example 14.3.4 (Display Function Revisited) . . . 415 Example 14.3.5 (Special Purpose Operating System) . . . 416 14.4 DESIGN AND DEVELOPMENT AHRIBUTES . 418 14.5 SOFTWARE QUALITY AHRIBUTES . . . 424 14.6 COMPLEXITY-RELATED ATTRIBUTES .427 14.7 EXECUTION TIME-RELATED AHRIBUTES 428 14.8 TEST-RELATED AHRIBUTES 428 14.9 DOCUMENTATION-RELATED AnRIBUTES . . . 428 14.10 PERFORMANCE-RELATED AHRIBUTES . 430 14.11 LABOR-RELATED AnRIBUTES . 431 14.12 OPERATING ENVIRONMENT ATTRIBUTES . . . 432 14.13 DATA COLLECTION 434 14.13.1 Establishing a Data Collection Program . . . 434 14.14 CHAPTER SUMMARY 435 14.15 EXERCISES 436 15 REFERENCES 437 Software Development Resouroe Estimation . . . 438 15.0 OBJECTIVES 438 15.1 INTRODUCTION 439 15 2 SOFTWARE PRODUCT COST AND SCHEDULE ESTIMATION . . . 440 15.3 COST AND SCHEDULE ESTIMATION MODELS . 443 15.3.1 constructive cost Models (COCOMO) 444 Basic COCOMO Model . . . 445 Intermediate COCOMO Model . . . 446 15.3.2 Estimation Process 449 Organic Mode Characteristics . . . 449 Semidetached Mode Characteristics . . . 450 Embedded Mode Characteristics . . . 450 Exampie 15.3.1 . . .451 15.3.3 Comments . . . 455 15.4 grassroots RESOURCE AND SCHEDULE ESTIMATION . 456 ■ Exampie 15.4.1 (Resource Estimation) . . . 456 Exampie 15.4.2 (Scheduie Estimation) . . . 458 15.5 CLOSING COMMENTS . . . 461 15.6 CHAPTER SUMMARY . . . 462 15.7 EXERCISES . . . 463 16 REFERENCES . . . 466 Software Development Risk Assessment and Cantainment . . . 467 16.0 OBJECTIVES . . . 467 16.1 INTRODUCTION . .. 468 16.2 SOFTWARE DEVELOPMENT RISK AREAS . . . 468 . 16.3 A RISK MODEL . . . 470 164 risk CONTAINMENT AND RISK MANAGEMENT . . . 473 16 5 technical PERFORMANCE MEASUREMENTS . . . 475 16 6 EXAMPLES TO ILLUSTRATE SOFTWARE DEVELOPMENT RISK ANALYSIS . . . 476 Exampie 16.6.1 . . . 476 Exampie 16.6.2 . . 482 16.7 CHAPTER SUMMARY . . . 484 16.8 EXERCISES . . . 485 17 REFERENCES . . . 486 Reliability . . . 487 17.0 OBJECTIVES . . . 487 17.1 INTRODUCTION . .. 487 17.2 OVERVIEW . . . 490 17.3 review OF PROBABILITY THEORY . . . 491 17.3.1 Axiomatic Probability 492 Exampie 17.3.1 . . . 492 Axioms of Probabiiity . . . 492 17.3.2 Conditional Prolxibillty . . . 493 Bayes Ruies . . . 493 17.3.3 Rondom Vorlobles, Prolsobility Distributions, ond Density Functions . . 494 17.3.4 Distribution Functions . . . 495 Binomial Distribution . . . 495 Exompie 17.3.2 . . . 496 Poisson Distribution . . . 496 Continuous Rondom Voriobies . . . 496 Normal Distribution . . . 497, Exponentiai Distribution . . . 497 Uniform Distribution . . . 498 17.3.5 Joint Distribution of Random Voriobies . . . 498 17.3.6 Expectotion of Rondom Voriobies—Moments . 500 17.3.7 Markov Process . . . 501 Exampie 17.3.3 . . . 503 17.4 RELiABiLlTY DEFiNiTiONS . . . 504 17.5 RELiABiLlTY MODELS . . . 507 17.6 SOFTWARE FAULTS . . . 509 17.7 DESIGN RULES . . . 512 17.8 SYSTEM RELiABiLlTY AND AVAILABILITY REQUIREMENTS . . . 513 Exampie 17.8.1 . . .514 17.8.1 Avoiiobiiity . . . 516 Example 17.8.2 . . .518 Example 17.8.3 . . .519 17.9 APPLICATIONS OF A SOFTWARE RELIABILITY MODEL . . . 519 Example 17.9.1 . . . 523 17.10 REDUNDANCY AND FAULT TOLERANCE . . . 526 Example 17.10.1 . . . 530 17.11 FAILURE MODES AND EFFECTS AND OTHER ANALYSIS TOOLS . . . 531 17.12 CHAPTER SUMMARY . . . 533 17.13 EXERCISES . 535 REFERENCES . . . 536 18 Software Quality and Quality Assurance . . . 537 18.0 OBJECTIVES . 537 18.1 INTRODUCTION . . . 537 18.2 SOFTWARE QUALITY ASSURANCE PLANNING 540 18.2.1 Reviews OS Quoiity Gotes 540 18 2.2 Generic Softwore Quoiity Assuronce Plon , 541 18.3 SOFTWARE QUALITY ASSURANCE PROCESS . . . 542 18.4 SOFTWARE QUALITY ATTRIBUTES 544 18.4.1 Stotisticoi Softwore Quoiity Assuronce 545 18.5 GUIDELINES AND CHECKLISTS 549 18.5.1 Using Checklists . 550 18.6 SOFTWARE SAFETY . 554 18.7 CHAPTER SUMMARY . 554 18.8 EXERCISES 555 REFERENCES .556 UNITS Special Topics 19 Real-Time Software . . . 559 19.0 OBJECTIVES . . . 559' 19.1 INTRODUCTION . . . 559 19.2 REAL-TIME REQUIREMENTS SPECIFICATION . . 561 Example 19.2.1 . . . 563 19.2.1 Execution Time Estimation . . . 564 Example 19.2.2 . . . 565 19.3 DESIGN GUIDELINES FOR REAL-TIME SOFTWARE .566 19.4 SCHEDULABILITY CONCERNS .568 Example 19.4.1 . . .570 19.4.1 Algorlttrm to Compute Wn(t) . . .572 Example 19.4.2 . . .573 19.4.2 Task Synctrronlzatlon . . . 575 Example 19.4.3 . . . 575 Example 19.4.4 . . . 576 Priority Inversion . . .577 19.5 TESTING REAL-TIME SOFTWARE . . . 578 19.6 CHAPTER SUMMARY . . . 580 19.7 EXERCISES . . . 581 20 REFERENCES . . . 583 Hunnan Factors in Software Engineering . . . 584 20.0 OBJECTIVES . . . 584 20.1 INTRODUCTION . . . 584 20.2 HUMAN FACTORS HISTORY . . . 586 20.3 HCI REQUIREMENTS AND DESIGN PROCESS . 586 20.3.1 System Function Allocation (Step 1) . . , 588 20.3.2 Operational Timelines (Step 2) . . . 588 20.3.3 Operational Task Analysis (Step 3) . . . 589 20.3.4 HCI Design (Step 4) . . . 590 System Failures . . .591 Help Packages . . . 591 Response Times . . .591 Operator Characteristics . . . 592 External Environment . . . 592 General Guidelines . . . 592 Display Guidelines . . . 593 Operator Command Guidelines . . . 593 20.3.5 HCI Testing (Step 5) . . . 593 20.4 THE human AS INFORMATION SYSTEM COMPONENT 594 20.5 OPERATOR TASK DEVELOPMENT . . . 596 20.5.1 Operator Requirements Specification . . . 597 20.6 OPERATOR CHARACTERiSTiCS . . . 598 20.7 CHAPTER SUMMARY . . . 599 20.8 EXERCiSES . . . 599 REFERENCES . . . 600
Tags from this library: No tags from this library for this title. Log in to add tags.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Cover image Item type Current library Home library Collection Shelving location Call number Materials specified Vol info URL Copy number Status Notes Date due Barcode Item holds Item hold queue priority Course reserves
General Books Central Library, Sikkim University General Book Section 005.1 BEH/S (Browse shelf(Opens below)) Available P19519
General Books Central Library, Sikkim University General Book Section 005.1 BEH/S (Browse shelf(Opens below)) Available P19517
General Books Central Library, Sikkim University General Book Section 005.1 BEH/S (Browse shelf(Opens below)) Available P19518
Total holds: 0

1
Overview of System and Software Development Life
Cycles . . . 5
1.0 OBJECTIVES . . . 5
1.1 INTRODUCTION . . . 6
1.2 SYSTEMS: DEFINITION AND DISCUSSION . . . 6
1.2.1 System Characteristics . . . 6
Synergism . . . 6
Adaptability . . . 7
Compromise . . . 7
1.2.2 Recurring Problems and Suggested Solutions in Large
System Developments . . . 8
Major Problems in System Development . . . 8 <
Suggested Solutions . . . 9
1.2.3 System Engineering . 10
1.2.4 System Analysis . . . 11
1 2.5 System Architecture and Design . . . 12
1.3 SYSTEM-LEVEL PROJECT PLANNING 13
1.3.1 System Development Plan . . . 15
Task Description . . . 15
2
Resource and Schedule Estimation . . . 16
Staffing . . . 16
Technical Reviews . . . 17
Risk Management . . . 17
Change Controi . . . 18
Appendices and References . . . 20
1.3.2 Software Development Plan . . . 20
1.4 SYSTEM DEVELOPMENT LIFE CYCLE DEFINITION AND
OVERVIEW .20
1.4.1 System Development Life Cycle Models . . . 21
1.4.2 DOD System Development Life Cycle . . . 21
1.4.3 MIS-Oriented System Development Life Cycle . . . 23
Phase 1: Survey the Situation . . . 24
Phase 2: Study the Current System . . . 26
Phase 3: Define New System Requirements . . . 26
Phase 4: Deveiop Logical Design . . . 30
Phase 6: Deveiop Physical Design . . . 30
Phase 6: Construct New System . . . 31
Phase 7: Instali or Deiiver New System . . . 31
Phase 8: Maintain System and Audit Performance . . . 31
1.5 SOFTWARE DEVELOPMENT LIFE CYCLE; BRIEF OVERVIEW . 31
Phase 1: Requirements Analysis . . . 32
Phase 2: Design Specification . . . 34
Phase 3: Coding and Unit Testing . . . 34
Phase 4: Test and Integration . . . 35
Phase 5: Acceptance Test . . . 35
System and Software Maintenance . . . 36
1.6 SWDLC MODELS 36
1.6.1 Generic Waterfall Model . . . 36
1.6.2 DOD Model . 38
1.6.3 Spiral Model 39
1.6.4 NASA Model . 40
1.6.5 Rapid Throwaway Prototype Model . . . 40
1.6.6 Incremental Development Model . . . 40
1.6.7 Evolutionary Prototype Model . . . 41
1.6.8 Reuse and Automated Development Models . . . 41
1.6.9 Resource-and Sctiedule-Driven Model . . . 41
1.6.10 Cleanroom Approacti . . . 42
1.6.11 Comments on SWDLC Models . . . 42
1.6.12 Best Practice . . . 43
1.7 SOFTWARE ENGINEERING PROCESS . 43
1.8 GENERAL OBSERVATIONS ON SDLC AND SWDLC 44
1.9 CHAPTER SUMMARY 46
1.10 EXERCISES .47
REFERENCES .48
Case Studies . . . 50
2.0 OBJECTIVES 50
2.1 INTRODUCTION 50
3
2.2 CASE STUDY PROBLEM STATEMENTS .51
2.2.1 XYZ Project: Problem Statement . . . 51
2.2.2 ABC Project: Problem Statement . . . 54
2.3 XYZ PROJECT: ANALYSIS 56
2.3.1 XYZ Project: System Architecture . . . 57
Database Management . . . 63
Data Gathering ^ . . 63
Explicit Input Requirements . . . 64
Explicit Output Requirements . . . 64
Explicit Process Requirements . ; . 64
2.4 BIDDER'S PERSPECTIVE .66
2.4.1 The Proposal . . . 67
2.4.2 We Win . 70
2.5 CHAPTER SUMMARY . . . 74
2.6 EXERCISES . . . 74
Technical Planning . . . 76
3.0 OBJECTIVES 76
3.1 INTRODUCTION . . . 76
3.2 SOFTWARE DEVELOPMENT PLANNING . . . 78
3.2.1 Introduction . . . 79
3.2.2 Resource and Schedule Estimates 81
3.2.3 Organization and Staffing 81
3.2.4 Work Breakdown Structure, Work Packages, and Cost
Accounts . . . 83
3.2.5 Technical Management and Control . . . 85
Change Management . . . 85 •
Risk Containment . . . 86
Cost and Schedule Control . . . 86
Issue Resolution . . . 87
3.2.6 Standards and Procedures . . . 87
3.2.7 Reviews, Audits, and Walkthroughs . . . 89
3.2.8 Development Environment 89
3.2.9 Technical Performance Measurements . . . 90
3.2.10 Documentation . . . 91
3.2.11 Verification and Validation .92
3.2.12 Maintenance . . . 92
3.2.13 Human Factors . . . 93
3.2.14 Delivery, Installation, and Acceptance . . . 94
3.2.15 Appendices and References . . . 94
3.3 USE OF SDP AS TECHNICAL MANAGEMENT TOOL . 94
3.4 AHRIBUTE (METRICS) ESTIMATION . 97
3.5 AUTOMATED PLANNING TOOLS .98
3.6 MANAGEMENT, METHODOLOGY, AND METRICS . . . 99
3.7 CHAPTER SUMMARY . 100
3.8 UNIT ONE SUMMARY 100
3.9 EXERCISES 102
REFERENCES 103
UNIT 2
Analysis and Design
4
Software Specifica"tions and Requirements Analysis . . . 107
4.0 OBJECTIVES 107
4.1 INtRbDUCTION 107
4.2 PEOPLE INVOLVED IN SOFTWARE DEVELOPMENT PROCESS . . 109
4.3 SOFTWARE REQUIREMENTS SPECIFICATION (SRS) . . . 110
4.3.1 Introductory Section of SRS (Section 1) . . . Ill
4.3.2 General Description Section of SRS (Section 2) . . . 112
4.3.3 Specific Requirements Section of SRS (Section 3) . . . 113
External Interface Requirements . . . 116
Performance Requirements . . . 117
Overall Design Constraints . . . 117
Attributes . . . 117
4.3.4 Software Requirements Classification . . . 117
4.3.5 Software Requirements Analysis . . . 118
Structured ApfDroach to Requirements Analysis . . . 119
4.4 EXAMPLES OF SRS PREPARATION . . . 120
Example 4.4.1 ABC Project . . . 120
Requirements . . . 121
Requirements Analysis . . . 122
Actual SRS Document . . . 124
Example 4.4.2 Truck and Driver Incident Report Project . . . 130
Problem Statement . . . 130
Clarificatibn of Problem Statement . . . 130
Section 3 of SRS Document . . . 131
Requirements Analysis . . . 137
4.5 OTHER SOFTWARE SPECIFICATION DOCUMENTS . . . 138
Softv/are Design Specification (SDS) . . . 138
Test and Integration Specification . . . 138
Software Performance Specification . . . 139
Maintenance Requirement Specification . . . 139
4.6 SOFTWARE SPECIFICATION ATTRIBUTES . 140
The SRS Must Be Correct . . . 140
The SRS Must Be Precise . . . 140
The SRS Must Be Unambiguous . . . 140
The SRS Must Be Complete . . . 141
The SRS Must Be Verifiable . . . 142
The SRS Must Be Consistent . . . 142
The SRS Must Be Understandable . . . 142
The SRS Must Be Modifiable . . . 142
The SRS Must Be Traceable . . . 143
The SRS Must Separate Whats from Hows . . . 144
The SRS Must Encompass the Entire System . . . 144
The SRS Must Encompass Its Operational Environment . . . 144
The SRS Must Describe the System as Seen by Users . . . 144
5
The SRS Must Be Tolerant of Incompleteness, Ambiguities, and
Inconsistencies . . . 144
The SRS Must Be Localized . . . 144
4.7 CHAPTER SUMMARY . . . 145
4.8 EXERCISES . . . 145
REFERENCES . . . 146
Software Specification Tools . . . 147'
6
5.0 OBJECTIVES . . . 147
5.1 INTRODUCTION 147
5.2 DATA DICTIONARY . 148
5.3 DECISION SUPPORT TOOLS 151
5.4 DATA FLOW DIAGRAMS (DFD) . . . 154
5.5 FINITE STATE MACHINES (FSM) . 162
5.6 PETRI NETS . . . 168
5.6.1 Petrl Net State Space . . . 172
5.6.2 Using Petrl Net to Model System . . . 173
5.7 MATHEMATICAL LOGIC . . . 1 76
5.7.1 Problem Speclticotlcn Using Logic . . . 178
5.8 OPERATIONAL TIMELINES . . . 179
5.8.1 Development of OperoNonol Timeline . . . 180
5.8.2 Moving from Mode to Mode . . . 180
5.8.3 Operotlonol Procedures for Eoch System Mode . . . 180
Exomple 5.8.1 . . . 181
5.9 CHAPTER SUMMARY 182
5.10 EXERCISES . . . 182
REFERENCES . . . 184
Software Development Environment. . . 185
6.0 OBJECTIVES . 185
6.1 INTRODUCTION . 185
6.2 SOFTWARE DEVELOPMENT ENVIRONMENT CONFIGURATION . . . 187
6.3 SOFTWARE DEVELOPMENT PLATFORM (SDPF) . . . 189
6.3.1 Essentlol Tools In SDPF . 190
Operating Systems . . . 190
Programming Language(s) . . . 190
Compilers . . . 191
6.3.2 Very Useful Tools . . . 191
Editors . . . 191
Syntax-Directed Editors . . . 191
Linkers . . . 192.
Code or Program Generators . . . 192
Debuggers . . . 192
Program Design Languages (PDL) . . . 192
7
6.3.3 Useful Tools . . . 193
Workbenches . . . 193
Integrated CASE Tools . . . 194
6.4 COMPUTER-AIDED SOFTWARE ENGINEERING TOOLS . . . 195
6.4.1 CASE Tools Categorization . . . 197
6.4.2 Groptric Modeling . . . 197
6.4.3 * CASE Repositories . . . 198
6.4.4 CASE Tools as Aid to Reengineering . . . 199
6.4.5 Impact of Object-Oriented Methodology on CASE Tools
. . . 199
6.5 IDEAL SOFTWARE DEVELOPMENT PLATFORM . . . 200
6.6 CHAPTER SUMMARY . 201
6.7 EXERCISES .201
REFERENCES . 202
Software Design . . . 204
8
7.0 OBJECTIVES . . . 204
7.1 INTRODUCTION . 204
7.2 OVERVIEW OF SOFTWARE DESIGN PROCESS . . . 2a5
7.2.1 Design Requirements and Criteria . . . 206
7.2.2 Design Levels and Their Objectives . . . 208
7.2.3 input/Process/Output (IPO) Approach . . . 210
7.2.4 Design Tools . . . 211
7.3 SOFTWARE DESIGN . . . 212
7.3.1 Seven Generic Design Steps . . . 213
7.3.2 Component Design . . . 215
7.3.3 Preparing Software Design Specification (SDS) . . . 217
7.4 DESiGNEXAMPLE . 219
7.4.1 Design Process . . . 220
Selecting the Design Architecture . . . 220
Design Steps . . . 221
7.5 CHAPTER SUMMARY .228
7.6 EXERCISES 228.
REFERENCES . 229
Object-Oriented Analysis and Design . . . 231
8.0 OBJECTIVES 231
8.1 INTRODUCTION 231
8.2 OBJECT-ORIENTED PARADIGM . 232
8.3 BASIC DEFINITIONS AND SYMBOLS . . . 235
8.3.1 Objects 236
8.3.2 Classes . . . 236
8.3.3 Relationship or Association among Objects . . . 238
Binary Associations . . . 238
n-ary Associations . . . 239
8.3.4 Structures, Inheritance, and Generalization . . . 239
8.3.5 Assembly Structure (or Whole-Part Structure) . . . 241
8.3.6 Combined Structures . . . 241
8.3.7 Comments on Structures . . . 242
8.4 OBJECT-ORIENTED ANALYSIS 245
8.4.1 Finding Objects and Classes . . . 246
8.4.2 Determining Attributes of Each Object/Class . . . 248
8.4.3 Defining/Identifying Senrices for Each Object/
Class . . . 250
8.4.4 Defining Messages for each Object/Class . . . 250
8.4.5 Time-Dependency Considerations . . . 252
8.4.6 Finding Association among Objects . . . 252
8.4.7 Checking Access Paths through Classes . . . 253
8.4.8 Complete OOA Document . . . 253
8.4.9 Final Clean-Up before Design Phase . . 254
8.5 OBJECT-ORIENTED DESIGN .255
8.5.1 Problem Domain . . . 256
8.5.2 Human Interfaces . . . 257
8.5.3 Task Management 258
8.5.4 Data Management . . . 259
8.5.5 Designing Senrices . . . 260
8.6 CHAPTER SUMMARY 260
8.7 EXERCISES 261
UNIT 3
REFERENCES . . . 263
Implementation and Maintenance
9
Fundamentals of Coding . . . 266
9.0 OBJECTIVES . 266
9.1 INTRODUCTION . 266
9.2 PROGRAMMING LANGUAGES . 267
Procedural Languages . . . 267
Nonprocedural Languages . . . 268
Imperative Languages . . . 268
Declarative Languages . . . 268
Functional Languages . . . 268
Logic Languages . . . 269
Object-Oriented Languages . . . 269
Visual Languages . . . 269 -
Fourtti-Generation Languages (4GL) . . . 269
Fifth-Generation Languages (5GL) . . . 270
9.2.1 Specific Programming Language Features . . . 270
Preprocessor . . . 270
Naming Constraints . . . 270
Named Constants . . . 270
User-Defined Data Type . . . 271
Subprograms . . . 271
Recursive Subprograms . . . 272
Scoping . . . 272
Available Operations . . . 272
Variety of Control Structures . . . 272
Data Structure Support . . . 273
Data Abstraction and information Hiding . . . 273
Memory Aiiocation . . . 273
File Handling Utilities . . . 273
Access to Other System Utilities . . . 273
Compilers . ! . 274
Debuggers . . . 274
Programming Language Ubrary . . . 274
Exception Handling . . . 274
Real-Time Considerations . . . 275
Concurrency Considerations . . . 275
Poralieiism Considerations ... 275
9.2.2 Selecting a Programming Language . . . 275
9.3 PROGRAMMING STYLE AND PROGRAM QUALITY . . . 276
9.3.1 Simple Style Rules . . . 276
9.3.2 Comment Statements . . . 278
9.3.3 Program Quality . . . 279
Readability, Understandabiiity, and Comprehensibiiity
(RUC) . . . 279
Logical Structure . . . 280
Physical Layout . . . 280
Robustness . . . 280
CPU Efficiency (Speed of Execution) . . . 280
Memory Efficiency . . . 280
Complexity . . . 281
Human Factors . . . 281
System interfaces . . . 281
Reusable Code . . . 281
9.3.4 Quantifying Program Quality 281
9.4 COMPLETE PROGRAMMING EXAMPLE . . . 283
9.4.1 Top-Level Design Specifications . . . 284
9.4.2 Analysis of Preliminary Design . . . 286
9.4.3 Main Data Structures . . . 286
9.4.4. High-Level Program Structure . . . 287
9.4.5 Detailed Design Description . . . 287
Utility Subprograms . . . 288
9.4.6 Program Development Process . . . 294
9.5 CHAPTER SUMMARY . 295
9.6 EXERCISES . . . 295
10
REFERENCES . . . 297
Software System Test and Integration . . . 298
10.0 OBJECTIVES . 298
10.1 INTRODUCTION . 299
10.2 BASIC CONCEPTS IN TESTING . . . 300
10.2.1 Need for Planning . . . 300
10.2.2 Need for Discipline and Control . . . 301
11
10.2.3 Software Verification and Validation . . . 302
10.2.4 Using Reiiobility Modeis in Testing . . . 303
10.2.5 Software Engineers Find Careers in Testing . . . 304
10.3 OVERVIEW OF SYSTEM AND SOFTWARE TEST AND
INTEGRATION 304
10.4 INCREMENTAL BUILD OF MODULES INTO SYSTEMS . . 307
10.5 TEST AND INTEGRATION PLAN . . . 311
10.6 BUILD TEST PLAN AND SPECIFICATION . . .314
Test Design Specification Document . . . 317
Buiid Test Cose Specification Document . . . 317
Buiid Test Case Procedure Document . . . 318
Buiid Test Log Document . . . 318
Build Test Anomaiy Document . . . 319
Buiid Test Summary Document .. . . 319
10.7 PERSPECTIVES ON BUILD TESTING . . . 320
10.8 ALPHA AND BETA TESTING . 321
10.9 CHAPTER SUMMARY 322
10.10 EXERCISES . . 323
REFERENCES . . . 323
Module Level Testing . . . 324
11.0 OBJECTIVES . . . 324
11.1 INTRODUCTION . 324
11.2 MODULE TEST PLANNING .325
11.2.1 Test Requirement Matrices . . . 325
11.2.2 Module Test Pian . . . 327
11.3 STATIC TESTING 329
11.3.1 Static Testing Functions . . . 329
11.4 DYNAMIC TESTING . 331
11.4.1. Block Box or Functional Testing . . . 331
Example 11.4.1 Black Box Testing . . . 334
11.4.2 Wtilte Box Testing 340
Example 11.4.2 Basic Blocks . . . 345
Computing Cyciomatic Complexity . . . 345
11.4.3 Dynamic Test Functions Tools . . . 349
11.5 TEST CASE EXECUTION .350
11.5.1 Test Log Document . . . 351
11.5.2 Test Anomaly or Test Incident Document . . . 351
11.5.3 Test Summary Document . . . 352
11.6 FORMAL TESTING .352
11.6.1 Correctness of Program Structures . . 355
11.6.2 Iteration Termination . . . 358 .
11.6.3 Correctness of Subprogram Calls . . . 360
11.6.4 Remarks on Formal Testing .361
11.7 PERSPECTIVES ON MODULE TESTING . 362
11.8 CHAPTER SUMMARY 363
11.9 EXERCISES 364
REFERENCES 367
12
Debugging . . . 368
12.0 OBJECTIVES .368
12.1 INTRODUCTION . . . 368
12.2 PROGRAM ERRORS (BUGS) 369
Syntax Errors . . . 369
Run-Time Errors . . . 369
Logic Errors-. . . 369
Inherited Errors . . . 370
External Errors . . . 370
12.3 DEBUGGING PROCESS 370
12.3.1 Information Gathering . . . 370
12.3.2 Fault Isoiation . . . 371
Binary Partition Approach . . . 371
Structured Question and Answer Approach . . . 372
invoiving Others Approach . . . 372
New Test Case Approach . . . 373
12.3.3 Fault Confirmation . . 373
Example 12.3.1 . . . 373
12.3.4 Documentation . .374
12.3.5 Fixing the Fault . . . 375
12.3.6 New Testing after Each Correction . . . 376
12.4 PERSPECTIVES ON DEBUGGING 376
12.5 DEBUGGING TOOLS .377
12.6 AN EXAMPLE 377
12.6.1 Test Cose and Results . . . 378
12.6.2 Correcting Program Faults . . . 379
12.6.3 New Testing . . .381
12.7 CHAPTER SUMMARY 381
12.8 EXERCISES .381
13
Software Maintenance and Maintainability . . . 382
13.0 OBJECTIVES 382
13.1 INTRODUCTION . 382
13.2 SOFTWARE MAINTENANCE 383
13.2.1 Maintenance Support Documents/Tools . . 385
13.2.2 Using Support Documentation . . '. 386
13.3 SOFTWARE MAINTENANCE PROCESS 387
13.4 maintenance RESOURCE ESTIMATION .390
13.5 directly SPECIFIED MAINTENANCE AnRIBUTES . 392
13.6 REVERSE ENGINEERING 393
13.7 REENGINEERING SOFTWARE PRODUCT . 394
13.8 CHAPTER SUMMARY 396
13.9 EXERCISES 396
REFERENCES 397
UNIT 4
Software Metrics or Attributes
14
Software Attributes (Metrics) and TIneir Estimation . . . 400
14.0 OBJECTIVES 400
14.1 INTRODUCTION 400
14.2 IDENTIFICATION RELATED AHRIBUTES . . . 402
14.3 SIZE-RELATED AHRIBUTES .403
14.3.1 Function Point Attribute Estimation 404
Example 14.3.1 (Order-Entry Problem) . . . 407
Alternative Approach to Function Point Counting . . . 4C
Example 14.3.2 . . . 410
14.3.2 Feature Point Estimation . . .410
Example 14.3.3 (Display Function) . . . 411
14.3.3 Converting Function Point Estimate to SLOC . . . 412
14.3.4 Direct Source Lines of Code Estimation 413
Example 14.3.4 (Display Function Revisited) . . . 415
Example 14.3.5 (Special Purpose Operating System) . . .
416
14.4 DESIGN AND DEVELOPMENT AHRIBUTES . 418
14.5 SOFTWARE QUALITY AHRIBUTES . . . 424
14.6 COMPLEXITY-RELATED ATTRIBUTES .427
14.7 EXECUTION TIME-RELATED AHRIBUTES 428
14.8 TEST-RELATED AHRIBUTES 428
14.9 DOCUMENTATION-RELATED AnRIBUTES . . . 428
14.10 PERFORMANCE-RELATED AHRIBUTES . 430
14.11 LABOR-RELATED AnRIBUTES . 431
14.12 OPERATING ENVIRONMENT ATTRIBUTES . . . 432
14.13 DATA COLLECTION 434
14.13.1 Establishing a Data Collection Program . . . 434
14.14 CHAPTER SUMMARY 435
14.15 EXERCISES 436
15
REFERENCES 437
Software Development Resouroe Estimation . . . 438
15.0 OBJECTIVES 438
15.1 INTRODUCTION 439
15 2 SOFTWARE PRODUCT COST AND SCHEDULE ESTIMATION . . . 440
15.3 COST AND SCHEDULE ESTIMATION MODELS . 443
15.3.1 constructive cost Models (COCOMO) 444
Basic COCOMO Model . . . 445
Intermediate COCOMO Model . . . 446
15.3.2 Estimation Process 449
Organic Mode Characteristics . . . 449
Semidetached Mode Characteristics . . . 450
Embedded Mode Characteristics . . . 450
Exampie 15.3.1 . . .451
15.3.3 Comments . . . 455
15.4 grassroots RESOURCE AND SCHEDULE ESTIMATION . 456
■ Exampie 15.4.1 (Resource Estimation) . . . 456
Exampie 15.4.2 (Scheduie Estimation) . . . 458
15.5 CLOSING COMMENTS . . . 461
15.6 CHAPTER SUMMARY . . . 462
15.7 EXERCISES . . . 463
16
REFERENCES . . . 466
Software Development Risk Assessment and
Cantainment . . . 467
16.0 OBJECTIVES . . . 467
16.1 INTRODUCTION . .. 468
16.2 SOFTWARE DEVELOPMENT RISK AREAS . . . 468 .
16.3 A RISK MODEL . . . 470
164 risk CONTAINMENT AND RISK MANAGEMENT . . . 473
16 5 technical PERFORMANCE MEASUREMENTS . . . 475
16 6 EXAMPLES TO ILLUSTRATE SOFTWARE DEVELOPMENT RISK
ANALYSIS . . . 476
Exampie 16.6.1 . . . 476
Exampie 16.6.2 . . 482
16.7 CHAPTER SUMMARY . . . 484
16.8 EXERCISES . . . 485
17
REFERENCES . . . 486
Reliability . . . 487
17.0 OBJECTIVES . . . 487
17.1 INTRODUCTION . .. 487
17.2 OVERVIEW . . . 490
17.3 review OF PROBABILITY THEORY . . . 491
17.3.1 Axiomatic Probability 492
Exampie 17.3.1 . . . 492
Axioms of Probabiiity . . . 492
17.3.2 Conditional Prolxibillty . . . 493
Bayes Ruies . . . 493
17.3.3 Rondom Vorlobles, Prolsobility Distributions, ond Density
Functions . . 494
17.3.4 Distribution Functions . . . 495
Binomial Distribution . . . 495
Exompie 17.3.2 . . . 496
Poisson Distribution . . . 496
Continuous Rondom Voriobies . . . 496
Normal Distribution . . . 497,
Exponentiai Distribution . . . 497
Uniform Distribution . . . 498
17.3.5 Joint Distribution of Random Voriobies . . . 498
17.3.6 Expectotion of Rondom Voriobies—Moments . 500
17.3.7 Markov Process . . . 501
Exampie 17.3.3 . . . 503
17.4 RELiABiLlTY DEFiNiTiONS . . . 504
17.5 RELiABiLlTY MODELS . . . 507
17.6 SOFTWARE FAULTS . . . 509
17.7 DESIGN RULES . . . 512
17.8 SYSTEM RELiABiLlTY AND AVAILABILITY REQUIREMENTS . . . 513
Exampie 17.8.1 . . .514
17.8.1 Avoiiobiiity . . . 516
Example 17.8.2 . . .518
Example 17.8.3 . . .519
17.9 APPLICATIONS OF A SOFTWARE RELIABILITY MODEL . . . 519
Example 17.9.1 . . . 523
17.10 REDUNDANCY AND FAULT TOLERANCE . . . 526
Example 17.10.1 . . . 530
17.11 FAILURE MODES AND EFFECTS AND OTHER ANALYSIS TOOLS . . . 531
17.12 CHAPTER SUMMARY . . . 533
17.13 EXERCISES . 535
REFERENCES . . . 536
18
Software Quality and Quality Assurance . . . 537
18.0 OBJECTIVES . 537
18.1 INTRODUCTION . . . 537
18.2 SOFTWARE QUALITY ASSURANCE PLANNING 540
18.2.1 Reviews OS Quoiity Gotes 540
18 2.2 Generic Softwore Quoiity Assuronce Plon , 541
18.3 SOFTWARE QUALITY ASSURANCE PROCESS . . . 542
18.4 SOFTWARE QUALITY ATTRIBUTES 544
18.4.1 Stotisticoi Softwore Quoiity Assuronce 545
18.5 GUIDELINES AND CHECKLISTS 549
18.5.1 Using Checklists . 550
18.6 SOFTWARE SAFETY . 554
18.7 CHAPTER SUMMARY . 554
18.8 EXERCISES 555
REFERENCES .556
UNITS
Special Topics
19
Real-Time Software . . . 559
19.0 OBJECTIVES . . . 559'
19.1 INTRODUCTION . . . 559
19.2 REAL-TIME REQUIREMENTS SPECIFICATION . . 561
Example 19.2.1 . . . 563
19.2.1 Execution Time Estimation . . . 564
Example 19.2.2 . . . 565
19.3 DESIGN GUIDELINES FOR REAL-TIME SOFTWARE .566
19.4 SCHEDULABILITY CONCERNS .568
Example 19.4.1 . . .570
19.4.1 Algorlttrm to Compute Wn(t) . . .572
Example 19.4.2 . . .573
19.4.2 Task Synctrronlzatlon . . . 575
Example 19.4.3 . . . 575
Example 19.4.4 . . . 576
Priority Inversion . . .577
19.5 TESTING REAL-TIME SOFTWARE . . . 578
19.6 CHAPTER SUMMARY . . . 580
19.7 EXERCISES . . . 581
20
REFERENCES . . . 583
Hunnan Factors in Software Engineering . . . 584
20.0 OBJECTIVES . . . 584
20.1 INTRODUCTION . . . 584
20.2 HUMAN FACTORS HISTORY . . . 586
20.3 HCI REQUIREMENTS AND DESIGN PROCESS . 586
20.3.1 System Function Allocation (Step 1) . . , 588
20.3.2 Operational Timelines (Step 2) . . . 588
20.3.3 Operational Task Analysis (Step 3) . . . 589
20.3.4 HCI Design (Step 4) . . . 590
System Failures . . .591
Help Packages . . . 591
Response Times . . .591
Operator Characteristics . . . 592
External Environment . . . 592
General Guidelines . . . 592
Display Guidelines . . . 593
Operator Command Guidelines . . . 593
20.3.5 HCI Testing (Step 5) . . . 593
20.4 THE human AS INFORMATION SYSTEM COMPONENT 594
20.5 OPERATOR TASK DEVELOPMENT . . . 596
20.5.1 Operator Requirements Specification . . . 597
20.6 OPERATOR CHARACTERiSTiCS . . . 598
20.7 CHAPTER SUMMARY . . . 599
20.8 EXERCiSES . . . 599
REFERENCES . . . 600

There are no comments on this title.

to post a comment.
SIKKIM UNIVERSITY
University Portal | Contact Librarian | Library Portal