A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Engenharia de Software"— Transcrição da apresentação:

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

2 Vimos nas aulas anteriores
Engenharia de Software: uma tecnologia em camadas (ferramentas, métodos, processos, qualidade) Modelos de processo de sofware Modelo cascata

3 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

4 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

5 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

6 O Modelo de Prototipação
Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo Construir Protótipo Avaliar Protótipo

7 protótipo pelo cliente
Prototipação Simplificando construa/revise protótipo teste do protótipo pelo cliente ouça o cliente

8 O Modelo de Prototipação
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 Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo Construir Protótipo Avaliar Protótipo

9 O Modelo de Prototipação
Obter Requisitos Elaborar 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 Elaborar Projeto Rápido Refinamento do Protótipo Construir Protótipo Avaliar Protótipo

10 O Modelo de Prototipação
Obter Requisitos Elaborar Projeto Rápido Construir Protótipo Implementação rápida do projeto Refinamento do Protótipo Construir Protótipo Avaliar Protótipo

11 O Modelo de Prototipação
Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo Avaliar Protótipo Cliente e desenvolvedor avaliam o protótipo Construir Protótipo Avaliar Protótipo

12 O Modelo de Prototipação
Obter Requisitos Elaborar Projeto Rápido Refinamento do Protótipo Cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido Refinamento do Protótipo Construir Protótipo Avaliar Protótipo

13 O Modelo de Prototipação
Obter Requisitos CONSTRUÇÃO DO PRODUTO Elaborar Projeto Rápido 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 Construir Protótipo Avaliar Protótipo

14 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;

15 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

16 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

17 Versões Intermediárias
O Modelo Incremental Atividades Paralelas Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Versão Inicial Descrição geral Versões Intermediárias Descrição geral Descrição geral Versão Final

18 Versões Intermediárias
O Modelo Incremental Atividades Paralelas 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 Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Versão Inicial Descrição geral Versões Intermediárias Descrição geral Descrição geral Versão Final

19 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

20 Engenharia de Sistemas / Informação
O Modelo Incremental Engenharia de Sistemas / Informação incremento 1 Análise Projeto Codificação Testes produto liberado do incremento 1 Análise Projeto Codificação Testes produto liberado do incremento 2 incremento 2 Análise Projeto Codificação Testes produto liberado do incremento 3 incremento 3 Análise Projeto Codificação Testes produto liberado do incremento 4 incremento 4 tempo

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

22 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

23 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

24 Extreme Programming (XP)
Algumas características: a programação em pares 40 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

25 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

26 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

27 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

28 O Modelo Espiral (com 6 regiões)
Planejamento Análise de Riscos Comunicação com Cliente Engenharia Avaliação do Cliente Construção e Liberação

29 O Modelo Espiral (com 6 regiões)
Planejamento Análise de Riscos Comunicação com Cliente As tarefas das regiões são adaptadas às características do projeto Engenharia Avaliação do Cliente Construção e Liberação

30 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

31 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

32 O que são componentes? Componentes fornecem funcionalidades- alvo com interfaces bem definidas que permitem que sejam integrados ao software Componentes possuem documentação

33 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”

34 O Modelo de Montagem de Componentes
Planejamento Análise de Riscos Comunicação com Cliente Avaliação do Cliente Engenharia Construção e Liberação

35 O Modelo de Montagem de Componentes
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 Análise de Riscos Engenharia Construção e Liberação

36 O Modelo de Montagem de Componentes
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

37 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

38 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

39 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

40 Técnicas de 4a Geração Obtenção dos Requisitos Estratégia do “Projeto”
Implementação usando 4GL Testes

41 Obtenção dos Requisitos
Técnicas de 4a Geração 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" Estratégia do “Projeto” Implementação usando 4GL Testes

42 Obtenção dos Requisitos
Técnicas de 4a Geração Obtenção dos Requisitos 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) Implementação usando 4GL Testes

43 Obtenção dos Requisitos Estratégia do “Projeto”
Técnicas de 4a Geração Obtenção dos Requisitos Estratégia do “Projeto” Implementação usando 4GL Os resultados desejados são representados de modo que haja geração automática de código Testes

44 Técnicas de 4a Geração Obtenção dos Requisitos Estratégia do “Projeto” Implementação usando 4GL Testes O desenvolvedor deve efetuar testes e desenvolver uma documentação significativa

45 Comentários sobre as Técnicas de 4a Geração
PROPONENTES: 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

46 Comentários sobre as Técnicas de 4a Geração
OPONENTES: 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

47 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

48 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


Carregar ppt "Engenharia de Software"

Apresentações semelhantes


Anúncios Google