SlideShare una empresa de Scribd logo
1 de 25
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAndré Constantino da Silva
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturaisthaisedd
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasGustavo Gonzalez
 
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
 
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
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de SoftwareNécio de Lima Veras
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de SoftwareAricelio Souza
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De SoftwareCursoSENAC
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dadosvini_campos
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitoslicardino
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de SoftwareCloves da Rocha
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de PrototipaçãoJuliano Pires
 
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
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaFernando Palma
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxMarceloRosenbrock1
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de SistemasNécio de Lima Veras
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de softwarediha36
 

La actualidad más candente (20)

Aula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de UsuárioAula 6 - Design e Processo de Design de Interfaces de Usuário
Aula 6 - Design e Processo de Design de Interfaces de Usuário
 
Modelos de processos de software
Modelos de processos de softwareModelos de processos de software
Modelos de processos de software
 
Uml Diagramas Estruturais
Uml   Diagramas EstruturaisUml   Diagramas Estruturais
Uml Diagramas Estruturais
 
Aula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de SistemasAula1 e aula2 - Analise e Projeto de Sistemas
Aula1 e aula2 - Analise e Projeto de Sistemas
 
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
 
Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006Engenharia Requisitos - Aula4 06 03 2006
Engenharia Requisitos - Aula4 06 03 2006
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
1.Introdução Banco de Dados
1.Introdução Banco de Dados1.Introdução Banco de Dados
1.Introdução Banco de Dados
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
Aula 1 requisitos
Aula 1   requisitosAula 1   requisitos
Aula 1 requisitos
 
Introdução à Qualidade de Software
Introdução à Qualidade de SoftwareIntrodução à Qualidade de Software
Introdução à Qualidade de Software
 
Modelo de Prototipação
Modelo de PrototipaçãoModelo de Prototipação
Modelo de Prototipação
 
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
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Introdução à Aprendizagem de Máquina
Introdução à Aprendizagem de MáquinaIntrodução à Aprendizagem de Máquina
Introdução à Aprendizagem de Máquina
 
Introdução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptxIntrodução ao desenvolvimento da web.pptx
Introdução ao desenvolvimento da web.pptx
 
Introdução à Análise de Sistemas
Introdução à Análise de SistemasIntrodução à Análise de Sistemas
Introdução à Análise de Sistemas
 
Ciclo de vida de software
Ciclo de vida de softwareCiclo de vida de software
Ciclo de vida de software
 

Destacado

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 ...
 

Destacado (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
 

Similar a 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
 
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
 
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
 
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARELIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWAREOs Fantasmas !
 

Similar a 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
 
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
 
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
 
DevOps e App Insights
DevOps e App InsightsDevOps e App Insights
DevOps e App Insights
 
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARELIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
LIVRO PROPRIETÁRIO - QUALIDADE DE SOFTWARE
 

Último

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 CalisthenicsDanilo Pinotti
 
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.docx2m Assessoria
 
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.docx2m Assessoria
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx2m Assessoria
 
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 exemploDanilo Pinotti
 
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.docx2m Assessoria
 
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.docx2m Assessoria
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfSamaraLunas
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuisKitota
 

Último (9)

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 - 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
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_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
 
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
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 

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.