240 likes | 355 Views
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
E N D
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 Validação Relatório de viabilidade 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 interface Projeto de Arquitetura Especificação abstrata Projeto de componente Arquitetura de sistema Especificação de software Especificação de interface Especificação de componente Projeto de algoritmo Projeto de Estr. de dados Especificação de algoritmo 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 Projeto de sistema Projeto detalhado Teste de aceitação Teste de sistema Teste de subsistema Código e Teste unit. Projeto de Teste subsist. Operação Projeto de Teste aceit. Projeto de Teste sist.
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 • Personal software process – PSP • Team software process – TSP • Unified 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 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
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 elevado • RUP • Produto comercializado pela Rational • Consultoria em processos • Ferramentas • Rational Rose • Rational Enterprise Architect • Utilizaremos o Praxis • Próxima aula...