SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Downloaden Sie, um offline zu lesen
ENGENHARIA DE SOFTWARE
Síntese de tópicos importantes
PRESSMAN, Roger S.
Conteúdo
 Componentes e tipos de software
 Problemas com o software e suas causas
 Mitologia que envolve o software
 Configuração de software
 Atividade de pesquisa
Componentes do Software
 Um sistema informatizado é formado por dois tipos
de componentes:
 Executáveis em máquina e
 Não executáveis em máquina
 Os componentes do software devem mapear as
exigências do cliente em código executável.
Tipos Comuns de Software
 Básico: compiladores, editores simples, drivers,
componentes do SO.
 Tempo Real: monitora, analisa e controla eventos
em tempo real.
 Comercial: controle de estoque, vendas etc.
(manipulam algum mecanismo de persistência, como
uma de suas principais características)
Tipos Comuns de Software
 Científico e de Engenharia: intenso processamento
de números e cálculos.
 Embutido ou Embarcado: celulares, micro-ondas,
injeção eletrônica.
 Pessoal: processador de texto, planilha, jogos,
apresentações etc.
 Inteligência Artificial: sistemas especialistas, redes
neurais e aprendizado.
Principais Problemas
 Estimativas de prazo (meses, anos) e custo
imprecisas
 Produtividade abaixo da praticada pelo mercado
 Software de baixa qualidade (erros e não
conformidades com requisitos que tiram a confiança
do cliente sobre o produto)
Mais Problemas
 Não dedicamos tempo para coletar dados sobre o
software e seu processo de desenvolvimento. Com
poucos dados históricos como guia, as estimativas
têm sido “a olho”, com resultados previsivelmente
ruins.
 Sem nenhum indicador sólido de produtividade,
não poderemos avaliar com precisão a eficácia de
novas ferramentas, métodos, padrões ou
processos.
Mais Ainda
 A insatisfação do cliente com o sistema “concluído”
ocorre muito freqüentemente.
 Os projetos de desenvolvimento de software
normalmente são levados a efeito apenas com um
vago indício das exigências do cliente.
 A comunicação entre o cliente e o desenvolvedor
de software freqüentemente é muito fraca.
Ainda Não Acabou
 A qualidade do software freqüentemente é
suspeita. Somente agora estão começando a ser
seguidos conceitos quantitativos sólidos de
confiabilidade e de garantia de qualidade de
software.
 Só recentemente começamos a entender a
importância dos testes de software sistemáticos e
tecnicamente completos.
Mais Um
 O software existente pode ser muito difícil de
manter. A tarefa de manutenção de software
devora a maioria de todos os dólares destinados a
software. A capacidade de manutenção de
software não foi enfatizada como um critério
importante para a aceitação do software.
Causas
 Gerentes sem vivência em:
 Projetos e seus marcos de evolução
 Métodos efetivos de controle
 Tecnologias que se modificam rapidamente
Mais causas
 Os programadores ou engenheiros de software têm
pouca instrução formal, holística e estudam pouco as
técnicas de desenvolvimento e as áreas de negócio.
 Cada pessoa aborda a tarefa de “escrever
programas” com a experiência advinda de esforços
passados. Algumas pessoas desenvolvem uma
abordagem ordeira e eficiente, mesmo por tentativa
e erro, mas muitas criam maus hábitos, que resultam
em qualidade e manutenibilidade deficientes.
Outras Causas
 Resistência às inevitáveis mudanças
 É irônico que enquanto o hardware experimenta
enormes mudanças, as pessoas da área de
software responsáveis pelo aproveitamento desse
potencial, muitas vezes se oponham à mudança
quando ela é discutida e resistam a ela quando ela
é introduzida.
Mitologia do Software
 Mitos Administrativos. Advém de gerentes sobre
pressão de orçamento e tempo.
 Mitos do Cliente. Advém de falsas expectativas e
insatisfação com o desenvolvedor
 Mitos do Profissional de Desenvolvimento. Advém
de se considerar o software como uma forma de
arte. Será que o software é uma arte ou uma
engenharia?
Mito do Manual de Práticas
 Mito: Já temos um manual repleto de padrões e
