Metodologia de Desenvolvimento de Software Alexandre Vasconcelos Andr

  • Slides: 35
Download presentation
Metodologia de Desenvolvimento de Software Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo

Metodologia de Desenvolvimento de Software Alexandre Vasconcelos, André Santos, Augusto Sampaio, Hermano Moura, Paulo Borba © Centro de Informática Universidade Federal de Pernambuco

Tópicos Introdução n A necessidade de controle do código fonte n Controle do código

Tópicos Introdução n A necessidade de controle do código fonte n Controle do código fonte n Builds è Controle de defeitos n Gerência de mudança n

Controle de Defeitos n n “Bug tracking” composto de u relato u análise u

Controle de Defeitos n n “Bug tracking” composto de u relato u análise u atualização de status

Como realizar o controle de Bugs n Memória u não é escalável u subjetivo

Como realizar o controle de Bugs n Memória u não é escalável u subjetivo u não confiável n papel u caixa com bugs abertos u caixa com bugs fechados

Como realizar o controle de Bugs n Sistema de controle de bugs u relato

Como realizar o controle de Bugs n Sistema de controle de bugs u relato u adicionar dados, modificar, remover relato u atribuir responsáveis u acompanhar solução u extrair informação sobre bugs e seu status

Sistema de controle de bugs n Principais elementos: u campo de identificação do defeito

Sistema de controle de bugs n Principais elementos: u campo de identificação do defeito (Bug ID) u Produto u Release u Resumo (uma linha) u Status u Detalhes - efeito, como reproduzir, como evitar u Data

Sistema de controle de bugs n n Assigned n n Unresolved Open Repair n

Sistema de controle de bugs n n Assigned n n Unresolved Open Repair n Fixed n Error

Elementos Adicionais n Severidade u extrema - produto não funciona u alta - funcionalidade

Elementos Adicionais n Severidade u extrema - produto não funciona u alta - funcionalidade importante não funciona, produto parcialmente utilizável u média - alguma funcionalidade não está disponível, mas a maior parte está funcionando, pode haver workaround u baixa - produto pode ser utilizado para a maioria de suas funções, defeito afeta funcionalidade mínima.

Elementos Adicionais n Prioridade u extrema - crítica para o release do produto, defeito

Elementos Adicionais n Prioridade u extrema - crítica para o release do produto, defeito tem que ser resolvido. Release de manutenção. u Alta - crítica, deve ser consertada o mais rápido possivel. Corrigida no próximo release, ou via patch. u Média - importante para o sucesso do produto. Deve ser programada. Conserto no próximo release ou no seguinte. 4 meses. u Baixa - deve ser consertado. 6 meses.

Elementos Adicionais u Responsável u Palavra chave u Componente u Attachments u Duplicação u

Elementos Adicionais u Responsável u Palavra chave u Componente u Attachments u Duplicação u Log de mudanças

Multiplas plataformas n Opção de tratar como um único sistema ou como sistemas separados

Multiplas plataformas n Opção de tratar como um único sistema ou como sistemas separados

Métricas n Gráficos u Detectar evolução no número de bugs abertos e fechados u

Métricas n Gráficos u Detectar evolução no número de bugs abertos e fechados u Detectar áreas com maior número de bugs

Tópicos Introdução n A necessidade de controle do código fonte n Controle do código

Tópicos Introdução n A necessidade de controle do código fonte n Controle do código fonte n Builds n Controle de defeitos è Gerência de mudança n

Gerência de Mudança n n n Define o mecanismo de aprovação de mudanças no

Gerência de Mudança n n n Define o mecanismo de aprovação de mudanças no sistema. Normalmente não é implementado completamente até o primeiro release (ou próximo dele). Pode ser mais ou menos formal, dependendo do tamanho do projeto.

Pedidos de mudança n n n n Tamanho da mudança Aternativas Complexidade Cronograma Impacto

Pedidos de mudança n n n n Tamanho da mudança Aternativas Complexidade Cronograma Impacto Custo Relação com outras mudanças Testes

Grupo de Controle de Mudança n n Avalia o impacto na funcionalidade do produto

Grupo de Controle de Mudança n n Avalia o impacto na funcionalidade do produto exemplo: segurança contra cópia Validade técnica da mudança u consistência, n Cronograma uniformidade

Pedidos de Mudança n n Submetidos Guardados (database) Revisados Aprovados, rejeitados, ou postos em

Pedidos de Mudança n n Submetidos Guardados (database) Revisados Aprovados, rejeitados, ou postos em espera

Pedidos de Mudança n Se aprovados, passam pelos seguintes estados: u novo, atribuído, em

Pedidos de Mudança n Se aprovados, passam pelos seguintes estados: u novo, atribuído, em projeto, em implementação, em testes, em integração, em testes de sistema, completado, cancelado, com pendência.

Métricas n Idade (Tempo) u Há quanto tempo solicitações de um determinado tipo ficam

Métricas n Idade (Tempo) u Há quanto tempo solicitações de um determinado tipo ficam abertas? u Quanto tempo cada tipo de solicitação leva para ser resolvido? n Distribuição (contabilidade) u Quantas solicitações existem nas várias categorias, por dono, prioridade, estado?

