Buscar

Engenharia de Software - Aula 2 - Revisão Engenharia de Software

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 41 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Assuntos do dia
• Revisão da Engenharia de Software
• Relação com Engenharia de Sistemas
• Visão geral de Software• Visão geral de Software
• Crise do Software
• Surgimento da Engenharia de Software
Sistema Baseado em Computador
• Conjunto organizado de elementos para 
executar um método, procedimento ou 
controle ao processar informações
– Software
– Hardware
– Pessoas
– Banco de dados
– Documentos
– Procedimentos
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Programas de computador, 
estruturas de dados e 
documentação correlata que 
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
documentação correlata que 
servem para realizar o método 
lógico, processo ou controle 
necessário
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Dispositivos que fornecem 
capacidade computacional 
(eletrônicos), possibilitam o 
fluxo de dados (de 
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
fluxo de dados (de 
interconectividade) e 
fornecem funções ao mundo 
externo (eletromecânicos)
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
Usuários e operadores de 
hardware e software
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Uma coleção de informações 
grande e organizada a que se 
tem acesso pelo software e que 
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
tem acesso pelo software e que 
persiste ao longo do tempo
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Manuais, arquivos de ajuda 
on-line, sites, e outras 
informações descritivas que 
mostram o uso e/ou a 
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
mostram o uso e/ou a 
operação do sistema
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
Os passos que definem o 
uso específico de cada 
elemento do sistema, ou o 
contexto de processamento 
em que o sistema reside
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdados
Interdisciplinaridade
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Engenharia de
Hardware
SistemaSistemaEntrada Saída
SoftwareSoftware
PessoasPessoas
Banco de Banco de 
dadosdadosEngenharia de 
Banco de Dados
Engenharia
Social
Engenharia de
Software
Engenharia de
Sistemas
Conclusão
• Antes de se desenvolver um software, deve-se 
compreender o "sistema", onde ele residirá, e não 
pensá-lo de forma isolada
• Deve-se determinar o objetivo geral do sistema e os • Deve-se determinar o objetivo geral do sistema e os 
papéis do hardware, software, pessoal, bases de dados e 
outros elementos
• Requisitos operacionais precisam ser obtidos, 
analisados, especificados, modelados, validados e 
gerenciados
Sistema Baseado em Computador
DocumentosDocumentos
ProcedimentosProcedimentos
HardwareHardware
Entrada Saída
Software
PessoasPessoas
Banco de Banco de 
dadosdados
SistemaSistema
Há software em quase tudo ...
• Transporte
• Médico
• Telecomunicações• Telecomunicações
• Militar
• Industrial
• ...
Evolução Histórica da Computação
(1950—1965)
• Hardware era de propósito geral
• Software era secundário em relação ao hardware
• Software era específico para cada aplicação• Software era específico para cada aplicação
• Carência de métodos sistemáticos
• Não havia documentação
Evolução Histórica da Computação
(1965—1975)
• Multiprogramação e sistemas multiusuários
• Sistemas de tempo real
• Sistemas gerenciadores de bancos de dados• Sistemas gerenciadores de bancos de dados
• Software como produto � software houses
• Cresce número de sistemas computacionais
• Sem métodos, técnicas e documentação 
a manutenção é quase impossível
Evolução Histórica da Computação
(1975—1990)
• Uso generalizado de microprocessadores
• Redes locais e globais
• Sistemas distribuídos• Sistemas distribuídos
• Hardware de baixo custo
• Impacto de consumo
Evolução Histórica da Computação
(4a era do software)
• Miniaturização crescente
• Redes sem fio e de alta
velocidade
• Dependência total!!!
O que é um software?
• Instruções (programas de computador)
– que quando executadas devem produzir a 
função e o desempenho desejados
• Documentos
– que descrevem a operação e o uso dos 
programas
O Papel do Software no Mundo
• Mudanças profundas na maneira como 
estudamos, fazemos compras, trabalhamos, 
nos divertimos e comunicamos ...
Imprevisível !?!
• Ninguém poderia ter previsto que milhões de 
programas de computador tivessem de ser 
corrigidos, adaptados e aperfeiçoados à 
medida que o tempo passasse (softwares medida que o tempo passasse (softwares 
legados) ...
• ... e que o custo com essas atividades de 
manutenção absorveria mais pessoas e 
recursos que todo o trabalho aplicado na 
criação de novos softwares
Características do Software
• O que difere o software de outras coisas 
feitas pelo ser humano?
• A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés 
de ser montada a partir de módulos/componentes 
de programação existentes
• Desenvolvido ou projetado por engenharia
• Não se desgasta, mas se deteriora
Características do Software
• O que difere o software de outras coisas 
feitas pelo ser humano?
• A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés 
de ser montada a partir de módulos/componentes 
de programação existentes
• Desenvolvido ou projetado por engenharia
• Não se desgasta, mas se deteriora
Software é um sistema lógico
• Por não ser um sistema físico, o software não 
é fabricado no sentido clássico
• É desenvolvido ou passa por um processo de 
engenhariaengenharia
• Os custos do software são concentrados na 
engenharia
• Projetos de software não podem ser 
gerenciados como projetos de fabricação
Características do Software
• O que difere o software de outras coisas 
feitas pelo ser humano?
• A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés 
de ser montada a partir de módulos/componentes 
de programação existentes
• Desenvolvido ou projetado por engenharia
• Não se desgasta, mas se deteriora
Curva de Falhas do Hardware
“mortalidade infantil”Índice
de falhas
“desgaste”
Defeitos de 
projeto ou de 
fabricação
Poeira, vibração, 
maus-tratos, 
temperatura, 
umidade, ...
tempo
Curva de Falhas Ideal do Software
Índice
de falhas
Não é suscetível 
Defeitos de 
projeto ou de 
lógica de 
programação
tempo
curva ideal
Não é suscetível 
a males 
ambientais!!!
Curva de Falhas Real do Software
Índice
de falhas
mudança
curva real
Deteriora-se acada alteração!
tempo
curva ideal
Desgaste vs. Deterioração
• Quando um componente de hardware se 
desgasta, é substituído por uma peça 
sobressalente
• Não há peças sobressalentes de software!!!• Não há peças sobressalentes de software!!!
• Falhas de software indicam erros no projeto ou 
na codificação
• Conclusão: manutenção de software é muito 
mais complexa que a manutenção de hardware
Evolução Histórica da Computação
(1965—1975)
• Sem métodos, técnicas e documentação • Sem métodos, técnicas e documentação 
a manutenção é quase impossível
(CRISE DO SOFTWARE)
Crise do Software
• Designação dada ao conjunto de problemas 
encontrados no desenvolvimento de software
1- Imprecisão nas estimativas de prazo e de custo1- Imprecisão nas estimativas de prazo e de custo
2- Insatisfação do cliente com o sistema concluído
3- Qualidade de software menor que a adequada
4- Dificuldade de manutenção do software
Problema 1
• Imprecisão nas estimativas de prazo e 
custo
– “Não dedicamos tempo para coletar dados – “Não dedicamos tempo para coletar dados 
sobre o processo de desenvolvimento de 
software”
– “Sem nenhuma indicação sólida de 
produtividade, não podemos avaliar com 
precisão a eficácia de novas ferramentas, 
métodos ou padrões”
Problema 2
• Insatisfação do cliente com o sistema 
concluído
– “Os projetos de desenvolvimento de software – “Os projetos de desenvolvimento de software 
normalmente são efetuados apenas com um 
vago indício das exigências do cliente”
Problema 3
• Qualidade do software entregue menor que 
a adequada
– “Só recentemente começam a surgir conceitos – “Só recentemente começam a surgir conceitos 
quantitativos sólidos de garantia de qualidade 
de software”
Problema 4
• Dificuldade de manutenção do software
– “A tarefa de manutenção devora o orçamento 
destinado ao software”destinado ao software”
– “A facilidade de manutenção não foi enfatizada 
como um critério importante”
Causas da Crise do Software
• Própria característica do software
– Sistema lógico, que se deteriora com o tempo
• Falhas na equipe de desenvolvimento
– Gerentes sem experiência em software– Gerentes sem experiência em software
– Profissionais com pouco treinamento em novas 
técnicas para o desenvolvimento de software
– Resistência a mudanças
• Mitos do software
– Propagaram desinformação e confusão
Resposta à Crise do Software
http://lizard-sf.xanga.com/692267024/work-work-work/
Engenharia de Software
• Abordagem sistemática, disciplinada e capaz de ser 
medida ao longo de um processo de construção de 
um software
– Tipo e a ordem de execução de atividades na construção – Tipo e a ordem de execução de atividades na construção 
do software
– Modelos gráficos descritivos do software
– Diretrizes com base em boas práticas de projeto
Leitura Recomendada
– Capítulo 1 do livro texto: Pressman, Roger. 
Engenharia de Software, 7ed. McGrawHill, 
Porto Alegre, RS, 2011.
– Capítulo 1 do livro texto: Sommerville, Ian. – Capítulo 1 do livro texto: Sommerville, Ian. 
Engenharia de Software, 9ed. Prentice Hall, 
São Paulo, SP, 2011.
– Guide to the Software Engineering Body of 
Knowledge – SWEBOK V3. Editado por IEEE 
Computer Society. Disponível em 
http://www.swebok.org/

Outros materiais