What has system architecture got to do with requirements? This was the first question in this series written by Hillary Sillitto. We have since then read about how an architecture may be used to address requirements coherence and completeness. Its now time to move on to the next step in Hillary’s six step approach to system architecting.
Going from black box to glass box
Now we get to what most people think of as the main point of system architecture, the logical and physical “glass box” views of the system. These are steps 4 and 5 in our six step process.
It’s very tempting to jump straight into the physical solution, because we usually have preconceived notions about how the system should be constructed. But if we do that, we’ll probably just do it the same way we always did. Often there is a cheaper, or better, or smaller, or more reliable way of doing part of the system; or the part you intended to use is no longer available; or the supplier put the price up and you need to look at alternatives. If any of these happens, and we didn’t do the architecture properly, we’ll find we can’t separate out the requirements for the bit we’re replacing, so we have to do the complete requirements allocation again from scratch.
That’s why we do the internal architecture from two quite distinct viewpoints: the logical perspective, where we think of the system as a network of interacting processes or sub-functions; and the physical perspective, where we think of the system as a set of interconnected parts.
We break each system function down into a set of sub-functions or internal processes. The sub-functions are broken down or “decomposed” just enough to allocate them to a conceptually feasible “design element” – which could be a bit of hardware, or software, or a process, or operator task. The sub-functions and the flows between them form a “process thread” running through the system from input to output – like the mission threads we developed in Step 2, but this time inside the black box. The requirements for the function are then decomposed so they can be allocated to the sub-functions.
Then we choose appropriate specific solutions for implementing each sub-function, and work out the best way to group these design elements into an efficient set of “physical” parts. (In this context, the “physical” architecture includes software and processes and people and organisations, not just hardware.) The requirements for a part are just the requirements for the sub-functions allocated to it, and a share of the physical budgets for space, weight, power, etc. You can think of this as “allocating bundles of functionality, with the accompanying bundle of requirements” to the physical part.
To summarise: the logical architecture provides a framework for flowing down the functional, behavioural and performance requirements; the physical architecture provides a framework for flowing down the physical attributes and characteristics; and the allocation of logical to physical components completes the flowdown of requirements from one level in the system hierarchy to the next.
When we’ve completed this step in the architecture, each part will have its own set of black-box requirements – functions, performance, behaviour, states and modes, and physical characteristics.
This all sounds a bit over-analysed. But the payoff comes when we have to change something. Suppose we get some whizzy new technology that lets us consolidate two parts into one, or we need to change the logical-to-physical mapping to satisfy some speciality engineering constraint. We need to do a lot of work to re-specify the parts if we don’t have the logic for what each part does and why. But if we have already done a decent job of the logical architecture, we don’t have to re-engineer the requirements from scratch; we just allocate the relevant sub-functions to a new set of physical parts, and the requirements go with them. We can make precisely-targeted changes to parts of the system without having to rethink the whole system.
Previous post in this series on Architecture
This post is part of a series on architecure and requirements by Hillary Sillitto. You can read the previous posts or his personal bio here:
Next post in this series
Next post will be the last of this series by Hillary Sillito. Then he will discuss decisions, trade-offs and architectural requirements. I can´t wait!
See you then!