Software Engineering book cover

Software Engineering

Architecture-driven Software Development

Software Engineering: Architecture-driven Software Development is the first comprehensive guide to the underlying skills embodied in the IEEE's Software Engineering Body of Knowledge (SWEBOK) standard. Standards expert Richard Schmidt explains the traditional software engineering practices recognized for developing projects for government or corporate systems.

Software engineering education often lacks standardization, with many institutions focusing on implementation rather than design as it impacts product architecture. Many graduates join the workforce with incomplete skills, leading to software projects that either fail outright or run woefully over budget and behind schedule.

Additionally, software engineers need to understand system engineering and architecture—the hardware and peripherals their programs will run on. This issue will only grow in importance as more programs leverage parallel computing, requiring an understanding of the parallel capabilities of processors and hardware. This book gives both software developers and system engineers key insights into how their skillsets support and complement each other. With a focus on these key knowledge areas, Software Engineering offers a set of best practices that can be applied to any industry or domain involved in developing software products.


Software developers, project managers, systems engineers, and students studying these disciplines

Paperback, 376 Pages

Published: May 2013

Imprint: Morgan Kaufmann

ISBN: 978-0-12-407768-3


  • "This work is unusual in that the author begins by challenging the notion that the field of software engineering is currently well defined and understood. He identifies two common problems, failure to understand how to develop complete software designs before coding begins and lack of consistent, scientifically verified software engineering techniques."--Reference & Research Book News, October 2013
    "…there may be some large-scale project managers in and out of government who will embrace this text as a holy grail…Chapter 15 on verification and validation and chapter 16 on control (configuration management) are particularly helpful and worthy of careful study.", August 29, 2013


  • Section 1 – Software Engineering Foundations

    1. Introduction to Software Engineering

    2. Generic Software Development Framework

    3. The Software Architecture

    4. Coping with Project Complexity

    5. Integrated Product and Process Development

    Section 2 – Specifying Software Requirements

    6. Understanding Software Requirements

    7. Software Requirements Analysis

    8. Managing Requirements

    Section 3 – Developing the Functional Architecture

    9. Formulating the Functional Architecture

    10. Functional Analysis and Allocation Tasks

    Section 4 – Developing the Physical Architecture

    11. Configuring the Physical Architecture

    12. Application Design Synthesis

    Section 5 – Software Architectural Design Decisions

    13. Evaluating Architectural Alternatives

    14. Software Analysis Tasks

    Section 6 – Managing the Software Architecture

    15. Software Control Tasks

    16. Software Verification and Validation Tasks

    Section 7 – Software Integrated Product and Process Development

    17. Software Requirements Definition

    18. Preliminary Architecture Definition

    19. Detailed Architecture Definition

    20. Software Implementation

    21. Acceptance Testing

    22. Post-Development Software Sustainment


advert image