Escolar Documentos
Profissional Documentos
Cultura Documentos
ESI - Cap 02 - Paradigmas
ESI - Cap 02 - Paradigmas
Paradigmas da Engenharia
de Software
Profa. Jaqueline F. Domenciano
Disciplina: Engenharia de Software I
Engenharia de Software
Elementos Fundamentais
Lembrando:
🞂 A engenharia de software envolve métodos, ferramentas e
procedimentos para o desenvolvimento racional de software.
🞂 Métodos: “como fazer”
◦ Planejamento do projeto
◦ Análise de sistema
◦ Projeto das estruturas de dados, arquitetura do programa e algoritmos.
◦ Codificação
◦ Teste
◦ Manutenção
🞂 Ferramentas: suporte automatizado para os métodos.
◦ CASES (Computer Aided Software Engeneering)
🞂 Procedimentos: Sequência de emprego dos métodos, documentação
requerida, controles para garantir a qualidade... Tudo o que garanta
que o desenvolvimento do software progrida.
Engenharia de Software
Processo de Software
“O Processo é um diálogo no qual o conhecimento, que deve se
transformar em software, é reunido e incorporado ao software”
(Howard Baetjer)
🞂 Definições:
◦ Processo é o arcabouço para as tarefas que são necessárias para
construir software de alta qualidade.
◦ Um processo define a abordagem que é adotada quando o
software é elaborado.
◦ Um processo define quem está fazendo o quê, quando e como para
alcançar um certo objetivo.
🞂 Importância:
◦ O processo oferece estabilidade, controle e organização para uma
atividade que pode, se deixada sem controle, tornar-se bastante
caótica.
Engenharia de Software
Processo de Software
🞂 Processo de software: envolve métodos, ferramentas e pessoas
para o desenvolvimento de software:
◦ procedimentos e métodos que descrevem a relação entre as tarefas;
◦ ferramentas e equipamentos que dão suporte a realização das
tarefas, simplificando e automatizando o trabalho; e
◦ pessoas com perfil adequado, treinadas nos métodos e nas
ferramentas para realizar as atividades adequadamente.
Métodos
Processo
Foco na Qualidade
Definição
Engenharia de
Software
Desenvolvimento
Planejamento do
Software
Projeto Manutenção
Análise de Implementação
requisitos
Testes Correção
O quê? Implantação
Adaptação
Como? Expansão
Mudanças...
Paradigmas mais usados
🞂 “Codifica-remenda”: sem processo definido
🞂 Modelo em Cascata (Ciclo de vida Clássico)
🞂 Prototipacão
🞂 Modelo Espiral
🞂 Técnicas de Quarta Geração
🞂 Modelo Incremental/Iterativo
Paradigmas
Modelo Codifica-Remenda
🞂 Modelo Balbúrdia.
🞂 É um ausência de formalismo.
🞂 As fases do processo se resumem em:
Implementação Implantação
Especificação do Sistema
Engenharia
de Sistemas
Plano de Projeto de Sw
Especificação dos Requisitos do Sw
Análise
Projetos
Projeto
Código-fonte/.exe
Codificação
Sw testado
Teste
Manutenção
Paradigmas
Modelo em Cascata
🞂 Vantagens
Estruturação Clara
Requisitos Bem Definidos
Documentação Abundante
Controle de Qualidade
Adequado para Projetos Pequenos e Simples
🞂 Desvantagens
Rigidez a Mudanças
Falta de Flexibilidade
Entrega Tardia de Valor
Dependência de Requisitos Iniciais
Avaliação Tardia
Falta de Interação com o Cliente
Pouca Adaptação a Mudanças de Tecnologia
Paradigmas
Prototipação
🞂 O protótipo é um modelo do software a ser desenvolvido, serve para
identificar as necessidades do cliente. É descartável!!
🞂 O protótipo é feito com base nos requisitos iniciais do sistema.
🞂 Pode ser: em papel, um executável, um pacote pré-existente.
🞂 Protótipo funciona como uma primeira versão do sistema.
🞂 Preocupação maior com a funcionalidade principal e não com a
qualidade (nem da interface).
Análise de Requisitos
Análise dos
Requisitos Especificação dos requisitos do Sw
Projeto
Teste
Engenharia do Produto
Criação do
protótipo descartável
Paradigmas
Prototipação
Reunião (desenvolvedor e
Coleta e cliente) para definir requisitos
Refinamento globais
dos
Requisitos
Engenharia Projeto Faz-se um
do Produto Rápido projeto rápido
com os
requisitos
estabelecidos
Refinamento Construção
do Protótipo do protótipo
🞂 Desvantagens
◦ Complexidade de Gestão
◦ Custo e Tempo
◦ Exigência de Experiência
◦ Documentação Adicional
◦ Possível Dificuldade de Estimativa
◦ Requisitos Bem Definidos
Paradigmas
Modelo Incremental ou Iterativo
Iteração = Repetição
Cada novo incremento pode ser:
- Nova funcionalidade.
-Mudança em funções entregues.
Incremento n
Funcionalidade
Incremento 2
Paralelismo
Incremento 1
Tempo
Legenda
Comunicação
Planejamento
Modelagem (Análise e projeto)
Construção (código, teste)
Implantação (entrega,
feedback)
Paradigmas
Modelo Incremental ou Iterativo
🞂 Vantagens
◦ Entrega Contínua de Valor
◦ Feedback Rápido do Cliente
◦ Mitigação de Riscos
◦ Flexibilidade
◦ Estímulo à Colaboração
🞂 Desvantagens
◦ Possível Complexidade de Integração
◦ Exigência de Planejamento Cuidadoso
◦ Necessidade de Escolhas de Design Antecipadas
◦ Maior Custo de Gerenciamento
◦ Possível Dificuldade de Estimativa
◦ Requisitos Bem Definidos
Paradigmas
Técnicas de 4ª Geração
🞂 Dirigidas por Ferramentas - Usa L4G (Linguagens de 4a. Geração).
L3G
L2G
L1G
Cliente
Ideal:
Coleta dos Ferramenta T4G Produto
Requisitos (operacional)
Teste
Paradigmas
Técnicas de 4ª Geração
🞂 Vantagens
◦ Aumento de Produtividade (rápido)
◦ Redução de Erros: Automatizar partes do processo de
desenvolvimento reduz a probabilidade de erros humanos
◦ Foco no Domínio do Problema: concentrar mais na resolução de
problemas reais e na lógica de negócios.
◦ Aceleração da Entrega: entrega mais rápida de software funcional
◦ Facilitação da Manutenção: O uso de abordagens de geração
automática de código e modelos bem definidos torna a
manutenção do software mais eficiente, já que as alterações
podem ser aplicadas de forma consistente em várias partes do
sistema.
◦ Maior Flexibilidade
Paradigmas
Técnicas de 4ª Geração
🞂 Desvantagens
◦ Limitações de Personalização: Algumas abordagens de 4ª geração podem ser
menos flexíveis em relação a personalizações avançadas ou casos de uso
complexos.
◦ Complexidade da Ferramenta: Ferramentas de geração automática de código
ou plataformas de baixo código podem ter uma curva de aprendizado, e a
complexidade dessas ferramentas pode ser uma barreira para alguns
desenvolvedores.
◦ Falta de Controle Fino: Em algumas situações, as técnicas de 4ª geração
podem limitar o controle direto sobre o código gerado, o que pode ser
problemático em casos onde otimizações de desempenho ou ajustes específicos
são necessários.
◦ Dependência da Ferramenta: Ao usar ferramentas específicas de geração
automática ou plataformas de baixo código, os desenvolvedores podem ficar
dependentes dessas ferramentas e enfrentar dificuldades se precisarem migrar
para outras tecnologias.
◦ Limitações de Funcionalidade: Algumas técnicas de 4ª geração podem não ser
adequadas para todos os tipos de projetos ou requisitos avançados, limitando a
capacidade de atender a casos de uso mais complexos.
◦ Curva de Aprendizado: O aprendizado e a adoção de novas ferramentas ou
abordagens podem ser necessários, o que pode consumir tempo e recursos no
curto prazo.
◦ Possível Falta de Conhecimento Técnico: Em alguns casos, as técnicas de 4ª
geração podem permitir a criação de software por pessoas com menos
conhecimento técnico, o que pode resultar em produtos de menor qualidade.
Referências Bibliográficas
🞂 Pressman, R. Engenharia de Software. São Paulo: McGraw Hill,
2006 (Capítulo 2).
Requisitos do Projeto:
1. Capacidade de reservar quartos online.
2. Verificação de disponibilidade de quartos em tempo real.
3. Integração de sistemas de pagamento para processar transações seguras.
4. Funcionalidade para gerentes de hotel acompanharem as reservas e
disponibilidade.
5. Interface de usuário intuitiva para os clientes.