250 likes | 332 Views
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.
E N D
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 Coleta e refinamento dos requisitos Orientação: jogar o protótipo fora. Fim 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 Baseada nos Requisitos iniciais Coleta inicial dos requisitos e planejamento do projeto Baseada na reação dos clientes Planejamento Baseado nos comentários do cliente 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) 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) Modelo em cascata X X
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 d) Circular e) Cascata 4. A respeito da Engenharia de Software: (ANTAQ, 2009) 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. X F
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.