چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Software engineering : modern approaches

Eric J. Braude, Michael E. Bernstein

قیمت نهایی

۴۰٬۰۰۰ تومان۴۹٬۰۰۰ تومان۱۸٪ تخفیف
  • تخفیف زمان‌دار−۹٬۰۰۰ تومان

۹٬۰۰۰ تومان صرفه‌جویی نسبت به قیمت اصلی

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

نسخه اصلی و اورجینال

فایل دیجیتال کامل و بدون دستکاری — همان نسخه‌ای که پس از خرید دریافت می‌کنید.

مشخصات کتاب

سال انتشار
۲۰۱۰
فرمت
PDF
زبان
انگلیسی
حجم فایل
۱۵۳٫۸ مگابایت
شابک
9780471692089، 0471692085

دربارهٔ کتاب

Brief Contents......Page 2 Contents......Page 3 Preface......Page 12 1 - The Goals and Terminology of Software Engineering......Page 17 1.1 WHAT IS SOFTWARE ENGINEERING?......Page 18 1.2.3 Radiation Overdose......Page 19 1.3 WHY SOFTWARE FAilS OR SUCCEEDS......Page 20 1.4 SOFTWARE ENGINEERING ACTIVITIES......Page 21 1.4.1 People......Page 22 1.4.2 Product......Page 23 1.4.3 Project......Page 24 1.4.4 Process......Page 25 1.5 SOFTWARE ENGINEERING PRINCIPLES......Page 26 1.6 ETHICS IN SOFTWARE ENGINEERING......Page 28 1.7 CASE STUDIES......Page 30 1.7.2 Eclipse Open Source Project......Page 31 1.7.3 Open Office Project......Page 32 1.8 SUMMARY......Page 35 2 - Introduction to Quality and Metrics in SoftwareEngineering......Page 36 2.1 THE MEANING OF SOFTWARE QUALITY......Page 37 2.2 DEFECTS IN SOFTWARE......Page 38 2.3 VERIFICATION AND VALIDATION......Page 40 2.4 PLANNING FOR QUALITY......Page 42 2.5 METRICS......Page 43 2.6 SUMMARY......Page 45 3 - Software Process......Page 47 3.1 THE ACTIVITIES OF SOFTWARE PROCESS......Page 48 3.2.1 The Waterfall Process Model......Page 52 3.2.2 Iterative and Incremental Development......Page 54 3.2.3.1 Prototyping......Page 55 3.2.4 Spiral Model......Page 59 3.2.5 Unified Process and the Rational Unified Process......Page 61 3.2.6 Agile Processes......Page 64 3.2.7 Open-source Processes......Page 66 3.3 CASE STUDY: STUDENT TEAM GUIDANCE......Page 70 3.3.1 Team Guidance Initial Team Meeting......Page 71 3.3.2 Team Guidance Communication Plan......Page 72 3.4 SUMMARY......Page 74 4 - Agile Software Processes......Page 78 4.1 AGILE HISTORY AND THE AGILE MANIFESTO......Page 79 4.2 AGILE PRINCIPLES......Page 80 4.3 AGilE METHODS......Page 81 4.4 AGILE PROCESSES......Page 83 4.4.1 Extreme Programming......Page 84 4.4.2 Serum......Page 86 4.4.3 Crystal......Page 87 4.5 INTEGRATING AGILE WITH NON-AGILE PROCESSES......Page 89 4.5.1 A Non-Agile-Driven Approach......Page 90 4.5.2 An Agile-Driven Approach......Page 91 4.6 SUMMARY......Page 92 5 - Quality in the Software Process......Page 95 5.1 PRINCIPLES OF MANAGING QUALITY......Page 96 5.2 MANAGING QUALITY IN AGILE PROCESSES......Page 97 5.3.1 Software Quality Assurance Plan......Page 98 5.3.2 IEEE Quality Documents......Page 100 5.4.1 Inspection Principles......Page 102 5.4.2 Inspection Process......Page 105 5.5 QA REVIEWS AND AUDITS......Page 107 5.6.1 Classifying Defects......Page 108 5.6.2 Tracking Defects......Page 110 5.7 PROCESS IMPROVEMENT AND PROCESS METRICS......Page 111 5.8.1 Level 1 : Initial......Page 115 5.8.6 Relationship of the CMMI to the PSP, TSP......Page 117 5.9 CASE StUDY: SOFTWARE QUALITY ASSURANCE PLAN FOR ENCOUNTER......Page 118 5.10 SUMMARY......Page 133 6 -Software ConfigurationManagement......Page 135 6.2 SCM ACTIVITIES......Page 136 6.2.2 Baselines......Page 137 6.2.3 Change Control......Page 139 6.2.4.2 Checkout and Checkin......Page 140 6.2.4.4 Builds......Page 141 6.2.7 Release Management and Delivery......Page 142 6.4.1 Concurrent Version System (CVS)......Page 143 6.5 CASE STUDY: ENCOUNTER VIDEO GAME......Page 144 6.6 CASE STUDY: ECLIPSE......Page 149 6.7 STUDENT TEAM GUIDANCE: CONFIGURATION MANAGEMENT......Page 151 6.8 SUMMARY......Page 152 7 - Principles of Software Project Management I: Organization,Tools, and Risk Management......Page 155 7.1.1 Project-Oriented organization......Page 157 7.1.3 Matrix Organization......Page 158 7.2 TEAM SIZE......Page 159 7 .3 GEOGRAPHICALLY DISTRIBUTED DEVELOPMENT......Page 161 7.4 THE TEAM SOFTWARE PROCESS......Page 166 7.4.1 Introductory Team Software Process (TSPi)......Page 167 7.5 SOFTWARE PROJECT TOOLS AND TECHNIQUES......Page 168 7.5.1 Tool Selection......Page 169 7.5.3 Language selection......Page 170 7.5.4 Decision Making with Triage......Page 171 7.5.5 Project Variables......Page 172 7.6 RISK MANAGEMENT......Page 174 7.7.1 Team Guidance Student Team Organization......Page 177 7.7.2 Team Guidance Team Meetings......Page 178 7.8 SUMMARY......Page 182 8 - Principles of Software Project Management II: Estimation,Scheduling, and Planning......Page 185 8.1.1 Estimate Precision......Page 186 8.1.3 Estimating Lines of Code without Function Points......Page 187 8.1.4 Function Points......Page 188 8.1.4.1 Calculating Function Points......Page 189 8.1.4.2 Converting Function Points to Lines of Code......Page 192 8.1.4.3 A Further Function Point Example......Page 193 8.1.5 Estimating Effort and Duration from Lines of Code......Page 194 8.1.5.2 COCOMO II......Page 196 8.1.6 Assessments for Agile projects: Story Points and velocity......Page 197 8.2 SCHEDULING......Page 199 8.3 THE SOFTWARE PROJECT MANAGEMENT PLAN......Page 202 8.4 CASE STUDY: ENCOUNTER PROJECT MANAGEMENT PLAN......Page 204 8.5 CASE STUDY: PROJECT MANAGEMENTIN ECLIPSE......Page 213 8.6 CASE STUDY: PROJECT MANAGEMENT FOR OPEN OFFICE......Page 222 8.7 CASE STUDY: STUDENT TEAM GUIDANCE......Page 225 8.8 SUMMARY......Page 227 9 - Quality and Metrics in Project Management......Page 230 9.1 CULTIVATING AND PLANNING INTERNAL QUALITY......Page 231 9.2 PROJECT METRICS......Page 232 9.2.1 Identification......Page 233 9.2.3 Monitor and Review......Page 234 9.3.1 Improvement within a Project......Page 236 9.3.2 Improvement across projects......Page 239 9.4 SOFTWARE VERIFICATION AND VALIDATION PLAN......Page 240 9.5 CASE STUDY: SOFTWARE VERIFICATION AND VALIDATION PLAN FOR ENCOUNTER......Page 242 9.6 SUMMARY......Page 245 10 - Principles of Requirements Analysis......Page 247 10.2 SOURCES OF REQUIREMENTS......Page 248 10.3 HIGH-LEVEL VS. DETAILED REQUIREMENTS......Page 249 10.5 NONFUNCTIONAL REQUIREMENTS......Page 250 10.5.1 Quality Attributes......Page 251 10.5.2 Constraints......Page 253 10.5.5 Error-Handling Requirements......Page 254 10_6 DOCUMENTING REQUIREMENTS......Page 255 10.8 AGilE METHODS AND REQUIREMENTS......Page 256 10.9 UPDATING THE PROJECT TO REFLECT REQUIREMENTS ANALYSIS......Page 258 10.10 SUMMARY......Page 260 11 - Analyzing High-Level Requirements......Page 262 11.1 EXAMPLES OF CUSTOMER WANTS......Page 263 11_2 STAKEHOLDER VISION......Page 264 11.3 THE INTERVIEW AND DOCUMENTATION PROCESS......Page 265 11.5 DESCRIBING MAIN FUNCTIONS AND USE CASES......Page 266 11.6 AGilE METHODS FOR HIGH-lEVEL REQUIREMENTS......Page 269 11.7.2 Step 2: Understand the Business Function......Page 271 11.7.3 GUI Transitions......Page 273 11 .8 SECURITY REQUIREMENTS......Page 275 11.9.1 Data Flow Diagrams......Page 277 11.9.2 State Transition Diagrams......Page 279 11.10 CASE STUDY: HIGH-lEVEL SOFTWARE REQUIREMENTS SPECIFICATION (SRS) FOR THE ENCOUNTER VIDEO GAME......Page 281 11.11 CASE STUDY: HIGH-LEVELREQUIREMENTS FOR ECLIPSE......Page 285 11 .12 ECLIPSE PLATFORM SUBPROJECT (FIRST OF THREE)......Page 286 11.13 CASE STUDY: HIGH-lEVELREQUIREMEN I S FOR OPENOFFICE......Page 290 11.14 SUMMARY......Page 292 12 - Analyzing Detailed Requirements......Page 295 12.1 THE MEANING OF DETAILED REQUIREMENTS......Page 296 12.2 ORGANIZING DETAILED REQUIREMENTS......Page 297 12.2.1 Organizing Detailed Requjrements by Feature......Page 298 12,2.2 Organizing Detailed Requirements by Use Case......Page 299 12.2.3 Organizing Detailed Requirement by GUI......Page 300 12.2.5 Organizing Requirements by Class......Page 302 12.3 USER INTERFACES: DETAILED REQUIREMENTS......Page 308 12.5 ERROR CONDITIONS......Page 313 12.6 TRACEABILITY OF DETAILED REQUIREMENTS......Page 314 12.7 USING DETAILED REQUIREMENTS TO MANAGE PROJECTS......Page 317 12.8 PRIORITIZING REQUIREMENTS......Page 318 12.9 ASSOCIATING REQUIREMENTS WITH TESTS......Page 319 12.10 AGILE METHODS FOR DETAILED REQUIREMENTS......Page 320 12.11 USING TOOLS AND THE WEB FOR REQUIREMENTS ANALYSIS......Page 322 12.11.1 Simple projects......Page 323 12.11.2 IBM's Requisitepro™......Page 324 12.12 THE EFFECTS ON PROJECTS OF THE DETAILED REQUIREMENTS PROCESS......Page 325 12.13 STUDENT PROJECT GUIDE: REQUIREMENTS FOR THE ENCOUNTER CASE STUDY......Page 326 12.14 CASE STUDY: DETAILED REQUIREMENTS FOR THE ENCOUNTER VIDEO GAME......Page 332 12.1S SUMMARY......Page 345 13 -Quality and Metrics in Requirements Analisys......Page 348 13.2 ACCESSIBILITY OF REQUIREMENTS......Page 349 13.3 COMPREHENSIVENESS OF REQUIREMENTS......Page 350 13.5 UNAMBIGUITY OF REQUIREMENTS......Page 352 13.6 CONSISTENCY OF REQUIREMENTS......Page 353 13.7 PRIORITIZATION OF REQUIREMENTS......Page 354 13.8 SECURITY AND HIGH-LEVEL REQUIREMENTS......Page 355 13.9 SELF-COMPLETENESS OF REQUIREMENTS......Page 356 13,10 TESTABILITY OF REQUIREMENTS......Page 357 13.11 TRACEABILITY OF REQUIREMENTS......Page 359 13.12 ME I RjCS FOR REQUIREMENTS ANALYSIS......Page 360 13.13 INSPECTING DETAILED REQUIREMENTS......Page 361 13.14 SUMMARY......Page 364 14 - Formal and Emerging Methodsin Requirements Analysis: An Introduction Online Chapter......Page 366 15 - Principles of Software Design......Page 367 15.1 THE GOALS OF SOFTWARE DESIGN......Page 368 15.2.1 Use Case Model......Page 371 15.2.3 Data Flow Models......Page 372 15.2.4 State Models......Page 373 15.3 FRAMEWORKS......Page 374 15.5 SUMMARY......Page 376 16 - The Unified Modeling Language......Page 378 16.2 CLASS RELATIONSHIPS IN UMl......Page 379 16.2.2 Associations......Page 380 16.4 INHERITANCE......Page 381 16.4.2 Composition......Page 383 16.4.3 Dependency......Page 384 16.5 SEQUENCE DIAGRAMS......Page 385 16.6.2 Events......Page 389 16.6.4 OnlineShopper State Diagram Example......Page 390 16.7 ACTIVITY DIAGRAMS......Page 391 16.8 DATA FLOW MODELS......Page 393 16.9 A DESIGN EXAMPLE WITH UMl......Page 394 16.10 SUMMARY......Page 397 17 - Software Design Patterns......Page 400 17.1.2 A More Complex Example......Page 401 17 .2.2 Example Application: Applying a Design Pattern......Page 403 17.3 SUMMARY OF DESIGN PATTERNS BY TYPE: CREATIONAl,STRUCTURAL. AND BEHAVIORAL......Page 407 17.3.2 Structural Design patterns......Page 408 17.3,3 Behavjoral Design Patterns......Page 410 17.4 CHARACTERISnCS OF DESIGN PATTERNS; VIEWPOINTS, ROLES, AND LEVELS......Page 413 17.4.1 TWo Viewpoints for Describing a Pattern: static and Dynamic......Page 414 17.4.2 TWo Layers of a Pattern: Abstract and Concrete......Page 415 17.4.3.2 The Client Role......Page 416 17.5.1 .1 Design purpose of Singleton......Page 417 17.5.1.3 TheS;ngleton Class Model......Page 418 17.5.1.4 Example Singleton Application: "Experiment"......Page 419 17.5.2.1 Design Purpose of Abstract Factory......Page 420 17.5.2.3 The Abstract Factory Class Model......Page 422 17.5.2.5 EXample Abstract Factory Application: Word Processor......Page 424 17.6.1.1 The Design Purpose of Facade......Page 425 17.6.1 .3 The Facade Class Model......Page 427 17.6.2.1 The Design Purpose of Adapter......Page 429 17.6.2.4 The Adapter sequence Diagram......Page 430 17.6.2.5 Example Applications of Adapter......Page 431 17.6.2.7 Comments on Adapter......Page 433 17.7.1.1 Interpreter Design Purposes and Examples......Page 434 17.7 .1.2 Interpreter Interfaces for Clients......Page 435 17.7.1.5 Example Interpreter Application: Network Assembly......Page 436 17.7.2.1 The Design Purposes of Observer......Page 439 17.7 .2.3 The Observer Class Model......Page 441 17.7.2.4 Example Observer Applications......Page 442 17.7.2.5 ObseNer in the Java API......Page 443 17.7.3.1 The Design Purposes of State......Page 445 17.7.3.4 Example State Applications......Page 446 17 .8.1 The Delegation Design Pattern Form......Page 448 17.8.2 The Recursion Design Pattern Form......Page 450 17.9 SUMMARY......Page 452 18 - Software Architecture......Page 455 18.2.1 Data Flow Architectures......Page 456 18.2.1.1 Pipe and Filter......Page 458 18.2.1.2 Batch Sequential......Page 459 18.2.2.1 Tiered and Client-Server Architectures......Page 460 18.2.2.2 The Parallel Communicating Processes Architecture......Page 461 18.2.2.3 Event Systems Architectures and the State Design Pattern......Page 463 18.2.3 Virtual Machines......Page 464 18.2.4 Repository Architectures......Page 465 18.2.5 layered Architectures......Page 466 18.2.6 Sen/ice-Oriented Architectures......Page 467 18.2.7 Using Multiple Architectures within an Application......Page 469 18.3 TRADING OFF ARCHITECTURE ALTERNATIVES......Page 470 18,4 TOOLS FOR ARCHITECTURES......Page 471 18_6 EFFECTS OF ARCHITECTURE SELECTION ON THE PROJECT PLAN......Page 472 18.7 CASE STUDY: PREPARING TO DESIGN ENCOUNTER (STUDENT PROJECT GUIDE CONTINUED)......Page 474 18.8 CASE STUDY: SOFTWARE DESIGN DOCUMENT FOR THE ROLE-PLAYING VIDEO GAME FRAMEWORK......Page 477 18.9 CASE STUDY: SOFTWARE DESIGN DOCUMENT FOR ENCOUNTER (USES THEFRAMEWORK)......Page 479 18.10 CASE STUDY: ARCHITECTURE OF ECLIPSE......Page 483 18.11 CASE STUDY: OPENOFFICE ARCHITECTURE......Page 485 18.12 SUMMARY......Page 490 19 - Detailed Design......Page 493 19.1 RELATING USE CASES, ARCHITECTURE, AND DETAILED DESIGN......Page 494 19.2 A TYPICAL ROAD MAP FOR THE " DETAILED DESIGN" PROCESS......Page 495 19.3 OBJECT-ORIENTED DESIGN PRINCIPLES......Page 496 19.4 DESIGNING AGAINST INTERFACES......Page 498 19.5 SPECIFYING CLASSES, FUNCTIONS, AND ALGORITHMS......Page 499 19.5.1 preconditions, Postconditions, and Invariants......Page 500 19.5.2 Expressing Algorithms with Activity Diagrams and Pseudocode......Page 501 19.6 REUSING COMPONENTS......Page 502 19.7 SEQUENCE AND DATA FLOW DIAGRAMS FOR DETAILED DESIGN......Page 503 19.7.1 Detailed Sequence Diagrams......Page 504 19.7.2 Detailed Data Flow Diagrams......Page 506 19.9 DESIGN IN THE UNIFIED DEVELOPMENT PROCESS......Page 507 19.11 UPDATING A PROJECT WITH DETAILED DESIGN......Page 508 19.12 CASE STUDY: DETAILED DESIGN OF ENCOUNTER......Page 511 19.13 CASE STUDY: DETAILED DESIGN OFECLIPSE......Page 520 19.14 SUMMARY......Page 522 20 - Design Quality and Metrics......Page 525 20.2 DEGREE OF SUFFICIENCY AS A QUALITY GOAL......Page 527 20.3 DEGREE OF ROBUSTNESS AS A QUALITY GOAL......Page 528 20.4 DEGREE OF FLEXIBILITY AS A DESIGN QUALITY GOAL......Page 529 20.5 DEGREE OF REUSABILITY AS A DESIGN QUALITY GOAL......Page 530 20.6 DEGREE OF TIME EFFICIENCY AS A DESIGN QUAUTY MEASURE......Page 534 20.7 DEGREE OF SPACE EFFICIENCY AS A DESIGN QUALITY MEASURE......Page 536 20.8 DEGREE OF RELIABILITY AS A DESIGN QUALITY MEASURE......Page 538 20.9 DEGREE OF SECURITY AS A DESIGN QUALITY MEASURE......Page 540 20.10.1 Metrics for Architecture Quality......Page 542 20.10.2 Choosing an Architecture among Alternatives......Page 545 20.10.3 Verifying Architectures......Page 547 20.11 .1 Techniques for Assessing the Quality of Detailed Designs......Page 548 20.11 .2 Metrics for Detailed Design......Page 550 20.11.3 Inspection of Detailed Designs......Page 551 20.12 SUMMARY......Page 553 21 - Advanced and EmergingMethods in Software Design (Online Chapter)......Page 555 22 - Principles of Implementation......Page 556 22.3 IDENTIFYING CLASSES......Page 557 22.4 DEFINING METHODS......Page 558 22.5.1 Use Expressive Naming......Page 561 22.5.4 EXplicit Numbers......Page 563 22.5.6 Loops......Page 564 22.6.1 Error Handling......Page 565 22.6.2 Exception Handling......Page 567 22.6.4 "Enforce Intentions"......Page 568 22.7 CODING STANDARDS......Page 569 22.7.2 other Conventions......Page 570 22.8 COMMENTS......Page 571 22.9 TOOLS AND ENVIRONMENTS FOR PROGRAMMING......Page 572 22.10 CASE STUDY: ENCOUNTER IMPLEMENTATION......Page 573 22.12 CASE STUDY: OPENOFFICE......Page 576 22.13 STUDENT TEAM GUIDANCE FOR IMPLEMENTATION......Page 582 22.15.1 Code Listing for Video Rental EXample......Page 583 22.15.2 Code Listing for Encounter Character......Page 592 23 - Quality and Metrics in Implementation......Page 601 23.1 QUALITY OF IMPLEMENTATION......Page 602 23.1.1 The Sufficiency of an Implementation......Page 603 23.1.2 The Robustness of an Implementation......Page 604 23.1.3 The Flexibility of an Implementation......Page 609 23.1.4 The Reusability of an Implementation......Page 611 23.1.S The Efficiency of an Implementation......Page 612 23.1.8 The Degree of security of an Implementation......Page 613 23.2 CODE INSPECTIONS AND RELATED QUALITY PROCEDURES......Page 614 23.3 SUMMARY......Page 616 24 - Refactoring......Page 618 24.1 BIG REFACTORINGS......Page 621 24.2 COMPOSING METHODS......Page 623 24.3 MOVING FEATURES BETWEEN OBJECTS......Page 625 24.4 ORGANIZING DATA......Page 626 24.S GENERALIZATION......Page 629 24.6 INTRODUCING MODULES......Page 633 24.7 REFACTORING IN PROJECTS......Page 634 24.7.2 Refactoring and Design Patterns......Page 635 24.8 SUMMARY......Page 636 25 - Introduction to SoftwareTesting......Page 638 25.2 REtESTING: REGRESSION TESTING......Page 639 25.3 BLACK BOX AND WHITE BOX TESTING......Page 640 25.4 UNIT TESTING VS. POST-UNIT TESTING......Page 641 25.5 TESTING OBJECT-ORIENTED IMPLEMENTATIONS......Page 642 25.7.1 Organize "Unit" VS. Non-Unit Tests......Page 643 25.7.4 Decide How and Where to Get Test Input......Page 644 25.9 SUMMARY......Page 645 26 - Unit Testing......Page 647 26.2 UNIT TEST METHODS......Page 648 26.2.1 Statement Coverage......Page 649 26.2.3 Path coverage......Page 651 26.2.4 Equivalence partitioning......Page 655 26.2.5 Boundary value Analysis......Page 658 26.3.3 Stubs......Page 659 26.3.4 Example of a Method-Level Unit Test......Page 660 26.4 TEST-DRIVEN DEVELOPMENT......Page 664 26.4.1 using JUnft for Unit Testing......Page 666 26.5.1 Code Listlng for Encounter Character Class......Page 669 26.5.2 Unit Tests for the Encounter Character Class......Page 676 26.6 SUMMARY......Page 679 27 - Module and IntegrationTesting......Page 683 27.1 STUBS AND DRIVERS......Page 684 27.2 TESTING A CLASS......Page 685 27.2.1 Example of a Class Test......Page 686 27.2.2 Attribute-Oriented Tests......Page 687 27.2.4 State-Based Tests......Page 688 27.3 INTEGRATION......Page 689 27.3.1 Big Bang Integration......Page 690 27.3.3 Bottom-up Integration......Page 691 27.3.4 Top-Down Integration......Page 694 27.3.6 Continuous Integration......Page 695 27.4 DAILY BUILDS......Page 696 27.5 INTERFACE TESTING......Page 697 27.6 MODULE INTEGRATION......Page 699 27.7 CASE STUDY: CLASS TEST FOR ENCOUNTER......Page 700 27.8 CASE STUDY: ENCOUNTER INTEGRATION PLAN......Page 705 27.9 SUMMARY......Page 709 28 - Testing at the System Level......Page 711 28.1 FUNCTIONAL TESTING......Page 713 28.2.1 Performance Testing......Page 715 28.2.2 load/Stress Event Testing......Page 716 28.2.4 Recoverability Testing......Page 717 28.2.5 Usability Testing......Page 719 28.2.6 Security Testing......Page 720 28.2.7 Compatibility Testing......Page 723 28.2.9 Serviceability Testing......Page 724 28.3.1 Testing in the Absence of Requirements......Page 725 28.3.3 Constructing Directed Graphs for Black Box Testing......Page 726 28.3.5 Testing for Agile Processes......Page 728 28.3.6 Qualities of a Good Tester......Page 729 28.4.3 Alpha and Beta Releases......Page 730 28.5 CASE STUDY: ENCOUNTER SOFTWARE TEST DOCUMENTATION'......Page 731 28.6 CASE STUDY: ECLIPSE......Page 740 28.7 CASE STUDY: OPENOFFICE......Page 743 28.8 SUMMARY......Page 745 29 - Software Maintenance......Page 747 29.1.1 Maintenance Requests......Page 748 29.1.2 Corrective Maintenance......Page 749 29.1.4 Perfective Maintenance......Page 750 29.2.1 Management Challenges......Page 751 29.2.3 Technical Issues......Page 752 29.3 MAINTENANCE PROCESS......Page 753 29.3.1 Root-Cause Analysis......Page 755 29.3.2 Patch Releases......Page 756 29.3.3 Software Trouble Reports, Maintenance Requests, and COlTection Reports......Page 757 29.4 IEEE MAINTENANCE STANDARDS......Page 758 29.4.2 Maintenance Problem Analysis......Page 760 29.4.3 Designing for a Maintenance Request......Page 763 29.4.4 Implementing a Maintenance Request......Page 764 29.5 SOFTWARE EVOLUTION......Page 766 29.5.2 Reengineering......Page 767 29.6 MAINTENANCE METRICS......Page 768 29.7 CASE STUDY......Page 771 29.8 SUMMARY......Page 773 Brief Contents......Page 2 Contents......Page 3 Preface......Page 12 1 - The Goals and Terminology of Software Engineering......Page 17 1.1 WHAT IS SOFTWARE ENGINEERING?......Page 18 1.2.3 Radiation Overdose......Page 19 1.3 WHY SOFTWARE FAilS OR SUCCEEDS......Page 20 1.4 SOFTWARE ENGINEERING ACTIVITIES......Page 21 1.4.1 People......Page 22 1.4.2 Product......Page 23 1.4.3 Project......Page 24 1.4.4 Process......Page 25 1.5 SOFTWARE ENGINEERING PRINCIPLES......Page 26 1.6 ETHICS IN SOFTWARE ENGINEERING......Page 28 1.7 CASE STUDIES......Page 30 1.7.2 Eclipse Open Source Project......Page 31 1.7.3 Open Office Project......Page 32 1.8 SUMMARY......Page 35 2 - Introduction to Quality and Metrics in SoftwareEngineering......Page 36 2.1 THE MEANING OF SOFTWARE QUALITY......Page 37 2.2 DEFECTS IN SOFTWARE......Page 38 2.3 VERIFICATION AND VALIDATION......Page 40 2.4 PLANNING FOR QUALITY......Page 42 2.5 METRICS......Page 43 2.6 SUMMARY......Page 45 3 - Software Process......Page 47 3.1 THE ACTIVITIES OF SOFTWARE PROCESS......Page 48 3.2.1 The Waterfall Process Model......Page 52 3.2.2 Iterative and Incremental Development......Page 54 3.2.3.1 Prototyping......Page 55 3.2.4 Spiral Model......Page 59 3.2.5 Unified Process and the Rational Unified Process......Page 61 3.2.6 Agile Processes......Page 64 3.2.7 Open-source Processes......Page 66 3.3 CASE STUDY: STUDENT TEAM GUIDANCE......Page 70 3.3.1 Team Guidance Initial Team Meeting......Page 71 3.3.2 Team Guidance Communication Plan......Page 72 3.4 SUMMARY......Page 74 4 - Agile Software Processes......Page 78 4.1 AGILE HISTORY AND THE AGILE MANIFESTO......Page 79 4.2 AGILE PRINCIPLES......Page 80 4.3 AGilE METHODS......Page 81 4.4 AGILE PROCESSES......Page 83 4.4.1 Extreme Programming......Page 84 4.4.2 Serum......Page 86 4.4.3 Crystal......Page 87 4.5 INTEGRATING AGILE WITH NON-AGILE PROCESSES......Page 89 4.5.1 A Non-Agile-Driven Approach......Page 90 4.5.2 An Agile-Driven Approach......Page 91 4.6 SUMMARY......Page 92 5 - Quality in the Software Process......Page 95 5.1 PRINCIPLES OF MANAGING QUALITY......Page 96 5.2 MANAGING QUALITY IN AGILE PROCESSES......Page 97 5.3.1 Software Quality Assurance Plan......Page 98 5.3.2 IEEE Quality Documents......Page 100 5.4.1 Inspection Principles......Page 102 5.4.2 Inspection Process......Page 105 5.5 QA REVIEWS AND AUDITS......Page 107 5.6.1 Classifying Defects......Page 108 5.6.2 Tracking Defects......Page 110 5.7 PROCESS IMPROVEMENT AND PROCESS METRICS......Page 111 5.8.1 Level 1 : Initial......Page 115 5.8.6 Relationship of the CMMI to the PSP, TSP......Page 117 5.9 CASE StUDY: SOFTWARE QUALITY ASSURANCE PLAN FOR ENCOUNTER......Page 118 5.10 SUMMARY......Page 133 6 -Software ConfigurationManagement......Page 135 6.2 SCM ACTIVITIES......Page 136 6.2.2 Baselines......Page 137 6.2.3 Change Control......Page 139 6.2.4.2 Checkout and Checkin......Page 140 6.2.4.4 Builds......Page 141 6.2.7 Release Management and Delivery......Page 142 6.4.1 Concurrent Version System (CVS)......Page 143 6.5 CASE STUDY: ENCOUNTER VIDEO GAME......Page 144 6.6 CASE STUDY: ECLIPSE......Page 149 6.7 STUDENT TEAM GUIDANCE: CONFIGURATION MANAGEMENT......Page 151 6.8 SUMMARY......Page 152 7 - Principles of Software Project Management I: Organization,Tools, and Risk Management......Page 155 7.1.1 Project-Oriented organization......Page 157 7.1.3 Matrix Organization......Page 158 7.2 TEAM SIZE......Page 159 7 .3 GEOGRAPHICALLY DISTRIBUTED DEVELOPMENT......Page 161 7.4 THE TEAM SOFTWARE PROCESS......Page 166 7.4.1 Introductory Team Software Process (TSPi)......Page 167 7.5 SOFTWARE PROJECT TOOLS AND TECHNIQUES......Page 168 7.5.1 Tool Selection......Page 169 7.5.3 Language selection......Page 170 7.5.4 Decision Making with Triage......Page 171 7.5.5 Project Variables......Page 172 7.6 RISK MANAGEMENT......Page 174 7.7.1 Team Guidance Student Team Organization......Page 177 7.7.2 Team Guidance Team Meetings......Page 178 7.8 SUMMARY......Page 182 8 - Principles of Software Project Management II: Estimation,Scheduling, and Planning......Page 185 8.1.1 Estimate Precision......Page 186 8.1.3 Estimating Lines of Code without Function Points......Page 187 8.1.4 Function Points......Page 188 8.1.4.1 Calculating Function Points......Page 189 8.1.4.2 Converting Function Points to Lines of Code......Page 192 8.1.4.3 A Further Function Point Example......Page 193 8.1.5 Estimating Effort and Duration from Lines of Code......Page 194 8.1.5.2 COCOMO II......Page 196 8.1.6 Assessments for Agile projects: Story Points and velocity......Page 197 8.2 SCHEDULING......Page 199 8.3 THE SOFTWARE PROJECT MANAGEMENT PLAN......Page 202 8.4 CASE STUDY: ENCOUNTER PROJECT MANAGEMENT PLAN......Page 204 8.5 CASE STUDY: PROJECT MANAGEMENTIN ECLIPSE......Page 213 8.6 CASE STUDY: PROJECT MANAGEMENT FOR OPEN OFFICE......Page 222 8.7 CASE STUDY: STUDENT TEAM GUIDANCE......Page 225 8.8 SUMMARY......Page 227 9 - Quality and Metrics in Project Management......Page 230 9.1 CULTIVATING AND PLANNING INTERNAL QUALITY......Page 231 9.2 PROJECT METRICS......Page 232 9.2.1 Identification......Page 233 9.2.3 Monitor and Review......Page 234 9.3.1 Improvement within a Project......Page 236 9.3.2 Improvement across projects......Page 239 9.4 SOFTWARE VERIFICATION AND VALIDATION PLAN......Page 240 9.5 CASE STUDY: SOFTWARE VERIFICATION AND VALIDATION PLAN FOR ENCOUNTER......Page 242 9.6 SUMMARY......Page 245 10 - Principles of Requirements Analysis......Page 247 10.2 SOURCES OF REQUIREMENTS......Page 248 10.3 HIGH-LEVEL VS. DETAILED REQUIREMENTS......Page 249 10.5 NONFUNCTIONAL REQUIREMENTS......Page 250 10.5.1 Quality Attributes......Page 251 10.5.2 Constraints......Page 253 10.5.5 Error-Handling Requirements......Page 254 10_6 DOCUMENTING REQUIREMENTS......Page 255 10.8 AGilE METHODS AND REQUIREMENTS......Page 256 10.9 UPDATING THE PROJECT TO REFLECT REQUIREMENTS ANALYSIS......Page 258 10.10 SUMMARY......Page 260 11 - Analyzing High-Level Requirements......Page 262 11.1 EXAMPLES OF CUSTOMER WANTS......Page 263 11_2 STAKEHOLDER VISION......Page 264 11.3 THE INTERVIEW AND DOCUMENTATION PROCESS......Page 265 11.5 DESCRIBING MAIN FUNCTIONS AND USE CASES......Page 266 11.6 AGilE METHODS FOR HIGH-lEVEL REQUIREMENTS......Page 269 11.7.2 Step 2: Understand the Business Function......Page 271 11.7.3 GUI Transitions......Page 273 11 .8 SECURITY REQUIREMENTS......Page 275 11.9.1 Data Flow Diagrams......Page 277 11.9.2 State Transition Diagrams......Page 279 11.10 CASE STUDY: HIGH-lEVEL SOFTWARE REQUIREMENTS SPECIFICATION (SRS) FOR THE ENCOUNTER VIDEO GAME......Page 281 11.11 CASE STUDY: HIGH-LEVELREQUIREMENTS FOR ECLIPSE......Page 285 11 .12 ECLIPSE PLATFORM SUBPROJECT (FIRST OF THREE)......Page 286 11.13 CASE STUDY: HIGH-lEVELREQUIREMEN I S FOR OPENOFFICE......Page 290 11.14 SUMMARY......Page 292 12 - Analyzing Detailed Requirements......Page 295 12.1 THE MEANING OF DETAILED REQUIREMENTS......Page 296 12.2 ORGANIZING DETAILED REQUIREMENTS......Page 297 12.2.1 Organizing Detailed Requjrements by Feature......Page 298 12,2.2 Organizing Detailed Requirements by Use Case......Page 299 12.2.3 Organizing Detailed Requirement by GUI......Page 300 12.2.5 Organizing Requirements by Class......Page 302 12.3 USER INTERFACES: DETAILED REQUIREMENTS......Page 308 12.5 ERROR CONDITIONS......Page 313 12.6 TRACEABILITY OF DETAILED REQUIREMENTS......Page 314 12.7 USING DETAILED REQUIREMENTS TO MANAGE PROJECTS......Page 317 12.8 PRIORITIZING REQUIREMENTS......Page 318 12.9 ASSOCIATING REQUIREMENTS WITH TESTS......Page 319 12.10 AGILE METHODS FOR DETAILED REQUIREMENTS......Page 320 12.11 USING TOOLS AND THE WEB FOR REQUIREMENTS ANALYSIS......Page 322 12.11.1 Simple projects......Page 323 12.11.2 IBM's RequisiteproTM......Page 324 12.12 THE EFFECTS ON PROJECTS OF THE DETAILED REQUIREMENTS PROCESS......Page 325 12.13 STUDENT PROJECT GUIDE: REQUIREMENTS FOR THE ENCOUNTER CASE STUDY......Page 326 12.14 CASE STUDY: DETAILED REQUIREMENTS FOR THE ENCOUNTER VIDEO GAME......Page 332 12.1S SUMMARY......Page 345 13 -Quality and Metrics in Requirements Analisys......Page 348 13.2 ACCESSIBILITY OF REQUIREMENTS......Page 349 13.3 COMPREHENSIVENESS OF REQUIREMENTS......Page 350 13.5 UNAMBIGUITY OF REQUIREMENTS......Page 352 13.6 CONSISTENCY OF REQUIREMENTS......Page 353 13.7 PRIORITIZATION OF REQUIREMENTS......Page 354 13.8 SECURITY AND HIGH-LEVEL REQUIREMENTS......Page 355 13.9 SELF-COMPLETENESS OF REQUIREMENTS......Page 356 13,10 TESTABILITY OF REQUIREMENTS......Page 357 13.11 TRACEABILITY OF REQUIREMENTS......Page 359 13.12 ME I RjCS FOR REQUIREMENTS ANALYSIS......Page 360 13.13 INSPECTING DETAILED REQUIREMENTS......Page 361 13.14 SUMMARY......Page 364 14 - Formal and Emerging Methodsin Requirements Analysis: An Introduction Online Chapter......Page 366 15 - Principles of Software Design......Page 367 15.1 THE GOALS OF SOFTWARE DESIGN......Page 368 15.2.1 Use Case Model......Page 371 15.2.3 Data Flow Models......Page 372 15.2.4 State Models......Page 373 15.3 FRAMEWORKS......Page 374 15.5 SUMMARY......Page 376 16 - The Unified Modeling Language......Page 378 16.2 CLASS RELATIONSHIPS IN UMl......Page 379 16.2.2 Associations......Page 380 16.4 INHERITANCE......Page 381 16.4.2 Composition......Page 383 16.4.3 Dependency......Page 384 16.5 SEQUENCE DIAGRAMS......Page 385 16.6.2 Events......Page 389 16.6.4 OnlineShopper State Diagram Example......Page 390 16.7 ACTIVITY DIAGRAMS......Page 391 16.8 DATA FLOW MODELS......Page 393 16.9 A DESIGN EXAMPLE WITH UMl......Page 394 16.10 SUMMARY......Page 397 17 - Software Design Patterns......Page 400 17.1.2 A More Complex Example......Page 401 17 .2.2 Example Application: Applying a Design Pattern......Page 403 17.3 SUMMARY OF DESIGN PATTERNS BY TYPE: CREATIONAl,STRUCTURAL. AND BEHAVIORAL......Page 407 17.3.2 Structural Design patterns......Page 408 17.3,3 Behavjoral Design Patterns......Page 410 17.4 CHARACTERISnCS OF DESIGN PATTERNS; VIEWPOINTS, ROLES, AND LEVELS......Page 413 17.4.1 TWo Viewpoints for Describing a Pattern: static and Dynamic......Page 414 17.4.2 TWo Layers of a Pattern: Abstract and Concrete......Page 415 17.4.3.2 The Client Role......Page 416 17.5.1 .1 Design purpose of Singleton......Page 417 17.5.1.3 TheS;ngleton Class Model......Page 418 17.5.1.4 Example Singleton Application: "Experiment"......Page 419 17.5.2.1 Design Purpose of Abstract Factory......Page 420 17.5.2.3 The Abstract Factory Class Model......Page 422 17.5.2.5 EXample Abstract Factory Application: Word Processor......Page 424 17.6.1.1 The Design Purpose of Facade......Page 425 17.6.1 .3 The Facade Class Model......Page 427 17.6.2.1 The Design Purpose of Adapter......Page 429 17.6.2.4 The Adapter sequence Diagram......Page 430 17.6.2.5 Example Applications of Adapter......Page 431 17.6.2.7 Comments on Adapter......Page 433 17.7.1.1 Interpreter Design Purposes and Examples......Page 434 17.7 .1.2 Interpreter Interfaces for Clients......Page 435 17.7.1.5 Example Interpreter Application: Network Assembly......Page 436 17.7.2.1 The Design Purposes of Observer......Page 439 17.7 .2.3 The Observer Class Model......Page 441 17.7.2.4 Example Observer Applications......Page 442 17.7.2.5 ObseNer in the Java API......Page 443 17.7.3.1 The Design Purposes of State......Page 445 17.7.3.4 Example State Applications......Page 446 17 .8.1 The Delegation Design Pattern Form......Page 448 17.8.2 The Recursion Design Pattern Form......Page 450 17.9 SUMMARY......Page 452 18 - Software Architecture......Page 455 18.2.1 Data Flow Architectures......Page 456 18.2.1.1 Pipe and Filter......Page 458 18.2.1.2 Batch Sequential......Page 459 18.2.2.1 Tiered and Client-Server Architectures......Page 460 18.2.2.2 The Parallel Communicating Processes Architecture......Page 461 18.2.2.3 Event Systems Architectures and the State Design Pattern......Page 463 18.2.3 Virtual Machines......Page 464 18.2.4 Repository Architectures......Page 465 18.2.5 layered Architectures......Page 466 18.2.6 Sen/ice-Oriented Architectures......Page 467 18.2.7 Using Multiple Architectures within an Application......Page 469 18.3 TRADING OFF ARCHITECTURE ALTERNATIVES......Page 470 18,4 TOOLS FOR ARCHITECTURES......Page 471 18_6 EFFECTS OF ARCHITECTURE SELECTION ON THE PROJECT PLAN......Page 472 18.7 CASE STUDY: PREPARING TO DESIGN ENCOUNTER (STUDENT PROJECT GUIDE CONTINUED)......Page 474 18.8 CASE STUDY: SOFTWARE DESIGN DOCUMENT FOR THE ROLE-PLAYING VIDEO GAME FRAMEWORK......Page 477 18.9 CASE STUDY: SOFTWARE DESIGN DOCUMENT FOR ENCOUNTER (USES THEFRAMEWORK)......Page 479 18.10 CASE STUDY: ARCHITECTURE OF ECLIPSE......Page 483 18.11 CASE STUDY: OPENOFFICE ARCHITECTURE......Page 485 18.12 SUMMARY......Page 490 19 - Detailed Design......Page 493 19.1 RELATING USE CASES, ARCHITECTURE, AND DETAILED DESIGN......Page 494 19.2 A TYPICAL ROAD MAP FOR THE " DETAILED DESIGN" PROCESS......Page 495 19.3 OBJECT-ORIENTED DESIGN PRINCIPLES......Page 496 19.4 DESIGNING AGAINST INTERFACES......Page 498 19.5 SPECIFYING CLASSES, FUNCTIONS, AND ALGORITHMS......Page 499 19.5.1 preconditions, Postconditions, and Invariants......Page 500 19.5.2 Expressing Algorithms with Activity Diagrams and Pseudocode......Page 501 19.6 REUSING COMPONENTS......Page 502 19.7 SEQUENCE AND DATA FLOW DIAGRAMS FOR DETAILED DESIGN......Page 503 19.7.1 Detailed Sequence Diagrams......Page 504 19.7.2 Detailed Data Flow Diagrams......Page 506 19.9 DESIGN IN THE UNIFIED DEVELOPMENT PROCESS......Page 507 19.11 UPDATING A PROJECT WITH DETAILED DESIGN......Page 508 19.12 CASE STUDY: DETAILED DESIGN OF ENCOUNTER......Page 511 19.13 CASE STUDY: DETAILED DESIGN OFECLIPSE......Page 520 19.14 SUMMARY......Page 522 20 - Design Quality and Metrics......Page 525 20.2 DEGREE OF SUFFICIENCY AS A QUALITY GOAL......Page 527 20.3 DEGREE OF ROBUSTNESS AS A QUALITY GOAL......Page 528 20.4 DEGREE OF FLEXIBILITY AS A DESIGN QUALITY GOAL......Page 529 20.5 DEGREE OF REUSABILITY AS A DESIGN QUALITY GOAL......Page 530 20.6 DEGREE OF TIME EFFICIENCY AS A DESIGN QUAUTY MEASURE......Page 534 20.7 DEGREE OF SPACE EFFICIENCY AS A DESIGN QUALITY MEASURE......Page 536 20.8 DEGREE OF RELIABILITY AS A DESIGN QUALITY MEASURE......Page 538 20.9 DEGREE OF SECURITY AS A DESIGN QUALITY MEASURE......Page 540 20.10.1 Metrics for Architecture Quality......Page 542 20.10.2 Choosing an Architecture among Alternatives......Page 545 20.10.3 Verifying Architectures......Page 547 20.11 .1 Techniques for Assessing the Quality of Detailed Designs......Page 548 20.11 .2 Metrics for Detailed Design......Page 550 20.11.3 Inspection of Detailed Designs......Page 551 20.12 SUMMARY......Page 553 21 - Advanced and EmergingMethods in Software Design (Online Chapter)......Page 555 22 - Principles of Implementation......Page 556 22.3 IDENTIFYING CLASSES......Page 557 22.4 DEFINING METHODS......Page 558 22.5.1 Use Expressive Naming......Page 561 22.5.4 EXplicit Numbers......Page 563 22.5.6 Loops......Page 564 22.6.1 Error Handling......Page 565 22.6.2 Exception Handling......Page 567 22.6.4 "Enforce Intentions"......Page 568 22.7 CODING STANDARDS......Page 569 22.7.2 other Conventions......Page 570 22.8 COMMENTS......Page 571 22.9 TOOLS AND ENVIRONMENTS FOR PROGRAMMING......Page 572 22.10 CASE STUDY: ENCOUNTER IMPLEMENTATION......Page 573 22.12 CASE STUDY: OPENOFFICE......Page 576 22.13 STUDENT TEAM GUIDANCE FOR IMPLEMENTATION......Page 582 22.15.1 Code Listing for Video Rental EXample......Page 583 22.15.2 Code Listing for Encounter Character......Page 592 23 - Quality and Metrics in Implementation......Page 601 23.1 QUALITY OF IMPLEMENTATION......Page 602 23.1.1 The Sufficiency of an Implementation......Page 603 23.1.2 The Robustness of an Implementation......Page 604 23.1.3 The Flexibility of an Implementation......Page 609 23.1.4 The Reusability of an Implementation......Page 611 23.1.S The Efficiency of an Implementation......Page 612 23.1.8 The Degree of security of an Implementation......Page 613 23.2 CODE INSPECTIONS AND RELATED QUALITY PROCEDURES......Page 614 23.3 SUMMARY......Page 616 24 - Refactoring......Page 618 24.1 BIG REFACTORINGS......Page 621 24.2 COMPOSING METHODS......Page 623 24.3 MOVING FEATURES BETWEEN OBJECTS......Page 625 24.4 ORGANIZING DATA......Page 626 24.S GENERALIZATION......Page 629 24.6 INTRODUCING MODULES......Page 633 24.7 REFACTORING IN PROJECTS......Page 634 24.7.2 Refactoring and Design Patterns......Page 635 24.8 SUMMARY......Page 636 25 - Introduction to SoftwareTesting......Page 638 25.2 REtESTING: REGRESSION TESTING......Page 639 25.3 BLACK BOX AND WHITE BOX TESTING......Page 640 25.4 UNIT TESTING VS. POST-UNIT TESTING......Page 641 25.5 TESTING OBJECT-ORIENTED IMPLEMENTATIONS......Page 642 25.7.1 Organize "Unit" VS. Non-Unit Tests......Page 643 25.7.4 Decide How and Where to Get Test Input......Page 644 25.9 SUMMARY......Page 645 26 - Unit Testing......Page 647 26.2 UNIT TEST METHODS......Page 648 26.2.1 Statement Coverage......Page 649 26.2.3 Path coverage......Page 651 26.2.4 Equivalence partitioning......Page 655 26.2.5 Boundary value Analysis......Page 658 26.3.3 Stubs......Page 659 26.3.4 Example of a Method-Level Unit Test......Page 660 26.4 TEST-DRIVEN DEVELOPMENT......Page 664 26.4.1 using JUnft for Unit Testing......Page 666 26.5.1 Code Listlng for Encounter Character Class......Page 669 26.5.2 Unit Tests for the Encounter Character Class......Page 676 26.6 SUMMARY......Page 679 27 - Module and IntegrationTesting......Page 683 27.1 STUBS AND DRIVERS......Page 684 27.2 TESTING A CLASS......Page 685 27.2.1 Example of a Class Test......Page 686 27.2.2 Attribute-Oriented Tests......Page 687 27.2.4 State-Based Tests......Page 688 27.3 INTEGRATION......Page 689 27.3.1 Big Bang Integration......Page 690 27.3.3 Bottom-up Integration......Page 691 27.3.4 Top-Down Integration......Page 694 27.3.6 Continuous Integration......Page 695 27.4 DAILY BUILDS......Page 696 27.5 INTERFACE TESTING......Page 697 27.6 MODULE INTEGRATION......Page 699 27.7 CASE STUDY: CLASS TEST FOR ENCOUNTER......Page 700 27.8 CASE STUDY: ENCOUNTER INTEGRATION PLAN......Page 705 27.9 SUMMARY......Page 709 28 - Testing at the System Level......Page 711 28.1 FUNCTIONAL TESTING......Page 713 28.2.1 Performance Testing......Page 715 28.2.2 load/Stress Event Testing......Page 716 28.2.4 Recoverability Testing......Page 717 28.2.5 Usability Testing......Page 719 28.2.6 Security Testing......Page 720 28.2.7 Compatibility Testing......Page 723 28.2.9 Serviceability Testing......Page 724 28.3.1 Testing in the Absence of Requirements......Page 725 28.3.3 Constructing Directed Graphs for Black Box Testing......Page 726 28.3.5 Testing for Agile Processes......Page 728 28.3.6 Qualities of a Good Tester......Page 729 28.4.3 Alpha and Beta Releases......Page 730 28.5 CASE STUDY: ENCOUNTER SOFTWARE TEST DOCUMENTATION'......Page 731 28.6 CASE STUDY: ECLIPSE......Page 740 28.7 CASE STUDY: OPENOFFICE......Page 743 28.8 SUMMARY......Page 745 29 - Software Maintenance......Page 747 29.1.1 Maintenance Requests......Page 748 29.1.2 Corrective Maintenance......Page 749 29.1.4 Perfective Maintenance......Page 750 29.2.1 Management Challenges......Page 751 29.2.3 Technical Issues......Page 752 29.3 MAINTENANCE PROCESS......Page 753 29.3.1 Root-Cause Analysis......Page 755 29.3.2 Patch Releases......Page 756 29.3.3 Software Trouble Reports, Maintenance Requests, and COlTection Reports......Page 757 29.4 IEEE MAINTENANCE STANDARDS......Page 758 29.4.2 Maintenance Problem Analysis......Page 760 29.4.3 Designing for a Maintenance Request......Page 763 29.4.4 Implementing a Maintenance Request......Page 764 29.5 SOFTWARE EVOLUTION......Page 766 29.5.2 Reengineering......Page 767 29.6 MAINTENANCE METRICS......Page 768 29.7 CASE STUDY......Page 771 29.8 SUMMARY......Page 773

قیمت نهایی

۴۰٬۰۰۰ تومان