  System goals are the statements that, in the context of software requirements
specification, capture how the software should behave. Many times, the
understanding of stakeholders on what the system should do, as captured in the
goals, can lead to different problems, from clearly contradicting goals, to
more subtle situations in which the satisfaction of some goals inhibits the
satisfaction of others. These latter issues, called goal divergences, are the
subject of goal conflict analysis, which consists of identifying, assessing,
and resolving divergences, as part of a more general activity known as goal
refinement. While there exist techniques that, when requirements are expressed
formally, can automatically identify and assess goal conflicts, there is
currently no automated approach to support engineers in resolving identified
divergences. In this paper, we present ACoRe, the first approach that
automatically proposes potential resolutions to goal conflicts, in requirements
specifications formally captured using linear-time temporal logic. ACoRe
systematically explores syntactic modifications of the conflicting
specifications, aiming at obtaining resolutions that disable previously
identified conflicts, while preserving specification consistency. ACoRe
integrates modern multi-objective search algorithms (in particular, NSGA-III,
WBGA, and AMOSA) to produce resolutions that maintain coherence with the
original conflicting specification, by searching for specifications that are
either syntactically or semantically similar to the original specification. We
assess ACoRe on 25 requirements specifications taken from the literature. We
show that ACoRe can successfully produce various conflict resolutions for each
of the analyzed case studies, including resolutions that resemble specification
repairs manually provided as part of conflict analyses.
