SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
ENGENHARIA DE SOFTWARE
GESTÃO DA TECNOLOGIA DA
INFORMAÇÃO-3º
IF SUDESTE MG – SÃO JOÃO DEL REI
GILMA APARECIDA SANTOS
ENGENHARIA DE SOFTWARE
“LEI DAS CONSEQUÊNCIAS NÃO PRETENDIDAS”
ENGENHARIA DE SOFTWARE
HISTÓRICO
1950
Imprevisibilidade do impacto global que o software
teria sobre cada aspecto da sociedade no final do
século XX e início do século XXI.
Negócios;
Ciência e engenharia;
Criação de novas tecnologias;
Engenharia genética
Extensão de tecnologias existentes;
Comunicações
Declínio de antigas tecnologias;
Industria tipográfica
ENGENHARIA DE SOFTWARE
HISTÓRICO
Evolução
Décadas 60 e 70
Hardware com alto custo de processamento e
armazenamento de dados;
Programação estruturada, BD, multiusuário,
sistemas distribuídos.
Década 80
Lei de Moore;
Avanços na microeletrônica resultaram em um aumento
de poder computacional a um custo cada vez menor;
Redes de computadores.
ENGENHARIA DE SOFTWARE
HISTÓRICO
Evolução
Décadas 90
Sistemas especialistas;
Arquiteturas paralelas;
Orientação à objetos
Programação estruturada, BD, multiusuário,
sistemas distribuídos.
 2000...
Programação para Internet
ENGENHARIA DE SOFTWARE
HISTÓRICO
IMPORTÂNCIA
Antes – desafio de desenvolver hardware que reduzisse o custo
de processamento e armazenamento de dados.
Hoje – melhorar a qualidade de soluções baseadas em
computador – software.
ENGENHARIA DE SOFTWARE
ATUALIDADE
ENGENHARIA DE SOFTWARE
Finalmente, ninguém poderia prever que
milhões de programas de computador tivessem
de ser corrigidos, adaptados e aperfeiçoados à
medida que o tempo passasse, e que o ônus
de realizar essas atividades de “manutenção”
absorveria mais pessoas e recursos que todo o
trabalho aplicado na criação de novos
softwares.
ENGENHARIA DE SOFTWARE
O QUE É SOFTWARE
INSTRUÇÕES: que quando executadas produzem a
função com desempenho desejados.
ESTRUTURAS DE DADOS: que possibilitam que os
programas manipulem a informação de maneira
adequada e segura.
DOCUMENTOS: descrição das operações e o do uso dos
programas.
 “Conjunto de vários artefatos e não apenas código
fonte” (SOMMERVILLE, 2003).
ENGENHARIA DE SOFTWARE
CARACTERÍSTICAS DO SOFTWARE
Elemento de sistema lógico, não físico;
Software não se desgasta;
Maioria “feita” sob medida em vez de ser montada a
partir de componentes existentes;
ENGENHARIA DE SOFTWARE
SOFTWARE
Criados de uma série de convenções que mapeiam as
exigências do cliente para código executável em
máquina.
ENGENHARIA DE SOFTWARE
SOFTWARE
Aplicações
 O software pode ser aplicado a qualquer situação em
que um conjunto previamente especificado de passos
procedimentais (i. e., um algoritmo) tiver sido definido.
 Desenvolver categorias genéricas para as aplicações de
software é uma tarefa um tanto difícil. À medida que a
complexidade do software cresce, desaparece a clara
divisão em compartimentos.
ENGENHARIA DE SOFTWARE
SOFTWARE
Aplicações Potenciais
 Software Básico – coleção de programas escritos
para apoiar outros programas.
SO
Compiladores
Gerenciadores de arquivo
Drivers
Software de Tempo Real – monitora/analisa/controla
eventos do mundo real.
Controlador de tráfego aéreo.
ENGENHARIA DE SOFTWARE
SOFTWARE
Aplicações Potenciais
 Software Científico e de Engenharia – caracterizado
por algoritmos de processamento numéricoSoftware
de Tempo Real – monitora/analisa/controla eventos
do mundo real.
Software embarcado – reside na memória apenas de
leitura (ready-only) e, é usado para controlar
produtos e sistemas para os mercados industriais de
consumo.
ENGENHARIA DE SOFTWARE
SOFTWARE
Aplicações Potenciais
 Software de computador Pessoal – representa os
