Dissertação de mestrado em Engenharia de InformáticaThis document presents a master thesis in Computer Science, in the area of Program Comprehension and Static Code Analysis. This work (thesis preparation and writing) is a component of the second year of the Masters degree, that will be achieved in University of Minho at Braga, Portugal. Thousands of open source software (OSS) projects are available for collaboration in platforms like Github or Sourceforge. However, like traditional software, OSS projects have different quality levels. The developer, or the end-user, needs to know the quality of a given project before starting the collaboration or its usage—they may trust in the package before making a decision.
In the context of OSS, trustability is a much more sensible concern; mainly end-users usually prefer to pay for proprietary software in order to feel more confident in the package quality. OSS projects can be assessed like traditional software packages using the well known software metrics. In this document we want to go further and propose a finer grain process to do such quality analysis, precisely tuned for this unique development environment. As it is known, along the last years, open source communities have created their own standards and best practices. Nevertheless, the classic software metrics do not take into account the best practices established by the community. The notion that it could be worthwhile to consider this peculiarity as a complementary source of assessment data was the essence of this thesis.
Taking Rails OSS community and its projects as framework, this document discusses the role of best practices in measuring software quality and describes the studies carried out, to build a new code analysis tool that will enable users to make better choices about what software to use and help developers to improve their software.Este documento apresenta uma tese de mestrado em Ciência da Computação, na área de compreensão de programas e análise estática de código.
Este trabalho integra o plano curricular do segundo ano de mestrado, e sera defendido na Universidade do Minho em Braga, Portugal.
São milhares os projetos de software open source disponíveis para colaboração em plataformas como o Github ou Sourceforge. No entanto, tal como o software tradicional, os projetos OOS diferem entre si a nível de qualidade. Neste sentido, surge a necessidade do programador ou o utilizador final, saber o grau qualidade de um determinado projecto, antes mesmo de decidir iniciar uma colaboração ou o seu uso. Sendo que para este efeito deve existir confiança no pacote de software, antes de qualquer tipo de decisão sobre a matéria.
No contexto de software open source a confiabilidade surge como uma preocupação relevante, sendo que, muitas das vezes os utilizadores finais preferem adquirir software proprietário com o intuito de sentirem níveis de confiança mais elevados em relação ao referido pacote de software.
Mais se refere que a avaliação de projetos de software open source pode ser executada de forma idêntica a de software tradicional, utilizando métricas de software de conhecimento geral.
Neste documento, pretendemos ultrapassar este ponto e propor um novo processo para fazer a dita análise de qualidade, ajustado precisamente para este ambiente de desenvolvimento de software único. Como e sabido, ao longo dos últimos anos, as comunidades de código aberto têm criado suas próprias regras e boas práticas. No entanto, as métricas de software clássicas não têm em conta as boas práticas estabelecidas pela comunidade. Nós sentimos que poderia valera pena considerar essa peculiaridade como uma fonte complementar de dados de avaliação.
Tomando como base de trabalho a comunidade open source do framework Ruby on Rails, o presente artigo discute o papel das boas práticas na medição da qualidade de software, descreve os estudos realizados e a construção de um novo código de ferramenta de analises que permitira aos usuários optar por melhores soluções, nomeadamente no que se refere ao tipo de software a utilizar e ainda ajudar os developers a melhorar a qualidade do seu software