Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro Atividades de um Processo Na aula passada... Diferentes modelos de processos de software Atividades Especificação Projeto e Implementação Validação Evolução Variam na forma em que são executadas Dependem do modelo de processo... Especificação de Software Fases Estudo de viabilidade É possível fazer o que o usuário deseja? Considera prazos e custos Elicitação e análise de requisitos Especificação de requisitos Separar requisitos em: Requisitos de usuário Requisitos de sistema Validação de requisitos Está tudo ok e é possível fazer? Especificação de Software Estudo de viabilidade Elicitação e análise Especificação Relatório de viabilidade Validação Modelos de Sistema Req. Usuário e de sistema Documento Requisitos Projeto e Implementação Fases Projeto de Arquitetura Relacionamentos entre subsistemas Especificação Abstrata Quais serviços devem ser oferecidos por um subsistema? Projeto de interface Projeto de interface entre subsistemas. Especificação formal Projeto de componente Quais serviços serão oferecidos Projeto de estrutura de dados Projeto de algoritmos Projeto e Implementação Especificação de requisitos Projeto de Arquitetura Arquitetura de sistema Especificação abstrata Especificação de software Projeto de interface Projeto de componente Especificação de interface Projeto de algoritmo Especificação de algoritmo Especificação de componente Projeto de Estr. de dados Especificação de Estr. Dados Validação Objetivo Código está de acordo com requisitos? Ferramentas Inspeções Revisões Testes Fases Teste de unidade Teste de sistema Teste de aceitação Diferença entre teste alfa e beta Validação Especificação de requisitos Especificação de sistema Teste de aceitação Operação Projeto de Teste aceit. Projeto de sistema Teste de sistema Projeto detalhado Teste de subsistema Projeto de Teste sist. Código e Teste unit. Projeto de Teste subsist. Evolução Evolução (manutenção) Incorporar novas características Integração Migração Evolução é muito mais cara que desenvolver Porquê? Evolução envolve: Possível compreensão do código existente Re-projeto de código existente para acomodar mudanças Evolução Definir requisitos Avaliar Sistemas exist. Propor mudanças Modificar sistemas Sistemas novos Sistemas existentes Exemplos de Processos Vimos até agora... Diversos modelos de processos Etapas comuns a diversos modelos Exemplos software process – PSP Team software process – TSP Unified Process Personal Rational Unified Process – RUP PRocesso para Aplicativos eXtensíveis e InterativoS PRAXIS Personal Software Process Processo para desenvolvimento “solo” Educacional Define vários níveis Processos pessoais básicos Registro de tempo, defeitos Processos pessoais com planejamento Estimativas de tamanho, relatórios de testes Cronogramas Processos pessoais com gestão de qualidade Modelo de desenho e revisões Team Software Process Evolução natural do PSP Possui fins educacionais Baseado no modelo espiral Times pequenos de desenvolvedores Duração média de 15 semanas (3 ciclos) Desenvolvedores fazem mais de um papel Qualidade, testes, gerência de projeto... Assim como o PSP Controle de tamanho, esforço, prazos, etc... Team Software Process Fases Lançamento Ativação do projeto. Estratégia Seleção da estratégia de desenvolvimento Estimativa de tamanho Planejamento Produção de planos de tarefas Produção de planos de qualidade Team Software Process Fases Requisitos Produção de documento de requisitos Revisão de requisitos por usuários Desenho Desenho de alto nível Documentação do desenho Implementação Desenho detalhado Inspeção do desenho Codificação e testes de unidade Team Software Process Fases Testes Planejamento de testes Integração Sistemas Realização de testes Documentação de testes Post-mortem Avaliação do processo Documentação dos resultados Unified Process História da UML e U.P. Jackobson, Booch, Rumbaugh Características Dirigido por casos de usos Centrado na arquitetura Iterativo e incremental Baseado no modelo espiral Produto: resultado final da espiral Projeto: um ciclo na espiral Não trata do que acontece nos ciclos. Unified Process Arcabouço para diversos processos RUP Muito abstrato para ser utilizado... Deve e Praxis ser “instanciado” para utilização Dividido em Fases (phases): foco gerencial Fluxos (disciplines): foco técnico Unified Process Fases Concepção Porquê desenvolver isso? Elaboração Planejamento da construção Construção Produção de um produto operacional Transição Produto colocado à disposição de usuários. Unified Process Fluxos Requisitos Obter um conjunto de requisitos com o cliente Análise Validar, detalhar e estruturar requisitos Desenho Elaboração de um modelo estrutural Implementação Codificação Testes Unified Process Rational Unified Process Outros modelos de processo... Apresentam visão única R.U.P. pode ser visto de 3 perspectivas Perspectiva Fases do modelo ao longo do tempo Perspectiva estática Atividades realizadas ao longo do processo Perspectiva dinâmica prática Boas práticas a serem adotadas durante o processo Rational Unified Process Perspectiva dinâmica Corresponde a fases do U.P. Perspectiva estática Corresponde a fluxos do U.P. Acrescidos de fluxos Modelagem de negócios Gestão de configurações Implantação(Deployment) Infra-estrutura (environment) Perspectiva prática Desenvolvimento iterativo Gerenciar requisitos Usar arquiteturas baseadas em componentes Modelar software visualmente: UML Verificar qualidade Controlar mudanças Rational Unified Process Processo completo e extensível Às vezes, completo demais... Número de artefatos produzido elevado RUP Produto comercializado pela Rational Consultoria em processos Ferramentas Rational Rose Rational Enterprise Architect Utilizaremos o Praxis Próxima aula...