Waterfall, In the Large, and In the Small


There’s lots of ways to slice and dice software process. In Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Ian F. Alexander and Neil Maiden show the waterfall model, systems engineering ‘in the large’ , and systems engineering ‘in the small.’

Waterfall Life Cycle Elements

Alexander and Maiden outline the key sequence of steps in the waterfall model based on Royce (1970).

  • Requirements Discovery
  • Requirements Validation
  • System Specification
  • System Design
  • Coding, First of Class
  • Integration & Testing
  • Operations & Maintenance

Systems Engineering ‘In the Large’ Phase Sequence

Alexander and Maiden propose a set of  macro activities and project phases that represent systems engineering ‘in the large’ to distinguish from the waterfall sequence of steps:

  • Explore Concept
  • Proof of Concept
  • Full Development
  • Production
  • Installation
  • In-service Support
  • Disposal

Systems Engineering ‘In the Small’ Activity Sequence

Alexander and Maiden suggest a set of micro activities that represent systems engineering ‘in the small.’

  • User Requirements Definition
  • System Requirements Definition
  • System Design/Architecture
  • Preliminary Design
  • Detailed Design
  • Implementation
  • Test and Integration
  • Acceptance and Certification

In the Large Process Models

Alexander and Maiden provide an example of ‘in the large’ systems engineering process models:

  • Evolutionary model
  • Incremental model
  • US DoD model
  • UK Ministry of Defense CADMID model
  • RUP (Rational Unified Process) – (RUP 2003)
  • ‘Agile Methods’ (e.g. Extreme Programming (XP))

Evolutionary, Incremental, and High-Risk Model

Alexander and Maiden suggest that you can group the ‘in the large’  process models into the following three models:

  • Evolutionary model
  • Incremental model
  • High-Risk model

Combining Models

Alexander and Maiden suggest that it’s possible to combine models ‘ in the large’ as necessary:

  • Evolutionary and Incremental
  • Evolutionary and High-Risk
  • Incremental and High Risk
  • Evolutionary, Incremental, and High Risk

Key Take Aways

Here’s my key take aways:

  • By identifying and labeling systems engineering ‘in the small’ and ‘in the large’ you can more accurately and more precisely discuss the two levels of software process.
  • Don’t confuse the systems engineering ‘in the large’ with the Waterfall sequence of stages.
  • You can use the systems engineering ‘in the large’ and ‘in the small’ activities to define software processes.
  • Waterfall Life-Cycle stages include: Requirements Discovery, Requirements Validation, System Specification, System Design, Coding, First of Class, Integration & Testing, Operations & Maintenance
  • Systems engineering ‘in the large’ includes the following activities/phases: Explore Concept, Proof of Concept, Full Development, Production, Installation, In-service Support, Disposal
  • Systems engineering ‘in the small’ includes: User Requirements Definition, System Requirements Definition, System Design/Architecture, Preliminary Design, Detailed Design, Implementation, Test and Integration, Acceptance and Certification


Comments are closed.