Engenharia de Software
Módulo: 01 – Software e
Engenharia de Software
Prof.: Sérgio Guimarães Pinto – FAA - 2010
Software e Engenharia de Software
• Importância do Software
– Nas 3 primeiras décadas o desafio era desenvolver
um hardware que reduzisse os custos de
processamento e armazenamento de dados;
– Na década de 1980, avanço da eletrônica: maior
poder de processamento e baixo custo;
– Na década de 1990, o software é o mecanismo que
possibilita melhor utilização deste hardware.
2
Software e Engenharia de Software
• O Papel Evolutivo do Software
Os primeiros anos
• Orientação batch
• Distribuição limitada
• Software customizado
1950
1960
A segunda era
• Multiusuários
• Tempo real
• Banco de dados
• Produto de software
1970
A terceira era
• Sistemas distribuídos
• Inteligência embutida
• Hardware baixo custo
• Impacto no consumo
1980
A quarta era
• Sistemas desk-top poderosos
• Tecnologia orientada a objeto
• Sistemas especialistas
• Computação Paralela
1990
2000
3
Software e Engenharia de Software
•
SOFTWARE
1. Instruções (programa de computador) que, quando executadas,
produzem a função e o desempenho desejado;
2. Estruturas de dados que possibilitam que os programas manipulem
adequadamente a informação;
3. Documentos que descrevem a operação e o uso dos programas
4
Software
Características do Software
– O software é desenvolvido ou projetado por engenharia, não
manufaturado no sentido clássico.
– Software não se desgasta, ao contrário do hardware:
Indice de falhas
•
Elevados índices
de falhas
"Desgaste"
Tempo
Curvas de Falhas Para o Hardware
5
Software
Características do Software
Continua na mesma taxa até a
absolescência
Indice de falhas
•
Tempo
Curva de Falhas do Software (Idealizada)
6
Software
Características do Software
Indice de falhas
•
Curva real
Mudanças
Curva Idealizada
Tempo
Curva de Falhas Real Para o Software
7
Software
•
Características do Software
– A maioria dos softwares é feita sob medida em vez de ser montada
a partir de componentes existentes
8
Software
•
Componentes do Software
–
–
–
–
–
Reusabilidade
Linguagem de máquina
Linguagem montadas
Linguagem de alto nível
Linguagem de quarta geração ou não procedural
9
Software
•
Aplicações do Software
–
–
–
–
–
–
–
Básico
Tempo Real
Comercial
Científico e de Engenharia
Embutido
Computador Pessoal
Inteligência Artificial
10
Software: Uma Crise no horizonte
• Problemas
1. Estimativas de prazos e de custos imprecisos;
2. Produtividade das pessoas não acompanham a
demanda;
3. Qualidade é menos que adequada.
•
•
•
•
Pouco tempo dedicado para coleta de dados
Insatisfação do cliente depois do sistema concluído.
Qualidade do software é suspeita;
Dificuldade na manutenção.
11
Software: Uma Crise no horizonte
• Causas
–
–
–
–
Gerentes sem conhecimentos específicos
Deficiência de comunicação
Engenheiros de software pouco treinados
Resistência a mudanças
12
Mitos do Software
• Mitos Administrativos
– Já temos um manual
– Temos ferramentas de desenvolvimento de última
geração
– Podemos compensar o atraso com mais pessoas
13
Mitos do Software
• Mitos do Cliente
– Uma declaração geral é suficiente para começar
o programa
– Requisitos modificam-se porque o software é
flexível
14
Mitos do Software
• Mitos do Profissional
– O trabalho estará completo quando acabar de
escrever o programa;
– Não tem como avaliar qualidade antes do término
do programa;
– Única coisa a ser entregue em um projeto bemsucedido é o programa funcionando.
15
Paradigmas da Engenharia de Software
• Engenharia de software: Definição
“O estabelecimento e uso de sólidos princípios de
engenharia para que se possa obter economicamente
um software que seja confiável e que funcione
eficientemente em máquinas reais.”
(Fritz Bauer)
16
Paradigmas da Engenharia de Software
• O Ciclo de Vida Clássico
Engenharia de
Sistemas
Análise de
Requisitos
Projeto
Codificação
Testes
Manutenção
17
Paradigmas da Engenharia de Software
• Prototipação
Início
Coleta e
refinamento
dos requisitos
Fim
Projeto
rápido
Engenharia
do protótipo
C
Refinamento
do protótipo
Construção
do protótipo
Avaliação
do protótipo
pelo cliente
18
Paradigmas da Engenharia de Software
• O Modelo Espiral
Planejamento
Análise de riscos
Coleta inicial dos
requisitos e planejamento
do projeto
Análise dos riscos baseada
nos requisitos iniciais
Análise dos riscos baseada
na reação do cliente
Planejamento baseado
nos comentários do cliente
Decisão de prosseguir/não prosseguir
Na direção de um
Sistema concluído
Avaliação do cliente
Protótipo de software inicial
Protótipo de nível seguinte
Avaliação do cliente
Engenharia
Sistema construído pela
engenharia
19
Paradigmas da Engenharia de Software
• Técnicas de Quarta Geração
Coleta de
requisitos
Estratégia de
“projetos”
Implementação
usando 4GL
Teste
20
Paradigmas da Engenharia de Software
• Combinando Paradigmas
ANÁLISE DE
REQUISITOS
OBTENÇÃO
PRELIMINAR DOS
REQUISITOS
PROTOTIPAÇÃO
4GT
MODELO
ESPIRAL
4GT
PROJETO
PROTOTIPAÇÃO
ENÉSIMA
ITERAÇÃO
MODELO ESPIRAL
ENÉSIMA ITERAÇÃO
CODIFICAÇÃO
4GT
REALIZAÇÃO DE
TESTES
SISTEMA
OPERACIONAL
21
MANUTENÇÃO
Uma Visão Genérica da
Engenharia de Software
• O Quê
– Análise do Sistema
– Planejamento do Projeto de Software
– Análise de Requisitos
• O Como
– Projeto de Software
– Codificação
– Realização de Testes dos Software
• Mudanças
– Correção
– Adaptação
– Melhoramento Funcional
22
Download

Engenharia de Software