procedimentos para a construção de software. Isso
não oferecerá ao meu pessoal tudo o que eles
precisam saber?
 Realidade: O manual de padrões pode muito bem
existir, mas será que ele é usado? Os profissionais de
software têm conhecimento de sua existência? Ele
reflete a moderna prática de desenvolvimento de
software? É completo? Em muitos casos, a resposta a
todas estas perguntas é “não”.
Mito do Computador Moderno
 Mito: Meu pessoal tem ferramentas de
desenvolvimento de software de última geração;
afinal de contas lhes compramos os mais novos
computadores.
 Realidade: É preciso muito mais do que o último
modelo de computador para se fazer um
desenvolvimento de software de alta qualidade. As
ferramentas de engenharia de software auxiliadas
por computador (CASE) são mais importantes do que o
hw para se conseguir boa qualidade e produtividade;
contudo, a maioria dos desenvolvedores de software
não as usa plenamente.
Mito das Hordas de Mongóis
 Mito: Se nós estamos atrasados nos prazos, podemos
adicionar mais programadores e tirar o atraso.
 Realidade: O desenvolvimento de software não é um
processo mecânico igual à manufatura. Acrescentar
pessoas em um projeto de software atrasado torna-o
ainda mais atrasado. Gasta-se tempo formando os
recém-chegados, o que reduz o tempo de
desenvolvimento produtivo. Pessoas podem ser
acrescentadas, mas somente de uma forma
planejada e bem coordenada.
Mitos do Cliente: Especificação
 Mito: Uma declaração geral dos objetivos é suficiente
para se começar a escrever programas – podemos
preencher os detalhes mais tarde.
 Realidade: Uma definição inicial ruim é a principal
causa de fracasso dos esforços de desenvolvimento de
software. Uma descrição formal e detalhada do
domínio da informação, função, desempenho,
interfaces, restrições de projeto e critérios de
validação é fundamental. Essas características podem
ser determinadas somente depois de cuidadosa
comunicação entre o cliente e o desenvolvedor.
O Pior Mito do Cliente
 Mito: Os requisitos de projeto modificam-se
continuamente, mas as mudanças podem ser
facilmente acomodadas, porque o software é
flexível (Cuidado como o “Já que...”) .
 Realidade: É verdade que os requisitos de
software se modificam, mas o impacto da mudança
varia de acordo com o tempo em que ela é
introduzida.
Custo de Introdução de Mudanças
0
10
20
30
40
50
60
70
80
90
100
Definição Desenvolvimento Manutenção
De
Até
Mitos do Profissional:
Terminar Mais Cedo
 Mito: Assim que escrevemos o programa e o
colocarmos em funcionamento, nosso trabalho estará
completo.
 Realidade: Alguém disse certa vez que “quanto mais
cedo se começa a ‘escrever o código’, mais tempo
demora para que se consiga terminá-lo”. Os dados
da indústria indicam que entre 50 e 70% de todo o
esforço gasto num programa serão despendidos
depois que ele for entregue pela primeira vez ao
cliente.
Mito da Qualidade
 Mito: Enquanto não tiver o programa “funcionando”,
eu não terei realmente nenhuma maneira de avaliar
sua qualidade.
 Realidade: Um dos mecanismos mais efetivos de
garantia de qualidade de software pode ser
aplicado desde o começo de um projeto – a revisão
técnica formal. As revisões de software são um “filtro
da qualidade” que têm sido consideradas mais
eficientes do que a realização de testes para a
descoberta de defeitos.
Mito do Executável
 Mito: A única coisa a ser entregue em um projeto
bem-sucedido é o programa funcionando.
 Realidade: Um programa funcionando é somente
uma parte de uma configuração de software que
inclui vários outros elementos. A documentação forma
os alicerces para um desenvolvimento bem-sucedido
e fornece um guia para a tarefa de manutenção do
software.
Configuração de Software
 Plano de Projeto
 Especificação de Requisitos
 Desenho Arquitetônico
 Manual do Usuário
 Estruturas de Dados
 Especificação de Teste
 Programa Executável
Atividade de Pesquisa
 Com base na exposição feita em sala