Métricas n Direcionamento (tempo e contabilidade) u Qual o número acumulado de defeitos sendo

Métricas n Direcionamento (tempo e contabilidade) u Qual o número acumulado de defeitos sendo encontrados e corrigidos ao longo do tempo? u Qual a taxa de encontro e correção de defeitos? u Qual o gap de qualidade entre defeitos abertos e fechados? u Qual a média de tempo para se corrigir um defeito?

RUP - Conceitos n Workspace u ambiente privado u ambiente de integração u ambiente

RUP - Conceitos n Workspace u ambiente privado u ambiente de integração u ambiente compartilhado

RUP - Conceitos n Baselining u snapshot dos artefatos de modelo de implementação, a

RUP - Conceitos n Baselining u snapshot dos artefatos de modelo de implementação, a partir do qual trabalhos futuros serão desenvolvidos. u ponto estável dos artefatos (para criação de branches etc. ) u Artefatos devidamente marcados (tag) u ponto para possível rollback u ponto para reproduzir bugs u produzido ao fim de cada fase (major milestone), ou fim de iterações (minor milestones)

RUP - Conceitos n Método de promoção u como atualizar artefatos do workspace individual

RUP - Conceitos n Método de promoção u como atualizar artefatos do workspace individual para o workspace global (integração de (sub)sistemas, build, teste, release). n Alternativas u check-in u private branch

RUP - Métodos de Promoção n Check-in u pequenas mudanças (1 a 3 dias)

RUP - Métodos de Promoção n Check-in u pequenas mudanças (1 a 3 dias) u pequenas mudanças para estabilização do sistema u pequenos grupos de desenvolvedores (até 8) u arquivos ficam visíveis para todos - não fazer check-in de trabalhos incompletos u checkouts demorados podem levar a divergências u como não se faz check-in de trabalho em andamento, há risco de perda por falta de backup

RUP - Métodos de Promoção n Branch Privado u mudanças que desestabilizam o projeto

RUP - Métodos de Promoção n Branch Privado u mudanças que desestabilizam o projeto (esquema do BD, por exemplo) u mudanças que podem não ser incluídas no release atual u mudanças que podem levar muito tempo u trabalho de merge pode não ser trivial u podem haver mudanças simultaneas em módulos

RUP

RUP

RUP - Plano de Gerência de Configuração n n Definir como CM será feita

RUP - Plano de Gerência de Configuração n n Definir como CM será feita para um determinado produto Objetivos Escopo Referências

RUP - Plano de Gerência de Configuração n Gerência de Configuração u Organização, responsabilidades

RUP - Plano de Gerência de Configuração n Gerência de Configuração u Organização, responsabilidades u ferramentas, ambiente e infraestrutura u métodos de identificação (nomes, numeração) u Baselines

RUP - Plano de Gerência de Configuração n Controle de Configuração e Mudanças u

RUP - Plano de Gerência de Configuração n Controle de Configuração e Mudanças u Processo de pedido e aprovação de pedidos de mudança u Grupo de aprovação de mudanças u Procedimentos de backup n Contabilização de Status u relatórios u treinamento

RUP

RUP

Sistemas de Gerência de Configuração n RCS, SCCS u gratuitos u desenvolvidos para o

Sistemas de Gerência de Configuração n RCS, SCCS u gratuitos u desenvolvidos para o Unix u não são muito utilizados atualmente n CVS u gratuito u usado em larga escala nos projetos open source na internet: Linux, gnu, apache etc. u suporte a características avançadas, como merge e desenvolvimento distribuído u versão para Windows do cliente u http: //www. cvshome. org

Sistemas de Gerência de Mudanças n Bugzilla u funcionamento via web browser u roda

Sistemas de Gerência de Mudanças n Bugzilla u funcionamento via web browser u roda em Unix: usa My. SQL, perl u muito usado em projetos open source na internet: netscape communicator 6, apache etc. u http: //www. mozilla. org/bugs

Sistemas Comerciais n Merant PVCS u várias versões, inclusive com gerência de mudanças (tracker)

Sistemas Comerciais n Merant PVCS u várias versões, inclusive com gerência de mudanças (tracker) u aprox. US$ 1. 500 por usuário (versão mais simples) u http: //www. merant. com/pvcs n Rational Clear. Case/Clear. Quest u Clear. Quest p/controle de mudanças u aprox. R$ 8 k + R$ 8 k por usário u http: //www. rational. com n Star. Base Star. Team u faz controle de mudanças u http: //www. starbase. com

Sistemas de Gerência de Configuração n Microsoft Visual Source Safe n Sistemas proprietários u

Sistemas de Gerência de Configuração n Microsoft Visual Source Safe n Sistemas proprietários u Visual Age for Java u Oracle Designer

Referências n n n Descrição do workflow de gerência de configuração e mudanças -

Referências n n n Descrição do workflow de gerência de configuração e mudanças - CD do RUP Configuration Management Today http: //cmtoday. com Software Release Methodology, M. E. Bays, Prentice Hall, 1999.