Please use this identifier to cite or link to this item: http://dspace.unipampa.edu.br:8080/jspui/handle/riu/2058
metadata.dc.type: Trabalho de Conclusão de Curso
Title: Estudos empíricos sobre a aplicabilidade de especificação formal de requisitos em projetos ágeis
metadata.dc.creator: Rodrigues, Peterson Luiz da Rosa
metadata.dc.contributor.advisor1: Silva, João Pablo Silva da
metadata.dc.contributor.advisor-co1: Rodrigues, Elder de Macedo
metadata.dc.description.resumo: Uma das características das abordagens ágeis é utilizar técnicas informais para a especificação de requisitos. O uso exclusivo dessas técnicas pode causar alguns problemas de especificação, como ambiguidade, omissão de informações, além de erros de interpretação. Esses problemas são enfrentados por uma determinada empresa de desenvolvimento de software, situada no Rio Grande do Sul, ao qual está impactando na produtividade do time ágil. Uma possível alternativa para mitigar esses problemas é a adoção de métodos de especificação formal que utilizam a matemática discreta para escrita de requisitos. É possível encontrar alguns trabalhos na literatura que propõem a utilização de métodos formais para especificações de requisitos, como a notação Z e Vienna Development Method (VDM), conjuntamente com abordagens ágeis, como Extreme Programming (XP) e Scrum. Mesmo identificando tais iniciativas, percebemos que há uma carência de trabalhos que avaliem empiricamente a utilização de métodos formais em projetos ágeis. Dessa forma, neste trabalho, buscamos investigar os métodos de especificação formal como alternativa para especificar requisitos em projetos ágeis, proporcionando evidências dessa aplicação para a empresa parceira deste estudo. Para tanto, foram aplicados diferentes estudos empíricos. Inicialmente, realizamos um mapeamento sistemático da literatura para identificar os métodos de especificação formal que comumente são utilizados em ambientes ágeis para desenvolvimento de sistemas. Posteriormente, realizamos diferentes estratégias para avaliar empiricamente a aplicabilidade de métodos formais como técnica de especificação. A primeira estratégia empírica consistiu na condução de uma pesquisa de opinião com profissionais da indústria de desenvolvimento ágil de software. Na segunda estratégia empírica realizamos um estudo de caso incorporado exploratório, em duas empresas de desenvolvimento de software, para avaliar a opinião de desenvolvedores ágeis após utilizar a notação Z para especificação de requisitos. Por fim, na terceira estratégia foi conduzido um experimento controlado no ambiente da empresa parceira neste estudo onde foi observado a produtividade e qualidade das especificações quando utilizada a notação Z e Caso de Uso descritivo pelo time de desenvolvimento ágil da empresa. Os resultados das duas primeiras estratégias mostraram que profissionais indicaram alguns benefícios na utilização de especificação formal em projetos ágeis, como por exemplo: especificação formal ajuda a tornar os requisitos mais claros e mais completos. Contudo, o principal fator limitador da utilização dessas técnicas é relacionado ao pré-conceito dos desenvolvedores. Os resultados do experimento indicaram que o uso da notação Z melhorou o processo de elicitação de requisito, impactando na produtividade do time, visto que o uso da notação Z resultou em uma maior quantidade de software entregue pelo time ágil, além de proporcionar uma maior cobertura das especificações.
Abstract: One of the characteristics of agile approaches is to use informal techniques for specifying requirements. The exclusive use of these techniques can cause some problems, such as ambiguous specifications, omission of information and interpretation mistakes. These problems are faced by a particular software development company, in Rio Grande do Sul, resulting in the unproductiveness of an agile team. A possible alternative is to adopt Formal Methods, which are, in resume, methods that use mathematical logic to formally specify requirements. It is possible find some papers in the literature that proposes the use of formal methods for requirements specification, as the Z notation and Vienna Development Method (VDM) with agile approach, as Extreme Programming (XP) and Scrum. Even identifying such initiatives, we realize the lack of papers that empirically evaluate the use of formal methods in agile projects. In this way, in this paper, we seek to investigate formal specification methods as an alternative to specify requirements in agile projects, providing evidence of this application to the partner company of this study. For that, different empirical studies were applied. Initially, we performed a systematic mapping to identify formal specification methods that are commonly used for developing systems in agile environments. Subsequently, we performed different empirical strategies to empirically evaluate the applicability of Formal Methods as a specification technique. The first empirical strategy consisted in conducting an opinion survey with acting agile software developers. In the second empirical strategy, we carried out an exploratory embedded case study in two software development companies to evaluate the applicability of Z notation for requirements specification. Finally, in the third strategy, we carried a controlled experiment in partner company of this study, where the productivity and quality impacts of the specifications were analyzed using the formal notation Z and Descriptive Use Case. The results of the first two strategies pointed out that the professionals’ perceptions tended to agree on some benefits in the use of formal specification in agile projects, for example: formal specification helps to make the requirements clearer and more complete. However, the main limiting factor in using these techniques is related to the developers’ preconceptions. The experiment results indicated that the use of Z notation improved the elicitation process, impacting on team productivity, as the use of Z notation resulted in the delivery of more software functionalities and software with better specification coverage by the agile team.
Keywords: Engenharia de software
Desenvolvimento de software
Estudos empíricos
Métodos formais
Abordagem ágil
Scrum
Estudo de casos
Software engineering
Software development
Empirical studies
Formal methods
Agile approach
Case study
metadata.dc.subject.cnpq: CNPQ::CIENCIAS EXATAS E DA TERRA
metadata.dc.language: por
metadata.dc.publisher.country: Brasil
Publisher: Universidade Federal do Pampa
metadata.dc.publisher.initials: UNIPAMPA
metadata.dc.publisher.department: Campus Alegrete
Citation: RODRIGUES, Peterson Luiz da Rosa. Estudos empíricos sobre a aplicabilidade de especificação formal de requisitos em projetos ágeis. 111p. 2017. Trabalho de Conclusão de Curso (Graduação em Engenharia de Software) – Universidade Federal do Pampa, Campus Alegrete, Alegrete, 2017.
metadata.dc.rights: Acesso Aberto
URI: http://dspace.unipampa.edu.br:8080/jspui/handle/riu/2058
Issue Date: 30-Nov-2017
Appears in Collections:Engenharia de Software

Files in This Item:
File Description SizeFormat 
Peterson Luiz da Rosa Rodrigues - 2017.pdf1,77 MBAdobe PDFView/Open


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.