Contr avali engenharia de software-introdução

56
1 Introdução a Engenharia de Software Matheus Souto Maior Soutomaior.matheus@gmaill .com @msouto

description

Controle e avaliação parte 1

Transcript of Contr avali engenharia de software-introdução

Page 1: Contr avali   engenharia de software-introdução

1

Introdução a Engenharia de Software

Matheus Souto Maior [email protected]

@msouto

Page 2: Contr avali   engenharia de software-introdução

Introdução à Disciplina 2

Engenharia de Software

Engenharia = “é 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”

Page 3: Contr avali   engenharia de software-introdução

Introdução à Disciplina 3

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

Page 4: Contr avali   engenharia de software-introdução

Introdução à Disciplina 4

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

Page 5: Contr avali   engenharia de software-introdução

Introdução à Disciplina 5

problemas “da época”

Produtos de Software de baixa qualidade e sem atender requisitos e

Projetos realizados acima do orçamento e do tempo previsto e vez por outra ingerenciáveis

Page 6: Contr avali   engenharia de software-introdução

6

A Crise de Software

Page 7: Contr avali   engenharia de software-introdução

Introdução à Disciplina 7

"[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

Page 8: Contr avali   engenharia de software-introdução

Introdução à Disciplina 8

A crise de Software

Page 9: Contr avali   engenharia de software-introdução

Introdução à Disciplina 9

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)

Page 10: Contr avali   engenharia de software-introdução

Introdução à Disciplina 10

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

Page 11: Contr avali   engenharia de software-introdução

Introdução à Disciplina 11

Therac-25

Equipamento 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

Page 12: Contr avali   engenharia de software-introdução

Introdução à Disciplina 12

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

Page 13: Contr avali   engenharia de software-introdução

Introdução à Disciplina 13

Ariane 5

Projeto 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

Page 14: Contr avali   engenharia de software-introdução

Introdução à Disciplina 14

Ariane 5

Causa:

