  Use Case (UC) quality impacts the overall quality and defect rate of a
system, as they specify the expected behavior of an implementation. In a
previous work, we have defined an approach for a step-by-step translation from
UCs written in natural language to a formal description in terms of Graph
Transformation (GT), where each step of the UC was translated to a
transformation rule. This UC formalisation enables the detection of several
specification problems even before an actual implementation is produced, thus
reducing development costs. In this paper, we extend our approach to handle UC
evolution by defining \emph{evolution rules}, which are described as
higher-order rules, simultaneously changing the behaviour of a set of
transformation rules. We also support the use of \emph{negative application
conditions (NAC)} associated both to the transformation and evolution rules.
Analysis of the interplay between the evolution rules and the rules describing
UC steps shows the effects of an evolution and serves to identify potential
impacts, even before the changes are actually carried out. Besides defining the
theoretical foundations of UC evolution with NACs, we have implemented the
evolution analysis technique in the Verigraph tool and used it to verify
impacts in 3 different case studies. The results demonstrate the applicability
and usefulness of our approach to help developers in the evolution process
based on UCs.
