topico 1 - introdução á engenharia de software

30
Engenharia de Software Prof. Marcos Vinícius G. Vieira, Prof. Marcos Vinícius G. Vieira, MSc MSc 2. Semestre/2014 2. Semestre/2014

Upload: vinicius-abrantes-oliveira

Post on 17-Jan-2016

14 views

Category:

Documents


0 download

DESCRIPTION

Introdução á Engenharia de Software

TRANSCRIPT

Page 1: Topico 1 - Introdução á Engenharia de Software

Engenharia de Software

Prof. Marcos Vinícius G. Vieira, Prof. Marcos Vinícius G. Vieira,

MScMSc

2. Semestre/20142. Semestre/2014

Page 2: Topico 1 - Introdução á Engenharia de Software

Tópicos

1- Introdução à Engenharia de Software1- Introdução à Engenharia de Software

Page 3: Topico 1 - Introdução á Engenharia de Software

Software

1- Instruções1- Instruções

quando executadas produzem a função e o desempenho desejados

2 - Estruturas de Dados2 - Estruturas de Dadospossibilitam que os programas manipulem adequadamente a informação

3 - Documentos3 - Documentos

descrevem a operação e o uso dos programas

Page 4: Topico 1 - Introdução á Engenharia de Software

Características do Software

1. desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico

2. não se desgasta mas se deteriora

3. a maioria é feita sob medida em vez de ser montada a partir de componentes existentes

Page 5: Topico 1 - Introdução á Engenharia de Software

Curva de falhas para o Hardware

tempo

“desgaste”“mortalidade infantil”

índice de

falhas

Page 6: Topico 1 - Introdução á Engenharia de Software

Curva de falhas do Software

índice de falhas

mudançamudança

curva realcurva real

curva idealizada

tempo

Page 7: Topico 1 - Introdução á Engenharia de Software

Aplicações do Software

BBÁÁSSIICCOO programas de apoio a outros programas

DDEE TTEEMMPPOO RREEAALL monitora, analisa e controla eventos domundo real

CCOOMMEERRCCIIAALL operações comerciais e tomadas dedecisões administrativas

CCIIEENNTTÍÍFFIICCOO EE DDEEEENNGGEENNHHAARRIIAA

algoritmos de processamento de números

EEMMBBUUTTIIDDOO controla produtos e sistemas de mercadosindustriais e de consumo

DDEE CCOOMMPPUUTTAADDOORRPPEESSSSOOAALL

processamento de textos, planilhaseletrônicas, diversões, etc.

DDEE IINNTTEELLIIGGÊÊNNCCIIAAAARRTTIIFFIICCIIAALL

algoritmos não numéricos para resolverproblemas que não sejam favoráveis àcomputação ou à análise direta

Page 8: Topico 1 - Introdução á Engenharia de Software

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

Page 9: Topico 1 - Introdução á Engenharia de Software

Evolução do Software

(1965 - 1975) Multiprogramação e sistemas multiusuários Técnicas interativas Sistemas de tempo real 1a geração de SGBD’s Produto de software - software houses Bibliotecas de Software Cresce no de sistemas baseado em computador Manutenção quase impossível

..... CRISE DE SOFTWARE ..... CRISE DE SOFTWARE

Page 10: Topico 1 - Introdução á Engenharia de Software

Evolução do Software

(1975 - hoje) Sistemas distribuídos Redes locais e globais Uso generalizado de microprocessadores -

produtos inteligentes Hardware de baixo custo Impacto de consumo

..... CRISE DE SOFTWARE ..... CRISE DE SOFTWARE (aflição crônica???)(aflição crônica???)

Page 11: Topico 1 - Introdução á Engenharia de Software

Evolução do Software

(Quarta era do software: atualidadeatualidade) Tecnologias orientadas o objetos Sistemas especialistas e software de inteligência

artificial usados na prática Software de rede neural artificial Computação Paralela Internet

..... CRISE DE SOFTWARE ..... CRISE DE SOFTWARE (aflição crônica???)(aflição crônica???)

Page 12: Topico 1 - Introdução á Engenharia de Software

Crise de Software

Refere-se a um conjunto de problemas encontrados no desenvolvimento de software:

(1) As estimativas de prazo e de custo freqüentemente As estimativas de prazo e de custo freqüentemente são imprecisassã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”

Page 13: Topico 1 - Introdução á Engenharia de Software

Crise de Software

(2) A produtividade das pessoas da área de software A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviçosnão tem acompanhado a demanda por seus serviços

“Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente”

Page 14: Topico 1 - Introdução á Engenharia de Software

Crise de Software

(3) A qualidade de software às vezes é menos que A qualidade de software às vezes é menos que adequadaadequada

Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software

