GIRL: uma linguagem de modelagem e verificação de requisitos invariantes. - BEZERRA, Marzina Vidal Negreiros. (2018)
Requisitos precisos e consistentes promovem maior qualidade no software, reduzindo seu custo final. Estudos apontam que o uso de métodos formais na especificação dos requisitos promovem a detecção de ambiguidades e a verificação automática da consistência dos requisitos. Entretanto, geralmente dispensa-se o formalismo por sua difícil aplicação, possivelmente por causa de barreiras culturais ou da falta de habilidades de profissionais de software. Propomos, nessa dissertação de mestrado, uma solução mais convergente ou conciliadora para viabilizar a verificação formal, sem perder o foco nas habilidades comuns desses profissionais. Para isso, implementamos GIRL (Graphical InvaRiant Language), uma linguagem gráfica para representação de requisitos, onde o formalismo está embutido na automação e abstração, o que permite a verificação automática da consistência dos requisitos através da verificação de consistência da linguagem Alloy. GIRL é uma linguagem gráfica específica de domínio (DSL) para representação de restrições invariantes, que são requisitos estáticos ou estruturais. Para avaliar a solução, procedemos um estudo empírico que segue a estratégia de pesquisa do tipo Tarefa de Julgamento, onde profissionais desenvolvedores de software, com diferentes níveis de experiência em Engenharia de Requisitos, utilizaram e avaliaram GIRL. Observamos que os sujeitos representaram corretamente os requisitos propostos no estudo, considerando úteis, tanto a linguagem, como a verificação dos requisitos com o feedback gráfico. Além disso, identificamos facilidade no aprendizado e utilização das estruturas mais simples e com conceitos semelhantes em engenharia de software e na teoria de conjuntos; já em estruturas mais complexas, cujos conceitos estão mais próximos à lógica, o nível de dificuldade foi maior. Também observamos que uma notação gráfica é mais agradável de utilizar e, sendo bem projetada, é mais fácil de usar, alcançando mais facilmente os objetivos para que foi criada. Percebemos então, fortes indicativos de que, representações gráficas que ocultam um formalismo e permitem a verificação automática de requisitos, como na linguagem GIRL, são meios eficazes para elevar a qualidade em requisitos de software.