RUPinho Qualidade de Software César Delmas, Daniel Penaforte, Guilherme Carvalho, Hector Paulo, Thiago Cavalcanti {cadcn, dap4, ggc, hplo, trc}@cin.ufpe.br Roteiro Objetivo Estruturação de um processo que possibilite pequenas empresas, trabalhar de maneira organizada do ponto de vista de planejamento, execução e controle. Caracterização do ambiente Características Empresas de 5 a 20 funcionários Menos de dois anos de atuação Pouca experiência em processo de software Problemas Comunicação Inadequação de documentação Infra-estrutura inadequada Origem RUP (Rational Unified Process) Orientado a objetos: UML Fases: concepção, elaboração, construção e transição 4P’s: pessoas, projeto, produto e processo ProsCes (Processo do CESAR) Baseado no RUP Geração de artefatos Orientado por Guias Características Agilidade Documentação reduzida Informações certas, para as pessoas certas, nas horas certas. Redução tanto no número de documentos, quanto no escopo dos documentos adotados. Baixo custo Uso de ferramentas free Etapas Modelagem do Negócio Planejamento e Gerenciamento de Projetos Requisitos Análise e Projeto Implementação Teste Implantação Controle da qualidade Estrutura Resumo do objetivo do fluxo As principais atividades a serem realizadas Os artefatos (obrigatórios e opcionais) recomendados e gerados no fluxo Os templates e guias necessários para produzir esses artefatos Modelagem do Negócio/Concepção Objetivos Atividades Conhecer o contexto. Mudar o contexto trabalhado. Reuniões com representantes do cliente. Identificar stakeholders Identificar e priorizar processos derivado do negócio. Artefatos Modelo de Casos de Uso do Negócio/Acordo de Concepção Planejamento e Gerenciamento de Projetos (1/4) Objetivos Prover um processo de planejamento, execução, monitoração e conclusão do projeto Estabelecer um processo de gerenciamento de riscos Garantir que o projeto seja executado conforme planejado, com o mínimo possível de impacto Estabelecer e manter o processo de desenvolvimento adequado ao projeto, com base no processo de software organizacional Planejamento e Gerenciamento de Projetos (2/4) Atividades Definir responsabilidades, atividades e recursos necessários para o desenvolvimento do projeto Identificar e gerenciar riscos Controlar o desenvolvimento baseado no Plano do Projeto Definir ferramentas e infra-estrutura necessárias Selecionar procedimentos e padrões a serem utilizados Formalizar a aceitação da entrega ao cliente de artefatos desenvolvidos no projeto Formalizar a conclusão do projeto Planejamento e Gerenciamento de Projetos (3/4) Artefatos Formulário de Abertura de Projetos Plano do Projeto Planilha de Gerência de Riscos Relatório de Conclusão de Projetos Ferramentas Planilha de Estimativa e Acompanhamento de Custos Cronograma Lista de e-mail do projeto Site do Projeto [dotProject] Planejamento e Gerenciamento de Projetos (4/4) Documentos Relacionados Resumo sobre a técnica de estimativa por pontos de caso de uso Manual do dotProject Requisitos (1/2) Objetivos Obter uma concordância com o cliente sobre o que o sistema "deve fazer" Delimitar o escopo do sistema Prover a base para o planejamento do desenvolvimento do sistema Requisitos (2/2) Atividades Reuniões com representantes do cliente a fim de obter um entendimento comum dos requisitos do sistema Identificar atores, requisitos e/ou casos de uso Especificar requisitos e/ou casos de uso Modelar e implementar protótipo Artefatos Documento de Requisitos Documento de Caso de Uso Análise e Projeto (1/2) Objetivos Transformar os requisitos no projeto do sistema Estabelecer uma arquitetura robusta Adaptar o projeto ao ambiente de implementação Atividades Analisar e projetar sistema [Detalhar classes e subsistemas] Definir arquitetura do software Análise e Projeto (2/2) Artefatos [Modelo de Análise e Projeto] [Modelo de Dados] [Documento da Arquitetura] Ferramentas [Ferramenta CASE] [Modelagem do Banco de Dados] Implementação (1/2) Objetivos Implementar classes e objetos em termos de componentes Testar os componentes desenvolvidos como unidades Integrar os componentes produzidos em um sistema executável Implementação (2/2) Atividades Estruturar o modelo de implementação Planejar integração Implementar componentes Efetuar testes unitários Efetuar revisões de código Ferramentas Open source Testes (1/2) Objetivos Verificar a integração de todos os componentes de software Verificar se todos os requisitos estão corretamente implementados Identificar e garantir que defeitos sejam solucionados antes da disponibilização do sistema Testes (2/2) Atividades Artefatos Projetar testes Efetuar testes de integração, de sistema e de desempenho [Plano de Testes] Ferramentas Variam de acordo com ambiente Implantação(1/2) Objetivos Distribuição do produto para o cliente. Atividades Preparar software para implantação Disponibilizar o sistema em ambiente de produção Disponibilizar help e suporte ao usuário Migrar dados pré-existentes [Planejar e conduzir beta-testes] Implantação(2/2) Artefatos Plano de Implementação Help Relatório de Avaliação Final do Cliente Documentos Relacionados Plano de Implementação Controle da qualidade Produtividade Satisfação Conformidade do cronograma Análises qualitativas e quantitativas Aplicabilidade Cobertura do processo Coerência do esforço Perguntas?