sobre tópicos importante da Engenharia
de Software, segundo Pressman, e em
pesquisas e conclusões de seu grupo,
discorra sobre a mitologia do software,
suas conseqüências e formas de contornar
os problemas comuns, atacando suas
causas freqüentes.

Weitere ähnliche Inhalte

Was ist angesagt?

Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e ProjetoSergio Silva
 
Algoritmos 0 - apresentação
Algoritmos   0 - apresentaçãoAlgoritmos   0 - apresentação
Algoritmos 0 - apresentaçãoDaniel Moura
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitoselliando dias
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfMarcelo Silva
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosHélio Jovo
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareUFPA
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Leinylson Fontinele
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projetoejdn1
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsRodrigo Kono
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitosMailson Queiroz
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareClaudia Melo
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Luís Fernando Richter
 

Was ist angesagt? (20)

Aula 1 Analise e Projeto
Aula 1   Analise e ProjetoAula 1   Analise e Projeto
Aula 1 Analise e Projeto
 
Aula - Metodologias Ágeis
Aula - Metodologias ÁgeisAula - Metodologias Ágeis
Aula - Metodologias Ágeis
 
Algoritmos 0 - apresentação
Algoritmos   0 - apresentaçãoAlgoritmos   0 - apresentação
Algoritmos 0 - apresentação
 
Aula 1 - Revisão UML
Aula 1 - Revisão UMLAula 1 - Revisão UML
Aula 1 - Revisão UML
 
Qualidade de Software
Qualidade de SoftwareQualidade de Software
Qualidade de Software
 
Analise de Requisitos
Analise de RequisitosAnalise de Requisitos
Analise de Requisitos
 
Aula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdfAula 01 - Fundamentos de Banco de Dados (2).pdf
Aula 01 - Fundamentos de Banco de Dados (2).pdf
 
desafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidosdesafios na implementacao de sistemas distribuidos
desafios na implementacao de sistemas distribuidos
 
Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Introducao a Arquitetura de Software
Introducao a Arquitetura de SoftwareIntroducao a Arquitetura de Software
Introducao a Arquitetura de Software
 
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)Banco de Dados II  Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
Banco de Dados II Aula 02 - Modelagem de Dados (Definição, Modelo conceitual)
 
Padroes De Projeto
Padroes De ProjetoPadroes De Projeto
Padroes De Projeto
 
Padrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-PatternsPadrões de Projeto - Design Patterns e Anti-Patterns
Padrões de Projeto - Design Patterns e Anti-Patterns
 
Fundamentos de Testes de Software
Fundamentos de Testes de SoftwareFundamentos de Testes de Software
Fundamentos de Testes de Software
 
Engenharia de requisitos
Engenharia de requisitosEngenharia de requisitos
Engenharia de requisitos
 
Modelagem de dados
Modelagem de dadosModelagem de dados
Modelagem de dados
 
Introdução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de SoftwareIntrodução à Qualidade e Testes Ágeis de Software
Introdução à Qualidade e Testes Ágeis de Software
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
DESIGN DE INTERFACE
DESIGN DE INTERFACEDESIGN DE INTERFACE
DESIGN DE INTERFACE
 
Aula 4- Engenharia de Software
Aula 4- Engenharia de SoftwareAula 4- Engenharia de Software
Aula 4- Engenharia de Software
 

Andere mochten auch

Engenharia de software 7° edição roger s.pressman capítulo 1
Engenharia de software 7° edição roger s.pressman capítulo 1Engenharia de software 7° edição roger s.pressman capítulo 1
Engenharia de software 7° edição roger s.pressman capítulo 1Lindomar ...
 
Engenharia de software 7° edição roger s.pressman capítulo 4
Engenharia de software 7° edição roger s.pressman capítulo 4Engenharia de software 7° edição roger s.pressman capítulo 4
Engenharia de software 7° edição roger s.pressman capítulo 4Lindomar ...
 
Cap1 introd-engenharia de software
Cap1 introd-engenharia de softwareCap1 introd-engenharia de software
Cap1 introd-engenharia de softwareAdilson Nascimento
 
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareProjeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareLuiz Nakazone
 
