engenharia de software professora lucélia. ieee computer society aproximadamente 100.000 membros....

32
Engenharia de Software Professora Lucélia

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Engenharia de Software

Professora Lucélia

Page 2: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

IEEE Computer Society• Aproximadamente 100.000 membros.• Organização de suporte aos profissionais da computação, provendo

informação técnica, serviços a comunidade e personalizados.• Fundada em 1946.• A maior das 39 sociedades do IEEE.• Dedicada ao avanço teórico, prático e aplicação de computadores e

tecnologia da informação.• Aproximadamente 40% dos membros vive e trabalha fora dos EUA,

fomentando a comunicação internacional, a cooperação e a troca de informação.

• Tem um escritório central de serviços em Tokyo, Japão; um escritório de publicação em Los Alamitos, California; e a sede em Washington.

Page 3: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

The Guide to the SWEBOK

• Não é o conhecimento em si, mas uma síntese e uma referência ao material disponível em diversas publicações que se complementam para formar o corpo de conhecimento.

• Descreve que parte do conhecimento é geralmente aceita pela comunidade profissional.

• Organiza o conhecimento.• Provê acesso por tópicos ao conhecimento.• Patrocinado por empresas como: Rational (IBM), SAP, Boeing,

entre outras.

Page 4: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Objetivos1. Promover uma visão consistente da engenharia de

software em todo o mundo (500 revisores de 42 países na fase Stoneman, versão Trial, e 120 revisores de 21 países na fase Ironman, versão 2004).

2. Definir as fronteiras de atuação da engenharia de software e as áreas de interseção com outras disciplinas como: engenharia da computação, ciência da computação, gestão de negócios, matemática, gerenciamento de projetos, gestão da qualidade, ergonomia (acessibilidade e usabilidade) e engenharia de sistemas (SWEBOK, capítulo 12).

Page 5: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Objetivos (Continuação)3. Caracterizar o conteúdo da disciplina engenharia de

software, subdividindo-o hierarquicamente em áreas de conhecimento (o Apêndice A descreve como as AC devem ser organizadas).

4. Prover acesso por tópicos a base de conhecimento da engenharia de software (material de referência e matriz em cada AC).

5. Fornecer um alicerce para desenvolvimento do currículo, certificação individual e licenciamento de material (conhecimento geralmente aceito: aplica-se a maioria dos projetos e das equipes pelo consenso e pela efetividade).

Page 6: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Uma Crise no horizonte

• A industria de Software tem tido uma “crise” que a acompanha há quase 30 anos.

• Problemas não se limitam ao software que não funciona adequadamente, mas abrange:– desenvolvimento, testes, manutenção,

suprimento, etc.

Page 7: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Therac-25

• Equipamento de Radioterapia.• Entre 1985 e 1987 se envolveu em 6

acidentes, causando mortes por overdoses de radiação.

• Software foi adaptado de uma antecessora, Therac-6:– falhas por falta de testes integrados– falta de documentação

• página 382 do Pfleeger.

Page 8: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Denver International Airport

• Custo do projeto: US$ 4.9 bilhões– 100 mil passageiros por dia– 1.200 vôos– 53 milhas quadradas– 94 portões de embarque e desembarque– 6 pistas de pouso / decolagem

Page 9: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Denver International Airport

• Problemas:– Erros no sistema automático de transporte de bagagens:– Atraso na abertura do aeroporto com custo total estimado em

US$360 Milhões• 86 milhões para consertar o sistema.

Page 10: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Ariane 5

Page 11: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Ariane 5

• Projeto da Agência Espacial Européia que custou:– 10 anos.– US$ 8 Bilhões.

• Capacidade 6 toneladas.• Garante supremacia européia

no espaço.

Page 12: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Vôo inaugural em 4/junho/1996

Page 13: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Resultado

• Explosão 40 segundos após a decolagem.

• Destruição do foguete e carga avaliada em US$ 500 milhões.

Page 14: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

O que aconteceu?

• Fato: o veículo detonou suas cargas explosivas de autodestruição e explodiu no ar. Por que?

• Porque ele estava se quebrando devido às forças aerodinâmicas. Mas por que?

• O foguete tinha perdido o controle de direção (atitude). O que causou isso?

• Os computadores principal e back-up deram shut-down ao mesmo tempo

Page 15: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

O que aconteceu? (II)

• Por que o Shut-down? Ocorrera um run time error (out of range, overflow , ou outro) e ambos computadores se desligaram. De onde veio este erro?

• Um programa que convertia um valor em ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida.

Page 16: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Especificamente: O que faltou?strict precondition 1: { Set."x"=FLPT and Set."y"=INT16

and -32768 <= x <= +32767}

program code: y := int(x);postcondition: {Set."x"=FLPT and Set."y"=INT16 and y=int(x)}

Page 17: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Ironia...

• O resultado desta conversão não era mais necessário após a decolagem...

Page 18: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

No começo da década de 80, a Receita Federal dos Estados Unidos (IRS) contratou a empresa Sperry Corporation para construir um sistema automatizado de processamento de formulários de impostos federais. De acordo com o jornal americano Washington Post, “o sistema se mostrou inadequado à carga de trabalho, custou cerca de duas vezes o esperado e deve ser logo substituído” (Sawyer, 1985)

