48
Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas Juliano Amorim de Oliveira [email protected].

Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Embed Size (px)

Citation preview

Page 1: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Engenharia de Software

Slide 06 – Modelos de Processos (Continuação)

Instituto Metodista Isabela HendrixCurso de Análise e Desenvolvimento de Sistemas

Juliano Amorim de [email protected]

Page 2: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Vimos nas aulas anteriores Engenharia de Software: uma tecnologia

em camadas (ferramentas, métodos, processos, qualidade)

Modelos de processo de sofware Modelo cascata

Page 3: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo EspiralModelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos Formais Técnicas de Quarta Geração

Modelos de Processo de Software

Page 4: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo EspiralModelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos Formais Técnicas de Quarta Geração

Modelos de Processo de Software

Page 5: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Objetivo: entender os requisitos do usuário

possibilita que o desenvolvedor crie um modelo (protótipo) do software que deve ser construído

apropriado quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou detalhadamente esses requisitos

Page 6: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Obter Requisitos

Elaborar Projeto Rápido

Construir ProtótipoAvaliar Protótipo

Refinamento do Protótipo

Page 7: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Prototipação

construa/reviseprotótipo

construa/reviseprotótipo

teste doprotótipo

pelo cliente

teste doprotótipo

pelo cliente

ouça o cliente

ouça o cliente

Simplificando

Page 8: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Elaborar Projeto Rápido

Construir ProtótipoAvaliar Protótipo

Refinamento do Protótipo

Obter Requisitos Obter Requisitos

Desenvolvedor e cliente: definem os objetivos gerais do software identificam quais requisitos são conhecidos identificam as áreas que necessitam de definições adicionais

Page 9: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Obter Requisitos

Construir ProtótipoAvaliar Protótipo

Refinamento do Protótipo

Elaborar Projeto RápidoElaborar Projeto Rápido

Representação dos aspectos do software que são visíveis ao usuário

abordagens de entrada e formatos de saída

Page 10: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Construir Protótipo

O Modelo de Prototipação

Obter Requisitos

Elaborar Projeto Rápido

Avaliar Protótipo

Refinamento do Protótipo

Construir Protótipo

Implementação rápida do projeto

Page 11: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Obter Requisitos

Elaborar Projeto Rápido

Construir Protótipo

Refinamento do Protótipo

Avaliar ProtótipoAvaliar ProtótipoCliente e desenvolvedor avaliam o protótipo

Page 12: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Obter Requisitos

Elaborar Projeto Rápido

Construir ProtótipoAvaliar Protótipo

Refinamento do ProtótipoRefinamento do Protótipo

Cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido

Page 13: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Prototipação

Obter Requisitos

Elaborar Projeto Rápido

Construir ProtótipoAvaliar Protótipo

CONSTRUÇÃO DO CONSTRUÇÃO DO PRODUTOPRODUTO

Identificados os requisitos, o protótipo deve ser descartado e a versão de produção deve ser construída considerando os critérios de qualidade

Page 14: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Prototipação

Dificuldades:

cliente não sabe que o software que ele vê, não considerou, durante o desenvolvimento, a qualidade global e a manutenibilidade a longo prazo. Não aceita bem a idéia de

“jogar fora” o que foi feito

desenvolvedor freqüentemente desenvolve o protótipo de forma comprometida (utilizando o que está disponível). Depois de um tempo ele se familiariza com essas escolhas, e pode ser que esqueça que elas não são apropriadas para o produto final;

Page 15: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelos de Processo de Software

Modelo Seqüencial Linear (Modelo Cascata)Paradigma de PrototipaçãoModelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo Espiral Modelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos FormaisTécnicas de Quarta Geração

Page 16: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental

Combina elementos do modelo cascata (aplicado repetidamente) com a filosofia iterativa

Usado quando é difícil estabelecer a priori uma especificação detalhada dos requisitos

Objetivo: trabalhar junto do usuário a fim de descobrir seus requisitos, de maneira incremental, até que o produto final seja obtido

Page 17: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental

Versão Inicial

Descrição geral Descrição

geral

Descrição geral

Versões Intermediárias

Versão Final

Atividades Paralelas

Engenharia de Sistemas

Engenharia de Sistemas

Análise de Requisitos

Análise de Requisitos

Projeto Projeto

Codificação Codificação

Testes Testes

Page 18: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental

Versão Inicial

Descrição geral Descrição

geral

Descrição geral

Versões Intermediárias

Versão Final

