Modelos de Processos 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
Modelo Clássico
•
Cascata: Requer uma abordagem sistemática,
sequencial:
Engenharia de Sistemas Análise Projeto Codificação Teste ManutençãoModelo Clássico
–
Fornece uma sequê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 é difícil 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;
Modelo Clássico
•
3-Projeto:
– 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
Coleta e refinamento dos requisitos Projeto rápido Construção do protótipo Avaliação do protótipo pelo cliente Refinamento do protótipo Engenharia do produto Início Fim Orientação: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
Engenharia Avaliação do Cliente
Análise dos Riscos Planejamento Coleta inicial dos requisitos e planejamento do projeto Baseada nos Requisitos iniciais Baseada na reação dos clientes Protótipo de Software inicial Sistema Construído Planejamento Baseado nos comentários do cliente
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
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
5. A prototipação se constitui em uma abordagem comumente
usada para elicitação e validação de requisitos. (SERPRO, 2005) V