Modelos de Processos de Software Compreender os paradigmas de Software e suas etapas do processo de desenvolvimento de software Agenda • • • • Introdução Modelo Sequencial Linear Modelo de Prototipagem Bibliografia. Introdução • Todo o desenvolvimento do software pode ser caracterizado como um ciclo de solução do problema, no qual são encontrados 4 estágios distintos: – Situação atual: – A definição do Problema: – Desenvolvimento técnico – Integração da Solução Introdução – Situação atual: “Representa o estado atual das coisas” – A definição do Problema: Identifica o problema específico a ser resolvido; – Desenvolvimento técnico: Resolve o problema por intermédio da aplicação de alguma tecnologia – Integração da Solução: entrega os resultados, por exemplo: (Documentos, Programas, dados, nova função dos negócios, novo produto) Modelo Sequencial Linear • Também chamado de Modelo Queda D´Agua, Modelo cascata. – Fases: • Modelagem de Engenharia de Sistemas/Informação • Análise de Requisitos de Software • Projeto • Geração de Código • Teste • Manutenção Modelo Clássico • Cascata: Requer uma abordagem sistemática, sequencial: Engenharia de Sistemas Análise Projeto Codificação Teste Manutenção Modelo Clássico • Características do Modelo. Fornece uma seqüência no qual os métodos de análise, projeto, codificação, teste e manutenção podem ser situados; É um modelo amplamente usado para a Engenharia de Software; É significativamente melhor do que ter um processo aleatório. Modelo Clássico • Problemas: – Projetos reais raramente seguem um fluxo sequencial que o modelo propõe. – Em geral é dificil para o cliente estabelecer todos os requisitos explicitamente. O modelo sequencial exige isso e tem dificuldade de acomodar a incerteza natural que existe no começo de vários projetos – O cliente precisa ter paciência. Uma versão executável do programa não vai ficar disponível até o projeto terminar. Modelo Clássico • 1-Análise e Engenharia de Sistemas: – Estabelecimento de requisitos para todos os elementos do sistema; – Coleta dos requisitos em nível do sistema, com uma pequena quantidade de projeto e análise de alto nível. Modelo Clássico • 2-Análise de Requisitos de Software: – Intensificação da coleta dos requisitos, focando o software; – Compreensão do domínio da informação, função, desempenho e interface exigidos; • Requisitos são validados com os clientes. Modelo Clássico • 3-Projeto: – Concentra quatro atributos: • • • • Estrutura de dados; Arquitetura de Software; Detalhes procedimentais; Caracterização de interface; – Representação do software que pode ser avaliada quanto à qualidade antes da codificação. Modelo Clássico • 4-Codificação: – Tradução do projeto numa forma entendível por máquina. • 5-Testes: – Concentram-se nos aspectos lógicos internos do software e nos aspectos funcionais externos para descobrir erros e garantir que a entrada definida produza resultados esperados. • 6- Manutenção: – Reaplica cada uma das etapas precedentes do ciclo de vida de a um programa existente. Modelo de Prototipagem • Utilizado quando o cliente não definiu detalhadamente os requisitos de entrada, processamento e saída; • Capacita o desenvolvedor criar um modelo do software que será implementado: – 1. um protótipo em papel ou um modelo baseado em PC que retrata a interação homem-máquina; – 2. um protótipo de trabalho que implementa algum subconjunto da função exigida do software desejado; – 3. um programa existente que executa parte ou toda a função desejada, mas tem características que serão melhoradas; Modelo de Prototipagem Início Fim Coleta e refinamento dos requisitos Orientação: jogar o protótipo fora. Projeto rápido Engenharia do produto Construção do protótipo Refinamento do protótipo Avaliação do protótipo pelo cliente Modelo de Prototipagem • O paradigma de software começa com a definição de requisitos. – O desenvolvedor e o cliente encontram-se e definem os objetivos gerais do software, identificam necessidades conhecidas e delineiam áreas que necessitam de mais definições. – Um projeto rápido é desenvolvido – O protótipo é avaliado pelo cliente/usuário e usado para refinar os requisitos do software que será desenvolvido. – Interações ocorrem a medida que o prototipo é ajustado para satisfazer as necessidades do cliente, enquanto que ao mesmo tempo, permitem ao desenvolvedor entender melhor o que precisa ser feito. Modelo de Prototipagem • Protótipo pode servir como “o primeiro sistema”. • É usado quando: – O cliente, define um conjunto de objetivos gerais para o software e não identifica detalhadamente requisitos de entrada, processamento ou saida; – O desenvolvedor pode estar inseguro da eficiencia de um algoritmo, da adptabilidade de um sistema operacional ou da forma de interação HomemXMáquina deve assumir. Modelo de Prototipagem • Problemas: – O Cliente vê o que parece ser uma versão executável do software, ignorando que o protótipo apenas consegue funcionar precariamente, sem saber de que na pressa de fazê-lo rodar ninguém considerou a qualidade global ou manutenabilidade a longo prazo. Modelo de Prototipagem • Problemas: O desenvolvedor frequentemente faz concessões na implementação a fim de conseguir rapidamente um protótipo executável. Um sistema operacional ou uma linguagem de programação inapropriada pode ser usado simplesmente por estar disponível e ser conhecidos; Um algoritmo ineficiente pode ser implementado simplesmente para demonstrar uma possibilidade. Modelo Espiral • Desenvolvido para abranger as melhores características tanto do ciclo de vida Clássico como da Prototipação; • Abordagem evolutiva/evolucionária; • Define 4 importantes atividades: – Planejamento: determinação dos objetivos, alternativas e restrições; – Análise dos Riscos: análise de alternativas e identificação/resolução de riscos; – Engenharia: desenvolvimento do produto no “nível seguinte” – Avaliação do Cliente: avaliação dos resultados da engenharia. Modelo Espiral Planejamento Análise dos Riscos Coleta inicial dos requisitos e planejamento do projeto Baseada nos Requisitos iniciais Planejamento Baseado nos comentários do cliente Baseada na reação dos clientes Protótipo de Software inicial Sistema Construído Avaliação do Cliente Engenharia Modelo Espiral • Considerado o mais realista para o desenvolvimento de sistemas e de softwares em grande escala; Questões 1. Indique a alternativa que retrata melhor os possíveis modelos de Ciclo de Vida: a) Pirâmide ou Triangular, Maquete e Circular. b) X Clássico ou Cascata, Prototipação e Espiral. c) Estrela, Maquete e Espiral. d) Circular, Prototipação e Estrela. 2. O modelo de processo de software caracterizado por intercalar as atividades de especificação, desenvolvimento e validação, denomina-se: a) Modelo de workflow. b) Modelo de fluxo de dados c) Desenvolvimento evolucionário d) Transformação formal e) X Modelo em cascata 3. Que modelo do ciclo de vida do paradigma da Engenharia de Software é caracterizado por ser uma abordagem que envolve a produção de versões iniciais de um sistema futuro com o qual se pode realizar verificações e experimentações para se avaliar algumas de suas qualidades antes que o sistema venha realmente a ser construído. (Copel,2009) a) Espiral b) Clássico c) Prototipação X d) Circular e) Cascata 4. A respeito da Engenharia de Software: (ANTAQ, 2009) F O modelo em espiral, que descreve o processo de desenvolvimento de um software, apresenta uma espiral em que cada loop representa uma fase distinta desse processo. A ausência de risco neste modelo o diferencia dos demais modelos de software. V 5. A prototipação se constitui em uma abordagem comumente usada para elicitação e validação de requisitos. (SERPRO, 2005) Referências • PRESSMAN, Roger S. Engenharia de Software. Editora Makron Books, 1995.