Atividades Paralelas

Engenharia de Sistemas

Engenharia de Sistemas

Análise de Requisitos

Análise de Requisitos

Projeto Projeto

Codificação Codificação

Testes Testes

Descrição geral

A versão inicial é, freqüentemente, o

núcleo do produto • o desenvolvimento começa com as partes do produto que são mais bem entendidas

• um plano é desenvolvido para o próximo incremento, como resultado do uso e/ou avaliação por parte do cliente são adicionadas novas características à medida que são sugeridas pelo usuário

Page 19: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental

objetiva a elaboração de um produto operacional a cada incremento

os testes podem ser mais efetivos é mais fácil testar cada versão do sistema

do que o sistema todo no final

Page 20: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental

Engenharia de Sistemas / Informação

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

AnáliseAnálise Projeto Projeto Codificação Codificação Testes Testes

incremento 1

incremento 2

incremento 3

incremento 4

produto liberadodo incremento 1

produto liberadodo incremento 2

produto liberadodo incremento 3

produto liberado

do incremento 4

tempo

Page 21: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Incremental Diferentemente do paradigma da

prototipação, tem o objetivo de apresentar um produto operacional a cada incremento

É útil quando não há mão de obra disponível para uma implementação completa.

Page 22: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Extreme Programming (XP) Programação Extrema (Programação Ágil)

evolução, recente,da abordagem incremental. Desenvolvida por Beck em 1999

Voltada para equipes de até 20 pessoas engajadas no desenvolvimento de software cujos requisitos são vagos ou se encontram em constante mudança

Principal atividade codificação Principal contribuição aplicação extrema das

práticas num modelo coeso e sinérgico

Page 23: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Extreme Programming (XP)

Algumas características:

o desenvolvimento e a entrega de incrementos de funcionalidade muito pequenos

diálogo constante e evolutivo entre programadores e clientes

a constante melhoria de código

Page 24: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Extreme Programming (XP) Algumas características:

a programação em pares40 horas de trabalho (muita hora-extra é sinal

de problemas com o projeto)requisitos são criados pelo cliente estórias Refactoring abordagem disciplinada para

tornar o código de um software mais claro e de fácil manutenção, minimizando a probabilidade de inclusão de erros

Page 25: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelos de Processo de Software Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo EspiralModelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos Formais Técnicas de Quarta Geração

Page 26: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Espiral

Engloba as melhores características do modelo Cascata e da Prototipação, adicionando um novo elemento: a Análise de Risco

Segue a abordagem de passos sistemáticos do modelo Cascata incorporando-os numa estrutura iterativa que reflete mais realisticamente o mundo real

Page 27: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo Espiral Usa a Prototipação, em qualquer etapa da

evolução do produto, como mecanismo de redução de riscos

O modelo espiral é dividido em uma série de atividades de trabalho ou regiões de tarefa

Page 28: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Planejamento

Análise de Riscos

Engenharia

Construção e Liberação

Avaliação do Cliente

Comunicação com Cliente

O Modelo Espiral (com 6 regiões)

Page 29: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Planejamento

Análise de Riscos

Engenharia

Construção e Liberação

Avaliação do Cliente

Comunicação com Cliente

O Modelo Espiral (com 6 regiões)

As tarefas das regiões são adaptadas às

características do projeto

Page 30: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Comentários sobre o Ciclo de Vida em Espiral

Exige considerável experiência na determinação de riscos e depende dessa experiência para ter sucesso

Usa uma abordagem que capacita o desenvolvedor e o cliente a entender e reagir aos riscos em cada etapa evolutiva

Page 31: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelos de Processo de Software

Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo Espiral Modelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos Formais Técnicas de Quarta Geração

Page 32: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O que são componentes? Componentes fornecem funcionalidades-

alvo com interfaces bem definidas que permitem que sejam integrados ao software

Componentes possuem documentação

Page 33: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Montagem de Componentes

O modelo de montagem de componentes incorpora características de tecnologias Orientadas a Objetos no modelo espiral

Demanda uma abordagem iterativa para a criação do software

O modelo compõe aplicações a partir de componentes de software “empacotados”

Page 34: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Montagem de Componentes

Planejamento

Análise de Riscos

Avaliação do Cliente

Comunicação com Cliente

Engenharia Construção e Liberação

Page 35: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O Modelo de Montagem de Componentes

Análise de Riscos

Planejamento

Avaliação do Cliente

Comunicação com Cliente

Identificar componentes

candidatos

