Resumo:
Diariamente, desenvolvedores de software precisam se envolver com atividades de manutenção para adaptar aplicações existentes a novos cenários e necessidades, como por exemplo, novas funcionalidades, correções de defeitos e requerimentos legais. Entretanto, algumas questões organizacionais podem interferir nas atividades dos desenvolvedores impactando na qualidade e manutenabilidade do software produzido. Grande volume de documentação obsoleta, dificuldades na utilização desta documentação, dependências entre módulos de software e especialistas que deixam as empresas levando o conhecimento de determinados módulos e/ou sistemas são fatores determinantes para o sucesso dos projetos. Uma das formas de mitigar o impacto destas questões seria a disponibilização de informações úteis referentes aos módulos ou artefatos de software de forma qualitativa. A disponibilização destas informações propicia um melhor entendimento do desenvolvedor em relação aos aspectos que cercam o software e o seu ambiente. De acordo com a natureza das informações disponibilizadas, os desenvolvedores podem adquirir informações relevantes sobre o softwareem questão. Essa dissertação apresenta o SW-Context, um modelo que permite a combinação de diferentes informações relacionadas a artefatos de software, a fim de aprimorar a consciência situacional dos desenvolvedores nas atividades de desenvolvimento e manutenção. Desta forma, os principais desafios do modelo são: a definição de quais informações devem compor o contexto para software, o armazenamento estruturado destas informações em históricos de contextos e, finalmente, a análise e disponibilização destas informações de contexto, de forma que possam auxiliar a atividade de desenvolvimento e manutenção de software, utilizando o conceito SoftwareAnalytics. Foi implementado um protótipo contendo os principais conceitos do modelo proposto. Este protótipo utilizou as informações contextuais de aplicações reais de uma empresa de desenvolvimento de software e foi avaliado através de um estudo de caso, onde 12 desenvolvedores o utilizaram pelo período de um mês em suas atividades diárias. Ao final deste período, os desenvolvedores responderam um questionário que abordou a utilidade da ferramenta e a facilidade de uso percebida. A avaliação do modelo obteve respostas com percentuais satisfatórios tanto em relação à facilidade de uso percebida quanto à utilidade do sistema. Pode-se avaliar que a consolidação das informações contextuais em um local único e a disponibilização qualitativa das informações correlacionadas, através de dashboard, atingiu o objetivo de melhorar a consciência situacional dos desenvolvedores nas atividades de manutenção.