mais inovadores projetos de interface com seres
humanos de toda indústria de software.
Software de inteligência artificial – faz uso de
algoritmos não-numéricos para resolver problemas
complexos que não sejam favoráveis à computação
ou à análise direta.
ENGENHARIA DE SOFTWARE
CRISE DO SOFTWARE
O conceito de engenharia de software foi proposto em
1968, em uma conferência organizada para discutir o que
foi então chamado de “crise do software”.
Nato – sem ligações com a área
ACM – Association for Computing Machinary (1947)
ENGENHARIA DE SOFTWARE
PANORAMA DA CRISE DO SOFTWARE
Resultado direto da introdução de novo hardware
de computador baseado em circuitos integrados;
Aplicações de computador até o momento não
realizáveis, se tornaram viáveis;
Software resultante em ordem de grandeza maior e mais
complexo;
ENGENHARIA DE SOFTWARE
CARACTERÍSTICAS DA CRISE DO SOFTWARE
Custos elevados;
Atrasos cronogramas;
Gerência de desenvolvimento ineficaz;
Baixa produtividade das pessoas;
Baixa qualidade do produto de software;
Software existente de difícil de manutenção.
ENGENHARIA DE SOFTWARE
RESPOSTA A CRISE
Aplicação de uma abordagem sistemática,
disciplinada e possível de ser medida para o
desenvolvimento, operação e manutenção do
software (IEEE - Institute of Electrical and Eletronic
Engineering).
ENGENHARIA DE SOFTWARE
 OBJETIVO DA ENGENHARIA DE SOFTWARE
 A engenharia de software é um ramo da engenharia
cujo foco é o desenvolvimento dentro de custos
adequados de sistemas de software de alta
qualidade.
 Software é abstrato e intangível;
Potencial ilimitado;
Complexo e difícil de ser compreendido.
ENGENHARIA DE SOFTWARE
 OBJETIVO DA ENGENHARIA DE SOFTWARE
 Combinar métodos abrangendo todas as fases de
desenvolvimento de software;
Utilizar melhores ferramentas para automatizar esses
métodos;
Criar blocos de construção mais poderosos para a
implementação do software;
Aplicar melhores técnicas para a garantia da qualidade;
Alimentar uma filosofia de coordenação predominante,
controle e administração.
ENGENHARIA DE SOFTWARE
 CARACTERÍSTICAS METODOLOGICAS DA
ENGENHARIA DE SOFTWARE
Processo (roteiro) dinâmico, integrado e inteligente de
soluções tecnológicas;
adequação aos requisitos funcionais do negócio do
cliente e seus respectivos procedimentos pertinentes;
efetivação de padrões de qualidade, produtividade e
efetividade em suas atividades e produtos;
fundamentação na tecnologia da informação disponível,
viável, oportuna e personalizada;
planejamento e gestão de atividades, recursos, custos e
datas.
ENGENHARIA DE SOFTWARE
 IEEE – 1990
 Aplicação sistemática, disciplinada e com
abordagem quantitativa para o desenvolvimento,
operação e manutenção de software.
ENGENHARIA DE SOFTWARE
 SOMMERVILLE – 1992
 Engenharia de software envolve questões técnicas
e não-técnicas, tais como a especificação do
conhecimento, técnicas de projeto e
implementação, conhecimentos dos fatores
humanos pelo engenheiro de software e ainda,
gestão de projetos.
ENGENHARIA DE SOFTWARE
 MAFFEO – 1992
 Engenharia de software é: "a área interdisciplinar
que engloba vertentes tecnológica e gerencial
visando a abordar de modo sistemático (modular),
os processos de construção, implantação e
manutenção de produtos de software com
qualidade assegurada por construção segundo
cronogramas e custos previamente definidos".
ENGENHARIA DE SOFTWARE
 ABORDAGEM DA ENGENHARIA DE SOFTWARE
 TECNOLÓGICA E GERENCIAL
Processo de desenvolvimento;
Administração de processos;
Ciclo de vida do software ou metodologia de
desenvolvimento de software.
ENGENHARIA DE SOFTWARE
 ABORDAGEM EM CAMADAS DA ENGENHARIA
