1 Introdução a Engenharia de Software Gibeon Aquino.

Post on 07-Apr-2016

217 views 0 download

Transcript of 1 Introdução a Engenharia de Software Gibeon Aquino.

1

Introdução a Engenharia de Software

Gibeon Aquino

2Introdução à Disciplina

Engenharia de SoftwareEngenharia = “é a atividade em que os

conhecimentos científicos são empregados para resolver problemas práticos”

Engenharia de Software = “é a atividade em que os [conhecimentos científicos] são empregados para resolver problemas práticos relacionados à construção de software”

3Introdução à Disciplina

Objetivo

“Um dos objetivos básicos da Engenharia de Software é transformar a criação de sistemas software realizada de maneira artística, indisciplinada e pouco entendível para uma forma devidamente controlada, quantificada e previsível.”

4Introdução à Disciplina

Origem...em 1968, especialistas se reúnem em Garmisch, para discutir problemas de

desenvolvimento de software

http://homepages.cs.ncl.ac.uk/brian.randell/NATO/index.html

5Introdução à Disciplina

problemas “da época”Produtos de Software de baixa qualidade e sem atender requisitos eProjetos realizados acima do orçamento e do tempo previsto e vez por outra ingerenciáveis

6

A Crise de Software

7Introdução à Disciplina

"[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem." Edsger Dijkstra: The Humble Programmer

8Introdução à Disciplina

A crise de Software

9Introdução à Disciplina

O Caso do DABHS (Denver Airport Baggage Handling System)

Características: 4000 Telecars 21 milhas de trilhos 5000 Olhos Eletrônicos, 400 Receptores de Rádio, 56

Scanners, 100 computadores em redeEstava planejado que o Aeroporto de Denver abriria em 31 de Outubro de 1993

Problemas no desenvolvimento do DABHS fizeram que o aeroporto abrisse em 28 de Fevereiro de 1995

Prejuízos devido ao atraso: Capacidade do sistema foi drasticamente diminuída Aproximadamente $ 500.000.000 ($1.1M por

dia)

10Introdução à Disciplina

O Caso da Integração SABRE

SABRE (Semi-Automated Business Research Environment ) Sistema de Reserva da American Airlines Terminado no fim da década de 50 Construído pela IBM $2 bilhões

Tentativa de Integração com sistemas de reserva de carros e hotel Em 1992 o projeto foi cancelado $165.000.000 jogados fora

11Introdução à Disciplina

