Cover image for Essentials of software engineering.
Title:
Essentials of software engineering.
Author:
Tsui, Frank F.
ISBN:
9781449691998
Personal Author:
Edition:
Third edition / Frank Tsui, Orlando Karam, Barbara Bernal, all of Southern Polytechnic State University.
Publication Information:
Burlington, MA : Jones & Bartlett Learning, [2014]
Physical Description:
xvii, 327 pages : illustrations ; 24 cm.
Contents:
ch. 1 Writing a Program -- 1.1.A Simple Problem -- 1.2.Decisions, Decisions -- 1.2.1.Functional Requirements -- 1.2.2.Nonfunctional Requirements -- 1.2.3.Design Constraints -- 1.2.4.Design Decisions -- 1.3.Testing -- 1.4.Estimating Effort -- 1.5.Implementations -- 1.5.1.A Few Pointers on Implementation -- 1.5.2.Basic Design -- 1.5.3.Unit Testing with JUnit -- 1.5.4.Implementation of StringSorter -- 1.5.5.User Interfaces -- 1.6.Summary -- 1.7.Review Questions -- 1.8.Exercises -- 1.9.Suggested Readings -- ch. 2 Building a System -- 2.1.Characteristics of Building a System -- 2.1.1.Size and Complexity -- 2.1.2.Technical Considerations of Development and Support -- 2.1.3.Nontechnical Considerations of Development and Support -- 2.2.Building a Hypothetical System -- 2.2.1.Requirements of the Payroll System -- 2.2.2.Designing the Payroll System -- 2.2.3.Code and Unit Testing the Payroll System --

2.2.4.Integration and Functionally Testing the Payroll System -- 2.2.5.Release of the Payroll System -- 2.2.6.Support and Maintenance -- 2.3.Coordination Efforts -- 2.3.1.Process -- 2.3.2.Product -- 2.3.3.People -- 2.4.Summary -- 2.5.Review Questions -- 2.6.Exercises -- 2.7.Suggested Readings -- ch. 3 Engineering of Software -- 3.1.Examples and Characteristics of Software Failures -- 3.1.1.Project Failures -- 3.1.2.Software Product Failures -- 3.1.3.Coordination and Other Concerns -- 3.2.Software Engineering -- 3.2.1.What Is Software Engineering? -- 3.2.2.Definitions of Software Engineering -- 3.2.3.Relevancy of Software Engineering and Software -- 3.3.Software Engineering Profession and Ethics -- 3.3.1.Software Engineering Code of Ethics -- 3.3.2.Professional Behavior -- 3.4.Principles of Software Engineering -- 3.4.1.Davis's Early Principles of Software Engineering -- 3.4.2.Royce's More Modern Principles --

3.4.3.Wasserman's Fundamental Software Engineering Concepts -- 3.5.Summary -- 3.6.Review Questions -- 3.7.Exercises -- 3.8.Suggested Readings -- ch. 4 Software Process Models -- 4.1.Software Processes -- 4.1.1.Goal of Software Process Models -- 4.1.2.The "Simplest" Process Model -- 4.2.Traditional Process Models -- 4.2.1.Waterfall Model -- 4.2.2.Chief Programmer Team Approach -- 4.2.3.Incremental Model -- 4.2.4.Spiral Model -- 4.3.A More Modern Process -- 4.3.1.General Foundations of Rational Unified Process Framework -- 4.3.2.The Phases of RUP -- 4.4.Entry and Exit Criteria -- 4.4.1.Entry Criteria -- 4.4.2.Exit Criteria -- 4.5.Process Assessment Models -- 4.5.1.SEI's Capability Maturity Model -- 4.5.2.SEI's Capability Maturity Model Integrated -- 4.6.Process Definition and Communication -- 4.7.Summary -- 4.8.Review Questions -- 4.9.Exercises -- 4.10.Suggested Readings -- ch. 5 New and Emerging Process Methodologies -- 5.1.What Are Agile Processes? --

5.2.Why Agile Processes? -- 5.3.Some Process Methodologies -- 5.3.1.Extreme Programming (XP) -- 5.3.2.The Crystal Family of Methodologies -- 5.3.3.The Unified Process as Agile -- 5.3.4.Scrum -- 5.3.5.Open Source Software Development -- 5.3.6.Summary of Processes -- 5.4.Choosing a Process -- 5.4.1.Projects and Environments Better Suited for Each Kind of Process -- 5.4.2.Main Risks and Disadvantages of Agile Processes -- 5.4.3.Main Advantages of Agile Processes -- 5.5.Summary -- 5.6.Review Questions -- 5.7.Exercises -- 5.8.Suggested Readings -- ch. 6 Requirements Engineering -- 6.1.Requirements Processing -- 6.1.1.Preparing for Requirements Processing -- 6.1.2.Requirements Engineering Process -- 6.2.Requirements Elicitation and Gathering -- 6.2.1.Eliciting High-Level Requirements -- 6.2.2.Eliciting Detailed Requirements -- 6.3.Requirements Analysis -- 6.3.1.Requirements Analysis and Clustering by Business Flow --

