van Lamsweerde and Letier (vLL) [7] identify the
dilemma and try to identify unexpected agent behavior at
specification time and at the goal level without having to
wait until design or implementation time and without having
to delve into design and code details.
Once a goal-driven requirements elaboration has
been carried out to yield a formal specification in the
KAOS language, they use formal methods to identify obstacles
to requirements satisfaction from the specifications
of goals and domain properties and to modify goals, requirements,
and assumptions to overcome or mitigate the
identified obstacles. It should be clear that this terminology
captures exactly the desired way of dealing with safety
problems described above.
Obstacle identification itself consists in finding some
assertion for each goal and assumption, i.e., an obstacle,
that may prevent their satisfaction, verifying that the candidate
obstacle is consistent with the domain theory, and
determining if this candidate obstacle is satisfiable by trying
to find a feasible negating scenario.