Ocorreu um run time error (erro 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.

Page 15: Contr avali   engenharia de software-introdução

15

Processos para construção de Software

Page 16: Contr avali   engenharia de software-introdução

Introdução à Disciplina 16

Page 17: Contr avali   engenharia de software-introdução

Introdução à Disciplina 17

Processo de Desenvolvimento de Software

Modelo Cascata

Page 18: Contr avali   engenharia de software-introdução

Introdução à Disciplina 18

Análise de Requisitos

Entendimento das necessidades do clienteEspecificação das necessidades Linguagem mais técnica

Análise da viabilidade do escopoEstimativas de Custo e Prazo

Page 19: Contr avali   engenharia de software-introdução

Introdução à Disciplina 19

Para que “Análise de Requisitos”?

Page 20: Contr avali   engenharia de software-introdução

Introdução à Disciplina 20

Processo de Engenharia de Requisitos

Page 21: Contr avali   engenharia de software-introdução

Introdução à Disciplina 21

Gerenciamento de Requisitos

Evolução dos requisitos

Page 22: Contr avali   engenharia de software-introdução

Introdução à Disciplina 22

Gerenciamento de mudanças de requisitos

Page 23: Contr avali   engenharia de software-introdução

Introdução à Disciplina 23

Análise e Projeto

Desenho 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

Page 24: Contr avali   engenharia de software-introdução

Introdução à Disciplina 24

Arquitetura Lógica de Software

Page 25: Contr avali   engenharia de software-introdução

Introdução à Disciplina 25

Exemplo de Arquitetura Física

Page 26: Contr avali   engenharia de software-introdução

Introdução à Disciplina 26

Implementação

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

Page 27: Contr avali   engenharia de software-introdução

Introdução à Disciplina 27

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 …

Vis

ual S

tud

io.N

ET

Page 28: Contr avali   engenharia de software-introdução

Introdução à Disciplina 28

Testes

Tem como objetivo identificar erros inseridos durante a construção Testes Funcionais Testes de Performance Testes de Carga Testes de Certificação ...

Page 29: Contr avali   engenharia de software-introdução

Introdução à Disciplina 29

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

InstalaçãoTreinamentoConfiguraçãoAdaptação

Page 30: Contr avali   engenharia de software-introdução

Introdução à Disciplina 30

Processo de Desenvolvimento

Page 31: Contr avali   engenharia de software-introdução

31

Outros modelos de ciclo de vida do software

Page 32: Contr avali   engenharia de software-introdução

Introdução à Disciplina 32

Modelo de prototipação

Page 33: Contr avali   engenharia de software-introdução

Introdução à Disciplina 33

Modelo orientado a reuso

Page 34: Contr avali   engenharia de software-introdução

Introdução à Disciplina 34

Desenvolvimento incremental

Page 35: Contr avali   engenharia de software-introdução

Introdução à Disciplina 35

Modelo Espiral (evolucionário)

Page 36: Contr avali   engenharia de software-introdução

Introdução à Disciplina 36

Exercício I

Identificar todos os modelos de processos apresentados e construir um quadro comparativo.

Postar no grupo

Page 37: Contr avali   engenharia de software-introdução

37

Por que organizar o desenvolvimento de software??

Page 38: Contr avali   engenharia de software-introdução

Introdução à Disciplina 38

Windows Vista

5000 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;

Page 39: Contr avali   engenharia de software-introdução

Introdução à Disciplina 39

intuitive surgical da vinci

Page 40: Contr avali   engenharia de software-introdução

Introdução à Disciplina 40

intuitive surgical da vinci

Page 41: Contr avali   engenharia de software-introdução

Introdução à Disciplina 41

Telecomunicação e Mobilidade

Page 42: Contr avali   engenharia de software-introdução

Introdução à Disciplina 42

Indústria automotiva

Electronic Stability Program

Page 43: Contr avali   engenharia de software-introdução

Introdução à Disciplina 43

Transações Financeiras

Page 44: Contr avali   engenharia de software-introdução

44

Alguns números atuais...

Page 45: Contr avali   engenharia de software-introdução

Introdução à Disciplina 45

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

Succeeded

Failed

Challenged

Page 46: Contr avali   engenharia de software-introdução

Introdução à Disciplina 46

0

10

20

30

40

50

60

1994 1996 1998 2000 2002 2004 2006 2009

Successful

Challenged

Failed

chaos report

Page 47: Contr avali   engenharia de software-introdução

Introdução à Disciplina 47

Team Size {dev vs. test}Product

Dev Team Size

Test Team Size

NT 3.1 (6->) 200 140

NT 3.5 300 230

NT 3.51 450 325

NT 4.0 800 700

Win2k 1400 1700

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

Page 48: Contr avali   engenharia de software-introdução

Introdução à Disciplina 48

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

Page 49: Contr avali   engenharia de software-introdução

Introdução à Disciplina 49

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

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

Page 50: Contr avali   engenharia de software-introdução

50

Mas nem tudo está perdido....

Page 51: Contr avali   engenharia de software-introdução

Introdução à Disciplina 51

Corpo da Engenharia de Software (SWEBOK)

Page 52: Contr avali   engenharia de software-introdução

Introdução à Disciplina 52

Corpo da Engenharia de Software (SWEBOK)

Page 53: Contr avali   engenharia de software-introdução

Introdução à Disciplina 53

CMMi – Capability Maturity Model Integration

Page 54: Contr avali   engenharia de software-introdução

Introdução à Disciplina 54

Em OtimizaçãoEm Otimização

Gerenciado QuantitativamenteGerenciado Quantitativamente

DefinidoDefinido

Largamente DefinidoLargamente Definido

Parcialmente DefinidoParcialmente Definido

GerenciadoGerenciado

Parcialmente GerenciadoParcialmente Gerenciado

AA

BB

CC

DD

EE

FF

G

2

3

4

5

Relacionamentocom o CMMI

MR-MPS

Page 55: Contr avali   engenharia de software-introdução

Introdução à Disciplina 55

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

Page 56: Contr avali   engenharia de software-introdução

56

Obrigado!

Matheus Souto Maior [email protected]

@msouto