Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software
Paradigmas
Prof. Carla Castanho
Introdução
• O paradigma de uma linguagem de programação é a sua
identidade
• Corresponde a um conjunto de características que,
juntas, definem como ela opera e resolve os problemas
• Algumas linguagens, inclusive, possuem mais de um
paradigma. São as chamadas multiparadigmas
Introdução
• Alguns exemplos de paradigmas:
– Clássico – Prototipação
– Espiral – Lógico
– Procedural – Imperativo
– Funcional – Estruturado
– Orientado a objetos – Orientado a eventos
– RAD
– ...
Prototipação
• Protótipos são produtos de experimentação rápida, onde
uma versão simplificada do sistema é projetada,
desenvolvida, testada e colocada em operação
• Os protótipos são modelos que visam permitir:
– Que o projetista analise certas características do projeto que as
especificações escritas no papel não são capazes de mostrar
– Que o modelo seja testado sem o risco de comprometer toda
uma produção em larga escala ou nas proporções reais
– Que o futuro usuário entenda mais facilmente o produto que está
sendo gerado
Prototipação
• Com base na experiência adquirida com a primeira
versão, estabelecem-se novos requisitos para o sistema
e uma nova versão é concebida e implementada
• Têm-se, a partir disso, um ciclo evolutivo e incremental
• A prototipação pode entregar, a cada final de incremento,
uma versão inacabada do software e não uma versão
plenamente funcional
Prototipação – Objetivos
• A prototipação tem como objetivos:
– Estabelecer um diálogo intensivo entre usuários e analistas/
projetistas
– Encurtar ao máximo o ciclo "concepção-implementação-
utilização-avaliação" do sistema
– Possibilitar a evolução do sistema
através de vários ciclos ou
refinamentos sucessivos
– Avaliar constantemente o sistema
Prototipação – Vantagens
• A filosofia de protótipos possui as seguintes vantagens:
– Maior garantia de sucesso técnico e psicológico (cliente está
vendo o que será criado)
– Redução no fator tempo: “o usuário gosta de ver o sistema
funcionando”
Prototipação – Problemas
• A prototipação pode ser problemática por duas razões:
– O cliente vê o que parece ser uma versão executável do
software, ignorando que o protótipo consiga apenas funcionar
precária e parcialmente
– O desenvolvedor frequentemente faz concessões na
implementação a fim de conseguir rapidamente um protótipo
executável
Modelo Espiral
• O modelo de ciclo de vida que utiliza protótipos pode se
adequar muito bem com esta filosofia de
desenvolvimento
• Ele combina a natureza iterativa da prototipação com os
aspectos controlados e sistemáticos do modelo em
cascata, acrescentando ao mesmo tempo um novo
elemento – a Análise de Riscos – que falta nestes
paradigmas
Modelo Espiral
• O modelo Espiral fornece o potencial para o
desenvolvimento rápido de versões de software cada vez
mais completas
• Ele define cinco importantes quadrantes com atividades
bem definidas, mas que podem sofrer algumas variações
segundo a abordagem de quem usa o modelo
• Como o software evolui à medida que o processo
avança, o desenvolvedor e o cliente entendem melhor e
reagem aos riscos de cada nível evolucionário
Modelo Espiral
Modelo Espiral
• O modelo Espiral usa a prototipação como um
mecanismo de redução dos riscos (surpresas, efeitos
indesejados, falhas), mas o que é mais importante,
possibilita que o desenvolvedor aplique a abordagem de
prototipação em qualquer etapa
• Portanto, o modelo Espiral mantém a abordagem de
passos sistemáticos do ciclo de vida clássico, mas a
incorpora numa estrutura interativa mais real
Modelo Espiral
• O modelo Espiral visa atender os seguintes casos:
– O problema a ser resolvido não está totalmente entendido
– A realidade do sistema pode mudar enquanto ele está sendo
desenvolvido
– A própria solução adotada pode ter algum efeito colateral
desconhecido
– A preocupação está centrada mais na qualidade e funcionalidade
do que naquilo que se produz
Modelo RAD
• O RAD (Rapid Application Development -
Desenvolvimento Rápido de Aplicação) é um modelo de
processo de software incremental que enfatiza um ciclo
de desenvolvimento curto
• O modelo RAD é uma adaptação "de alta velocidade" do
modelo em cascata, no qual o desenvolvimento rápido é
conseguido com o uso de uma abordagem de construção
baseada em componentes e geração automática de
parte do código, bem como da documentação
Modelo RAD
• Se os requisitos forem bem compreendidos e o objetivo
do projeto for restrito, o processo RAD permite a uma
equipe de desenvolvimento criar um "sistema
plenamente funcional", dentro de um período de tempo
bastante curto
• O modelo RAD abrange um amplo conjunto de
ferramentas de software, onde cada uma delas possibilita
que o desenvolvedor especifique alguma característica
do software num nível elevado, como por exemplo, com
o uso de diagramas
Combinando Paradigmas
• Os paradigmas podem e Obtenção Preliminar dos requisitos
potencialidades de cada
Projeto
um possam ser obtidas Prototipação RAD
Enésima iteração
num único projeto
Codificação
RAD
• A natureza da aplicação Modelo Espiral
Enésima iteração
Manutenção
Fluxo de
Processos
O Fluxo de Processo
descreve como são
organizadas as atividades
metodológicas, bem como
as ações e tarefas que
ocorrem dentro de cada
atividade em relação à
sequência e ao tempo
Devemos sempre ter bom senso e pensar no equilíbrio dos métodos, processos e ferramentas!