(4) O software existente é muito difícil de manterO 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

Page 15: Topico 1 - Introdução á Engenharia de Software

Crise de Software

estimativas de prazo e de custo

produtividade das pessoas

qualidade de software

software difícil de manter

Page 16: Topico 1 - Introdução á Engenharia de Software

Causas dos problemas associados à Crise de Software

1. próprio caráter do Software1. próprio caráter do SoftwareO software é um elemento de sistema lógico e não

físico (produto intangível) 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!!!O software não se desgasta, mas se deteriora!!!

Page 17: Topico 1 - Introdução á Engenharia de Software

2. falhas das pessoas responsáveis pelo 2. falhas das pessoas responsáveis pelo desenvolvimento de Softwaredesenvolvimento de Software

Gerentes sem nenhum background em software

Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software

Resistência a mudanças.

Causas dos problemas associados à Causas dos problemas associados à

Crise de SoftwareCrise de Software

Page 18: Topico 1 - Introdução á Engenharia de Software

3. mitos do Software3. mitos do Software

propagaram desinformação e confusão

administrativosadministrativos

clientecliente

profissionalprofissional

Causas dos problemas associados à Causas dos problemas associados à

Crise de SoftwareCrise de Software

Page 19: Topico 1 - Introdução á Engenharia de Software

Mitos do Software (administrativos)

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: Será que o manual é usado? Os profissionais sabem que ele existe? Ele reflete a prática moderna de desenvolvimento de software? Ele é completo?

Realidade: Será que o manual é usado? Os profissionais sabem que ele existe? Ele reflete a prática moderna de desenvolvimento de software? Ele é completo?

Page 20: Topico 1 - Introdução á Engenharia de Software

Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal lhes compramos os mais novos computadores.

Mitos do Software Mitos do Software (administrativos)(administrativos)

Realidade: É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade.

Realidade: É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade.

Page 21: Topico 1 - Introdução á Engenharia de Software

Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso.

Mitos do Software Mitos do Software (administrativos)(administrativos)

Realidade:

O desenvolvimento de software não é um processo mecânico igual à manufatura.

Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

Realidade:

O desenvolvimento de software não é um processo mecânico igual à manufatura.

Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas, mas somente de uma forma planejada.

Page 22: Topico 1 - Introdução á Engenharia de Software

Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

Mitos do Software Mitos do Software (cliente)(cliente)

Realidade:

Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software.

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

Realidade:

Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software.

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

Page 23: Topico 1 - Introdução á Engenharia de Software

Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

Mitos do Software Mitos do Software (cliente)(cliente)

Realidade:

Uma mudança, quando solicitada tardiamente num projeto, pode ser maior do que mais do que uma ordem de magnitude mais dispendiosa do que a mesma mudança solicitada nas fases iniciais.

Realidade:

Uma mudança, quando solicitada tardiamente num projeto, pode ser maior do que mais do que uma ordem de magnitude mais dispendiosa do que a mesma mudança solicitada nas fases iniciais.

Page 24: Topico 1 - Introdução á Engenharia de Software

magnitude das mudanças

FASES CUSTO DE MANUTENÇÃO

DEFINIÇÃO 1 xDESENVOLVIMENTO 1.5 - 6xMANUTENÇÃO 60 - 100x

Page 25: Topico 1 - Introdução á Engenharia de Software

Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

Mitos do Software Mitos do Software (profissional)(profissional)

Realidade:

Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente.

Realidade:

Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente.

Page 26: Topico 1 - Introdução á Engenharia de Software

Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

Mitos do Software Mitos do Software (profissional)(profissional)

Realidade:

Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.

Realidade:

Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.

Page 27: Topico 1 - Introdução á Engenharia de Software

Preocupação: Sistematizar o processo de

criação e manutenção de software.

Page 28: Topico 1 - Introdução á Engenharia de Software

Engenharia de Software Definições

Boehm: Engenharia de software envolve a aplicação prática de conhecimento científico para o projeto e construção de programas de computador e a documentação associada necessária para desenvolvê-los, operá-los e mantê-los.

Page 29: Topico 1 - Introdução á Engenharia de Software

Engenharia de Software Definições

IEEE Standard Glossary of Software Engineering terminology: Engenharia de software é uma abordagem sistemática para o desenvolvimento, operação, manutenção de software

Software: programas de computador, procedimentos, regras, documentação possivelmente associada, e dados sobre sua operação.

Page 30: Topico 1 - Introdução á Engenharia de Software

Engenharia de Software Definições

Fairley: Engenharia de software é a disciplina tecnologica e gerencial preocupada com a produção sistemática e manutenção de produtos de software que são desenvolvidos e modificados no prazo estabelecido e dentro das estimativas de custo.