did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780471692089

Software Engineering : An Object-Oriented Perspective

by ;
  • ISBN13:

    9780471692089

  • ISBN10:

    0471692085

  • Edition: 2nd
  • Format: Hardcover
  • Copyright: 2010-04-01
  • Publisher: Wiley

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $210.20 Save up to $52.55
  • Buy Used
    $157.65
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

Software engineers are looking for a book that doesn't just cover software engineering but actually gets them to apply concepts. The new second edition provides a more balanced approach, offering comprehensive discussions of concepts with case studies, coverage of teams, and hundreds of examples. It was built around the idea of using object-orientation from the beginning, including the requirements analysis stage. A longitudinal case study using IEEE standards is also implemented throughout the chapters. Software engineers will quickly learn the complexities in the field as they write their own programs.

Table of Contents

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.

Supplemental Materials

What is included with this book?

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.

Rewards Program