Software Engineering Fundamentals

By: Behforooz, AliContributor(s): Hudson, Frederick JMaterial type: TextTextPublication details: New York : Oxford University Press, 1996Description: xxvi, 661 p. : ill. ; 24 cmISBN: 9780195681468 (pb)Subject(s): Software EngineeringDDC 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
Item type Current library Call number Status Date due Barcode Item holds
General Books General Books Central Library, Sikkim University
General Book Section
005.1 BEH/S (Browse shelf(Opens below)) Available P19519
General Books General Books Central Library, Sikkim University
General Book Section
005.1 BEH/S (Browse shelf(Opens below)) Available P19517
General Books 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

Powered by Koha