6.3.2.Requirements Analysis and Clustering with Object-Oriented Use Cases -- 6.3.3.Requirements Analysis and Clustering by Viewpoint-Oriented Requirements Definition -- 6.3.4.Requirements Analysis and Prioritization -- 6.3.5.Requirements Traceability -- 6.4.Requirements Definition, Prototyping, and Reviews -- 6.5.Requirements Specification and Requirements Agreement -- 6.6.Summary -- 6.7.Review Questions -- 6.8.Exercises -- 6.9.Suggested Readings -- ch. 7 Design: Architecture and Methodology -- 7.1.Introduction to Design -- 7.2.Architectural Design -- 7.2.1.What Is Software Architecture? -- 7.2.2.Views and Viewpoints -- 7.2.3.Meta-Architectural Knowledge: Styles, Patterns, Tactics, and Reference Architectures -- 7.3.Detailed Design -- 7.3.1.Functional Decomposition -- 7.3.2.Relational Database Design -- 7.3.3.Object-Oriented Design and UML -- 7.3.4.User-Interface Design -- 7.3.5.Some Further Design Concerns -- 7.4.HTML-Script-SQL Design Example --

7.5.Summary -- 7.6.Review Questions -- 7.7.Exercises -- 7.8.Suggested Readings -- ch. 8 Design Characteristics and Metrics -- 8.1.Characterizing Design -- 8.2.Some Legacy Characterizations of Design Attributes -- 8.2.1.Halstead Complexity Metric -- 8.2.2.McCabe's Cyclomatic Complexity -- 8.2.3.Henry-Kafura Information Flow -- 8.2.4.A Higher-Level Complexity Measure -- 8.3."Good" Design Attributes -- 8.3.1.Cohesion -- 8.3.2.Coupling -- 8.4.Object-Oriented Design Metrics -- 8.4.1.Aspect-Oriented Programming -- 8.4.2.The Law of Demeter -- 8.5.User-Interface Design -- 8.5.1.Good UI Characteristics -- 8.5.2.Usability Evaluation and Testing -- 8.6.Summary -- 8.7.Review Questions -- 8.8.Exercises -- 8.9.Suggested Readings -- ch. 9 Implementation -- 9.1.Introduction to Implementation -- 9.2.Characteristics of a Good Implementation -- 9.3.Programming Style and Coding Guidelines -- 9.4.Comments -- 9.5.Debugging -- 9.6.Assertions and Defensive Programming --

9.7.Performance Optimization -- 9.8.Refactoring -- 9.9.Summary -- 9.10.Review Questions -- 9.11.Exercises -- 9.12.Suggested Readings -- ch. 10 Testing and Quality Assurance -- 10.1.Introduction to Testing and Quality Assurance -- 10.2.Testing -- 10.2.1.The Purposes of Testing -- 10.3.Testing Techniques -- 10.3.1.Equivalence Class Partitioning -- 10.3.2.Boundary Value Analysis -- 10.3.3.Path Analysis -- 10.3.4.Combinations of Conditions -- 10.3.5.Automated Unit Testing and Test-Driven Development -- 10.3.6.An Example of Test-Driven Development -- 10.4.When to Stop Testing -- 10.5.Inspections and Reviews -- 10.6.Formal Methods -- 10.7.Static Analysis -- 10.8.Summary -- 10.9.Review Questions -- 10.10.Exercises -- 10.11.Suggested Readings -- ch. 11 Configuration Management, Integration, and Builds -- 11.1.Software Configuration Management -- 11.2.Policy, Process, and Artifacts -- 11.2.1.Business Policy Impact on Configuration Management --

11.2.2.Process Influence on Configuration Management -- 11.3.Configuration Management Framework -- 11.3.1.Naming Model -- 11.3.2.Storage and Access Model -- 11.4.Build and Integration and Build -- 11.5.Tools for Configuration Management -- 11.6.Managing the Configuration Management Framework -- 11.7.Summary -- 11.8.Review Questions -- 11.9.Exercises -- 11.10.Suggested Readings -- ch. 12 Software Support and Maintenance -- 12.1.Customer Support -- 12.1.1.User Problem Arrival Rate -- 12.1.2.Customer Interface and Call Management -- 12.1.3.Technical Problem/Fix -- 12.1.4.Fix Delivery and Fix Installs -- 12.2.Product Maintenance Updates and Release Cycles -- 12.3.Change Control -- 12.4.Summary -- 12.5.Review Questions -- 12.6.Exercises -- 12.7.Suggested Readings -- ch. 13 Software Project Management -- 13.1.The Necessity of Project Management -- 13.2.The Project Management Process -- 13.2.1.Planning -- 13.2.2.Organizing -- 13.2.3.Monitoring --

13.2.4.Adjusting -- 13.3.Some Project Management Techniques -- 13.3.1.Project Effort Estimation -- 13.3.2.Work Breakdown Structure -- 13.3.3.Project Status Tracking with Earned Value -- 13.3.4.Measuring Project Properties and GQM -- 13.4.Summary -- 13.5.Review Questions -- 13.6.Exercises -- 13.7.Suggested Readings -- ch. 14 Epilogue and Some Contemporary Issues -- 14.1.Security and Software Engineering -- 14.2.Reverse Engineering and Software Obfuscation -- 14.3.Software Validation and Verification Methodologies and Tools -- 14.4.Suggested Readings -- Appendix A Essential Software Development Plan (SDP) -- Appendix B Essential Software Requirements Specifications (SRS) -- Example 1 Essential SRS---Descriptive -- Example 2 Essential SRS---Object Oriented -- Example 3 Essential SRS---IEEE Standard -- Example 4 Essential SRS---Narrative Approach -- Appendix C Essential Software Design -- Example 1 Essential Software Design---UML --

Example 2 Essential Software Design---Structural -- Appendix D Essential Test Plan.
Subject Term:
Copies: