24
Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Embed Size (px)

Citation preview

Page 1: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Processos de Desenvolvimento de Software – Parte 2

Análise de Sistemas de Software

Prof. Rodrigo Ribeiro

Page 2: 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...

Page 3: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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?

Page 4: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 5: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 6: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 7: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 8: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 9: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 10: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Evolução

Definir requisitos

Avaliar Sistemas exist.

Propor mudanças

Modificarsistemas

Sistemas novos

Sistemasexistentes

Page 11: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 12: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 13: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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...

Page 14: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 15: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 16: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 17: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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.

Page 18: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 19: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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.

Page 20: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 21: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

Unified Process

Page 22: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 23: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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

Page 24: Processos de Desenvolvimento de Software – Parte 2 Análise de Sistemas de Software Prof. Rodrigo Ribeiro

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...