Professora: Lucélia Oliveira

Receita Federal dos Estados Unidos

Page 19: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Em 1985, foi necessário adicionar US$ 90 milhões aos US$ 103 milhões que já haviam sido pagos pelos equipamentos da Sperry. Além disso o problema acarretou o atraso das restituições da IRS aos contribuintes, o que forçou a IRS a pagar US$ 40,2 milhões em juros e US$ 23 milhões em horas extras para os funcionários que tentaram compensar o estrago.

Professora: Lucélia Oliveira

(continuação)

Page 20: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Em 1996, a situação não havia melhorado.O jornal americano Los Angeles Times publicou, em 29 de março daquele ano, que ainda não havia nenhum plano para a modernização dos computadores da IRS, somente um relatório com 6.000 páginas.O congressista americano Jim Lighfoot chamou o projeto de “um fiasco de quatro bilhões de dólares que está afundando por falta de planejamento ”

Professora: Lucélia Oliveira

(continuação)

Page 21: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Quais são os problemas?

• A sofisticação do software ultrapassou nossa capacidade de construção.

• Nossa capacidade de construir programas não acompanha a demanda por novos programas.

• Nossa capacidade de manter programas é ameaçada por projetos ruins.

Page 22: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

• Em 1994, uma pesquisa realizada pelo The Standish Group demonstrava que nos Estados Unidos apenas cerca de 19% do total de projetos de software iniciados eram terminados com sucesso.

• 52,2% dos projetos eram concluídos com atrasos e acima dos orçamentos.

• 31,1% eram cancelados.

Professora: Lucélia Oliveira

Importância do Planejamento

Page 23: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Perguntas que a Engenharia de Software quer responder:

• Porque demora tanto para concluir um projeto (não cumprimos prazos)?

• Porque custa tanto (uma ordem de magnitude a mais)?

• Porque não descobrimos os erros antes de entregar o software ao cliente?

• Porque temos dificuldade de medir o progresso enquanto o software está sendo desenvolvido?

Page 24: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Causas óbvias

• Não dedicamos tempo para coletar dados sobre o desenvolvimento do software - resulta em estimativas “a olho”.

• Comunicação entre o cliente e o desenvolvedor é muito fraca.

• Falta de testes sistemáticos e completos.

Page 25: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Causas menos óbvias

• O Software é desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico.

• Profissionais recebem pouco treinamento formal.

• Falta investimento (em ES).• Falta métodos e automação.

Page 26: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Mitos do Software - Administrativos

• Um manual oferece tudo que se precisa saber.• Computadores de última geração solucionam

problemas de desenvolvimento.• Se estamos atrasados, basta adicionar

programadores e tirar o atraso (chamado “conceito de hordas de mongois”).

Page 27: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Mitos do Software - do Cliente• Uma declaração geral é suficiente para

começar a escrever programas.• Mudanças podem ser facilmente acomodadas

em um projeto.

Page 28: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

Mitos do Software - do Profissional

• Um programa está terminado ao funcionar.• Quanto mais cedo escrever o código, mais

rápido terminarei o programa.• Só posso avaliar a qualidade de um programa

em funcionamento.• A única coisa a ser entregue em um projeto é

o programa funcionando.

Page 29: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

• Segundo Pfleeger, o custo para a correção de um erro cometido em um projeto durante a etapa inicial da análise é um décimo do custo para corrigir um erro semelhante depois que o sistema foi entregue ao cliente.

• Metade dos custos de correção de defeitos encontrados durante a fase de testes e manutenção vem de erros cometidos no início de vida do sistema.

Professora: Lucélia Oliveira

Quanto mais tarde a detecção de um erro, mais cara é a sua correção!

Page 30: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

• Muitos estudantes estão acostumados a desenvolver e testar o seu próprio software;

• Seus testes podem ser menos efetivos do que pensam;

• Fagan, estudou o modo como os defeitos têm sido detectados: ele descobriu que executar um programa com dados de teste revela somente cerca de um quinto dos defeitos cometidos durante o desenvolvimento do sistema.

Professora: Lucélia Oliveira

Sugestão para detecção de erros

Page 31: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

• O processo de revisão, realizado por colegas que mutuamente examinam e comentam o código e o projeto que eles criam, revela quatro dos cinco defeitos restantes (Fagan, 1986)

• Então, a qualidade do software pode aumentar consideravelmente somente com a revisão e dos trabalhos pelos colegas.

Professora: Lucélia Oliveira

Sugestão para detecção de erros(continuação)

Page 32: Engenharia de Software Professora Lucélia. IEEE Computer Society Aproximadamente 100.000 membros. Organização de suporte aos profissionais da computação,

• Pense como era a vida das pessoas antes dos processadores de texto, das planilhas eletrônicas, do correio eletrônico, da telefonia sofisticada.

• Os produtos de softwares têm apoiado avanços na medicina, na agricultura, nos transportes, etc…

• Além de nos permitir realizar as coisas nunca feitas antes, como microcirurgias, educação, multimídia e robótica.

Professora: Lucélia Oliveira

Qual tem sido o grau de sucesso dos sistemas atuais?