|
Page 4 of
8
"Rich Requirement Specifications: the use of
Planguage to clarify requirements"
|
A Meter
specifies one or more ways to measure along the defined scale, what the
level of performance is, for example in operation. Tests can be specified,
in detail, schematically or by reference to detailed test plans and test
cases. A design proposal is not a firm design commitment, just a note
documenting some early design ideas; maybe indicating that ambitious target
levels have a practical technical solution. |
|
Principle R4: The requirement should
be a future state, and not unintentionally a design to get there. |
|
| Usability:
Scale: The probability in % that
defined Users can successfully complete defined Tasks under defined
Conditions.
Goal [Users = Novices, Tasks = Most
Difficult, Conditions = {Noise, Pressure}] 60%.
Goal [Users = Experts, Tasks = Average,
Conditions = {Noise, Movement}] 80%.
Stretch [Users = Experts, Tasks =
Average, Conditions = {Noise, Movement}] 85%.
Wish [Users = Experts, Tasks = Average,
Conditions = {Noise, Movement}] 90%.
Ideal [Users = Experts, Tasks = Average,
Conditions = {Noise, Movement}] 100%.
|
|
| In addition to the
Goal statement - the one requirement level we take as a serious commitment -
there are three other target notions.
'Stretch' represents a level
somewhat above the corresponding qualifiers Goal level. It has added
stakeholder value, but we do not believe we have either the resources or the
technology to commit to the Stretch level. But we document it as background,
not as a ‘required’ level, that there is stakeholder value in reaching that
level. Maybe later we can find additional resources, or better technology
and reach the stretch level. It is a sort of motivator for engineers to do
that little extra. But you could say it is a requirement level that is not
required.
'Wish-level' specification
represents a target level of performance that has some value for some
stakeholder. Wish specification represents a stakeholder ‘need’ but not
currently a Goal level. Perhaps it can later be converted, but first we
would need to find a suitable design to get to that Wish level. Then we
would need to estimate costs for using the design and finally, we would need
to accept that cost within our total budget. Then we could convert the Wish
level to a Goal level. You could say that the non-committed Wish
specification, can be viewed as a way of ‘begging for resources’. We won’t
promise to commit to the wish as a goal level, unless we get sufficient
resources.
The Ideal level is rarely
used in practice, but it is a useful concept. It represents perfection that
all stakeholders, want in principle. However, they do not want to pay the
infinite price that perfection normally costs. Whilst not a requirement, the
'Ideal' can serve as a conceptual reminder that we cannot promise to satisfy
peoples' impossible dreams.
Notice that the level of
performance intentionally says nothing about the actual design that will be
used to deliver that level of performance.
That strict division between required performance levels and its next stage,
the design process, is necessary. It is necessary to free the architect and
the design engineer to find the best solutions to the problems posed by the
complete set of requirements: all performance levels, all cost levels and
all constraints. It would be logically wrong to decide on a particular
design on the basis of a single dimension of performance. That would be
sub-optimization.
|
| Principle R5: Complex
requirements should have a clear hierarchy, not a vague summary. |
|
|
Many top level performance requirements seem to defy quantification. This is
normally because they are not really a single scalar dimension. They need to
be decomposed from being a ‘complex’ notion (consists of many dimensions) to
a set of elementary dimensions. It is a simple as making a list of the
aspects that we associate, and agree to associate with, a performance
attribute. Then we can normally define a suitable scale of measure for the
elementary aspects. Sometimes further decomposition is necessary. |
| Adaptability:
Scale:
time needed to [Adapt]
a defined [System]
from a defined [Initial State]
to another defined [Final State]
using defined [Means].
|
|
|
Example: this is the high level concept of
adaptability, defined using a number of scale qualifiers (like [Adapt]).
Another approach to defining adaptability is to treat it as a set of defined
classes of adaptation (which is what the Adapt qualifier does too).
more...
|
|
©Tom Gilb
2005 |
Back to: System
Development
Back (previous): Page 3 of 8
|