In software engineering, you can think of two levels: micro-level and macro-level. On the micro-level, this is systems engineering ‘in the small.’ On the macro-level, there’s systems engineering ‘in the large.’ The two levels are complimentary. In Scenarios, Stories, Use Cases: Through the Systems Development Life-Cycle, Ian F. Alexander and Neil Maiden write about systems engineering ‘in the large.’
Systems Engineering ‘in the large’ Stages
Alexander and Maiden identify systems engineering ‘in the large’ stages:
- Explore Concept
- Proof of Concept
- Full Development
- In-Service Support
Systems Engineering ‘in the large’ Process Models
Alexander and Maiden provide examples of commonly encountered ‘in the large’ 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 Model, Incremental Model, and High-Risk Model
Alexander and Maiden write that you can group the ‘in the large’ process models into Evolutionary, Incremental, and High-Risk:
It seems, however, that all of these can be built from a small number (three) of basic process models. Furthermore, variants and hybrids not found in the above list but which are encountered in practical situations can be constructed by composition of the three basic models. In the above list, the evolutionary and incremental models are deemed to be in the basic set. To this, we add another, which we have here called the ‘High-Risk’ model.
Key Take Aways
Here’s my key take aways:
- Think of software engineering process at two levels: macro (‘in the large’) and micro (‘in the small’.)
- Systems engineering ‘in the large’ and systems engineering ‘in the small’ are complimentary.
- Based on a particular set of project circumstances, one model will be more relevant and therefore more appropriate.