engenharia de software e web, modelo john december

23
ENGENHARIA DE SOFTWARE E WEB

Upload: anibal-a-matias-jr

Post on 16-Apr-2017

143 views

Category:

Internet


8 download

TRANSCRIPT

Page 1: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

Page 2: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• SOFTWARE• Em um sistema computacional, o conjunto dos componentes

que não fazem parte do equipamento físico propriamente dito e que incluem as instruções e programas (e os dados a eles associados) empregados durante a utilização do sistema

• Algoritmos escritos numa linguagem para serem executados em alguma máquina a fim de resolver algum problema

• Software: produto ou serviço?• Hoje é um PRODUTO com serviços agregados

O software é sempre um texto escrito numa linguagem

Especificação textual

DesenvolvimentoDesenvolvimentoPrograma em linguagem de

máquinacombinação de

caracteres quaisquercombinação de zeros

e uns

Page 3: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• ENGENHARIA• Arte de aplicar conhecimentos científicos e empíricos e certas

habilitações específicas à criação de estruturas, dispositivos e processos que se utilizam para converter recursos naturais em formas adequadas ao atendimento das necessidades humanas

• Uma forma disciplinada de tratar de determinado assunto ou problema

• Engenharia de software: Uma forma disciplinada de tratar o software no que tange ao seu ciclo de vida e os problemas a ele associados

Page 4: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• ENGENHARIA DE SOFTWARE

• Prática industrial: operativa• Disciplina acadêmica: Normativa• Evolução:

• O Departamento de Defesa norte-americano (DoD) necessitava de sistemas de tempo real – radares e computadores

• Surgiram os Bancos de Dados• Necessidade de comunicação e

compartilhamento forçaram o surgimento de redes de computadores

• Havia necessidade de computadores tolerantes a falhas

• Essa abordagem não foi adequada• Membros sairam IBM, que fez o 1o.

Sistema de reserva de passagens aéreas

• Parceiros para investir: Sistema financeiro COBOL

Page 5: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• COMPLEXIDADE• Software é um elemento complexo

• Que abrange ou encerra muitos elementos ou partes • Observável sob diferentes aspectos • Confuso, complicado, intricado

• Natureza do problema• Necessidades infinitas (novas funções, mudanças no projeto, etc.)• Recursos finitos (tempo, dinheiro, pessoas, etc.)

• Crise do Software (Presmann)• Acrescentar pessoas, não acelera proporcionalmente o processo• Prazos, custos, qualidade• Evolução no tratamento do software:

Anos 60 Anos 70 Anos 80 Anos 90 XXI

Inicia eng. software

metodologia custos qualidade descartável?

Page 6: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• PARADIGMAS:• (Weinberg – 89)

• Curar programas doentes ou produzir programas sãos?• Eliminar erros do produto ou investir no processo que o isente

de erros?

• DEFINIÇÃO DE ENGENHARIA DE SOFTWARE DO IEEE

• “A aplicação de uma abordagem quantificável , sistemática e disciplinada ao desenvolvimento, operação e manutenção de software”

Page 7: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• RISCOS ENVOLVIDOS• SAÚDE (VIDA)• REDES DE COMUNICAÇÃO (ECONÔMICO)• TRÁFEGO (VIDA, ECONÔMICO)• SISTEMAS COMERCIAIS (TEMPO/ESFORÇO E PORTANTO

ECONÔMICO)fdfdf

fdfdf fdfdf

fdfdf

fdfdf fdfdf

(erro)(defeito)

(falha)

1+1=3

(acidente)

Page 8: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• EXEMPLOS DE DESASTRES POR SOFTWARE:

• Patriot• 28 soldados morreram (erro de

ponto flutuante)• Israel detectou o problema,

mas sem condições de distribuir correção (guerra)

• Um “RE-START” ajudaria

• Ariane 5• Explosão• Perda econômica

1996

PATRIOT

FOGUETE ARIANE 5

1990

Page 9: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• CRISE DO SOFTWARE (Pressman, Boehm)• Crise: imprevisibilidade de custos, prazos• Mudança de necessidades e aplicações

• Software se deteriora ou se desgasta• Yourdon: “Declínio e queda...” e “Ressurreição e

ascenção do analistas e programadores”• Crise crônica

1960 1970 1980 1990 XXI

Batch, Distribuição

limitada, Software

customizado

Multiusuário, Tempo real,

Banco de dados, Software como

produto

Sistemas distribuídos,

software embarcado, baixo custo de

hardware, impacto no consumo

Poderosos desk-tops, orientação a objetos, sistema especialistas,

redes neurais, computação paralela,

redes

descartável?

Page 10: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• O CICLO DE VIDA DO SOFTWARE (CLÁSSICO)

ANÁLISE DE

REQUISITOSPROJETO CODIFICAÇÃO TESTE MANUTENÇÃO

ESPECIFICAÇÃOTEXTUALNATURAL

Especificação funcional

Projeto preliminar

Projeto detalhado

Codificação em

linguagem de programação

Elaboração de massa de

testes

Testes individuais

Teste geral

Manutenção:

Corretiva, Preventiva, Adaptativa, Evolutiva,

reengenharia

Page 11: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• CICLO EM PARALELO

ANÁLISE DE REQUISITOS

PROJETO

CODIFICAÇÃO

TESTE

MANUTENÇÃO

Page 12: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• CICLO EM ESPIRAL (original de Boehm 1988)

PLANEJAMENTO

ANÁLISE DE RISCO

ENGENHARIA

CONSTRUÇÃO & ENTREGA