DE SOFTWARE
FOCO NA QUALIDADE
MÉTODOS
FERRAMENTAS
PROCESSOS
ENGENHARIA DE SOFTWARE
 ABORDAGEM EM CAMADAS DA ENGENHARIA
DE SOFTWARE
“Reunião de metodologias, métodos,
ferramentas, procedimentos e princípios a serem
utilizados durante o processo de produção de
software (percepção do problema,
planejamento, implantação e manutenção) com
o intuito de obter produtos de alta qualidade.”
ENGENHARIA DE SOFTWARE
 ABORDAGEM EM CAMADAS DA ENGENHARIA
DE SOFTWARE
 Ferramentas - dão suporte automatizado ou
semiautomatizado aos métodos;
Integração de ferramentas - quando a informação
criada por uma ferramenta é utilizada por outra, é
estabelecido um sistema de suporte ao
desenvolvimento de software chamado CASE.
ENGENHARIA DE SOFTWARE
 ABORDAGEM EM CAMADAS DA ENGENHARIA
DE SOFTWARE
 Métodos - proporcionam os detalhes de como
fazer para construir o software:
Planejamento e estimativa de projeto ;
Análise de requisitos de software e de sistema ;
Projeto da estrutura de dados;
Algoritmo de processamento;
Codificação;
Teste;
Manutenção.
ENGENHARIA DE SOFTWARE
 ABORDAGEM EM CAMADAS DA ENGENHARIA
DE SOFTWARE
 Procedimentos – constituem o elo de ligação entre
os métodos e as ferramentas. Definem:
A sequência em que os métodos serão aplicados;
Os produtos que se exige que sejam entregues
(documentos, relatórios, formulários, etc.);
Os controles que ajudam a assegurar a qualidade e a
coordenar as mudanças;
Os marcos que possibilitam aos gerentes de software a
avaliar o progresso.
ENGENHARIA DE SOFTWARE
 QUALIDADE DE SOFTWARE
ENGENHARIA DE SOFTWARE
 QUALIDADE DE SOFTWARE
 Atributos de um bom software
Facilidade de manutenção
Confiança
Eficiência
Usabilidade, etc.
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
 CONTEXTO DA NÃO UTILIZAÇÃO DA
ENGENHARIA DE SOFTWARE
ENGENHARIA DE SOFTWARE
PROBLEMAS ASSOCIADOS A CRISE DO
SOFTWARE
MITOS E REALIDADE
ADMINISTRATIVOS
CLIENTE
PROFISSIONAL
ENGENHARIA DE SOFTWARE
PROBLEMAS ASSOCIADOS A CRISE DO
SOFTWARE - MITOS E REALIDADE
ADMINISTRATIVOS -
Existem manuais repletos de padrões e
procedimentos para a construção de software. Isso
não oferecerá ao pessoal tudo o que eles precisam
saber?
O pessoal tem Ferramentas de desenvolvimento de
software de última geração.
Se a equipe está atrasada nos prazos, é viável
adicionar mais programadores e recuperar o atraso.
ENGENHARIA DE SOFTWARE
PROBLEMAS ASSOCIADOS A CRISE DO
SOFTWARE
MITOS E REALIDADE
CLIENTE
Uma declaração geral dos objetivos é suficiente para
começar a escrever programas? Pode-se preencher os
detalhes mais tarde?
Os requisitos de projeto são alterados
continuamente, mas as mudanças podem ser
facilmente acomodadas, porque o software é flexível.
ENGENHARIA DE SOFTWARE
PROBLEMAS ASSOCIADOS A CRISE DO
SOFTWARE
MITOS E REALIDADE
CLIENTE
Custos com mudanças
MAGNITUDE DAS MUDANÇAS
FASES CUSTO DE MANUTENÇÃO
DEFINIÇÃO 1 x
DESENVOLVIMENTO 1.5x – 6x
MANUTENÇÃO 60x -100x
ENGENHARIA DE SOFTWARE
PROBLEMAS ASSOCIADOS A CRISE DO
SOFTWARE
MITOS E REALIDADE
PROFISSIONAL
O programa está escrito e é colocado para funcionar.
O trabalho estará completo.
Enquanto não tiver o programa "funcionando", não
existirá realmente nenhuma maneira de avaliar sua
qualidade.
ENGENHARIA DE SOFTWARE
 Próxima aula
