PROGRAMAS
SISTEMA
USUÁRIOS
EQUIPAMENTOS
DOCUMENTOS
DADOS
Software - Definição
• Software é:
1. Conjunto de instruções (programas de computador)
que, quando executado, realizam as funções desejadas,
com o desempenho desejado;
2. Conjunto de dados que permitem aos programas
manipularem adequadamente a informação;
3. Documentos que descrevem a operação e o uso dos
programas.
Exemplos de Software
• software de sistema: sistemas operacionais,
compiladores, gerenciadores de redes
• software de tempo real
• “management information systems”- MIS
• software científico e de engenharia: CAD,
simuladores
• software embarcado
• software para PC
• software para inteligência artificial
• software Web
Evolução do software
1950 1960 1970-1980 1990 2000
1a. fase
4a. fase
sistemas batch
distribuição limitada 2a. fase objetos
software dedicado sistemas multiusuário computação paralela
tempo real WWW
bancos de dados “desk-tops” poderosos
software-produto Processos maduros
5a. fase
Computação ubíqua
Portáteis
3a. fase Dependência social
sistemas distribuídos Produção industrial
hardware de baixo custo
inteligência local
impacto no consumidor
Software - Situação Atual
• Responsável pelo produto mais importante:
INFORMAÇÃO
• Sofisticação e complexidade
• Carência de volume e competência profissional
• Equipes multidisciplinares
Problemas
(continuam os mesmos...)
• Por que os programas não ficam prontos
rapidamente?
• Por que os custos de desenvolvimento são tão
altos?
• Por que os erros não são detectados antes da
entrega aos consumidores?
• Por que é difícil medir o progresso durante o
desenvolvimento?
Crise do Software
• Crise de tecnologia - hardware caminha mais
rápido que o software
CASE
Ferramentas
Análise, projeto...
KPAs
Métodos
Compromisso da organização
Processo
Melhoria contínua
Qualidade
Para que um processo?
• Para definir as atividades a serem conduzidas no
projeto;
• Para uniformizar o entendimento dos envolvidos
em relação ao desenvolvimento de sistemas;
• Para manter a consistência entre sistemas
desenvolvidos em uma mesma empresa;
• Para viabilizar pontos de controle para a gerência.
Modelos de Processo de Software
• modelo clássico ou cascata
• modelo de prototipação
• modelo espiral
• modelo com técnicas de 4a. Geração
Modelo de Cascata
ENGENHARIA
ENGENHARIA
DE SISTEMAS
DE SISTEMAS
ANÁLISE
ANÁLISE
PROJETO
PROJETO
IMPLEMEN-
IMPLEMEN-
TAÇÃO
TAÇÃO
TESTE
TESTE
MANUTENÇÃO
MANUTENÇÃO
Fase 1: Engenharia de Sistema
• Definição do escopo do sistema
• Avaliação de sistemas atualmente em uso
• Definição de metas e objetivos do sistema
• Estudo da viabilidade de automatizar
• Estimativa de tempo e recursos
• Escolha da metodologia de projeto
• Identificação de recursos de hardware e software
• Resultado: análise de viabilidade e Especificação
de Requisitos de Sistema
Fase 2: Análise de Requisitos
• Modelagem independente de tecnologia, com o
uso de ferramentas de modelagem
• Refinamento das relações custo-benefício
• Refinamento das estimativas de recursos
• Especificação dos critérios de aceitação
• Definição do balanceamento entre operação
humana e automação
• Resultado: Especificação de Requisitos de
Software
Fase 3: Projeto de Software
• Definição da arquitetura de software
– Modelo de processadores
– Modelo de tarefas
– Módulos de programa.
• Transformação do modelo de dados em base de
dados
• Elaboração do modelo da interface homem-
máquina
• Elaboração do plano de testes
• Resultado: documentos de projeto de software
Fase 4: Implementação
• Transformação em código
• Montagem de banco de dados
• Uso de técnicas de programação
• Estabelecimento de padrões de codificação
• Resultado: códigos
Fase 5: Testes
• Comparação do sistema com sua especificação
• Verificação do funcionamento interno e externo
do programa
• Uso de estratégia de teste
• Uso de ambientes de teste
• Aceitação
• Instalação (simples ou gradual)
• Resultado: sistema instalado
Fase 6: Manutenção
• Devida à correção de erros
• Devida à mudanças na plataforma de software
• Devida às mudanças no hardware
• Devida à evolução do negócio
• Resultados: sistema e documentos modificados
Problemas com Modelo de Cascata
identificação de
engenharia
requisitos
de produto
refinamento
do protótipo
projeto
breve
construção do
avaliação do protótipo
protótipo
pelo cliente
Problemas com Modelo de Prototipação
ANÁLISE DE RISCO
PLANEJAMENTO
Desenvolvimento de conceito
Aperfeiçoamento de produto
Manutenção
SISTEMA
COMPLETO
AVALIAÇÃO
ENGENHARIA
Modelo Espiral
• Planejamento: determinação dos objetivos,
alternativas e restrições
• Análise de riscos: análise de alternativas e
identificação/resolução dos problemas
• Engenharia: desenvolvimento do produto do nível
seguinte
• Avaliação do cliente: avaliação do produto pelo
cliente
Problemas do Modelo Espiral
• É difícil convencer o cliente de que o processo é
controlável.
• Exige maior experiência gerencial.
• Exige experiência em análise de riscos.
Técnicas de 4a. Geração
• Caracterizam-se por permitir a especificação de
software em nível alto.
• Tipos de ferramentas
– gerenciadores de bancos de dados
– linguagens de consulta não-procedurais para banco de
dados
– geradores de relatórios
– construtores de telas
– geradores de código
Modelo com Técnicas de 4a. Geração
IDENTIFICAÇÃO
IDENTIFICAÇÃO
DE
DEREQUISITOS
REQUISITOS
ESTRATÉGIA
ESTRATÉGIADE
DE
PROJETO
PROJETO
IMPLEMENTAÇÃO
IMPLEMENTAÇÃO
TESTES
TESTES
Problemas com Técnicas de 4a. Geração