26
Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Embed Size (px)

Citation preview

Page 1: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Fundamentos de Engenharia de SW

Ciclo de Vida de Projetos de SWProf. E.A.Schmitz

2008/1

Page 2: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Ciclo de vida de projetos

Projetos são empreendimentos únicos e portanto envolvem um grau de incerteza.

Organizações dividem projetos em fases de forma a garantir um melhor controle e encadeamento com as operações correntes da empresa.

O conjunto das fases de um projeto é conhecido como ciclo de vida do projeto.

Page 3: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Ciclo de vida de projetos

Cada fase do projeto é marcada pela conclusão de um ou mais produtos.

Produto de trabalho: deve ser tangível e verificável.

Exemplo: um estudo de viabilidade, um projeto detalhado ou um protótipo executável.

Page 4: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Seqüência das fases de projetos

A seqüência de fases normalmente envolve alguma forma de transferência de informação: p.ex. de requisitos para projeto ou de projeto para construção.

Produtos das fases precedentes são usualmente aprovados antes do início da fase seguinte.

“Fast tracking”: fases correndo em paralelo com um risco tolerável.

Page 5: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Modelos de Ciclo de vida

Modelos de ciclos de vida de projetos definem:

quem deve estar envolvido em cada fase;

que parte do trabalho técnico que deve ser feita em cada fase.

Page 6: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Modelos básicos de ciclo de vida de SW

Cascata

Iterativo

Incremental

Espiral

Page 7: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Seqüencial Linear

Análise Projeto Codificação Testes

Engenharia de Sistemas

Page 8: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Cascata

Viabilidade

Requisitos

Projeto

Cod. Módulos

Integração

Entrega

Manutenção

Page 9: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Cascata

Processo linear: saída de uma fase é a entrada para a seguinte

Consiste de 7 fases 1. Estudo de viabilidade 2. Definição de requisitos 3. Projeto 4. Codificação e teste dos módulos 5. Integração e teste do sistema 6. Entrega e aceitação 7. Manutenção

Page 10: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Cascata

Problemas dificuldade de estimar com pouca informação especificação de requisitos é um documento escrito usuário não sabe os requisitos exatos processo não força antecipação das mudanças processo baseado na produção de documentos

(burocrático) Apesar disto:

ainda é o modelo mais usado pela simplicidade contratual.

Page 11: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Sequencial com Fast Tracking

Variante do modelo sequencial linear Fase inicia antes que a(s) precursora(s)

tenha(m) terminado Aumenta risco de retrabalho

Requisitos

Projeto

Cod. Módulos

Page 12: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

•Processo cíclico para especificar:

• requisitos definidos pelo usuário

•necessidades de hardware e software

• Construção rápida dos primeiros modelos

•não integrados ao produto final

•Após o término é feita a definição do sistema com focando os demais requisitos de qualidade

Iterativo (Prototipação)

Page 13: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Iterativo (Prototipação)

Ouvir oCliente

Desenho eConstrução

Avaliaçãodo Cliente

Prototipação é uma boa opção para a definição de requisitos

Page 14: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Iterativo (Prototipação)

Pontos positivos grande interação com o usuário qualidade da definição da interface

Pontos negativos expectativa do usuário compromissos com a tecnologia

Page 15: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Incremental

Requisitos

Projeto

Cod. Mód.

Integraçào

Aceite

Projeto

Cod. Mód.

Integraçào

Aceite

Page 16: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Incremental (Rapid Application Development- RAD)

Modelagemdo Negócio

Modelagemdos Dados

Modelagemde Processos

Geração doAplicativo

Testes

60-90 dias

Modelagemdo Negócio

Modelagemdos Dados

Modelagemde Processos

Geração doAplicativo

Testes

60-90 dias

Page 17: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

RAD

1-Modelagem do negócio: definição das atividades a serem executadas e seus requisitos de informação

2-Modelagem dos dados – Definição dos objetos de dados que suportam o negócio

3-Modelagem do tratamento da informação – Descrição dos processos de manipulação dos objetos de dados

4-Geração da aplicação – usando técnicas de geração de código e bibliotecas de componentes

5-Testes – Tempo de testes reduzido devido ao uso de componentes

Page 18: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

RAD

Pontos positivos uso de componentes redução do tempo

Pontos negativos tamanho da equipe necessidade de comprometimento não adequada a projetos de risco

Page 19: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Espiral

Reune a natureza interativa da prototipação com os aspectos sistemáticos e de controle do modelo sequencial

Grupos de atividades: Comunicação com o cliente; Planejamento; Análise de risco; Engenharia; Construção e distribuição; Avaliação do cliente.

Page 20: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Espiral (cont.)

1-Objetivos ?

2-AvaliarAlternativasRiscos

3-Construir

4-Avaliar

Page 21: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Espiral

Cada volta ao longo da espiral gera: um protótipo versão mais sofisticada;

Permite ao desenvolvedor: utilizar a prototipação em qualquer estágio de evolução do produto manter a sistemática sugerida pelo ciclo de vida clássico.

Page 22: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Unified Process (UP)

Processo bem definido: define claramente quem é responsável pelo que, como as coisas devem ser

feitas e quando fazê-las. Estruturado em Fases (tempo) e Disciplinas (áreas de interesse).

Processo personalizável: suporta a adaptação e criação de processos variedade de processos podem ser montadas a partir dele.

Configurações: suportar equipes grandes e pequenas, técnicas de desenvolvimento disciplinadas ou menos formais.

Page 23: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Unified Process (UP)

Page 24: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Características do UP

Mistura os estilos de processo iterativo e incremental

Premissas: Tempo de desenvolvimento de sistemas grandes não permite definir o

problema e construir a solução num único passo.

Os requisitos irão mudar naturalmente durante o desenvolvimento do projeto, devido a arquitetura, necessidades do cliente ou um melhor entendimento do problema original.

Iteração: Permite um melhor entendimento do produto através de refinamentos

sucessivos e ataca os itens de alto-risco de um projeto com prioridade alta.

Sempre resulta num "lançamento executável”; o que ajuda a reduzir o risco do projeto.

Page 25: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Extreme Programming (XP)

Proposta: Desenvolver softwares de forma que as mudanças sejam implementadas a medida

em que as mesmas vão surgindo durante o desenvolvimento do software. Cliente satisfeito significa "software eficiente"

O software é desenvolvido de acordo com mudanças requeridas pelo cliente: até que o software fique como o cliente solicitou.

Page 26: Fundamentos de Engenharia de SW Ciclo de Vida de Projetos de SW Prof. E.A.Schmitz 2008/1

Características do XP

Se adapta às inevitáveis mudanças que ocorrem durante o desenvolvimento

Desenvolver software da maneira mais rápida possível: ainda assim confiável e eficiente.

Como: ignorando, adiando ou gastando menos tempo com atividades como

documentação, projeto e modelagem.

Garantia: O software é sempre testado a medida em que novas mudanças são

implementadas