Você está na página 1de 17

Aula 1.

1 – Conceitos Básicos de

Engenharia de Software

Crise de Software

Profa. Elaine B. Figueiredo


Profa. MSc. Priscila Facciolli
Profa. MSc. Roberta Bento
Erros de Engenharia
Engenharia de Software
• "Engenharia de Software é a criação e a
utilização de sólidos princípios de engenharia a
fim de obter software de maneira econômica,
que seja confiável e que trabalhe eficientemente
em máquinas reais“
Friedrich Ludwig Bauer
Engenharia de Software
Áreas de Conhecimento
• Requisitos de Software
• Projeto de Software
• Construção de Software
• Teste de Software
• Manutenção de Software
• Gerência de Configuração de Software
• Gerência da Engenharia de Software
• Processo de Engenharia de Software
• Ferramentas e Métodos da Engenharia de Software
• Qualidade de Software
Dados
Standish Group Report
• Objeto de Estudo : 50 mil projetos analisados em 2016
• Fonte => https://www.infoq.com/articles/standish-chaos-2015

• 19% dos projetos falham


• 52% dos projetos são cancelados
• Taxa de Sucesso => 29%;
Dados
Dados mais atuais de Chaos Report

Indicadores do Chaos Report de 2016 sobre projetos de software


8

Evolução do Software
(1950 - 1965)
 O hardware sofreu contínuas mudanças
 O software era uma arte "secundária" para a qual havia poucos métodos
sistemáticos
 O hardware era de propósito geral
 O software era específico para cada aplicação
 Não havia documentação

(1965 - 1975)
 Multiprogramação e sistemas multiusuários
 Técnicas interativas
 Sistemas de tempo real
 1a geração de SGBD’s
 Produto de sofware - software houses
 Bibliotecas de Software
9

Evolução do Software
(1965 - 1975)
 Cresce o número de sistemas baseado em computador
 Manutenção quase impossível

(1975 - hoje)
 Sistemas distribuídos
 Redes locais e globais
 Uso generalizado de microprocessadores - produtos inteligentes
 Hardware de baixo custo
 Impacto de consumo
10

Evolução do Software
(Quarta era do software de computador)
 Tecnologias orientadas o objetos
 Sistemas especialistas e software de inteligência artificial usados na
prática
 Software de rede neural artificial
 Computação Paralela

Problemas que ainda persistem


 A necessidade por sofisticação do software ultrapassou nossa
capacidade de construir softwares que extraiam todo o potencial do
hardware
 A capacidade de construir novos softwares não acompanha a
demanda por novos programas
 A capacidade de manter programas é atrapalhada por projetos ruins
e inadequados
11

Evolução do Software
AFLIÇÃO CRÔNICA
(1965 - 1975)
Cresce o número de sistemas baseado em
computador
Manutenção quase impossível
CRISE DE SOFTWARE
Refere-se a um conjunto de
problemas encontrados no
..... CRISE DE SOFTWARE
desenvolvimento de
software
12

Crise de Software - problemas


1- As estimativas de prazo e de custo freqüentemente são
imprecisas
▫ “ Não dedicamos tempo para coletar dados sobre o processo
de desenvolvimento de software”
▫ “Sem nenhuma indicação sólida de produtividade, não
podemos avaliar com precisão a eficácia de novas
ferramentas, métodos ou padrões”
2- Insatisfação do cliente com o sistema concluído
▫ “Os projetos de desenvolvimento de software normalmente
são efetuados apenas com um vago indício das exigências
do cliente”
13

Crise de Software - problemas


3- A qualidade de software às vezes é menos que adequada

▫ Só recentemente começam a surgir conceitos quantitativos


sólidos de garantia de qualidade de software
4- O software existente é muito difícil de manter

▫ A tarefa de manutenção devora o orçamento destinado ao


software
▫ A facilidade de manutenção não foi enfatizada como um
critério importante
14

Causas dos problemas associados à


crise de software
1- PRÓPRIO CARÁTER DO SOFTWARE
O software é um elemento de sistema lógico e não físico.
Conseqüentemente o sucesso é medido pela qualidade de uma
única entidade e não pela qualidade de muitas entidades
manufaturadas
O software não se desgasta, mas se deteriora

2- FALHAS DAS PESSOAS RESPONSÁVEIS PELO


DESENVOLVIMENTO DE SOFTWARE
• Gerentes sem nenhuma experiência em software
• Profissionais da área de software têm pouco treinamento formal
em novas técnicas para o desenvolvimento de software
• Resistência a mudanças
Quais são os custos da engenharia de software?

• Aproximadamente 60% dos custos são custos de


desenvolvimento e 40% são custos de testes.
▫ Para software sob encomenda, os custos de evolução
normalmente excedem de desenvolvimento.
• Os custos variam dependendo do tipo de sistema
que está sendo desenvolvido e dos requisitos de
atributos de sistema, tais como desempenho e
confiabilidade.
• A distribuição de custos depende do modelo de
desenvolvimento que é usado.
Mitos
• Já temos manual repleto de padrões e procedimentos
 Pode existir, mas é utilizado ?

• Se estamos atrasados no Prazo, podemos adicionar mais


programadores
 Software não é manufatura

• O Cliente acha que uma definição (via e-mail ou telefone) é


suficiente para se começar a escrever programas
 Uma definição inicial ruim é a principal causa do fracasso

• Os requisitos do projeto modificam-se continuamente, mas a


mudanças podem ser facilmente acomodadas, porque o
software é flexível
 Os requisitos modificam, mas o impacto das mudanças varia...
é preciso avaliar o impacto de cada solicitação
Referências
• Pressman, Roger S. Engenharia de Software. 6.ed. - Rio de
Janeiro: McGraw-Hill, 2006 (capítulo 1)
• Sommerville, I. Engenharia de Software. 8.ed. – São Paulo :
Addison-Wesley, 2007 (capítulos 1 e 2)
• Standish Group. Chaos summary 2009. Relatório técnico,
Standish Group, Boston, Massachusetts, 2009.

Você também pode gostar