AVALIAÇÃO DO USUÁRIO

COMUNICAÇÃO DO USUÁRIO

PONTO DE ENTRADA NO PROJETO

Fases do ciclo de vida

Page 13: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• CICLO E PROCESSO WEB• Necessidades do usuário WEB

• Exibição de informação• Ativação de links• Movimento• Controle da informação• Interação• Opções e “feedback”• Atualização• Segurança

• Metodologia• Método o que fazer• Técnica como fazer

Page 14: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• CICLO E PROCESSO WEB (John December)

Declaração de propósito

Domínio da informação

Informação de audiência Declaração de objetivo

Especificação Web Apresentação Web

INOVAÇÃO

PLANEJAMENTOANÁLISE

PROJETO

IMPLEMENTAÇÃO

PROMOÇÃO

PRO

CES

SOS

PRODUTOS

Page 15: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• FERRAMENTAS DA ENGENHARIA DE SOFTWARE

• Diagramas para aplicações: DFD´s, DTE´S, MER, ETC

• Dicionário de dados • Tabelas de decisão, (Nassi-

Shneiderman )• Pseudo-código

Page 16: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

• FERRAMENTAS DA ENGENHARIA DE SOFTWARE• Quantificação

• Métricas de software

“A principal diferença entre uma ciência bem desenvolvida e uma menos desenvolvida é o grau com que as coisas são mensuradas “

Fred S. Roberts

“Meça o que for mensurável, e o que não for, faça mensurável”. Carl F. Gauss

Page 17: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

Problemamundo

real

Modelo abstrato

Modelo transformad

o

Solução do problema

USO DE MODELOS PARA ABSTRAÇÃO

métrica

Escala para métrica Níveis de

qualidade

excelente

bom

satisfatório

pobre

bom

Valores e interpretação:

?

G=e-n Testes=|arestas – nós|

Page 18: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

MÉTRICAS E A ISO 9126

Funcionalidade Confiabilidade Usabilidade

Eficiência Manutenibilidade Portabilidade

TempoRecursos

Analisabil.Modificabil.EstabilidadeTestabilidade

Indepen. de HardwareIndepen. de Software

InstalabilidadeReusabilidade

Métricas de SoftwareISO

9126

AdequaçãoAcurácia

SegurançaConformidadeInteroperabil.

MaturidadeTolerância a falhasRecuperabilidade

InteligibilidadeApreensibilidadeOperacionalidade

Page 19: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

MEDIR NÃO É TAREFA FÁCILParadoxo de Simpson

Departamento I

Departamento II

Homens 50 25 Mulheres 50 5

1980

% mulheres 50 17 Homens 10 75 Mulheres 15 20

1990

% mulheres 60 21

Depatamentos I e II Homens 75 Mulheres 55

1980

% mulheres 42 Homens 95 Mulheres 35

1990

% mulheres 29

Percentual de mulheres deveria crescer de 1980 para 1990. Parcialmente isto parece verdade , mas no geral não!

Page 20: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

MONOTONICIDADE PARCIAL FOI VIOLADA.

Depto I(1990) > DeptoI(1980) ao adicionarmos o Depto II:

(1990)(DeptoI DeptoII) < (DeptoI DeptoII)(1980) o que acontece é o seguinte:

Depto I(1990) > DeptoI(1980) não garante que:

Depto I(1990) DeptoI(1980)

Departamento I

Departamento II

Homens 50 25 Mulheres 50 5

1980

% mulheres 50 17 Homens 1 65 Mulheres 51 13

1990

% mulheres 98 17

Depatamentos I e II Homens 75 Mulheres 55

1980

% mulheres 42 Homens 66 Mulheres 64

1990

% mulheres 49

Page 21: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

P1 P2 P3 P4 P5 Defeitos 12 5 2 3 6

LOC 777 110 110 110 1000

Vrs I DD .01544 .04545 .01818 .02727 .00600

Defeitos 3 6 3 4 70 LOC 55 110 110 110 10000 DD .05455 .05455 .02727 .03636 .00700

Vrs II

Relação < < < < <

P12345 Defeitos 28

LOC 2107

Vrs I DD .01329

Defeitos 86 LOC 1035 DD .00828

Vrs II Relação >

Enquanto a DD CRESCEU com relação a cada

programa individualmente, no TODO essa mesma relação DIMINUIU.

O QUE ESTÁ ERRADO?

Page 22: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

MÉTRICA PARA COMPLEXIDADE E WEBPermite saber o número mínimo de testes necessários

região

1

2,3

6 4,5

7 8

9

10

11

nós

extremidades

região

regiãoregião

TEORIA DOS GRAFOS

V(G) = E – N + 2

V(G) = 12 – 9 + 2 = 5

Mínimo de testes = 5

Podemos usá-la para verificar todos ospossíveis caminhos num site

(ou uma aplicação), determinando assim a quantidade de testes mínimos

necessários para passar por todos os itens de navegação pelo menos

uma vez

Page 23: engenharia de software e web, modelo john december

ENGENHARIA DE SOFTWARE E WEB

MANUTENIBILIDADE

Algumas palavras sobre manutenção de software:

“O maior problema na manutenção que fazemos é que nós não podemos fazer manutenção em sistemas que não foram

projetados para manutenção”[Scheidewind]

“60% a 70% do custo de software é com manutenção” [Pressman]

Lei da entropia: “A entropia de um sistema incrementa-se com o tempo, se nenhum trabalho for feito para mantê-la ou

reduzí-la” [Belady et. al.]