BEZERRA, Marzina Vidal Negreiros.
Resumo:
Precise and consistent requirements promote higher quality in the software, reducing its final cost. Studies show that the use of formal methods in requirements specifications promotes the detection of ambiguities and the automatic verification of the consistency of requirements. However, formalism is often dispensed with because of its difficult application, possibly because of cultural barriers or the lack of skills of software professionals. We propose, in this master’s dissertation, a more convergent or conciliatory solution to enable formal verification, without losing focus on the common skills of these professionals. For this, we implemented GIRL (Graphical InvaRiant Language), a graphical language for requirements representation, where formalism is embedded in automation and abstraction, which allows the automatic verification of consistency of requirements through the Alloy language consistency checking . GIRL is a graphical domain-specific language (DSL) for representing invariant constraints, which are either static or structural requirements. To evaluate the solution, we performed an empirical study that follows the research strategy of the Judgment Task type, where professional software developers, with different levels of experience in Requirements Engineering, used and evaluated GIRL. We observed that the subjects correctly represented the requirements proposed in the study, considering the language and the verification of the requirements with the useful graphic feedback. In addition, we identified ease in learning and using the simplest structures and with similar concepts in software engineering and set theory; however, with more complex structures, whose concepts are closer to the logic, the level of difficulty was greater. We also noted that a graphical notation is more enjoyable to use and, being well designed, is easier to use, and more easily reaching the objectives for which it was created. We then see strong indications that graphical representations that hide a formalism and allow the automatic verification of requirements,
as in the GIRL language, are effective means to raise the quality in software requirements.