Buscar

Metodologias

Prévia do material em texto

Tipos de Software
 Softwares Básicos (próximo ao Hardware);
 Softwares de tempo real (percepção ao ambiente externo e resposta 
entre 1 milissegundo e 1 minuto);
 Softwares Comercial (Administrativos);
 Software Científico e de Engenharia (Mecânica, astronomia 
vulcanologia);
 Software Embutido (memória de leitura);
 Software de Computador Pessoal ;
 Software de Inteligência Artificial (especialistas, Baseado em 
Conhecimento, redes neurais e redes bayseanas);
 Todos são softwares com um objetivo em comum:
 Atender a requisitos definidos pelo usuário;
Metodologias
• Método – modelo ou paradigma
• Metodologia - conjunto de passos a seguir
– Exemplos:
• Estruturadas
• Orientada a Objetos
Metodologias
• Vantagens:
– Desenvolvimento mais rápido
– Os desencontros entre requisitos e 
especificação é menor, por causa da 
dependência de um nível para outro
– Portabilidade, o projeto pode ser regenerado 
para diferentes ambientes
– Facilidade de manutenção
Metodologias e Técnicas 
Estruturadas
• Objetivos
– Construir programas de alta qualidade que 
tenham comportamento previsível
– Construir programas que sejam facilmente 
modificáveis (manutenção)
– Simplificar os programas e o seu processo de 
desenvolvimento
Metodologias e Técnicas 
Estruturadas
• Objetivos
– Conseguir maior previsibilidade e controle no 
processo de desenvolvimento
– Acelerar o desenvolvimento de sistemas
– Diminuir o custo do desenvolvimento de 
sistemas
Metodologias e Técnicas 
Estruturadas
• Evolução
– As técnicas estruturadas evoluíram da 
Programação Estruturada para técnicas que 
incluem metodologias de análise, projeto e 
teste.
– Uso de ferramentas CASE
– Início: fim da década de 60
Metodologias e Técnicas 
Estruturadas
• Evolução
Programação
Estruturada
Início década de 70
Projeto
Estruturado
Metade década de 70
Análise
Estruturada
Fim década de 70
Técnicas
Automatizadas
Década de 80
Técnicas
CASE
Fim década de 80
Metodologias e Técnicas 
Estruturadas
• Evolução
– Programação Estruturada
• Enfocavam o programa em si
• Preocupação com o código do programa
• Preocupação com a complexidade do programa
Metodologias e Técnicas 
Estruturadas
• Evolução
– Projeto Estruturado
• Introduzir organização e disciplina ao projeto
• Visão de alto nível
• Conceito de modularização refinado
• Métricas para qualidade de software
Metodologias e Técnicas 
Estruturadas
• Evolução
– Análise Estruturada
• Atenção voltada para a especificação do problema
• Necessidades dos sistemas
• Uso de Diagramas de Fluxo de Dados
• Variedade de técnicas estruturadas
Metodologias e Técnicas 
Estruturadas
• Evolução
– Técnicas Automatizadas
• Surgiu a necessidade de automação no 
desenvolvimento de sistemas
• Uso apropriado do computador, durante as fases de 
análise e projeto
• Técnicas de verificação, sendo algumas 
fundamentadas pela matemática
• Automatização de código
Metodologias e Técnicas 
Estruturadas
• Evolução
– CASE
• Engenharia da Informação (modelos de dados 
estruturados e modelos da empresa e seus 
processos)
• Apoio a projeto com checagem de verificação
• Especificações a partir das quais o código é gerado 
automaticamente
Metodologias e Técnicas 
Estruturadas
• Características
– Fácil Uso
– Utilizadas com as linguagens de quarta geração 
e geradores de código
– Rigorosa
– Orientadas para Banco de Dados
– Ferramentas automatizadas
Metodologias e Técnicas 
Estruturadas
• Princípios
– Princípios da Técnica Estruturada
• Princípio da Abstração - para resolver um 
problema, separar os aspectos que estão ligados a 
uma realidade particular, visando representá-lo em 
forma simplificada e geral
• Princípio da Formalidade - seguir uma abordagem 
rigorosa e metódica para resolver um problema
Metodologias e Técnicas 
Estruturadas
• Princípios
– Princípios da Técnica Estruturada
• Princípio de Dividir-para-Conquistar - resolver um 
problema difícil dividindo-o em um conjunto de 
problemas menores e independentes que são mais 
fáceis de serem compreendidos e resolvidos
• Princípio de Organização Hierárquica - organizar 
componentes de uma solução em uma estrutura 
hierárquica tipo árvore. Assim a estrutura pode ser 
compreendida e construída por nível, cada novo nível 
acrescentando mais detalhes
Ciclo de Vida do Software
• É um conjunto ordenado de atividades que 
são realizadas para desenvolver um 
software!
• Atividades:
– Obter a aprovação do projeto;
– Montar a equipe do projeto;
– Definir o software;
– Construir o software e
– Manter o software.
Atividades
Problema Solução
dados
relatórios
restrições
procedimentos
Software
Ciclo de Vida do Software
Ciclo de Vida do Software
• Ciclo de Vida Clássico (Cascata)
Análise de
requisitos
Projeto
Testes
Codificação
Engenharia
de sistemas
Manutenção
Ciclo de Vida do Software
• Ciclo de Vida Clássico (Cascata)
– Análise e Engenharia de Sistemas: coleta de 
requisitos.
– Análise de Requisitos: os requisitos são 
documentados e revistos com o cliente, afim de 
entender o programa a ser construído.
– Projeto: preocupa-se com a estrutura dos 
dados, arquitetura do software, detalhes 
procedimentais e caracterização de interface. O 
projeto é documentado.
Ciclo de Vida do Software
• Ciclo de Vida Clássico (Cascata)
– Codificação: tradução do projeto em linguagem 
de programação.
– Testes: os programas gerados são executados 
a procura de erros. Esse processo concentra-se 
nos aspectos lógicos internos (instruções 
corretas) e nos aspectos funcionais externos (se 
o software está produzindo resultados corretos) 
Ciclo de Vida do Software
• Ciclo de Vida Clássico (Cascata)
– Manutenção: é a etapa que mais consome 
tempo durante o ciclo. Ocorreram mudanças 
porque foram encontrados erros, para se 
adaptar a mudanças externas no ambiente ou 
pela exigência do cliente de acréscimos 
funcionais ou de desempenho.
Ciclo de Vida do Software
• Ciclo de Vida Clássico (Cascata)
– Problemas:
• Os resultados são demorados
• Falta de interação durante o ciclo de vida
• Dificuldade do recolhimento total de requisitos no 
início do ciclo
• Os erros são detectados somente na fase de teste
Ciclo de Vida do Software
• Prototipação
Obtenção de
requisitos e
refinamento
Projeto
 rápido
