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.

9780763735371

Essentials of Software Engineering

by
  • ISBN13:

    9780763735371

  • ISBN10:

    076373537X

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2006-05-01
  • Publisher: Jones & Bartlett Learning
  • View Upgraded Edition

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: $99.93 Save up to $24.98
  • Buy Used
    $74.95
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

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 by the Software Engineering 2004 Curriculum Guidelines for Undergraduate Degree Programs in Software Engineering, Essentials of Software Engineering is the ideal text for students entering the world of software development.

Table of Contents

Preface iii
Writing a Program
1(26)
A Simple Problem
2(1)
Decisions, Decisions
2(6)
Functional Requirements
3(2)
Nonfunctional Requirements
5(1)
Design Constraints
6(1)
Design Decisions
7(1)
Testing
8(1)
Estimating Effort
9(2)
Implementations
11(12)
A Few Pointers on Implementation
11(2)
Basic Design
13(1)
Unit Testing with JUnit
13(1)
Implementation of StringSorter
14(6)
User Interfaces
20(3)
Summary
23(1)
Review Questions
23(1)
Exercises
24(1)
Suggested Readings
25(2)
Building a System
27(24)
Characteristics of Building a System
28(8)
Size and Complexity
28(1)
Technical Considerations of Development and Support
29(5)
Nontechnical Considerations of Development and Support
34(2)
Building a Hypothetical System
36(9)
Requirements of the Payroll System
36(2)
Designing the Payroll System
38(3)
Code and Unit Testing the Payroll System
41(1)
Integration and Functionally Testing the Payroll System
42(1)
Release of the Payroll System
43(1)
Support and Maintenance
44(1)
Coordination Efforts
45(2)
Process
45(1)
Product
46(1)
People
47(1)
Summary
47(1)
Review Questions
48(1)
Exercises
48(1)
Suggested Readings
48(3)
Engineering of Software
51(22)
Examples and Characteristics of Software Failures
52(4)
Project Failures
52(2)
Software Product Failures
54(1)
Coordination and Other Concerns
55(1)
Software Engineering
56(3)
What Is Software Engineering?
56(1)
Definitions of Software Engineering
57(1)
Relevancy of Software Engineering and Software
58(1)
Software Engineering Profession and Ethics
59(3)
Software Engineering Code of Ethics
59(2)
Professional Behavior
61(1)
Principles of Software Engineering
62(6)
Davis's Early Principles of Software Engineering
63(2)
Royce's More Modern Principles
65(1)
Wasserman's Fundamental Software Engineering Concepts
66(2)
Summary
68(1)
Review Questions
69(1)
Exercises
69(1)
Suggested Readings
70(3)
Software Process Models
73(34)
Software Processes
74(2)
Goal of Software Process Models
74(1)
The ``Simplest'' Process Model
75(1)
Traditional Process Models
76(6)
Waterfall Model
76(2)
Chief Programmer Team Approach
78(1)
Incremental Model
78(2)
Spiral Model
80(2)
A More Modern Process
82(6)
General Foundations of Rational Unified Process Framework
82(2)
The Phases of RUP
84(4)
Entry and Exit Criteria
88(2)
Entry Criteria
88(1)
Exit Criteria
89(1)
Process Assessment Models
90(12)
SEI's Capability Maturity Model
91(2)
SEI's Capability Maturity Model Integrated
93(9)
Summary
102(1)
Review Questions
102(1)
Exercises
103(1)
Suggested Readings
103(4)
New and Emerging Process Methodologies
107(32)
What Are Agile Processes?
108(1)
Why Agile Processes?
109(2)
Some Process Methodologies
111(19)
Extreme Programming (XP)
111(7)
The Crystal Family of Methodologies
118(4)
The Unified Process as Agile
122(1)
Microsoft Solutions Framework
123(5)
Open Source Software Development
128(2)
Summary of Processes
130(1)
Agile Versus Traditional Processes
130(1)
Choosing a Process
130(5)
Projects and Environments Better Suited for Each Kind of Process
133(1)
Main Risks and Disadvantages of Agile Processes
133(1)
Main Advantages of Agile Processes
134(1)
Summary
135(1)
Review Questions
135(1)
Exercises
136(1)
Suggested Readings
136(3)
Requirements Engineering
139(34)
Requirements Processing
140(4)
Preparing for Requirements Processing
140(2)
Requirements Engineering Process
142(2)
Requirements Elicitation and Gathering
144(7)
Eliciting High-Level Requirements
146(2)
Eliciting Detailed Requirements
148(3)
Requirements Analysis
151(10)
Requirements Analysis and Clustering by Business Flow
151(2)
Requirements Analysis and Clustering with Object-Oriented Use Cases
153(4)
Requirements Analysis and Clustering by View-point Oriented Requirements Definition
157(1)
Requirements Analysis and Prioritization
158(3)
Requirements Definition, Prototyping, and Reviews
161(5)
Requirements Specification and Requirements Agreement
166(2)
Summary
168(1)
Review Questions
169(1)
Exercises
170(1)
Suggested Readings
170(3)
Design: Architecture and Methodology
173(36)
Introduction to Design
174(1)
Architectural Design
175(10)
What Is Software Architecture?
175(1)
Views and Viewpoints
176(2)
Meta-Architectural Knowledge: Styles, Patterns, Tactics, and Reference Architectures
178(7)
Detailed Design
185(21)
Functional Decomposition
186(2)
Relational Database Design
188(7)
Object-Oriented Design and UML
195(6)
User-Interface Design
201(5)
Summary
206(1)
Review Questions
206(1)
Exercises
207(1)
Suggested Readings
207(2)
Design Characteristics and Metrics
209(28)
Characterizing Design
210(1)
Some Legacy Characterization of Design Attributes
211(5)
Halstead Complexity Metric
211(1)
McCabe's Cyclomatic Complexity
212(2)
Henry-Kafura Information Flow
214(2)
A Higher-Level Complexity Measure
216(1)
``Good'' Design Attributes
216(9)
Cohesion
217(5)
Coupling
222(3)
Object-Oriented Design Metrics
225(3)
Aspect-Oriented Programming
228(1)
User-Interface Design
228(3)
Good UI Characteristics
228(2)
Usability Evaluation and Testing
230(1)
Summary
231(1)
Review Questions
232(1)
Exercises
233(1)
Suggested Readings
234(3)
Implementation
237(18)
Introduction to Implementation
238(1)
Characteristics of a Good Implementation
238(1)
Programming Style and Coding Guidelines
239(4)
Comments
243(3)
Debugging
246(2)
Assertions and Defensive Programming
248(1)
Performance Optimization
248(2)
Refactoring
250(1)
Summary
251(1)
Review Questions
252(1)
Exercises
252(1)
Suggested Readings
252(3)
Testing and Quality Assurance
255(38)
Introduction to Testing and Quality Assurance
256(2)
Testing
258(2)
The Purposes of Testing
259(1)
Testing Techniques
260(20)
Equivalence Class Partitioning
264(2)
Boundary Value Analysis
266(1)
Path Analysis
267(5)
Combinations of Conditions
272(2)
Automated Unit Testing and Test-Driven Development
274(1)
An Example of Test-Driven Development
275(5)
When to Stop Testing
280(2)
Inspections and Reviews
282(2)
Formal Methods
284(2)
Static Analysis
286(2)
Summary
288(1)
Review Questions
288(1)
Exercises
289(1)
Suggested Readings
290(3)
Configuration Management, Integration, and Builds
293(24)
Software Configuration Management
294(1)
Policy, Process, and Artifacts
294(7)
Business Policy Impact on Configuration Management
299(1)
Process Influence on Configuration Management
300(1)
Configuration Management Framework
301(5)
Naming Model
301(3)
Storage and Access Model
304(2)
Build and Integration and Build
306(2)
Tools for Configuration Management
308(4)
Managing the Configuration Management Framework
312(1)
Summary
313(1)
Review Questions
313(1)
Exercises
314(1)
Suggested Readings
315(2)
Software Support and Maintenance
317(20)
Customer Support
318(10)
User Problem Arrival Rate
319(2)
Customer Interface and Call Management
321(3)
Technical Problem/Fix
324(2)
Fix Delivery and Fix Installs
326(2)
Product Maintenance Updates and Release Cycles
328(3)
Change Control
331(2)
Summary
333(1)
Review Questions
333(1)
Exercises
334(1)
Suggested Readings
334(3)
Software Project Management
337(38)
The Necessity of Project Management
338(1)
The Project Management Process
338(12)
Planning
340(4)
Organizing
344(1)
Monitoring
345(3)
Adjusting
348(2)
Some Project Management Techniques
350(18)
Project Effort Estimation
351(10)
Work Breakdown Structure
361(4)
Project Status Tracking with Earned Value
365(3)
Summary
368(1)
Review Questions
369(1)
Exercises
370(2)
Suggested Readings
372(3)
Epilogue
375(4)
Index 379

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