10 likes | 111 Views
Métricas associadas ao desenvolvimento de software usando Métodos Ágeis. Trabalho de Conclusão do Curso Sistemas de Informação por Guilherme da S. Elias ( guilherme.elias@gmail.com ) sob orientação do Prof. Daniel Wildt ( dwildt@gmail.com ) e
E N D
Métricas associadas ao desenvolvimento de software usando Métodos Ágeis. Trabalho de Conclusão do Curso Sistemas de Informação por Guilherme da S. Elias (guilherme.elias@gmail.com) sob orientação do Prof. Daniel Wildt (dwildt@gmail.com) e co-orientação do Prof. Guilherme Lacerda (guilherme@facensa.com.br) Objetivo do Trabalho Estado da Arte Motivação: Como você mede a qualidade do código que você produz? • Tanto o conceito de qualidade, quanto o de métricas são assuntos explorados em vários trabalhos científicos dentro da engenharia de software, visando colher os benefícios trazidos com a aplicação de distintos modelos, filosofias e técnicas. Abaixo são mostrados alguns destes trabalhos: • Um Estudo de Caso da Adoção das Práticas e Valores do Extreme Programming (MANHAES, 2005) • O foco principal destacado no trabalho foram, as costumeiras dificuldades enfrentadas durante o desenvolvimento de um software. Práticas e valores da XP foram adotados, exatamente no intuito de prover melhorias no ambiente estudado, o qual proporcionou a validação de sua tese. Vinicius também mensurou a adoção de cada prática emprega em um estudo de caso realizado ao junto ao comitê olímpico da Rússia. • O Uso Eficaz de Métricas em Métodos Ágeis de Desenvolvimento de Software (TOSHIAKI, 2007) • A aplicação de práticas, princípios, valores pertinentes as Metodologias Ágeis e métricas de software, desempenharam papel fundamental dentro do estudo de caso proposto. Este estudo de caso é composto por sete projetos conduzidos em ambiente acadêmico e em uma instituição governamental. Métricas como número de Histórias entregues, número de pontos entregues e satisfação do cliente. Estudo de Caso No contexto da engenharia de software as métricas possuem papel fundamental dentro deste contexto, dando subsídios aos times de desenvolvimento para acompanhar o código fonte produzido. Baseado nestas premissas, este trabalho de conclusão propõe experimentos em forma de pequenos projetos, que baseiam-se na aplicação de um guia, que compreende a utilização de MÉTRICAS de software, FERRAMENTAS de apoio a QUALIDADE e PRÁTICAS pertinentes ao desenvolvimento ÁGIL de software. Estes experimentos estão sendo conduzidos com o auxilio dos grupos de estudos da FACENSA, movidos apenas por ações voluntárias. • PROJETOS • Classdiary (FACENSA Usuários Java – FUJA): Através da necessidade do preenchimento diário das atividades realizadas em sala de aula pelo professores, adotou-se a idéia de automatizar tal processo. • Ferramentas de Apoio • - PMD/CPD • - Ant • - EMMA • - Junit • - Metrics • - Checkstyle • - Cruise Control • - Netbeans • Social Program Manager “SPM” (FACENSA.Net): Projeto que visa facilitar o gerenciamento de ações sociais realizadas por instituições sem fins lucrativos. • Ferrmantas de Apoio • - Simian • - Nant • - Ncover • - Nuni • - Visual Studio Team System 2008 • - Cruise Control .Net Desenvolvimento do Trabalho VERIFICAÇÃO E VALIDAÇÃO Segundo André koscianski (KOSCIANSKI, 2004) podemos definir o conceito de verificação e validação da seguinte forma: Verificação: Estamos construindo certo o produto? Validação: Estamos construindo o produto certo? MÉTRICAS A aplicação de métricas no desenvolvimento de software vem ganhando uma maior proporção e maturidade dentre os times de desenvolvimento, em busca de uma melhor qualidade para o produto final projetado (KAN, 2002; PRESSMAN, 1995). • MÉTODO ÁGEIS • As Metodologias Ágeis de desenvolvimento de software possuem uma coleção de princípios e valores extremamente simples e focados no real objetivo do desenvolvimento de software, a entrega de software funcional e valorada ao cliente (BECK, 2004; MANIFESTO, 2008). • eXtremeProgramming: Extreme Programming, Programação Extrema ou simplesmente XP, é uma das mais difundidas Metodologias Ágeis de desenvolvimento de software (BECK, 2004). A XP possui como premissas o desenvolvimento de software baseado em comunicação, feedback, simplicidade, coragem e respeito com os indivíduos. • Práticasda XP • - DesenvvolvimentoDirigido à Testes (TDD) - IntegraçãoContínua (C.I.) • - Refactoring - Programaçãoem Pares Resultados • GUIA DE PADRÕES E BOAS PRÁTICAS • resultado obtido através do acompanhamento aos projetos e validações realizadas, servirá de apoio aos times de desenvolvimento, como um conjunto de boas práticas para garantir a qualidade do código fonte sendo gerado. Abaixo algumas destas boas práticas obtidas e documentadas pelas equipes envolvidas: • - Detector de Reuso de Código; • - Boas Práticas Para Teste Unitários; • - Controlando Complexidade passo-a-passo • etc … MÉTRICAS BASEADAS EM MÉTODOS ÁGEIS Tamanho: LOC (Line Of Code), KLOC (Kilo Line Of Code) e SLOC (Source Code Line Of Code). Refactoring: Permite mensurar número de commitsrealizados no repositório de versionamento (FOWLER, 2008). Cobertura de Código: Garantir maior abrangência dos testes por blocos, métodos, pacotes ... Integração Contínua: Acompanhamento dos buildspor dia, semana, iteração. Complexidade: Mensurar o quanto um determinado método, função etc. é de fácil compreensão –legibi- lidade. Auditorias: Analisar código fonte estático em em busca de anti-patterns, que gerem brechas para falhas e bugs. Métricas OO: Métricas do paradigma orientado à objetos: Acoplamento entre classes (CBO), Profundidade da àrvore de herança (DIT), falta de coesão de métodos (LCOM) ... (LANZA, 2006; SOMMERVILLE, 2003) Referências BECK, Kent. Programação Extrema Explicada. Porto Alegre: Bookman, 2004; FOWLER, Martin. Refactoring. Disponível em (http://www.refactoring.com), acessado em 03/06/2008 às 21h58min. LANZA, Michele. Object-Oriented Metrics in Pratice, using software metrics to characterize, evaluate, and improve the design of object-oriented systems. Springer, 2006; KAN, Stephen H. Metrics and Models in Software Quality Engineering, Second Edition. Boston: Addison – Wesley, 2002; KOSCIANSKI , André e dos Santos Soares, Michel. Qualidade de Software. São Paulo: Novatec, 2006; MANIFESTO, Agile. Manifesto for Agile Software Development. Disponível em (http://www.agilemanifesto.org), acessado em abril de 2001 às 22h10min. PRESMANN, Roger S. Engenharia de Software, Makron books, 1995; SOMMERVILLE, Ian. Engenharia de Software, São Paulo: Addison Wesley, 2003; Acessado em 13/04/2008; TOSHIAKI, Danilo Sato. Uso Eficaz de Métricas no Desenvolvimento Ágil de software, São Paulo, 2007; MANHÃES, Vincíus Teles. Um estudo de Caso das praticas e valores da Extreme Programming, Rio de Janeiro, 2005.