Engenharia de software 7° edição roger s.pressman capítulo 8
Engenharia de software 7° edição roger s.pressman capítulo 8Engenharia de software 7° edição roger s.pressman capítulo 8
Engenharia de software 7° edição roger s.pressman capítulo 8Lindomar ...
 
Engenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleEngenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleTiago Canabarro
 
Engenharia de software 7° edição roger s.pressman capítulo 3
Engenharia de software 7° edição roger s.pressman capítulo 3Engenharia de software 7° edição roger s.pressman capítulo 3
Engenharia de software 7° edição roger s.pressman capítulo 3Lindomar ...
 
Engenharia de software 7° edição roger s.pressman capítulo 2
Engenharia de software 7° edição roger s.pressman capítulo 2Engenharia de software 7° edição roger s.pressman capítulo 2
Engenharia de software 7° edição roger s.pressman capítulo 2Lindomar ...
 

Andere mochten auch (9)

Engenharia de software 7° edição roger s.pressman capítulo 1
Engenharia de software 7° edição roger s.pressman capítulo 1Engenharia de software 7° edição roger s.pressman capítulo 1
Engenharia de software 7° edição roger s.pressman capítulo 1
 
Engenharia de software 7° edição roger s.pressman capítulo 4
Engenharia de software 7° edição roger s.pressman capítulo 4Engenharia de software 7° edição roger s.pressman capítulo 4
Engenharia de software 7° edição roger s.pressman capítulo 4
 
Cap1 introd-engenharia de software
Cap1 introd-engenharia de softwareCap1 introd-engenharia de software
Cap1 introd-engenharia de software
 
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De SoftwareProjeto Aplicado 4°Ciclo Grp01 Testes De Software
Projeto Aplicado 4°Ciclo Grp01 Testes De Software
 
Engenharia de software 7° edição roger s.pressman capítulo 8
Engenharia de software 7° edição roger s.pressman capítulo 8Engenharia de software 7° edição roger s.pressman capítulo 8
Engenharia de software 7° edição roger s.pressman capítulo 8
 
Engenharia de Software - Ian Sommerville
Engenharia de Software - Ian SommervilleEngenharia de Software - Ian Sommerville
Engenharia de Software - Ian Sommerville
 
Engenharia de software 7° edição roger s.pressman capítulo 3
Engenharia de software 7° edição roger s.pressman capítulo 3Engenharia de software 7° edição roger s.pressman capítulo 3
Engenharia de software 7° edição roger s.pressman capítulo 3
 
Engenharia de software 7° edição roger s.pressman capítulo 2
Engenharia de software 7° edição roger s.pressman capítulo 2Engenharia de software 7° edição roger s.pressman capítulo 2
Engenharia de software 7° edição roger s.pressman capítulo 2
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 

Ähnlich wie Engenharia de Software Pressman

Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introduçãomiroslayer
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informaçãoFernando Gomes Chaves
 
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 fundamentaisWaldemar Roberti
 
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.pdfIvanFontainha
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaTathiana Machado
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxRoberto Nunes
 
Producto X Processo X Projecto de Engenharia de Software
Producto X Processo X Projecto de Engenharia de SoftwareProducto X Processo X Projecto de Engenharia de Software
Producto X Processo X Projecto de Engenharia de SoftwareRogerio P C do Nascimento
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti InternaRoger Ritter
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
Aplicacao fpa pontos da função
Aplicacao fpa pontos da funçãoAplicacao fpa pontos da função
Aplicacao fpa pontos da funçãoWisthon Douglas
 

Ähnlich wie Engenharia de Software Pressman (20)

Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Engenharia de Software introdução
Engenharia de Software    introduçãoEngenharia de Software    introdução
Engenharia de Software introdução
 
Trabalho qualidade de software sistemas de informação
Trabalho qualidade de software   sistemas de informaçãoTrabalho qualidade de software   sistemas de informação
Trabalho qualidade de software sistemas de informação
 
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
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
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
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-DiaEngenharia de Software Dia-a-Dia
Engenharia de Software Dia-a-Dia
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Producto X Processo X Projecto de Engenharia de Software
Producto X Processo X Projecto de Engenharia de SoftwareProducto X Processo X Projecto de Engenharia de Software
Producto X Processo X Projecto de Engenharia de Software
 
