1 / 70

Professor Mário Dantas

Engenharia de Software. Professor Mário Dantas. Aula 02. Processos Existentes; Ciclo de vida de desenvolvimento de software;. Processo de Software - Introdução. O que é processo de software:

royal
Download Presentation

Professor Mário Dantas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Engenharia de Software Professor Mário Dantas

  2. Aula 02 • Processos Existentes; • Ciclo de vida de desenvolvimento de software;

  3. Processo de Software - Introdução O que é processo de software: É um conjunto ( framework ) de atividades e resultados associados que geram um produto de software; Há quatro atividades de processo de software fundamentais, a saber: Especificação do software; Desenvolvimento do Software; Validação do Software; Evolução do Software;

  4. Processo de Software - Introdução Uma Visão Genérica: 3 Fases Definição - “o que” Análise de Requisitos Análise do Sistema Planejamento do Projeto Desenvolvimento - “como” Projeto Geração do Código Teste Manutenção

  5. Processo de Software - Introdução Processo de Software é diferente de Engenharia de Software: Processo define a abordagem; Engenharia engloba também as tecnologias como métodos e ferramentas;

  6. Processo de Software – Engenharia de Software Já vimos que Engenharia de Software é: Uma disciplina da engenharia que se ocupa de todos os aspectos do desenvolvimento de software; Para o IEEE (Instituto de Engenheiros Eletricistas e Eletrônicos) é: aplicação de uma abordagem sistemática, disciplinada e quantificável ao desenvolvimento, operação e manutenção de software, ou seja, a aplicação da engenharia ao software; O estudo de abordagens do tipo declarado acima.

  7. Processo de Software – Engenharia de Software Analisando as definições anteriores podemos encarar a Engenharia de Software como uma tecnologia em camadas: ferramentas métodos processo foco na qualidade

  8. Processo de Software – Engenharia de Software ferramentas métodos processo foco na qualidade • É o “solo” e o porque de utilizarmos um processo de software. • Gerenciamento da Qualidade Total e filosofias similares produzem uma mudança cultural que permite o desenvolvimento crescente de abordagens mais maduras para a Engenharia de Software.

  9. Processo de Software – Engenharia de Software ferramentas métodos processo foco na qualidade • É a “fundação”; • É o que intermedeia as camadas de tecnologias e permite um desenvolvimento de software racional e em tempo; • Define um conjunto de áreas chave do processo que deve ser estabelecido para um uso efetivo da Engenharia de Software;

  10. Processo de Software – Engenharia de Software ferramentas métodos processo • É o “como fazer”; • Englobam um conjunto de tarefas que inclui análise de requisitos, projeto, implementação, teste e manutenção; foco na qualidade

  11. Processo de Software – Engenharia de Software ferramentas • É o “instrumento apropriado”; • Dão suporte automatizado ou semi-automatizado aos métodos; • Quando as ferramentas que apoiam os métodos se integram, forma-se a Engenharia de Software auxiliada por computador – CASE – Computer Aided Software Engineering; métodos processo foco na qualidade

  12. Processo de Software – Engenharia de Software O objetivo desta aula é dar foco no PROCESSO de desenvolvimento de software e aos MODELOS existentes na literatura; Processo de software define uma abordagem; Modelo é uma descrição simplificada, uma abstração dessa abordagem;

  13. Processo de Software – Modelo de Processo de Software Um modelo de processo de software deve ser escolhido com base: Na natureza do projeto e da aplicação; Nos métodos e ferramentas a serem utilizados; Nos controles e produtos que precisam ser entregues;

  14. Processo de Software – Modelo de Processo de Software Alguns modelos de processo: Modelo Seqüencial Linear Modelo RAD Modelos Evolucionários Modelo de Prototipação ( Descartáveis )‏ Incremental ( Exploratório )‏ Espiral ( Exploratório )‏ Técnicas de 4a Geração

  15. Processo de Software – Modelo Seqüencial Linear Também conhecido como ciclo de vida clássico ou Modelo Cascata: Modelo mais antigo e mais usado; Modelado em função do ciclo de engenharia convencional; Requer uma abordagem sistemática e seqüencial para o desenvolvimento de um software;

  16. Processo de Software – Modelo Seqüencial Linear Muitos aplicam esse modelo de forma estritamente linear: Engenharia de Sistemas / Informação Projeto Codificação Testes Análise

  17. Processo de Software – Modelo Seqüencial Linear Mas o modelo original prevê a volta: Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

  18. Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção • Envolve a coleta de requisitos de todos os elementos do sistema; • Essa visão de sistema é essencial quando o software faz interface com outros elementos como HW, pessoas e BD;

  19. Processo de Software – Modelo Seqüencial Linear Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção • Processo de coleta dos requisitos é intensificado e concentrado especificamente no software. • Deve-se compreender o domínio da informação, a função, desempenho e interfaces exigidos. • Os requisitos (para o sistema e para o software) são documentados e revistos com o cliente.

  20. Processo de Software – Modelo Seqüencial Linear Tradução dos requisitos do software para um conjunto de representações que podem ser avaliadas quanto à qualidade, antes que a codificação se inicie Se concentra em 4 atributos do programa: Estrutura de Dados, Arquitetura de Software, Detalhes Procedimentais e Caracterização de Interfaces. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

  21. Processo de Software – Modelo Seqüencial Linear Tradução das representações do projeto para uma linguagem “artificial” resultando em instruções executáveis pelo computador. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

  22. Processode Software – Modelo Seqüencial Linear Concentram-se: nos aspectos lógicos internos do software, garantindo que todas as instruções tenham sido testadas. nos aspectos funcionais externos, para descobrir erros e garantir que a entrada definida produza resultados que concordem com os esperados. Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

  23. Processo de Software – Modelo Seqüencial Linear O software deverá sofrer mudanças depois que for entregue ao cliente Engenharia de Sistemas Análise de Requisitos Projeto Codificação Testes Manutenção

  24. Processo de Software – Modelo Seqüencial Linear • Problemas: • Projetos reais raramente seguem o fluxo sequencial proposto; • É dificil estabelecer todos os requisitos no começo do projeto na qual existe uma incerteza natural quanto a esses requisitos; • Uma versão do software só vai ficar pronto em um ponto tradio do desenvolvimento; • Assim se houver algum erro grave não detectado na análise ou projeto o resultado pode ser desastroso; • Há muitos estágios bloqueantes que permitem a ociosidade dos desenvolvedores em alguns momentos

  25. Processo de Software – Modelo Seqüencial Linear Embora o Modelo Seqüencial Linear ou Ciclo de Vida Clássico tenha fragilidades, ele é significativamente melhor do que uma abordagem casual ao desenvolvimento de software.

  26. RAD – Rapid Application Development MODELOS DE PROCESSO

  27. É o modelo seqüencial linear, mas que enfatiza um desenvolvimento extremamente rápido; A “alta velocidade” é conseguida através de uma abordagem de construção baseada em componentes; Usado quando os requisitos são bem definidos e o escopo do sistema é restrito. Modelo RAD (Rapid Application Development)‏

  28. Modelo RAD modelagem do negócio modelagem do negócio modelagem do negócio modelagem dos dados modelagem dos dados modelagem dos dados modelagem do processo modelagem do processo geração da aplicação modelagem do processo geração da aplicação teste e modificação geração da aplicação teste e modificação teste e modificação equipe # 3 equipe # 2 equipe # 1 60-90 dias

  29. Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem do negócio: o fluxo de informação entre as funções do negócio são modeladas de maneira a responder às questões:  que informação dirige o processo do negócio?  que informação é gerada?  quem gera a informação?  para onde a informação vai?  quem a processa?

  30. Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem dos dados: O fluxo de informação definido na fase anterior é refinado em um conjunto de objetos de dados que são necessários para dar suporte ao negócio; são identificadas as características de cada objeto e são definidos seus relacionamentos.

  31. Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Modelagem do processo: Os objetos de dados definidos são transformados para se obter o fluxo de informação necessário para implementar uma função do negócio; São criadas as descrições dos processamentos necessários para manipular esses objetos de dados.

  32. Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Geração da aplicação: O modelo RAD assume o uso de técnicas de 4a. geração; ao invés de criar software de forma convencional, reusa componentes quando possível ou cria componentes reutilizáveis; Ferramentas automatizadas são utilizadas para gerar software.

  33. Atividades do Modelo RAD modelagem do negócio modelagem dos dados modelagem do processo geração da aplicação teste e modificação Teste e modificação: Por reutilizar componentes, muitas vezes eles já foram testados, o que reduz o tempo de teste; os novos componentes devem ser testados e as interfaces devem ser exercitadas

  34. Modelo RAD • Quando usar? • As restrições de tempo impostas pelo projeto demandam um escopo de escala. • Quando a aplicação pode ser modularizada de forma que cada grande função possa ser completada em menos de 3 meses. • Cada grande função pode ser alocada para uma equipe distinta e, depois são integradas para formar o todo.

  35. Problemas com o Modelo RAD • Para projetos escaláveis, mas grandes, o RAD requer recursos humanos suficientes para criar um número adequado de equipes; • RAD requer um comprometimento entre desenvolvedores e clientes para que as atividades possam ser realizadas rapidamente e o sistema seja concluído em um tempo abreviado; • Se o comprometimento for abandonado por qualquer das partes, o projeto falhará; • Não é apropriado quando os riscos são grandes.

  36. Modelos de Processo Evolucionários Descartáveis MODELOS DE PROCESSO

  37. Prototipação MODELOS DE PROCESSO

  38. Processo de Software – Prototipação Processo que possibilita que o desenvolvedor crie um modelo do software que deve ser construído. Idealmente, o modelo (protótipo) serve como um mecanismo para identificar os requisitos de software. Apropriado para quando o cliente definiu um conjunto de objetivos gerais para o software, mas não identificou requisitos de entrada, processamento e saída com detalhes.

  39. Processo de Software – Prototipação início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo

  40. Processo de Software – Prototipação construa/revise protótipo ouça o cliente teste do protótipo pelo cliente Simplificando

  41. Processo de Software – Prototipação Obtenção dos Requisitos: desenvolvedor e cliente definem os objetivos gerais do software, identificam quais requisitos são conhecidos e as áreas que necessitam de definições adicionais. 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)‏. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo

  42. Processo de Software – Prototipação Construção Protótipo: implementação rápida do projeto. Avaliação do Protótipo: cliente e desenvolvedor avaliam o protótipo. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo

  43. Processo de Software – Prototipação Refinamento dos Requisitos: cliente e desenvolvedor refinam os requisitos do software a ser desenvolvido. Ocorre neste ponto um processo de iteração que pode conduzir à 1ª. atividade até que as necessidades do cliente sejam satisfeitas e o desenvolvedor compreenda o que precisa ser feito. início fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo

  44. Processo de Software – Prototipação início Construção Produto: 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. fim obtenção dos requisitos projeto rápido construção produto construção protótipo refinamento protótipo avaliação protótipo

  45. Processo de Software – Prototipação Problemas: 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 que a versão final do software vai ser construída e "força" a utilização do protótipo como produto final; Desenvolvedor freqüentemente faz uma implementação comprometida (utilizando o que está disponível) com o objetivo de produzir rapidamente um protótipo. Depois de um tempo ele se familiariza com essas escolhas, e esquece que elas não são apropriadas para o produto final.

  46. Processo de Software – Prototipação Comentários: Ainda que possam ocorrer problemas, a prototipação é um ciclo de vida eficiente. A chave é definirem-se as regras do jogo logo no começo. O cliente e o desenvolvedor devem ambos concordar que o protótipo seja construído para servir como um mecanismo a fim de definir os requisitos.

  47. Modelos de Processo Evolucionários Exploratórios – Incremental, Espiral e Concorrente MODELOS DE PROCESSO

  48. Processo de Software – Modelos de Processo Evolucionários Usado quando o deadline não é adequado para o desenvolvimento do software; a data de término não é realística; Uma versão limitada pode ser introduzida para atender à competitividade e pressões do negócio; São liberados “produtos core”; Os detalhes e extensões ainda devem ser definidos;

  49. Processo de Software – Modelos de Processo Evolucionários • Prototipação • Incremental • Espiral • Concorrente

  50. Processo de Software – Modelo Incremental Combina elementos do Modelo Linear com a filosofia da Prototipação. Aplica seqüências lineares numa abordagem de “saltos” à medida que o tempo progride Cada seqüência linear produz um incremento do software (proc. de texto)‏ O processo se repete até que um produto completo seja produzido Difere da Prototipação pois a cada incremento produz uma versão operacional do software

More Related