Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-BA8NXT
Type: Dissertação de Mestrado
Title: On The Investigation of Software Development and Evolution Practices
Authors: Markos Viggiato de Almeida
First Advisor: Eduardo Magno Lages Figueiredo
First Referee: Marco Tulio de Oliveira Valente
Second Referee: Alessandro Fabrício Garcia
Abstract: A engenharia de software é um campo diverso composto por diferentes plataformas e domínios, com uma grande variedade de pessoas envolvidas em todas as etapas do desenvolvimento. Plataforma de software refere-se à estrutura subjacente em que o software é construído (por exemplo, mobile) e domínios de software referem-se a sistemas desenvolvidos para segmentos específicos (por exemplo, para a área saúde). Sabe-se que diferentes plataformas podem ter diferentes práticas de evolução para atender suas necessidades específicas de mercado e devido a suas características intrínsecas. Por exemplo, os usuários do Android estão acostumados a rápidas correções de bugs, diferentemente de usuários de software desktop ou até mesmo de aplicações Web. Também é amplamente sabido que diferentes domínios podem ter diferentes políticas e valores, o que afeta a maneira como os desenvolvedores adotam as práticas de desenvolvimento. Apesar da relevância de compreender as práticas de desenvolvimento e evolução, pouco se sabe sobre como os softwares mobile e não-mobile evoluem. Por exemplo, diferentes tipos de mudanças podem co-evoluir em uma plataforma e não em outras. Além disso, pouca pesquisa investigou quais e como as práticas de desenvolvimento são adotadas em diferentes domínios de software e se essas práticas são características intrínsecas dos domínios. Nesta Dissertação de Mestrado, propomos uma pesquisa de método misto visando compreender as diferenças e semelhanças de diferentes plataformas e domínios a partir de perspectivas quantitativas e qualitativas em diferentes granularidades. Primeiro, projetamos e conduzimos um estudo quantitativo no qual analisamos o histórico de commit de centenas de repositórios Java hospedados no GitHub para identificar como as alterações do código ocorrem. Mais especificamente, investigamos a frequência de commits, o espalhamento e a profundidade das mudanças de código e a co-evolução de três tipos de mudanças: alterações no código-fonte, alterações em arquivos de build e alterações em arquivos de testes. Para o último item, contamos com o algoritmo de mineração Frequent Itemset para obter regras de associação relativas a tipos de alterações de código. Nossos resultados sugerem algumas diferenças relacionadas às plataformas (mobile e não-mobile). Por exemplo, em relação às freqüências de commits, a plataforma móvel possui diferentes padrões de mudanças ao longo do ano em comparação com sistemas desktop e Web. Também realizamos um estudo qualitativo no qual realizamos entrevistas semiestruturadas com desenvolvedores de vários domínios da indústria, ou seja, desenvolvedores com experiência em mais de um domínio. Em seguida, desenvolvemos uma Web survey para confirmar ou não os resultados de domínios nos quais atingimos a saturação teórica de acordo com a Grounded Theory. Nosso objetivo é entender como as práticas de desenvolvimento são aplicadas a partir da perspectiva dos profissionais. Nossos resultados revelam que, na verdade, desenvolvedores de diferentes domínios aplicam práticas de desenvolvimento de diferentes maneiras. Por exemplo, domínios relacionados a finanças podem interromper práticas de integração contínua em períodos em que as transações financeiras aumentam, como no Natal e no Ano Novo.
Abstract: Software engineering is a diverse field composed of different platforms and domains with a large variety of people involved in all stages of the development. Software platform refers to the underlying structure where the software is built on (e.g., Android) and software domains refer to systems developed for specific segments (e.g., healthcare). Understanding patterns of evolution of mobile and non-mobile software may support developers and companies within the open source software context. Revealing how development practices are adopted across domains may give new research directions and insights for industry professionals. In this Master Thesis, we investigate development and evolution practices using a mixed-method. Initially, we rely on the Frequent Itemset mining algorithm to analyze the co-evolution of code changes. We then interview cross-domain developers from the industry. Our findings show that different platforms and domains require practices to be applied in different ways.
Subject: Engenharia de Software
Algoritmo de mineração
Computação
Domínio de software
Plataforma de software
language: Português
Publisher: Universidade Federal de Minas Gerais
Publisher Initials: UFMG
Rights: Acesso Aberto
URI: http://hdl.handle.net/1843/ESBF-BA8NXT
Issue Date: 17-Dec-2018
Appears in Collections:Dissertações de Mestrado

Files in This Item:
File Description SizeFormat 
markosviggiatodealmeida.pdf1.18 MBAdobe PDFView/Open


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