Submitted Abstract
Many errors in software systems are consequences of the incorrect understanding of what the system should do. Putting sufficient emphasis in requirements analysis and specification is known to be a major task towards successful software development. Many reasons exist for making requirement descriptions inadequate such as requirements being too ideal, requirements being too abstract (thus leaving room for conflicting situations whose treatment goes unspecified), missing or implicit requirements, and inconsistent requirements (cannot be satisfied as a whole). We focus on the risk analysis phase that deals precisely with these issues. We aim at identifying such problems as early as possible, so that appropriate actions can be taken in account and improve the software requirements prior to any actual development.More precisely, risk analysis consists of three main stages: (1) the identification stage, which consists of identifying conflicts between the system goals, i.e., conditions that, when present, make the goals inconsistent; (2) the assessment stage, consisting of assessing and prioritizing the identified conflicts according to their likelihood and severity; and (3), the resolution stage, where conflicts are resolved by providing appropriate countermeasures and, consequently, transforming the goal model, guided by the criticality level obtained during assessment. If the requirements are expressed using some formal language, enables the development of analysis tools that assist engineers during the complex task of requirements engineering.The main objective of this project is the development of effective, efficient and scalable techniques that automate the activities involved during the identification, assessment and resolution of goal conflicts. We plan to combine incomplete but scalable techniques coming from software testing, with the power of automated analyses associated with some modern formal techniques, such as SAT solving and model checking. The proposed techniques will be integrated in an open source tool, whose effectiveness and efficiency will be empirically evaluated on several case studies taken from the literature and public available benchmarks.