ENGENHARIA DE SOFTWARE
X
PROCESSO DE SOFTWARE

Contenu connexe

Tendances

Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
Tiago Vizoto
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Sérgio Souza Costa
 
Schneider pan5fautomacao0409
Schneider pan5fautomacao0409Schneider pan5fautomacao0409
Schneider pan5fautomacao0409
croyf
 

Tendances (20)

Introdução a engenharia de software aula 01
Introdução a engenharia de software   aula 01Introdução a engenharia de software   aula 01
Introdução a engenharia de software aula 01
 
Processos de Software
Processos de SoftwareProcessos de Software
Processos de Software
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Gerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptxGerenciamento da Qualidade de Software 2.pptx
Gerenciamento da Qualidade de Software 2.pptx
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Engenharia de Software Pressman
Engenharia de Software PressmanEngenharia de Software Pressman
Engenharia de Software Pressman
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Gerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptxGerenciamento da Qualidade de Software 1.pptx
Gerenciamento da Qualidade de Software 1.pptx
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 
152191 11993
152191 11993152191 11993
152191 11993
 
Gerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptxGerenciamento da Qualidade de Software 3.pptx
Gerenciamento da Qualidade de Software 3.pptx
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Aula 04 qs - sistemas embarcados
Aula 04   qs - sistemas embarcadosAula 04   qs - sistemas embarcados
Aula 04 qs - sistemas embarcados
 
Defesa Becker
Defesa BeckerDefesa Becker
Defesa Becker
 
Schneider pan5fautomacao0409
Schneider pan5fautomacao0409Schneider pan5fautomacao0409
Schneider pan5fautomacao0409
 
I-SCode
I-SCodeI-SCode
I-SCode
 

Similaire à Engenharia de software

Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíqua
Rubens Matos Junior
 

Similaire à Engenharia de software (20)

Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Aula1 dia 22 02 2022.pdf
Aula1  dia 22 02 2022.pdfAula1  dia 22 02 2022.pdf
Aula1 dia 22 02 2022.pdf
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Engenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia CivilEngenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
Engenharia de Software - Introdução à Ciências da Computação - Engenharia Civil
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
Apresentação Closed-loop Automação Industrial - 2022
Apresentação Closed-loop Automação Industrial - 2022Apresentação Closed-loop Automação Industrial - 2022
Apresentação Closed-loop Automação Industrial - 2022
 
Aula1 introducao engsw
Aula1 introducao engswAula1 introducao engsw
Aula1 introducao engsw
 
Introdução a informática: do Windows ao Excel
Introdução a informática: do Windows ao ExcelIntrodução a informática: do Windows ao Excel
Introdução a informática: do Windows ao Excel
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Seminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíquaSeminário - Arquitetura de software para computação ubíqua
Seminário - Arquitetura de software para computação ubíqua
 
Seminario - Versão Final
Seminario - Versão FinalSeminario - Versão Final
Seminario - Versão Final
 
modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3modelagem sistema da informação Unid 3
modelagem sistema da informação Unid 3
 
Áreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de SoftwareÁreas de Conhecimento da Engenharia de Software
Áreas de Conhecimento da Engenharia de Software
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introdução
 
[CLASS 2014] Palestra Técnica - Tânia Marques
[CLASS 2014] Palestra Técnica - Tânia Marques[CLASS 2014] Palestra Técnica - Tânia Marques
[CLASS 2014] Palestra Técnica - Tânia Marques
 
Arquitetando aplicações php
Arquitetando aplicações phpArquitetando aplicações php
Arquitetando aplicações php
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Rup e metodos ágies
Rup e metodos ágiesRup e metodos ágies
Rup e metodos ágies
 
Aula1 eng software
Aula1 eng softwareAula1 eng software
Aula1 eng software
 
Arquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencialArquitetura de Software - Uma visão gerencial
Arquitetura de Software - Uma visão gerencial
 

Dernier

Dernier (6)

ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 

