Because Knetbooks knows college students. Our rental program is designed to save you time and money. Whether you need a textbook for a semester, quarter or even a summer session, we have an option for you. Simply select a rental period, enter your information and your book will be on its way!
| Preface | |
| The Issue of Scale | |
| This Edition Compared with the First | |
| How Instructors Can Use This Book | |
| Acknowledgments | |
| Introduction To Software Engineering | |
| The Goals and Terminology of Software Engineering | |
| What is Software Engineering | |
| Why Software Engineering Is Critical: Software Disasters | |
| Why Software F... MORE | |
| Software Engineering Activities | |
| Software Engineering Principles | |
| Ethics in Software Engineering | |
| Case Studies | |
| Summary | |
| Exercises | |
| Bibliography | |
| Introduction to Quality and Metrics in Software Engineering | |
| The Meaning of Software Quality | |
| Defects in Software | |
| Verification and Validation | |
| Planning for Quality | |
| Metrics | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Process | |
| Software Process | |
| The Activities of Software Process | |
| Software Process Models | |
| Case Study: Student Team Guidance | |
| Summary | |
| Exercises | |
| Bibliography | |
| Agile Software Processes | |
| Agile History and Agile Manifesto | |
| Agile Principles | |
| Agile Methods | |
| Agile Processes | |
| Integrating Agile with Non-Agile Processes | |
| Summary | |
| Exercises | |
| Bibliography | |
| Quality in the Software Process | |
| Principles of Managing Quality | |
| Managing Quality in Agile Processes | |
| Quality Planning | |
| Inspections | |
| QA Reviews and Audits | |
| Defect Management | |
| Process Improvement and Process Metrics | |
| Organization-Level Quality and the CMMI | |
| Case Study | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Configuration Management | |
| Software Configuration Management Goals | |
| SCM Activities | |
| Configuration Management Plans | |
| Configuration Management Systems | |
| Case Study: Encounter Video Game | |
| Case Study: Eclipse | |
| Student Team Guidance: Configuration Management | |
| Summary | |
| Exercises | |
| Bibliography | |
| Project Management | |
| Principles of Software Project Management I: Organization, Tools, and Risk Management | |
| Software Project Organization | |
| Team Size | |
| Geographically Distributed Development | |
| The Team Software Process | |
| Software Project Tools and Techniques | |
| Risk Management | |
| Student Team Guidance: Organizing the Software Projec's Management | |
| Summary | |
| Exercises | |
| Bibliography | |
| Principles of Software Project Management II: Estimation, Scheduling, and Planning | |
| Cost Estimation | |
| Scheduling | |
| The Software Project Management Plan | |
| Case Study: Encounter Project Management Plan | |
| Case Study: Project Management in Eclipse | |
| Case Study: Project Management for OpenOffice | |
| Case Study: Student Team Guidance | |
| Summary | |
| Exercises | |
| Bibliography | |
| Quality and Metrics in Project Management | |
| Cultivating and Planning Internal Quality | |
| Project Metrics | |
| Using Metrics for Improvement | |
| Software Verification and Validation Plan | |
| Case Study: Software Verification and Validation Plan for Encounter | |
| Summary | |
| Exercises | |
| Bibliography | |
| Requirements Analysis | |
| Principles of Requirements Analysis | |
| The Value of Requirements Analysis | |
| Sources of Requirements | |
| High-level vs. Detailed | |
| Requirements | |
| Types of Requirements | |
| Nonfunctional Requirements | |
| Documenting Requirements | |
| Traceability | |
| Agile Methods and Requirements | |
| Updating the Project to Reflect Requirements Analysis | |
| Summary | |
| Exercises | |
| Bibliography | |
| Analyzing High-Level Requirements | |
| Examples of Customer Wants | |
| Stakeholder Vision | |
| The Interview and Documentation Process | |
| Writing an Overview | |
| Describing Main Functions and Used Cases | |
| Agile Methods for High-Level Requirements | |
| Specifying User Interfaces: High Level | |
| Security Requirements | |
| Using Diagrams for High-Level Requirements | |
| Case Study: High-Level Software Requirements Specifications (SRS) for the Encounter Video Game | |
| Case Study: High-Level Requirements for Eclipse | |
| Case Study: High-Level Requirements for OpenOffice | |
| Summary | |
| Exercises | |
| Bibliography | |
| Analyzing Detailed Requirements | |
| The Meaning of Detailed Requirements | |
| Organizing Detailed Requirements | |
| User Interfaces: Detailed Requirements | |
| Detailed Security Requirements | |
| Error Conditions | |
| Traceability of Detailed Requirements | |
| Using Detailed Requirements to Manage Projects | |
| Prioritizing Requirements | |
| Associating Requirements with Tests | |
| Agile Methods for Detailed Requirements | |
| Using Tools and the Web for Requirements Analysis | |
| The Effects on Projects of the Detailed Requirements Process | |
| Student Project Guide: Requirements for the Encounter Case Study | |
| Case Study: Detailed Requirements for the Encounter Video Game | |
| Summary | |
| Exercises | |
| Bibliography | |
| Quality and Metrics in Requirements Analysis | |
| Quality of Requirements for Agile Projects | |
| Accessibility of Requirements | |
| Comprehensiveness of Requirements | |
| Understandability of Requirements | |
| Un-ambiguity of Requirements | |
| Consistency of Requirements | |
| Prioritization of Requirements | |
| Security and High-Level Requirements | |
| Self-Completeness of Requirements | |
| Testability of Requirements | |
| Traceability of Requirements | |
| Metrics for Requirements Analysis | |
| Inspecting Detailed Requirements | |
| Summary | |
| Exercises | |
| Online Chapter - Formal and Emerging Methods in Requirements Analysis as follows: An Introduction | |
| Provable Requirements Method | |
| Introduction to Formal Methods | |
| Mathematical Preliminaries | |
| The Z-Specification Language | |
| The B Language System | |
| Trade-offs for Using a B-like system | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Design | |
| Principles of Software Design | |
| The Goals of Software Design | |
| Integrating Design Models | |
| Frameworks | |
| IEEE Standards for Expressing Designs | |
| Summary | |
| Exercises | |
| The Unified Modeling Language | |
| Classes in UML | |
| Class Relationships in UML | |
| Multiplicity | |
| Inheritance | |
| Sequence Diagrams | |
| State Diagrams | |
| Activity Diagrams | |
| Data Flow Models | |
| A Design Example with UML | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Design Patterns | |
| Examples of a Recurring Design Purpose | |
| An Introduction to Design Patterns | |
| Summary of Design Patterns by Type: Creational, Structural, and Behavioral | |
| Characteristics of Design Patterns: Viewpoints, Roles, and Levels | |
| Selected Creational Design Patterns | |
| Selected Structural Design Patterns | |
| Selected Behavioral Design Patterns | |
| Design Pattern Forms: Delegation and Recursion | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Architecture | |
| A Categorization of Architectures | |
| Software Architecture Alternatives and Their Class Models | |
| Trading Off Architecture Alternatives | |
| Tools for Architectures | |
| IEEE Standards for Expressing Designs | |
| Effects of Architecture Selection on the Project Plan | |
| Case Study: Preparing to Design Encounter (Student Project Guide continued) | |
| Case Study: Software Design Document for the Role-Playing Video Game Framework | |
| Case Study: Software Design Document for Encounter (Uses the Framework) | |
| Case Study: Architecture of Eclipse | |
| Case Study: OpenOffice Architecture | |
| Summary | |
| Exercises | |
| Bibliography | |
| Detailed Design | |
| Relating Use Cases, Architecture, and Detailed Design | |
| A Typical Road Map for the Detailed Design Process | |
| Object-Oriented Design Principles | |
| Designing against Interfaces | |
| Specifying Classes, Functions, and Algorithms | |
| Reusing Components | |
| Sequence and Data Flow Diagrams for Detailed Design | |
| Detailed Design and Agile Processes | |
| Design in the Unified Development Process | |
| IEEE Standard 890 for Detailed Design | |
| Updating a Project with Detailed Design | |
| Case Study: Detailed Design of Encounter | |
| Case Study: Detailed Design of Eclipse | |
| Summary | |
| Exercises | |
| Bibliography | |
| Design Quality and Metrics | |
| Degree of Understandability, Cohesion, and Coupling | |
| Degree of Sufficiency as a Quality Goal | |
| Degree of Robustness as a Quality Goal | |
| Degree of Flexibility as a Design Quality Goal | |
| Degree of Reusability as a Design Quality Goal | |
| Degree of Time Efficiency as a Design Quality Measure | |
| Degree of Space Efficiency as a Design Quality Measure | |
| Degree of Reliability as a Design Quality Measure | |
| Degree of Security as a Design Quality Measure | |
| Assessing Quality in Architecture Selection | |
| Assessing the Quality of Detailed Designs | |
| Summary | |
| Exercises | |
| Bibliography | |
| Online Chapter - Advanced and Emerging Methods in Software Design | |
| Designing in a Distributed Environment | |
| Introduction to Aspect-Oriented Programming | |
| Designing for Security with UMLsec | |
| Model-Driven Architectures | |
| The Formal Design Process in B | |
| Summary | |
| Exercises | |
| Bibliography | |
| Implementation | |
| Principles of Implementation | |
| Agile and Non-Agile Approaches to Implementation | |
| Choosing a Programming Language | |
| Identifying Classes | |
| Defining Methods | |
| Implementation Practices | |
| Defensive Programming | |
| Coding Standards | |
| Comments | |
| Tools and Environments for Programming | |
| Case Study: Encounter Implementation | |
| Case Study: Eclipse | |
| Case Study: OpenOffice | |
| Student Team Guidance for Implementation | |
| Summary | |
| Code Listings Referred to in This Chapter | |
| Exercises | |
| Bibliography | |
| Quality and Metrics in Implementation | |
| Quality of Implementation | |
| Code Inspections | |
| Summary | |
| Exercises | |
| Refactoring | |
| Big Refactorings | |
| Composing Methods | |
| Moving Features between Objects | |
| Organizing Data | |
| Generalization | |
| Introducing Modules | |
| Refactoring in Projects | |
| Summary | |
| Exercises | |
| Bibliography | |
| Testing And Maintenance | |
| Introduction to Software Testing | |
| Testing Early and Often and the Agile Connection | |
| Retesting: Regression Testing | |
| Black Box and White Box Testing | |
| Unit Testing vs. Post-Unit Testing | |
| Testing Object-Oriented Implementations | |
| Documenting Tests | |
| Test Planning | |
| Testing Test Suites by Fault Injection | |
| Summary | |
| Exercises | |
| Unit Testing | |
| The Sources of Units for Unit Testing | |
| Unit Test Methods | |
| Testing Methods | |
| Test-Driven Development | |
| Case Study: Encounter Video Game | |
| Summary | |
| Exercises | |
| Bibliography | |
| Module and Integration Testing | |
| Stubs and Drivers | |
| Testing a Class | |
| Integration | |
| Daily Builds | |
| Interface Testing | |
| Module Integration | |
| Case Study: Class Test for Encounter | |
| Case Study: Encounter Integration Plan | |
| Summary | |
| Exercises | |
| Bibliography | |
| Testing at the System Level | |
| Functional Testing | |
| Nonfunctional Testing | |
| Testing with Lightweight Requirements | |
| Testing Shortly Before Release | |
| Case Study: Encounter Software Test Documentation | |
| Case Study: Eclipse | |
| Case Study: OpenOffice | |
| Summary | |
| Exercises | |
| Bibliography | |
| Software Maintenance | |
| Types of Software Maintenance | |
| Issues of Software Maintenance | |
| Maintenance Process | |
| IEEE Maintenance Standards | |
| Software Evolution | |
| Maintenance Metrics | |
| Case Studies | |
| Summary | |
| Exercises | |
| Bibliography | |
| Glossary | |
| Index | |
| Table of Contents provided by Publisher. All Rights Reserved. |