Please use this identifier to cite or link to this item: http://hdl.handle.net/1843/ESBF-BA8NXT
Full metadata record
DC FieldValueLanguage
dc.contributor.advisor1Eduardo Magno Lages Figueiredopt_BR
dc.contributor.referee1Marco Tulio de Oliveira Valentept_BR
dc.contributor.referee2Alessandro Fabrício Garciapt_BR
dc.creatorMarkos Viggiato de Almeidapt_BR
dc.date.accessioned2019-08-14T18:27:20Z-
dc.date.available2019-08-14T18:27:20Z-
dc.date.issued2018-12-17pt_BR
dc.identifier.urihttp://hdl.handle.net/1843/ESBF-BA8NXT-
dc.description.abstractSoftware 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.pt_BR
dc.description.resumoA 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.pt_BR
dc.languagePortuguêspt_BR
dc.publisherUniversidade Federal de Minas Geraispt_BR
dc.publisher.initialsUFMGpt_BR
dc.rightsAcesso Abertopt_BR
dc.subjectDomínio de Softwarept_BR
dc.subjectAlteração de Códigopt_BR
dc.subjectAlgoritmo de mineração Frequent Itemsetpt_BR
dc.subjectPlataforma de Softwarept_BR
dc.subjectEstudo de Entrevistapt_BR
dc.subject.otherEngenharia de Softwarept_BR
dc.subject.otherAlgoritmo de mineraçãopt_BR
dc.subject.otherComputaçãopt_BR
dc.subject.otherDomínio de softwarept_BR
dc.subject.otherPlataforma de softwarept_BR
dc.titleOn The Investigation of Software Development and Evolution Practicespt_BR
dc.typeDissertação de Mestradopt_BR
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.