1
Métricas associadas ao Métricas associadas ao desenvolvimento de software desenvolvimento de software usando Métodos Ágeis. usando Métodos Ágeis. Trabalho de Conclusão do Curso Sistemas de Informação por Guilherme da S. Elias ([email protected]) sob orientação do Prof. Daniel Wildt ([email protected]) e co-orientação do Prof. Guilherme Lacerda ([email protected]) Estado da Arte Objetivo do Trabalho Desenvolvimento do Trabalho Estudo de Caso Resultados Referências Motivação: Como você mede a qualidade do código que você produz? 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 MÉTRICAS de software, FERRAMENTAS FERRAMENTAS de apoio a QUALIDADE QUALIDADE e PRÁTICAS PRÁTICAS pertinentes ao desenvolvimento ÁGIL de software. Estes experimentos estão sendo conduzidos com o auxilio dos grupos de estudos da FACENSA FACENSA, movidos apenas por ações voluntárias. VERIFICAÇÃO E VALIDAÇÃO 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 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 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). eXtreme Programming : : 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áticas da XP - Desenvvolvimento Dirigido à Testes (TDD) - - Desenvvolvimento Dirigido à Testes (TDD) - Integração Contínua (C.I.) Integração Contínua (C.I.) - Refactoring - Refactoring - Programação em Pares - Programação em Pares MÉTRICAS BASEADAS EM MÉTODOS ÁGEIS MÉTRICAS BASEADAS EM MÉTODOS ÁGEIS Tamanho Tamanho : LOC (Line Of Code), KLOC (Kilo Line Of Code) e SLOC (Source Code Line Of Code). Refactoring Refactoring : Permite mensurar número de commits realizados no repositório de versionamento (FOWLER, 2008). Cobertura de Código Cobertura de Código : Garantir maior abrangência dos testes por blocos, métodos, pacotes ... Integração Contínua Integração Contínua : Acompanhamento dos builds por dia, semana, iteração. Complexidade: Complexidade: Mensurar o quanto um determinado método, função etc. é de fácil compreensão – legibi- lidade. Auditorias 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 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) 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. PROJETOS 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 GUIA DE PADRÕES E BOAS PRÁTICAS 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 … 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.

Métricas associadas ao desenvolvimento de software usando Métodos Ágeis

  • Upload
    ivie

  • View
    19

  • Download
    2

Embed Size (px)

DESCRIPTION

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 ( [email protected] ) sob orientação do Prof. Daniel Wildt ( [email protected] ) e - PowerPoint PPT Presentation

Citation preview

Page 1: Métricas associadas ao desenvolvimento de software usando Métodos Ágeis

Métricas associadas ao Métricas associadas ao desenvolvimento de software desenvolvimento de software

usando Métodos Ágeis.usando Métodos Ágeis.

Métricas associadas ao Métricas associadas ao desenvolvimento de software desenvolvimento de software

usando Métodos Ágeis.usando Métodos Ágeis.Trabalho de Conclusão do Curso Sistemas de Informaçãopor Guilherme da S. Elias ([email protected])

sob orientação do Prof. Daniel Wildt ([email protected]) e co-orientação do Prof. Guilherme Lacerda

([email protected])

Estado da ArteEstado da ArteObjetivo do TrabalhoObjetivo do Trabalho

Desenvolvimento do TrabalhoDesenvolvimento do Trabalho

Estudo de CasoEstudo de Caso

ResultadosResultados

ReferênciasReferências

Motivação:

Como você mede a qualidade do código que você produz?

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 MÉTRICAS de software, FERRAMENTAS FERRAMENTAS de apoio a QUALIDADE QUALIDADE e PRÁTICAS PRÁTICAS pertinentes ao desenvolvimento ÁGIL de software. Estes experimentos estão sendo conduzidos com o auxilio dos grupos de estudos da FACENSAFACENSA, movidos apenas por ações voluntárias.

VERIFICAÇÃO E VALIDAÇÃOVERIFICAÇÃ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ÉTRICASMÉ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 ÁGEISMÉ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).

eXtreme Programming: : 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áticas da XP - Desenvvolvimento Dirigido à Testes (TDD) - Integração - Desenvvolvimento Dirigido à Testes (TDD) - Integração Contínua (C.I.) Contínua (C.I.) - Refactoring - Programação - Refactoring - Programação em Paresem ParesMÉTRICAS BASEADAS EM MÉTODOS ÁGEISMÉTRICAS BASEADAS EM MÉTODOS ÁGEIS

TamanhoTamanho: LOC (Line Of Code), KLOC (Kilo Line Of Code) e SLOC (Source Code Line Of Code).

RefactoringRefactoring: Permite mensurar número de commits realizados no repositório de

versionamento (FOWLER, 2008).

Cobertura de CódigoCobertura de Código: Garantir maior abrangência dos testes por blocos, métodos,

pacotes ...

Integração ContínuaIntegração Contínua: Acompanhamento dos builds por dia,

semana, iteração.

Complexidade:Complexidade: Mensurar o quanto um determinado método, função etc. é de fácil compreensão – legibi- lidade.

AuditoriasAuditorias: Analisar código fonte estático em

em busca de anti-patterns, que gerem

brechas para falhas e bugs.

Métricas OOMé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)

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.

PROJETOSPROJETOS

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

GUIA DE PADRÕES E BOAS PRÁTICASGUIA 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 …

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.