processos de desenvolvimento de software – parte 2 análise de sistemas de software prof. rodrigo...
TRANSCRIPT
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çãoValidaçãoEvolução
Variam na forma em que são executadasDependem 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 requisitosEspecificaçã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
Relatório deviabilidade
Elicitação e análise
Modelos de Sistema
Especificação
Req. Usuárioe de sistema
Validação
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çãoEspecificaçãode requisitos
Especificaçãoabstrata
Projeto de Arquitetura
Arquitetura desistema
Especificaçãode software
Projeto de interface
Especificaçãode interface
Projeto de componente
Especificaçãode componente
Projeto deEstr. de dados
Especificaçãode Estr. Dados
Projeto de algoritmo
Especificação de algoritmo
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çãoEspecificaçãode requisitos
Teste de aceitação
Especificaçãode sistema
Projetode sistema
Projeto detalhado
Teste de sistema
Teste de subsistema
Código eTeste unit.
Projeto de Teste subsist.
Projeto de Teste sist.
Projeto deTeste aceit.
Operação
Evolução Evolução (manutenção)
Incorporar novas características IntegraçãoMigração
Evolução é muito mais cara que desenvolverPorquê?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
Modificarsistemas
Sistemas novos
Sistemasexistentes
Exemplos de Processos Vimos até agora...
Diversos modelos de processosEtapas comuns a diversos modelos
ExemplosPersonal software process – PSPTeam software process – TSPUnified Process
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 e Praxis Muito abstrato para ser utilizado...
Deve ser “instanciado” para utilização Dividido em
Fases (phases): foco gerencialFluxos (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 dinâmica Fases do modelo ao longo do tempo
Perspectiva estática Atividades realizadas ao longo do processo
Perspectiva 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 elevadoRUP
Produto comercializado pela Rational Consultoria em processos Ferramentas
Rational Rose Rational Enterprise Architect
Utilizaremos o Praxis Próxima aula...