… back in the “gold old days” of WaterFall.
A classic division would be
… back in the “gold old days” of WaterFall.
A classic division would be
… back in the “gold old days” of WaterFall.
A classic division would be
Dividing the system into modules.
… back in the “gold old days” of WaterFall.
A classic division would be
Dividing the system into modules.
… back in the “gold old days” of WaterFall.
A classic division would be
Dividing the system into modules.
The High/Low division suggests that once high-level design is completed, different developers can work in complete independence.
As always, Waterfallers tend to over-manage, but the emergence of an earlier design phase is noteworthy.
The collection of decisions that need to be common to all components.
Examples of architectural design decisions would be
Even as process models other than Waterfall have become more common, the importance of architectural design has remained.
“Iterative” means that we can re-visit decisions, design, and code produced in earlier iterative steps.
“Incremental” means that each iteration produces a small unit of additional functional behavior.
We don’t try to build major subsystems of the project in a single pass.
Iterative versus Incremental Models
Iterative versus Incremental Models
Iterative – we do some set of process steps repeatedly.
To use a programming analogy, this is iterative:
while (!done) {
⋮
}
Iterative versus Incremental Models
Iterative – we do some set of process steps repeatedly.
To use a programming analogy, this is iterative:
while (!done) {
⋮
}
Incremental – we accumulate value in small steps.
To use a programming analogy, this is incremental:
total += x;
Incremental development is almost always iterative, but you can be iterative without being incremental.
We need a “signpost” - non-local information.
We need a “signpost” - non-local information.
Even in incremental development, that’s the role of architecture.
This is my own listing – I have not seen this notion of dimensions addressed elsewhere.
a.k.a. Data Flow models
dimensions: modular structure (but not deployment)
Extract (Maly, Zeil, Zubair, 2005-2010) was a system for extracting metadata from PDF documents submitted to the Defense Technical Information Center, NASA, and the US Government Printing Office.
dimensions: storage
The blackboard architecture was popular for A.I. projects and expert systems.
e.g., Hearsay-II, an early speech recognition system
It focuses on a collection of independent processes coupled though a monolithic storage system whose internal structure is discovered during development.
dimensions: modularity
dimensions: modularity, deployment
Similar to Layered Abstract Machines, but
each layer is independent of the others.
e.g., a client-server system is a 2-tier architecture
dimensions: deployment, interface
A general graph of independent processes joined by a common protocol for communication.
Model-View-Controller
dimensions: modularity, interface
An approach to organizing programs featuring a GUI
dimensions: deployment, interface
“A suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API.” (Martin Fowler)
Idea is to keep each service relatively small and specialized. “Do one thing and do it well” (Krause)
Because each service is an independent program, may internally employ other architectural patterns.