Therac-25Equipamento de Radioterapia, controlado por computador criada pela empresa AECL (Atomic Energy of Canada Limited Muito moderna para sua época

Entre 1985 e 1987 se envolveu 6 em acidentes 5 mortes por overdoses de radiação

12Introdução à Disciplina

Therac-25Causas: O código do software não havia sido

revisado/testado independentemente; O projeto do software não havia sido

documentado com detalhes suficientes para permitir o entendimento dos erros

A documentação do sistema fornecida aos usuários não explicava o significado dos códigos de erro que a máquina retornava

http://pt.wikipedia.org/wiki/Therac-25

13Introdução à Disciplina

Ariane 5Projeto da Agência Espacial Européia 10 anos de desenvolvimento US$ 8 Bilhões

Carga avaliada em US$500 Milhões

Em 4 de junho de 1996, menos de um minuto após o lançamento o foguete se autodestruiu

14Introdução à Disciplina

Ariane 5Causa: Ocorreu um run time error (erro de de

execução) e ambos computadores se desligaram.

Um programa que convertia um valor de ponto flutuante para um inteiro de 16 bits recebeu como entrada um valor que estava fora da faixa permitida. Inclusive o resultado da conversão não era mais

necessário após a decolagem.

15

Processos para construção de Software

16Introdução à Disciplina

17Introdução à Disciplina

Processo de Desenvolvimento de Software

Modelo Cascata

18Introdução à Disciplina

Análise de RequisitosEntendimento das necessidades do clienteEspecificação das necessidades Linguagem mais técnicaAnálise da viabilidade do escopoEstimativas de Custo e Prazo

19Introdução à Disciplina

Para que “Análise de Requisitos”?

20Introdução à Disciplina

Análise e ProjetoDesenho lógico da soluçãoTomada de decisão sobre coisas como Linguagem de Programação Plataforma de Desenvolvimento Integração com outros sistemas Detalhes técnicos

21Introdução à Disciplina

Arquitetura Lógica de Software

22Introdução à Disciplina

Exemplo de Arquitetura Física

23Introdução à Disciplina

ImplementaçãoCodificação do sistemaIntegração dos módulosTestes isoladosOtimização de módulos já construídos

24Introdução à Disciplina

Tecnologias de desenvolvimento de Software

J2ME J2SE J2EE

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# JScript …

Windows COM+ Services

Common Language Runtime

Base Class Library

ADO.NET and XML

ASP.NET Windows Forms

Common Language Specification

VB C++ C# JScript …

Visual Studio.NET

25Introdução à Disciplina

TestesTem como objetivo identificar erros inseridos durante a construção Testes Funcionais Testes de Performance Testes de Estresse Testes de Carga Testes de Compatibilidade ...

26Introdução à Disciplina

ImplantaçãoTem como objetivo a instalação do software no ambiente final de execução

InstalaçãoTreinamentoConfiguraçãoAdaptação

27Introdução à Disciplina

Processo de Desenvolvimento

28

Por que organizar o desenvolvimento de software??

29Introdução à Disciplina

30Introdução à Disciplina

Windows Vista5000 desenvolvedores (sem incluir pessoal não-técnico);40 milhões de linhas de código;16 milhões de linhas de código somente nos últimos 3 anos;Versões compiláveis todos os dias;Testes de regressão;Intervalo de 3 dias para um mudança submetida aparecer no executável;~1.7 pessoas testando para cada programador;Precisa ter compatibilidade com versões anteriores;Precisa ser instalado em milhares de configurações diferentes;

31Introdução à Disciplina

intuitive surgical da vinci

32Introdução à Disciplina

intuitive surgical da vinci

33Introdução à Disciplina

Telecomunicação e Mobilidade

34Introdução à Disciplina

Indústria automotiva

Electronic Stability Program

35Introdução à Disciplina

Transações Financeiras

36

Alguns números atuais...

37Introdução à Disciplina

Quanto melhoramos?

Chaos Report

16%

27%

26%

28%

26%

29%

31%

40%

28%

23%

28%

18%

53%

33%

46%

49%

46%

53%

0% 20% 40% 60% 80% 100%

1994

1996

1998

2000

2002

2004

SucceededFailedChallenged

38Introdução à Disciplina

Team Size {dev vs. test}Product

Dev Team Size

Test Team Size

NT 3.1 (6->) 200 140NT 3.5 300 230NT 3.51 450 325NT 4.0 800 700Win2k 1400 1700

o século de software...ou o século dos problemas de software? – Silvio Meira

39Introdução à Disciplina

Defect Rates Data

ProductandTeam Size

Defects:Per yearPer Dev

Time to Fix:Per Defect

Defects:Per Day

TotalDefect Fix Time

NT 3.1, 200 2 20 minutes

1 20 minutes

NT 3.5, 300 2 25 minutes

1.6 41 minutes

NT 3.51, 450 2 30 minutes

2.5 1.2 hours

NT 4.0, 800 3 35 minutes

6.6 3.8 hours

Win2k, 1400 4 40 minutes

15.3 10.2 hours

With serialized development: Good, small teams operate efficiently Even the absolute best large teams are always

broken, and always serialized

o século de software...ou o século dos problemas de software? – Silvio Meira

40Introdução à Disciplina

Mas Engenharia de Software não é só técnica...

“The book demonstrates that the major issues of software development are human, not technical.”

41

Mas nem tudo está perdido....

42Introdução à Disciplina

Corpo da Engenharia de Software (SWEBOK)

43Introdução à Disciplina

Corpo da Engenharia de Software (SWEBOK)

44Introdução à Disciplina

CMMi – Capability Maturity Model Integration

45Introdução à Disciplina

PMBokCorpo de conhecimento da Gestão de ProjetosTem como objetivo divulgar e padronizar as melhores práticas de gestão de projetos

46Introdução à Disciplina

ReferênciasEngenharia de Software - 8ª Edição 2007 - Ian Sommerville

Engenharia de Software, Roger Pressman