Teste de Software em Ti Interna
Teste de Software em Ti InternaTeste de Software em Ti Interna
Teste de Software em Ti Interna
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Teste de Software
Teste de SoftwareTeste de Software
Teste de Software
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
Dba Testes Gerentes B2
Dba Testes Gerentes B2Dba Testes Gerentes B2
Dba Testes Gerentes B2
 
Aplicacao fpa pontos da função
Aplicacao fpa pontos da funçãoAplicacao fpa pontos da função
Aplicacao fpa pontos da função
 
Agilidade em projetos de software
Agilidade em projetos de softwareAgilidade em projetos de software
Agilidade em projetos de software
 

Engenharia de Software Pressman

  • 1. ENGENHARIA DE SOFTWARE Síntese de tópicos importantes PRESSMAN, Roger S.
  • 2. Conteúdo  Componentes e tipos de software  Problemas com o software e suas causas  Mitologia que envolve o software  Configuração de software  Atividade de pesquisa
  • 3. Componentes do Software  Um sistema informatizado é formado por dois tipos de componentes:  Executáveis em máquina e  Não executáveis em máquina  Os componentes do software devem mapear as exigências do cliente em código executável.
  • 4. Tipos Comuns de Software  Básico: compiladores, editores simples, drivers, componentes do SO.  Tempo Real: monitora, analisa e controla eventos em tempo real.  Comercial: controle de estoque, vendas etc. (manipulam algum mecanismo de persistência, como uma de suas principais características)
  • 5. Tipos Comuns de Software  Científico e de Engenharia: intenso processamento de números e cálculos.  Embutido ou Embarcado: celulares, micro-ondas, injeção eletrônica.  Pessoal: processador de texto, planilha, jogos, apresentações etc.  Inteligência Artificial: sistemas especialistas, redes neurais e aprendizado.
  • 6. Principais Problemas  Estimativas de prazo (meses, anos) e custo imprecisas  Produtividade abaixo da praticada pelo mercado  Software de baixa qualidade (erros e não conformidades com requisitos que tiram a confiança do cliente sobre o produto)
  • 7. Mais Problemas  Não dedicamos tempo para coletar dados sobre o software e seu processo de desenvolvimento. Com poucos dados históricos como guia, as estimativas têm sido “a olho”, com resultados previsivelmente ruins.  Sem nenhum indicador sólido de produtividade, não poderemos avaliar com precisão a eficácia de novas ferramentas, métodos, padrões ou processos.
  • 8. Mais Ainda  A insatisfação do cliente com o sistema “concluído” ocorre muito freqüentemente.  Os projetos de desenvolvimento de software normalmente são levados a efeito apenas com um vago indício das exigências do cliente.  A comunicação entre o cliente e o desenvolvedor de software freqüentemente é muito fraca.
  • 9. Ainda Não Acabou  A qualidade do software freqüentemente é suspeita. Somente agora estão começando a ser seguidos conceitos quantitativos sólidos de confiabilidade e de garantia de qualidade de software.  Só recentemente começamos a entender a importância dos testes de software sistemáticos e tecnicamente completos.
  • 10. Mais Um  O software existente pode ser muito difícil de manter. A tarefa de manutenção de software devora a maioria de todos os dólares destinados a software. A capacidade de manutenção de software não foi enfatizada como um critério importante para a aceitação do software.
  • 11. Causas  Gerentes sem vivência em:  Projetos e seus marcos de evolução  Métodos efetivos de controle  Tecnologias que se modificam rapidamente
  • 12. Mais causas  Os programadores ou engenheiros de software têm pouca instrução formal, holística e estudam pouco as técnicas de desenvolvimento e as áreas de negócio.  Cada pessoa aborda a tarefa de “escrever programas” com a experiência advinda de esforços passados. Algumas pessoas desenvolvem uma abordagem ordeira e eficiente, mesmo por tentativa e erro, mas muitas criam maus hábitos, que resultam em qualidade e manutenibilidade deficientes.
  • 13. Outras Causas  Resistência às inevitáveis mudanças  É irônico que enquanto o hardware experimenta enormes mudanças, as pessoas da área de software responsáveis pelo aproveitamento desse potencial, muitas vezes se oponham à mudança quando ela é discutida e resistam a ela quando ela é introduzida.
  • 14. Mitologia do Software  Mitos Administrativos. Advém de gerentes sobre pressão de orçamento e tempo.  Mitos do Cliente. Advém de falsas expectativas e insatisfação com o desenvolvedor  Mitos do Profissional de Desenvolvimento. Advém de se considerar o software como uma forma de arte. Será que o software é uma arte ou uma engenharia?
  • 15. Mito do Manual de Práticas  Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. Isso não oferecerá ao meu pessoal tudo o que eles precisam saber?  Realidade: O manual de padrões pode muito bem existir, mas será que ele é usado? Os profissionais de software têm conhecimento de sua existência? Ele reflete a moderna prática de desenvolvimento de software? É completo? Em muitos casos, a resposta a todas estas perguntas é “não”.
  • 16. Mito do Computador Moderno  Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal de contas lhes compramos os mais novos computadores.  Realidade: É preciso muito mais do que o último modelo de computador para se fazer um desenvolvimento de software de alta qualidade. As ferramentas de engenharia de software auxiliadas por computador (CASE) são mais importantes do que o hw para se conseguir boa qualidade e produtividade; contudo, a maioria dos desenvolvedores de software não as usa plenamente.
  • 17. Mito das Hordas de Mongóis  Mito: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso.  Realidade: O desenvolvimento de software não é um processo mecânico igual à manufatura. Acrescentar pessoas em um projeto de software atrasado torna-o ainda mais atrasado. Gasta-se tempo formando os recém-chegados, o que reduz o tempo de desenvolvimento produtivo. Pessoas podem ser acrescentadas, mas somente de uma forma planejada e bem coordenada.
  • 18. Mitos do Cliente: Especificação  Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas – podemos preencher os detalhes mais tarde.  Realidade: Uma definição inicial ruim é a principal causa de fracasso dos esforços de desenvolvimento de software. Uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação é fundamental. Essas características podem ser determinadas somente depois de cuidadosa comunicação entre o cliente e o desenvolvedor.
  • 19. O Pior Mito do Cliente  Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível (Cuidado como o “Já que...”) .  Realidade: É verdade que os requisitos de software se modificam, mas o impacto da mudança varia de acordo com o tempo em que ela é introduzida.
  • 20. Custo de Introdução de Mudanças 0 10 20 30 40 50 60 70 80 90 100 Definição Desenvolvimento Manutenção De Até
  • 21. Mitos do Profissional: Terminar Mais Cedo  Mito: Assim que escrevemos o programa e o colocarmos em funcionamento, nosso trabalho estará completo.  Realidade: Alguém disse certa vez que “quanto mais cedo se começa a ‘escrever o código’, mais tempo demora para que se consiga terminá-lo”. Os dados da indústria indicam que entre 50 e 70% de todo o esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente.
  • 22. Mito da Qualidade  Mito: Enquanto não tiver o programa “funcionando”, eu não terei realmente nenhuma maneira de avaliar sua qualidade.  Realidade: Um dos mecanismos mais efetivos de garantia de qualidade de software pode ser aplicado desde o começo de um projeto – a revisão técnica formal. As revisões de software são um “filtro da qualidade” que têm sido consideradas mais eficientes do que a realização de testes para a descoberta de defeitos.
  • 23. Mito do Executável  Mito: A única coisa a ser entregue em um projeto bem-sucedido é o programa funcionando.  Realidade: Um programa funcionando é somente uma parte de uma configuração de software que inclui vários outros elementos. A documentação forma os alicerces para um desenvolvimento bem-sucedido e fornece um guia para a tarefa de manutenção do software.
  • 24. Configuração de Software  Plano de Projeto  Especificação de Requisitos  Desenho Arquitetônico  Manual do Usuário  Estruturas de Dados  Especificação de Teste  Programa Executável
  • 25. Atividade de Pesquisa  Com base na exposição feita em sala sobre tópicos importante da Engenharia de Software, segundo Pressman, e em pesquisas e conclusões de seu grupo, discorra sobre a mitologia do software, suas conseqüências e formas de contornar os problemas comuns, atacando suas causas freqüentes.