Construção
do protótipo
Avaliação
do Cliente
Refinamento
do protótipo
Construção
do Software
Início
Fim
Ciclo de Vida do Software
• Prototipação
– Utilizado como forma de detectar 
prematuramente as falhas e omissões nas fases 
iniciais, especialmente durante o levantamento 
de requisitos.
– O Projeto rápido leva a construção de um 
protótipo para o usuário onde serão visíveis, 
principalmente, as abordagens de entrada e os 
formatos de saída.
– Pode ser uma maneira de extrair os requisitos 
de um software de um usuário que não tem 
certeza da natureza do sistema a ser 
construído.
Ciclo de Vida do Software
• Prototipação
– Problemas:
• O protótipo é muitas vezes construído sem controle 
de qualidade
• O cliente pensa que o protótipo já é o sistema pronto!
 Espiral
 Combina a natureza iterativa da Prototipagem com os 
aspectos sistemáticos do Ciclo de Vida Clássico;
 Desenvolvimento do software a partir de versões 
(versões iniciais no papel, versões finais como 
protótipos).
Ciclo de Vida do Software
 Espiral
Ciclo de Vida do Software
• Espiral
– Fases:
• Comunicaçãocom o cliente: tarefas 
necessárias para estabelecer efetiva 
comunicação entre o desenvolvedor e o 
cliente:
• Planejamento: tarefas necessárias para definir 
recursos, prazos e outras informações 
relacionadas aos projeto;
• Análise de risco: tarefas necessárias para 
avaliar os riscos, tanto técnicos quanto 
gerencias;
Ciclo de Vida do Software
 Espiral
 Fases:
 Engenharia: tarefas necessárias para construir uma ou 
mais representações da aplicação;
 Construção e liberação: tarefas necessárias para construir, 
testar, instalar e fornecer apoio ao usuário (por exemplo, 
documentação e treinamento);
 Avaliação pelo cliente: tarefas necessárias para obter 
realimentação do cliente, com base na avaliação das 
representações do software criadas durante o estágio de 
engenharia e implementadas durante o estágio de 
instalação.
Ciclo de Vida do Software
 Espiral
 Vantagens:
 O modelo espiral pode ser adaptado ao longo da vida do 
software e não somente durante o seu desenvolvimento;
 Modelo real para software de grande porte devido a seu 
aspecto incremental de refinamento e comunicação;
Ciclo de Vida do Software
 Espiral
 Desvantagens:
 Exige alto grau de organização no processo de evolução do 
software;
 Igualmente ao Ciclo de Vida Clássico, se algum problema 
ocorre no início do desenvolvimento, certamente causará 
problemas mais graves no final;
Ciclo de Vida do Software
Ciclo de Vida do Software
• Técnicas de Quarta Geração (4GT)
Coleta de
requisitos
Estratégia
de projeto
Implementação
em 4GL
Teste
Ciclo de Vida do Software
• Técnicas de Quarta Geração (4GT)
– Uso de ferramentas que permitam a 
especificação do software em um elevado grau 
de abstração
– Geração automática de código
– Ferramentas CASE
Paradigmas de Engenharia de Software
 Modelos de Desenvolvimento:
 Cascata;
 Prototipação;
 Espiral;
 Técnicas de Quarta Geração.

Continue navegando