Engenharia de software

  • 1. ENGENHARIA DE SOFTWARE GESTÃO DA TECNOLOGIA DA INFORMAÇÃO-3º IF SUDESTE MG – SÃO JOÃO DEL REI GILMA APARECIDA SANTOS
  • 2. ENGENHARIA DE SOFTWARE “LEI DAS CONSEQUÊNCIAS NÃO PRETENDIDAS”
  • 3. ENGENHARIA DE SOFTWARE HISTÓRICO 1950 Imprevisibilidade do impacto global que o software teria sobre cada aspecto da sociedade no final do século XX e início do século XXI. Negócios; Ciência e engenharia; Criação de novas tecnologias; Engenharia genética Extensão de tecnologias existentes; Comunicações Declínio de antigas tecnologias; Industria tipográfica
  • 4. ENGENHARIA DE SOFTWARE HISTÓRICO Evolução Décadas 60 e 70 Hardware com alto custo de processamento e armazenamento de dados; Programação estruturada, BD, multiusuário, sistemas distribuídos. Década 80 Lei de Moore; Avanços na microeletrônica resultaram em um aumento de poder computacional a um custo cada vez menor; Redes de computadores.
  • 5. ENGENHARIA DE SOFTWARE HISTÓRICO Evolução Décadas 90 Sistemas especialistas; Arquiteturas paralelas; Orientação à objetos Programação estruturada, BD, multiusuário, sistemas distribuídos.  2000... Programação para Internet
  • 6. ENGENHARIA DE SOFTWARE HISTÓRICO IMPORTÂNCIA Antes – desafio de desenvolver hardware que reduzisse o custo de processamento e armazenamento de dados. Hoje – melhorar a qualidade de soluções baseadas em computador – software.
  • 8. ENGENHARIA DE SOFTWARE Finalmente, ninguém poderia prever que milhões de programas de computador tivessem de ser corrigidos, adaptados e aperfeiçoados à medida que o tempo passasse, e que o ônus de realizar essas atividades de “manutenção” absorveria mais pessoas e recursos que todo o trabalho aplicado na criação de novos softwares.
  • 9. ENGENHARIA DE SOFTWARE O QUE É SOFTWARE INSTRUÇÕES: que quando executadas produzem a função com desempenho desejados. ESTRUTURAS DE DADOS: que possibilitam que os programas manipulem a informação de maneira adequada e segura. DOCUMENTOS: descrição das operações e o do uso dos programas.  “Conjunto de vários artefatos e não apenas código fonte” (SOMMERVILLE, 2003).
  • 10. ENGENHARIA DE SOFTWARE CARACTERÍSTICAS DO SOFTWARE Elemento de sistema lógico, não físico; Software não se desgasta; Maioria “feita” sob medida em vez de ser montada a partir de componentes existentes;
  • 11. ENGENHARIA DE SOFTWARE SOFTWARE Criados de uma série de convenções que mapeiam as exigências do cliente para código executável em máquina.
  • 12. ENGENHARIA DE SOFTWARE SOFTWARE Aplicações  O software pode ser aplicado a qualquer situação em que um conjunto previamente especificado de passos procedimentais (i. e., um algoritmo) tiver sido definido.  Desenvolver categorias genéricas para as aplicações de software é uma tarefa um tanto difícil. À medida que a complexidade do software cresce, desaparece a clara divisão em compartimentos.
  • 13. ENGENHARIA DE SOFTWARE SOFTWARE Aplicações Potenciais  Software Básico – coleção de programas escritos para apoiar outros programas. SO Compiladores Gerenciadores de arquivo Drivers Software de Tempo Real – monitora/analisa/controla eventos do mundo real. Controlador de tráfego aéreo.
  • 14. ENGENHARIA DE SOFTWARE SOFTWARE Aplicações Potenciais  Software Científico e de Engenharia – caracterizado por algoritmos de processamento numéricoSoftware de Tempo Real – monitora/analisa/controla eventos do mundo real. Software embarcado – reside na memória apenas de leitura (ready-only) e, é usado para controlar produtos e sistemas para os mercados industriais de consumo.
  • 15. ENGENHARIA DE SOFTWARE SOFTWARE Aplicações Potenciais  Software de computador Pessoal – representa os mais inovadores projetos de interface com seres humanos de toda indústria de software. Software de inteligência artificial – faz uso de algoritmos não-numéricos para resolver problemas complexos que não sejam favoráveis à computação ou à análise direta.
  • 16. ENGENHARIA DE SOFTWARE CRISE DO SOFTWARE O conceito de engenharia de software foi proposto em 1968, em uma conferência organizada para discutir o que foi então chamado de “crise do software”. Nato – sem ligações com a área ACM – Association for Computing Machinary (1947)
  • 17. ENGENHARIA DE SOFTWARE PANORAMA DA CRISE DO SOFTWARE Resultado direto da introdução de novo hardware de computador baseado em circuitos integrados; Aplicações de computador até o momento não realizáveis, se tornaram viáveis; Software resultante em ordem de grandeza maior e mais complexo;
  • 18. ENGENHARIA DE SOFTWARE CARACTERÍSTICAS DA CRISE DO SOFTWARE Custos elevados; Atrasos cronogramas; Gerência de desenvolvimento ineficaz; Baixa produtividade das pessoas; Baixa qualidade do produto de software; Software existente de difícil de manutenção.
  • 19. ENGENHARIA DE SOFTWARE RESPOSTA A CRISE Aplicação de uma abordagem sistemática, disciplinada e possível de ser medida para o desenvolvimento, operação e manutenção do software (IEEE - Institute of Electrical and Eletronic Engineering).
  • 20. ENGENHARIA DE SOFTWARE  OBJETIVO DA ENGENHARIA DE SOFTWARE  A engenharia de software é um ramo da engenharia cujo foco é o desenvolvimento dentro de custos adequados de sistemas de software de alta qualidade.  Software é abstrato e intangível; Potencial ilimitado; Complexo e difícil de ser compreendido.
  • 21. ENGENHARIA DE SOFTWARE  OBJETIVO DA ENGENHARIA DE SOFTWARE  Combinar métodos abrangendo todas as fases de desenvolvimento de software; Utilizar melhores ferramentas para automatizar esses métodos; Criar blocos de construção mais poderosos para a implementação do software; Aplicar melhores técnicas para a garantia da qualidade; Alimentar uma filosofia de coordenação predominante, controle e administração.
  • 22. ENGENHARIA DE SOFTWARE  CARACTERÍSTICAS METODOLOGICAS DA ENGENHARIA DE SOFTWARE Processo (roteiro) dinâmico, integrado e inteligente de soluções tecnológicas; adequação aos requisitos funcionais do negócio do cliente e seus respectivos procedimentos pertinentes; efetivação de padrões de qualidade, produtividade e efetividade em suas atividades e produtos; fundamentação na tecnologia da informação disponível, viável, oportuna e personalizada; planejamento e gestão de atividades, recursos, custos e datas.
  • 23. ENGENHARIA DE SOFTWARE  IEEE – 1990  Aplicação sistemática, disciplinada e com abordagem quantitativa para o desenvolvimento, operação e manutenção de software.
  • 24. ENGENHARIA DE SOFTWARE  SOMMERVILLE – 1992  Engenharia de software envolve questões técnicas e não-técnicas, tais como a especificação do conhecimento, técnicas de projeto e implementação, conhecimentos dos fatores humanos pelo engenheiro de software e ainda, gestão de projetos.
  • 25. ENGENHARIA DE SOFTWARE  MAFFEO – 1992  Engenharia de software é: "a área interdisciplinar que engloba vertentes tecnológica e gerencial visando a abordar de modo sistemático (modular), os processos de construção, implantação e manutenção de produtos de software com qualidade assegurada por construção segundo cronogramas e custos previamente definidos".
  • 26. ENGENHARIA DE SOFTWARE  ABORDAGEM DA ENGENHARIA DE SOFTWARE  TECNOLÓGICA E GERENCIAL Processo de desenvolvimento; Administração de processos; Ciclo de vida do software ou metodologia de desenvolvimento de software.
  • 27. ENGENHARIA DE SOFTWARE  ABORDAGEM EM CAMADAS DA ENGENHARIA DE SOFTWARE FOCO NA QUALIDADE MÉTODOS FERRAMENTAS PROCESSOS
  • 28. ENGENHARIA DE SOFTWARE  ABORDAGEM EM CAMADAS DA ENGENHARIA DE SOFTWARE “Reunião de metodologias, métodos, ferramentas, procedimentos e princípios a serem utilizados durante o processo de produção de software (percepção do problema, planejamento, implantação e manutenção) com o intuito de obter produtos de alta qualidade.”
  • 29. ENGENHARIA DE SOFTWARE  ABORDAGEM EM CAMADAS DA ENGENHARIA DE SOFTWARE  Ferramentas - dão suporte automatizado ou semiautomatizado aos métodos; Integração de ferramentas - quando a informação criada por uma ferramenta é utilizada por outra, é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE.
  • 30. ENGENHARIA DE SOFTWARE  ABORDAGEM EM CAMADAS DA ENGENHARIA DE SOFTWARE  Métodos - proporcionam os detalhes de como fazer para construir o software: Planejamento e estimativa de projeto ; Análise de requisitos de software e de sistema ; Projeto da estrutura de dados; Algoritmo de processamento; Codificação; Teste; Manutenção.
  • 31. ENGENHARIA DE SOFTWARE  ABORDAGEM EM CAMADAS DA ENGENHARIA DE SOFTWARE  Procedimentos – constituem o elo de ligação entre os métodos e as ferramentas. Definem: A sequência em que os métodos serão aplicados; Os produtos que se exige que sejam entregues (documentos, relatórios, formulários, etc.); Os controles que ajudam a assegurar a qualidade e a coordenar as mudanças; Os marcos que possibilitam aos gerentes de software a avaliar o progresso.
  • 32. ENGENHARIA DE SOFTWARE  QUALIDADE DE SOFTWARE
  • 33. ENGENHARIA DE SOFTWARE  QUALIDADE DE SOFTWARE  Atributos de um bom software Facilidade de manutenção Confiança Eficiência Usabilidade, etc.
  • 34. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 35. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 36. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 37. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 38. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 39. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 40. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 41. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 42. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 43. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 44. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 45. ENGENHARIA DE SOFTWARE  CONTEXTO DA NÃO UTILIZAÇÃO DA ENGENHARIA DE SOFTWARE
  • 46. ENGENHARIA DE SOFTWARE PROBLEMAS ASSOCIADOS A CRISE DO SOFTWARE MITOS E REALIDADE ADMINISTRATIVOS CLIENTE PROFISSIONAL
  • 47. ENGENHARIA DE SOFTWARE PROBLEMAS ASSOCIADOS A CRISE DO SOFTWARE - MITOS E REALIDADE ADMINISTRATIVOS - Existem manuais repletos de padrões e procedimentos para a construção de software. Isso não oferecerá ao pessoal tudo o que eles precisam saber? O pessoal tem Ferramentas de desenvolvimento de software de última geração. Se a equipe está atrasada nos prazos, é viável adicionar mais programadores e recuperar o atraso.
  • 48. ENGENHARIA DE SOFTWARE PROBLEMAS ASSOCIADOS A CRISE DO SOFTWARE MITOS E REALIDADE CLIENTE Uma declaração geral dos objetivos é suficiente para começar a escrever programas? Pode-se preencher os detalhes mais tarde? Os requisitos de projeto são alterados continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.
  • 49. ENGENHARIA DE SOFTWARE PROBLEMAS ASSOCIADOS A CRISE DO SOFTWARE MITOS E REALIDADE CLIENTE Custos com mudanças MAGNITUDE DAS MUDANÇAS FASES CUSTO DE MANUTENÇÃO DEFINIÇÃO 1 x DESENVOLVIMENTO 1.5x – 6x MANUTENÇÃO 60x -100x
  • 50. ENGENHARIA DE SOFTWARE PROBLEMAS ASSOCIADOS A CRISE DO SOFTWARE MITOS E REALIDADE PROFISSIONAL O programa está escrito e é colocado para funcionar. O trabalho estará completo. Enquanto não tiver o programa "funcionando", não existirá realmente nenhuma maneira de avaliar sua qualidade.
  • 51. ENGENHARIA DE SOFTWARE  Próxima aula ENGENHARIA DE SOFTWARE X PROCESSO DE SOFTWARE