Procurar componentes na biblioteca

Extrair componentes se disponíveis

Construir os componentes

não disponíveis

Colocar os novos

componentes na biblioteca

Construir a 1a iteração do

sistema

Engenharia Construção e Liberação

Page 36: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

O modelo de montagem de componentes conduz ao reuso do software

A Reusabilidade fornece uma série de benefícios: redução de 70% no tempo de desenvolvimento redução de 84% no custo do projeto

Esses resultados dependem da robustez da biblioteca de componentes

O Modelo de Montagem de Componentes

Page 37: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Modelos de Processo de Software

Modelo Seqüencial Linear (Modelo Cascata) Paradigma de Prototipação Modelo RAD (Rapid Application Development) Modelos Evolutivos de Processo de Software

Modelo Incremental Modelo EspiralModelo de Montagem de Componentes Modelo de Desenvolvimento Concorrente

Modelos de Métodos Formais Técnicas de Quarta Geração

Page 38: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Técnicas de 4a Geração

Engloba um conjunto de ferramentas de software que possibilitam que:

o sistema seja especificado em uma linguagem de alto nível e

o código fonte seja gerado automaticamente a partir dessas especificações

Page 39: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Ferramentas do Ambiente das Técnicas de 4a Geração

O ambiente de desenvolvimento de software que sustenta o ciclo de vida de 4a geração inclui as ferramentas:

linguagens não procedimentais para consulta de banco de dados

geração de relatórios, planilhas e manipulação de dados

interação e definição de telas geração de código capacidade gráfica de alto nível geração automática de HTML e linguagens similares

para criação de páginas Web

Page 40: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Técnicas de 4a Geração

Obtenção dos Requisitos

Estratégia do “Projeto”

Implementação usando 4GL

Testes

Page 41: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Técnicas de 4a Geração

Estratégia do “Projeto”

Implementação usando 4GL

Testes

Obtenção dos Requisitos

• o cliente descreve os requisitos os quais são traduzidos para um protótipo operacional

•o cliente pode estar inseguro quanto aos requisitos

•as 4GLs atuais não são sofisticadas suficientemente para acomodar a verdadeira "linguagem natural"

Page 42: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Obtenção dos Requisitos

Técnicas de 4a Geração

Implementação usando 4GL

Testes

Estratégia do “Projeto”

• Pequenas aplicações: é possível mover-se do passo de Obtenção dos Requisitos para o de Implementação usando uma linguagem de quarta geração

• Grandes projetos: é necessário desenvolver uma estratégia de projeto. De outro modo ocorrerão os mesmos problemas encontrados quando se usa abordagem ad-hoc (baixa qualidade)

Page 43: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Obtenção dos Requisitos

Técnicas de 4a Geração

Estratégia do “Projeto”

Testes

Implementação usando 4GL

• Os resultados desejados são representados de modo que haja geração automática de código

Page 44: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Obtenção dos Requisitos

Técnicas de 4a Geração

Estratégia do “Projeto”

Implementação usando 4GL

Testes

O desenvolvedor deve efetuar testes e desenvolver uma documentação significativa

Page 45: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Comentários sobre as Técnicas de 4a Geração

PROPONENTESPROPONENTES:: redução dramática no tempo de

desenvolvimento do software (aumento de produtividade)

Quando combinado com a abordagem de desenvolvimento baseada em componentes, o paradigma 4GT pode se transformar na abordagem predominante para o desenvolvimento de software

Page 46: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Comentários sobre as Técnicas de 4a Geração

OPONENTESOPONENTES: as 4GL atuais não são mais fáceis de usar

do que as linguagens de programação o código fonte produzido é ineficiente a manutenibilidade de sistemas usando

técnicas 4G ainda é questionável

Page 47: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Exercício!

Faça uma análise dos modelos de processo de software que já foram vistos em aula: Modelo Cascata Paradigma de prototipação Modelo incremental Programação extrema Modelo espiral Modelo de montagem de componentes Técnicas de quarta geração

Page 48: Engenharia de Software Slide 06 – Modelos de Processos (Continuação) Instituto Metodista Isabela Hendrix Curso de Análise e Desenvolvimento de Sistemas

Bibliografia

PRESSMAN, ROGER S. Engenharia de Software. 6ª edição. Rio de Janeiro: McGraw-Hill, 2006.

SOMERVILLE, IAN. Engenharia de Software. 8ª edição. São Paulo: Addison Wesley, 2007.

Slides da professora Debora Paiva da UFMS