Note: Supplemental materials are not guaranteed with Rental or Used book purchases.
Purchase Benefits
What is included with this book?
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 Fails and Succeeds | |
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. |
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.