Four Dark Corners of Requirements Engineering

Four Dark Corners of Requirements
Engineering
Pamela Zave
Michael Jackson
1
REFERENCE

Shiva Vafadar
[email protected]
P. Zave and M. Jackson, Four Dark Corners of Requirements
Engineering, ACM Transactions Software. Eng. and
Methodology,6(1). 1997.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
2
What is a machine in this paper
 Throughout
this paper
we use "system" only to refer to a general
artifact that might have both manual and
automatic components, such as an "airline
reservation system."
 Whenever we are referring to the computer
based artifact that is the target of software
development, we use the more precise term
"machine."

Shiva Vafadar
[email protected]
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
3
4 Dark Corners
1.
2.
All the terminology used in requirements engineering
should be grounded in the reality of the environment
for which a machine1 is to be built.
It is not necessary or desirable to describe the machine
to be built. Rather, the environment is described in two
ways:


3.
4.
Shiva Vafadar
[email protected]
as it would be without or in spite of the machine
as we hope it will become because of the machine
Assuming that formal descriptions focus on actions
The primary role of domain knowledge in
requirements engineering is in supporting refinement
of requirements to implementable specifications
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
4
The purpose of the paper





Shiva Vafadar
[email protected]
not to promote any particular notation, method, or
tool, still less to propose new ones.
to clarify the nature of requirements engineering,
to show the importance of certain information that is
often absent or implicit,
to solve some persistent foundational problems.
These results can be used to evaluate and improve
current and future approaches to requirements
engineering.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
5
Selection of the four areas of inquiry


have not been chosen randomly
Together they explain the precise nature of






Shiva Vafadar
[email protected]
requirements,
specifications,
and domain knowledge,
precise nature of the relationships among them
establish minimum standards for what information
should be represented in a requirements language.
make it possible to determine exactly what it means
for requirements engineering to be successfully
completed
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
6
Four corners mark a foundation



Shiva Vafadar
[email protected]
Terminology and Applicability
Notation
Completion
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
7
Terminology and Applicability


Shiva Vafadar
[email protected]
This terminology applies to all software
development projects, although projects differ
in emphasis and some projects require
imaginative application of the above
definitions.
The point is that requirements,
specifications, and domain knowledge always
have the same relationship to each other.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
8
Terminology and Applicability (cont)




Shiva Vafadar
[email protected]
The environment is the portion of the real world
relevant to the software development project.
The machine is a computer based machine that will
be constructed and connected to the environment, as
a result of the software development project.
A designation is an informal description of the
meaning of an atomic formal term referring to the
environment.
A definition is a formal description of an atomic
term, using other defined or designated terms.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
9
Terminology and Applicability (cont)





Shiva Vafadar
[email protected]
A statement (assertion, property) in the indicative mood
describes the environment as it would be without or in spite of
the machine.
A statement (assertion, property) in the optative mood
describes the environment as we would like it to be because of
the machine.
A shared action is an action in the environment in which the
machine also participates.
An unshared action is an action in the environment in which
the machine does not participate.
An environmentcontrolled action is an action in the
environment that is controlled, performed, or initiated by the
environment.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
10
Terminology and Applicability (cont)

A machine controlled action is an action in the environment
that is not controlled, performed, or initiated by the
environment.




Shiva Vafadar
[email protected]
The intention is that such an action will be controlled by the
machine when it is connected to the environment.
A requirement is an optative property, intended to express the
desires of the customer concerning the software development
project.
A statement of domain knowledge or domain assumption is an
indicative property intended to be relevant to the software
development project.
A specification is an optative property, intended to be directly
implementable and to support satisfaction of the requirements.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
11
Notation


Shiva Vafadar
[email protected]
Formal representations used in requirements
engineering should obey these four rules.
If a requirements language is insufficient in
this regard, its users should be able to
augment or supplement it as necessary.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
12
Notation (cont)

Each atomic term must be designated or defined.


Shiva Vafadar
[email protected]
This means that everything said is said about the
environment, since all atomic terms are grounded in the
environment.
Each action type must be identified as belonging
to exactly one of the following categories
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
13
Notation (cont)


Shiva Vafadar
[email protected]
Whenever necessary to express relevant
properties of the environment, actions in all
three categories must be constrained.
Each property or assertion must be identified
as a requirement, statement of domain
knowledge, or specification.
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
14
Completion

Shiva Vafadar
[email protected]
If the five following criteria are satisfied, then
requirements engineering, in the strongest
sense, is complete
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
15
Completion (cont)
 There
is a set R of requirements. Each
member of R has been validated (checked
informally) as acceptable to the customer,
and R as a whole has been validated as
expressing all the customer’s desires with
respect to the software development
project
 There is a set K of statements of domain
knowledge. Each member of K has been
validated (checked informally) as true of
the environment
Shiva Vafadar
[email protected]
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
16
Completion (cont)
There is a set S of specifications. The members of
S do not constrain the environment, they are not
stated in terms of any unshared actions or state
components, and they do not refer to the future
 A proof for rationality of requirements
 There is a proof that S and K are consistent. This
ensures that the specification is internally
consistent and consistent with the environment.
Note that the two proofs together imply that S, K,
and R are consistent with each other

Shiva Vafadar
[email protected]
Intelligent Systems Lab
http://ce.aut.ac.ir/islab
17