Skip to content

Essentials of Software Engineering

Best in textbook rentals since 2012!

ISBN-10: 076373537X

ISBN-13: 9780763735371

Edition: 2007

Authors: Frank F. Tsui, Orlando Karam

List price: $142.95
Blue ribbon 30 day, 100% satisfaction guarantee!
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Description:

Intended for a one-semester, introductory course, Essentials of Software Engineering is a user-friendly, comprehensive introduction to the core fundamental topics and methodologies of software development. The authors, building off their 25 years of experience, present the complete life cycle of a software system, from inception to release and through support. The text is broken into six distinct sections, covering programming concepts, system analysis and design, principles of software engineering, development and support processes, methodologies, and product management. Presenting topics emphasized by the IEEE Computer Society sponsored Software Engineering Body of Knowledge (SWEBOK) and…    
Customers also bought

Book details

List price: $142.95
Copyright year: 2007
Publisher: Jones & Bartlett Learning, LLC
Publication date: 5/18/2006
Binding: Paperback
Pages: 384
Size: 7.25" wide x 9.00" long x 0.75" tall
Weight: 1.496
Language: English

Preface
Writing a Program
A Simple Problem
Decisions, Decisions
Functional Requirements
Nonfunctional Requirements
Design Constraints
Design Decisions
Testing
Estimating Effort
Implementations
A Few Pointers on Implementation
Basic Design
Unit Testing with JUnit
Implementation of StringSorter
User Interfaces
Summary
Review Questions
Exercises
Suggested Readings
Building a System
Characteristics of Building a System
Size and Complexity
Technical Considerations of Development and Support
Nontechnical Considerations of Development and Support
Building a Hypothetical System
Requirements of the Payroll System
Designing the Payroll System
Code and Unit Testing the Payroll System
Integration and Functionally Testing the Payroll System
Release of the Payroll System
Support and Maintenance
Coordination Efforts
Process
Product
People
Summary
Review Questions
Exercises
Suggested Readings
Engineering of Software
Examples and Characteristics of Software Failures
Project Failures
Software Product Failures
Coordination and Other Concerns
Software Engineering
What Is Software Engineering?
Definitions of Software Engineering
Relevancy of Software Engineering and Software
Software Engineering Profession and Ethics
Software Engineering Code of Ethics
Professional Behavior
Principles of Software Engineering
Davis's Early Principles of Software Engineering
Royce's More Modern Principles
Wasserman's Fundamental Software Engineering Concepts
Summary
Review Questions
Exercises
Suggested Readings
Software Process Models
Software Processes
Goal of Software Process Models
The "Simplest" Process Model
Traditional Process Models
Waterfall Model
Chief Programmer Team Approach
Incremental Model
Spiral Model
A More Modern Process
General Foundations of Rational Unified Process Framework
The Phases of RUP
Entry and Exit Criteria
Entry Criteria
Exit Criteria
Process Assessment Models
SEI's Capability Maturity Model
SEI's Capability Maturity Model Integrated
Summary
Review Questions
Exercises
Suggested Readings
New and Emerging Process Methodologies
What Are Agile Processes?
Why Agile Processes?
Some Process Methodologies
Extreme Programming (XP)
The Crystal Family of Methodologies
The Unified Process as Agile
Microsoft Solutions Framework
Open Source Software Development
Summary of Processes
Agile Versus Traditional Processes
Choosing a Process
Projects and Environments Better Suited for Each Kind of Process
Main Risks and Disadvantages of Agile Processes
Main Advantages of Agile Processes
Summary
Review Questions
Exercises
Suggested Readings
Requirements Engineering
Requirements Processing
Preparing for Requirements Processing
Requirements Engineering Process
Requirements Elicitation and Gathering
Eliciting High-Level Requirements
Eliciting Detailed Requirements
Requirements Analysis
Requirements Analysis and Clustering by Business Flow
Requirements Analysis and Clustering with Object-Oriented Use Cases
Requirements Analysis and Clustering by View-point-Oriented Requirements Definition
Requirements Analysis and Prioritization
Requirements Definition, Prototyping, and Reviews
Requirements Specification and Requirements Agreement
Summary
Review Questions
Exercises
Suggested Readings
Design: Architecture and Methodology
Introduction to Design
Architectural Design
What Is Software Architecture?
Views and Viewpoints
Meta-Architectural Knowledge: Styles, Patterns, Tactics, and Reference Architectures
Detailed Design
Functional Decomposition
Relational Database Design
Object-Oriented Design and UML
User-Interface Design
Summary
Review Questions
Exercises
Suggested Readings
Design Characteristics and Metrics
Characterizing Design
Some Legacy Characterization of Design Attributes
Halstead Complexity Metric
McCabe's Cyclomatic Complexity
Henry-Kafura Information Flow
A Higher-Level Complexity Measure
"Good" Design Attributes
Cohesion
Coupling
Object-Oriented Design Metrics
Aspect-Oriented Programming
User-Interface Design
Good UI Characteristics
Usability Evaluation and Testing
Summary
Review Questions
Exercises
Suggested Readings
Implementation
Introduction to Implementation
Characteristics of a Good Implementation
Programming Style and Coding Guidelines
Comments
Debugging
Assertions and Defensive Programming
Performance Optimization
Refactoring
Summary
Review Questions
Exercises
Suggested Readings
Testing and Quality Assurance
Introduction to Testing and Quality Assurance
Testing
The Purposes of Testing
Testing Techniques
Equivalence Class Partitioning
Boundary Value Analysis
Path Analysis
Combinations of Conditions
Automated Unit Testing and Test-Driven Development
An Example of Test-Driven Development
When to Stop Testing
Inspections and Reviews
Formal Methods
Static Analysis
Summary
Review Questions
Exercises
Suggested Readings
Configuration Management, Integration, and Builds
Software Configuration Management
Policy, Process, and Artifacts
Business Policy Impact on Configuration Management
Process Influence on Configuration Management
Configuration Management Framework
Naming Model
Storage and Access Model
Build and Integration and Build
Tools for Configuration Management
Managing the Configuration Management Framework
Summary
Review Questions
Exercises
Suggested Readings
Software Support and Maintenance
Customer Support
User Problem Arrival Rate
Customer Interface and Call Management
Technical Problem/Fix
Fix Delivery and Fix Installs
Product Maintenance Updates and Release Cycles
Change Control
Summary
Review Questions
Exercises
Suggested Readings
Software Project Management
The Necessity of Project Management
The Project Management Process
Planning
Organizing
Monitoring
Adjusting
Some Project Management Techniques
Project Effort Estimation
Work Breakdown Structure
Project Status Tracking with Earned Value
Summary
Review Questions
Exercises
Suggested Readings
Epilogue
Index