3 primeiras décadas - HARDWARE,
A importância do Software
1980: avanços da microeletrônica exigem maior poder de
computação e baixo custo,
1990: problema - melhorar a qualidade a baixo custo,
Papel evolutivo do Software
Hardware. = mudanças; Soft. = secundário
Orientação Batch
Hard. dedicado
Distribuição Limitada = Soft. Sob medida
Software Customizado
Personalizado = sem documentação
Sistemas Distribuídos (>complexos)
Redes locais e globais, banda larga, > acessos = > exigência do Software
Conjunto de produtos inteligentes
“INTELIGÊNCIA”
Embutida
Impacto de Consumo
Tecnologias O.O.
Sistemas Especialistas e IA (problemas mundo real)
RNA (Rec. de Padrões)
Computação Paralela Multiusuário
Tempo Real, BD (técnicas Interativas)
Fábrica de Software (ampla distribuição)
Problema = Manutenção
Capacidade e Complexidade Conhecimento dos Sistemas
Informação
Dados
Números
1950 1960 1970 1980 1990
Sistemas Naturais X Artificiais
• Sistemas físicos
• Sistemas vivos
• Sistemas artificiais
• Sistemas sociais
• Sistemas de transporte
• Sistemas de comunicações
• Sistemas financeiros.
Natureza dos Sistemas
Sistemas Automatizados Sistemas Batch
Sistemas On-Line
Sistemas em Tempo Real
Sistemas de Apoio à Decisão
O que é Software?
1) instruções (programas de computador que quando
executados, produzem a função e o desempenho
desejados),
2) estruturas de dados que possibilitam que os
programas manipulem adequadamente a informação,
Características do Software
Hardware: Software:
ANALOGIA Elemento do Sistema Lógico Forma Física (produto físico)
análise, projeto, construção e teste
O software é desenvolvido ou
projetado por
ENGENHARIA (não é um
processo mecânico),
•
alta qualidade,• atividades dependem de pessoas,
• produto,
• reposição de peças,
Características do Software
Hardware
Software
HARDWARE - engenheiro de projeto - desenho do esquema do circuito digital - análise - catálogo de componentes - cada CI ou chip tem nº de
peça - função definida e validada - conjunto padrão de diretrizes de integração.
Características do Software
Softwares na maioria das vezes são feitos sob medida,
SOFTWARE - catálogo de componentes são raros - software é encomendado como unidade completa - mudanças com a
REUSABILIDADE.
Aplicações do Software
• algoritmo bem definido,
Áreas de Aplicação
Software básico: compiladores, editores de textos, s.o.
Software Tempo Real:sistema de controle de vôo e de sinalização de trânsito.
Software Comercial: folha de pagamento, estoque.
Software Científico e de Engenharia: análise da fadiga
mecânica em automóveis.
Software Embutido: controle de combustível, sistemas de freio.
Software PC: processamento de texto, planilhas eletrônicas.
Problemas no desenvolvimento de
Software (Crise do Software)
•
prazo e custo (estimativas imprecisas),• produtividade das pessoas não tem acompanhado a demanda por serviços, falha na coleta de requisitos...
• qualidade do software: custos excessivos, prazos, insatisfação
do cliente, estimativas feitas “a olho”, manutenção onerosa.
Minimizar estes problemas
Mitos do Software
Mitos administrativos:
manuais?,
computadores novos?, cronograma atrasado?
Mitos do cliente:
mudanças são fáceis?,
declaração objetivos = escrever programas?,
detalhes + tarde.
Mitos do profissional:
programas funcionando
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
Engenharia de Software: uma definição
É uma disciplina que integra métodos, ferramentas e
procedimentos para o desenvolvimento de software de computador.
Métodos (Como fazer?): envolvem um amplo conjunto de tarefas que incluem: planejamento e estimativa, análise de requisitos, especificação e codificação de programas, teste e manutenção, dentre outras.
ferramentas : CASE- Computer-Aided Software Engineering
procedimentos : constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento
do software.
• Seqüência em que os métodos serão aplicados,
• produtos que devem ser entregues (relatórios, formulários, etc),
• controles que ajudam a assegurar a qualidade e a coordenar as mudanças,
Quatro Paradigmas
Ciclo de Vida Clássico:
modelo cascata, abordagemsistemática, + antigo, + usado, dificuldades na declaração das exigências (cliente)
Prototipação:
criar um modelo
Modelo Espiral:
inclui análise de riscos, abordagem realísticaEngenharia de sistemas
Análise
Projeto
Codificação
Teste
Prototipação
Coleta e refinamento dos
requisitos
Refinamento do protótipo
Engenharia
do produto Projeto rápido
Construção do protótipo
Avaliação do protótipo pelo
cliente Fim
Modelo Espiral
Planejamento Engenharia Análise dos riscos Avaliação do clienteA escolha do paradigma depende:
do projeto,
da aplicação,
métodos e ferramentas a serem utilizados,
produtos a serem entregues,
Escolha do Paradigma
Qualquer que seja o modelo de processo adotado para guiar o ciclo de desenvolvimento do software, três atividades genéricas estarão sempre
presentes: DEFINIÇÃO, DESENVOLVIMENTO E MANUTENÇÃO !!!!!