Software Engineering

Architecture-driven Software Development


  • Richard Schmidt, Richard Schmidt: Chair, IEEE Working Group on Systems Engineering Management, and Founder, Sirrush Corporation

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.

View full description


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


Book information

  • Published: May 2013
  • 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

Table of Contents

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