You are previewing Essentials of Software Engineering, 3rd Edition.
O'Reilly logo
Essentials of Software Engineering, 3rd Edition

Book Description

Updated with new case studies and content, the fully revised Third Edition of Essentials of Software Engineering offers a comprehensive, accessible, and concise introduction to core topics and methodologies of software development. Designed for undergraduate students in introductory courses, the text covers all essential topics emphasized by the IEEE Computer Society-sponsored Software Engineering Body of Knowledge (SWEBOK). In-depth coverage of key issues, combined with a strong focus on software quality, makes Essentials of Software Engineering, Third Edition the perfect text for students entering the fast-growing and lucrative field of software development. The text includes thorough overviews of programming concepts, system analysis and design, principles of software engineering, development and support processes, methodologies, and product management. The revised and updated Third Edition includes all-new sections on SCRUM and HTML-Script-SQL Design Examples, as well as expanded discussions of User-Interface Design, Flow of Interactions, Cognitive Models, and other UI Design issues. Covering all phases of the software production lifecycle and emphasizing quality throughout, Essentials of Software Engineering is a superb resource for students of software engineering. Key Features: • Revised and fully updated throughout, with all-new sections on SCRUM and HTML-Script-SQL Design Examples, as well as expanded discussions of other central topics • Provides coverage of all essential topics emphasized by SWEBOK • Covers essential topics required for students to complete individual and team projects in an affordable and accessible paperback format. • Contains an all-new Appendix with examples of Essential Software Development Plan (SDP), Essential Software Requirements Specifications (SRS), Essential Software Design, and Essential Test Plan • Accompanied by a full suite of instructor support material, including answers to the end-of-chapter questions, PowerPoint Lecture Outlines, and a complete Test Bank

Table of Contents

  1. Title Page
  2. Copyright Page
  3. Preface
  4. Contents
  5. Chapter 1: Writing a Program
    1. 1.1 A Simple Problem
    2. 1.2 Decisions, Decisions
    3. 1.3 Testing
    4. 1.4 Estimating Effort
    5. 1.5 Implementations
    6. 1.6 Summary
    7. 1.7 Review Questions
    8. 1.8 Exercises
    9. 1.9 Suggested Readings
  6. Chapter 2: Building a System
    1. 2.1 Characteristics of Building a System
    2. 2.2 Building a Hypothetical System
    3. 2.3 Coordination Efforts
    4. 2.4 Summary
    5. 2.5 Review Questions
    6. 2.6 Exercises
    7. 2.7 Suggested Readings
  7. Chapter 3: Engineering of Software
    1. 3.1 Examples and Characteristics of Software Failures
    2. 3.2 Software Engineering
    3. 3.3 Software Engineering Profession and Ethics
    4. 3.4 Principles of Software Engineering
    5. 3.5 Summary
    6. 3.6 Review Questions
    7. 3.7 Exercises
    8. 3.8 Suggested Readings
  8. Chapter 4: Software Process Models
    1. 4.1 Software Processes
    2. 4.2 Traditional Process Models
    3. 4.3 A More Modern Process
    4. 4.4 Entry and Exit Criteria
    5. 4.5 Process Assessment Models
    6. 4.6 Process Definition and Communication
    7. 4.7 Summary
    8. 4.8 Review Questions
    9. 4.9 Exercises
    10. 4.10 Suggested Readings
  9. Chapter 5: New and Emerging Process Methodologies
    1. 5.1 What Are Agile Processes?
    2. 5.2 Why Agile Processes?
    3. 5.3 Some Process Methodologies
    4. 5.4 Choosing a Process
    5. 5.5 Summary
    6. 5.6 Review Questions
    7. 5.7 Exercises
    8. 5.8 Suggested Readings
  10. Chapter 6: Requirements Engineering
    1. 6.1 Requirements Processing
    2. 6.2 Requirements Elicitation and Gathering
    3. 6.3 Requirements Analysis
    4. 6.4 Requirements Definition, Prototyping, and Reviews
    5. 6.5 Requirements Specification and Requirements Agreement
    6. 6.6 Summary
    7. 6.7 Review Questions
    8. 6.8 Exercises
    9. 6.9 Suggested Readings
  11. Chapter 7: Design: Architecture and Methodology
    1. 7.1 Introduction to Design
    2. 7.2 Architectural Design
    3. 7.3 Detailed Design
    4. 7.4 HTML-Script-SQL Design Example
    5. 7.5 Summary
    6. 7.6 Review Questions
    7. 7.7 Exercises
    8. 7.8 Suggested Readings
  12. Chapter 8: Design Characteristics and Metrics
    1. 8.1 Characterizing Design
    2. 8.2 Some Legacy Characterizations of Design Attributes
    3. 8.3 “Good” Design Attributes
    4. 8.4 Object-Oriented Design Metrics
    5. 8.5 User-Interface Design
    6. 8.6 Summary
    7. 8.7 Review Questions
    8. 8.8 Exercises
    9. 8.9 Suggested Readings
  13. Chapter 9: Implementation
    1. 9.1 Introduction to Implementation
    2. 9.2 Characteristics of a Good Implementation
    3. 9.3 Programming Style and Coding Guidelines
    4. 9.4 Comments
    5. 9.5 Debugging
    6. 9.6 Assertions and Defensive Programming
    7. 9.7 Performance Optimization
    8. 9.8 Refactoring
    9. 9.9 Summary
    10. 9.10 Review Questions
    11. 9.11 Exercises
    12. 9.12 Suggested Readings
  14. Chapter 10: Testing and Quality Assurance
    1. 10.1 Introduction to Testing and Quality Assurance
    2. 10.2 Testing
    3. 10.3 Testing Techniques
    4. 10.4 When to Stop Testing
    5. 10.5 Inspections and Reviews
    6. 10.6 Formal Methods
    7. 10.7 Static Analysis
    8. 10.8 Summary
    9. 10.9 Review Questions
    10. 10.10 Exercises
    11. 10.11 Suggested Readings
  15. Chapter 11: Configuration Management, Integration, and Builds
    1. 11.1 Software Configuration Management
    2. 11.2 Policy, Process, and Artifacts
    3. 11.3 Configuration Management Framework
    4. 11.4 Build and Integration and Build
    5. 11.5 Tools for Configuration Management
    6. 11.6 Managing the Configuration Management Framework
    7. 11.7 Summary
    8. 11.8 Review Questions
    9. 11.9 Exercises
    10. 11.10 Suggested Readings
  16. Chapter 12: Software Support and Maintenance
    1. 12.1 Customer Support
    2. 12.2 Product Maintenance Updates and Release Cycles
    3. 12.3 Change Control
    4. 12.4 Summary
    5. 12.5 Review Questions
    6. 12.6 Exercises
    7. 12.7 Suggested Readings
  17. Chapter 13: Software Project Management
    1. 13.1 The Necessity of Project Management
    2. 13.2 The Project Management Process
    3. 13.3 Some Project Management Techniques
    4. 13.4 Summary
    5. 13.5 Review Questions
    6. 13.6 Exercises
    7. 13.7 Suggested Readings
  18. Chapter 14: Epilogue and Some Contemporary Issues
    1. 14.1 Security and Software Engineering
    2. 14.2 Reverse Engineering and Software Obfuscation
    3. 14.3 Software Validation and Verification Methodologies and Tools
    4. 14.4 Suggested Readings
  19. Appendix A
  20. Appendix B
  21. Appendix C
  22. Appendix D
  23. Glossary
  24. Index