SlideShare a Scribd company logo
1 of 23
ENGENHARIA DE SOFTWARE
E WEB
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
DesenvolvimentoDesenvolvimento
Programa em
linguagem de
máquina
combinação de
caracteres quaisquer
combinação de zeros
e uns
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
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
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?
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”
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)
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
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?
ENGENHARIA DE SOFTWARE E
WEB
• O CICLO DE VIDA DO SOFTWARE (CLÁSSICO)
ANÁLISE
DE
REQUISITOS
ANÁLISE
DE
REQUISITOS
PROJETO
PROJETO
CODIFICAÇÃO
CODIFICAÇÃO
TESTE
TESTE MANUTENÇÃO
MANUTENÇÃO
ESPECIFICAÇÃO
TEXTUAL
NATURAL
ESPECIFICAÇÃO
TEXTUAL
NATURAL
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
ENGENHARIA DE SOFTWARE E
WEB
• CICLO EM PARALELO
ANÁLISE DE REQUISITOS
ANÁLISE DE REQUISITOS
PROJETO
PROJETO
CODIFICAÇÃO
CODIFICAÇÃO
TESTE
TESTE
MANUTENÇÃO
MANUTENÇÃO
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
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
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
PLANEJAMENTO
ANÁLISE
PROJETO
IMPLEMENTAÇÃO
PROMOÇÃO
PROCESSOS
PRODUTOS
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
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
ENGENHARIA DE SOFTWARE E
WEB
Problema
mundo
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|
ENGENHARIA DE SOFTWARE E
WEB
MÉTRICAS E A ISO 9126
Funcionalidade
Funcionalidade
Confiabilidade
Confiabilidade
Usabilidade
Usabilidade
Eficiência
Eficiência
Manutenibilidade
Manutenibilidade
Portabilidade
Portabilidade
Tempo
Recursos
Analisabil.
Modificabil.
Estabilidade
Testabilidade
Indepen. de Hardware
Indepen. de Software
Instalabilidade
Reusabilidade
Métricas de
Software
ISO
9126
Adequação
Acurácia
Segurança
Conformidade
Interoperabil.
Maturidade
Tolerância a falhas
Recuperabilidade
Inteligibilidade
Apreensibilidade
Operacionalidade
ENGENHARIA DE SOFTWARE E
WEB
MEDIR NÃO É TAREFA FÁCIL
Paradoxo de Simpson
Departamento
I
Departamento
II
Homens 50 25
Mulheres 50 51980
% mulheres 50 17
Homens 10 75
Mulheres 15 201990
% mulheres 60 21
Depatamentos I e II
Homens 75
Mulheres 551980
% mulheres 42
Homens 95
Mulheres 351990
% mulheres 29
Percentual de mulheres deveria crescer de 1980 para 1990.
Parcialmente isto parece verdade , mas no geral não!
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 51980
% mulheres 50 17
Homens 1 65
Mulheres 51 131990
% mulheres 98 17
Depatamentos I e II
Homens 75
Mulheres 551980
% mulheres 42
Homens 66
Mulheres 641990
% mulheres 49
ENGENHARIA DE SOFTWARE E
WEB
P1 P2 P3 P4 P5
Defeitos 12 5 2 3 6
LOC 777 110 110 110 1000Vrs
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 2107Vrs
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?
ENGENHARIA DE SOFTWARE E
WEB
MÉTRICA PARA COMPLEXIDADE E WEB
Permite 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ão
regiã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 os
possí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
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.]

More Related Content

Viewers also liked

Social Media
Social MediaSocial Media
Social Mediajcrw4d
 
Unlocking the value_of_your_application_content
Unlocking the value_of_your_application_contentUnlocking the value_of_your_application_content
Unlocking the value_of_your_application_contentQuestexConf
 
Profecias mayas
Profecias mayasProfecias mayas
Profecias mayassucowp3
 
Visual dictionary
Visual dictionaryVisual dictionary
Visual dictionaryJosh Jordan
 
11 20 khat vong
11 20  khat vong11 20  khat vong
11 20 khat vongtaivang
 
Catalogo NovoRiber 2010
Catalogo NovoRiber 2010Catalogo NovoRiber 2010
Catalogo NovoRiber 2010Novoriber
 
llamame.ppt
llamame.pptllamame.ppt
llamame.pptcexfod
 
Innovative_ecm_with_sharepoint_2010
Innovative_ecm_with_sharepoint_2010Innovative_ecm_with_sharepoint_2010
Innovative_ecm_with_sharepoint_2010QuestexConf
 
11 09 khuc ca dang me
11 09 khuc ca dang me 11 09 khuc ca dang me
11 09 khuc ca dang me taivang
 
Reunió de pares 7 de maig 13
Reunió de pares 7 de maig 13Reunió de pares 7 de maig 13
Reunió de pares 7 de maig 13gfarrasb
 
Nelson Mandela. CEIP A Solaina
 Nelson Mandela. CEIP A Solaina Nelson Mandela. CEIP A Solaina
Nelson Mandela. CEIP A SolainaA Solaina
 
Bugatti veyron
Bugatti veyronBugatti veyron
Bugatti veyronaletufix
 
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...Energizemybiz
 
10 45 vung troi binh yen
10 45 vung troi binh yen   10 45 vung troi binh yen
10 45 vung troi binh yen taivang
 

Viewers also liked (20)

Social Media
Social MediaSocial Media
Social Media
 
Og oficial 2013
Og oficial 2013Og oficial 2013
Og oficial 2013
 
Unlocking the value_of_your_application_content
Unlocking the value_of_your_application_contentUnlocking the value_of_your_application_content
Unlocking the value_of_your_application_content
 
Profecias mayas
Profecias mayasProfecias mayas
Profecias mayas
 
Visual dictionary
Visual dictionaryVisual dictionary
Visual dictionary
 
11 20 khat vong
11 20  khat vong11 20  khat vong
11 20 khat vong
 
Catalogo NovoRiber 2010
Catalogo NovoRiber 2010Catalogo NovoRiber 2010
Catalogo NovoRiber 2010
 
Amp pres
Amp presAmp pres
Amp pres
 
Calender
CalenderCalender
Calender
 
llamame.ppt
llamame.pptllamame.ppt
llamame.ppt
 
Innovative_ecm_with_sharepoint_2010
Innovative_ecm_with_sharepoint_2010Innovative_ecm_with_sharepoint_2010
Innovative_ecm_with_sharepoint_2010
 
11 09 khuc ca dang me
11 09 khuc ca dang me 11 09 khuc ca dang me
11 09 khuc ca dang me
 
Reunió de pares 7 de maig 13
Reunió de pares 7 de maig 13Reunió de pares 7 de maig 13
Reunió de pares 7 de maig 13
 
Nelson Mandela. CEIP A Solaina
 Nelson Mandela. CEIP A Solaina Nelson Mandela. CEIP A Solaina
Nelson Mandela. CEIP A Solaina
 
Custom Homes
Custom HomesCustom Homes
Custom Homes
 
Bugatti veyron
Bugatti veyronBugatti veyron
Bugatti veyron
 
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...
Sandra Campbell, U.S. Commercial Service, Acting Director & Senior Internatio...
 
10 45 vung troi binh yen
10 45 vung troi binh yen   10 45 vung troi binh yen
10 45 vung troi binh yen
 
Happiness
HappinessHappiness
Happiness
 
Pasado verbo to be
Pasado verbo to bePasado verbo to be
Pasado verbo to be
 

Similar to Engenharia de Software e Web

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixCris Fidelix
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Adriano Bertucci
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de SoftwareIgor Takenami
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioAdriano Bertucci
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Renato Leal
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introduçãoFelipe Lyra
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASOs Fantasmas !
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)Tiago Vizoto
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de softwareFelipe Bugov
 
Shift left DevOps Experience
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps ExperienceWalter Coan
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimentoGabriel Moura
 

Similar to Engenharia de Software e Web (20)

Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane FidelixIntrodução a Engenharia de Software - Prof.ª Cristiane Fidelix
Introdução a Engenharia de Software - Prof.ª Cristiane Fidelix
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
Introdução a Qualidade de Software
Introdução a Qualidade de SoftwareIntrodução a Qualidade de Software
Introdução a Qualidade de Software
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
Curso de Introdução a Engenharia de Software - CJR/UnB - Aula 1
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Contr avali engenharia de software-introdução
Contr avali   engenharia de software-introduçãoContr avali   engenharia de software-introdução
Contr avali engenharia de software-introdução
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Aula 1 introdução à engenharia de software1 (1)
Aula 1   introdução à engenharia de software1 (1)Aula 1   introdução à engenharia de software1 (1)
Aula 1 introdução à engenharia de software1 (1)
 
ES - 01
ES - 01ES - 01
ES - 01
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de software
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Processo de Software
Processo de SoftwareProcesso de Software
Processo de Software
 
Apresentação RUP
Apresentação RUPApresentação RUP
Apresentação RUP
 
Shift left DevOps Experience
Shift left DevOps ExperienceShift left DevOps Experience
Shift left DevOps Experience
 
Processo e Processo de Software
Processo e Processo de SoftwareProcesso e Processo de Software
Processo e Processo de Software
 
Crise de software2
Crise de software2Crise de software2
Crise de software2
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 

Engenharia de Software e Web

  • 2. 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 DesenvolvimentoDesenvolvimento Programa em linguagem de máquina combinação de caracteres quaisquer combinação de zeros e uns
  • 3. 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
  • 4. 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
  • 5. 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?
  • 6. 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”
  • 7. 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)
  • 8. 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
  • 9. 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?
  • 10. ENGENHARIA DE SOFTWARE E WEB • O CICLO DE VIDA DO SOFTWARE (CLÁSSICO) ANÁLISE DE REQUISITOS ANÁLISE DE REQUISITOS PROJETO PROJETO CODIFICAÇÃO CODIFICAÇÃO TESTE TESTE MANUTENÇÃO MANUTENÇÃO ESPECIFICAÇÃO TEXTUAL NATURAL ESPECIFICAÇÃO TEXTUAL NATURAL 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
  • 11. ENGENHARIA DE SOFTWARE E WEB • CICLO EM PARALELO ANÁLISE DE REQUISITOS ANÁLISE DE REQUISITOS PROJETO PROJETO CODIFICAÇÃO CODIFICAÇÃO TESTE TESTE MANUTENÇÃO MANUTENÇÃO
  • 12. 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
  • 13. 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
  • 14. 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 PLANEJAMENTO ANÁLISE PROJETO IMPLEMENTAÇÃO PROMOÇÃO PROCESSOS PRODUTOS
  • 15. 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
  • 16. 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
  • 17. ENGENHARIA DE SOFTWARE E WEB Problema mundo 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|
  • 18. ENGENHARIA DE SOFTWARE E WEB MÉTRICAS E A ISO 9126 Funcionalidade Funcionalidade Confiabilidade Confiabilidade Usabilidade Usabilidade Eficiência Eficiência Manutenibilidade Manutenibilidade Portabilidade Portabilidade Tempo Recursos Analisabil. Modificabil. Estabilidade Testabilidade Indepen. de Hardware Indepen. de Software Instalabilidade Reusabilidade Métricas de Software ISO 9126 Adequação Acurácia Segurança Conformidade Interoperabil. Maturidade Tolerância a falhas Recuperabilidade Inteligibilidade Apreensibilidade Operacionalidade
  • 19. ENGENHARIA DE SOFTWARE E WEB MEDIR NÃO É TAREFA FÁCIL Paradoxo de Simpson Departamento I Departamento II Homens 50 25 Mulheres 50 51980 % mulheres 50 17 Homens 10 75 Mulheres 15 201990 % mulheres 60 21 Depatamentos I e II Homens 75 Mulheres 551980 % mulheres 42 Homens 95 Mulheres 351990 % mulheres 29 Percentual de mulheres deveria crescer de 1980 para 1990. Parcialmente isto parece verdade , mas no geral não!
  • 20. 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 51980 % mulheres 50 17 Homens 1 65 Mulheres 51 131990 % mulheres 98 17 Depatamentos I e II Homens 75 Mulheres 551980 % mulheres 42 Homens 66 Mulheres 641990 % mulheres 49
  • 21. ENGENHARIA DE SOFTWARE E WEB P1 P2 P3 P4 P5 Defeitos 12 5 2 3 6 LOC 777 110 110 110 1000Vrs 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 2107Vrs 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?
  • 22. ENGENHARIA DE SOFTWARE E WEB MÉTRICA PARA COMPLEXIDADE E WEB Permite 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ão regiã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 os possí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
  • 23. 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.]

Editor's Notes

  1. Engenharia sempre traz a idéia de uma abordagem disciplinada, utilizando metodologia. Evoca menos “arte” e mais ciência.
  2. Curar: qualidade controlada sobre o produto final Processo: controle de qualidade no processo
  3. ERRO: UM ERRO CONCEITUAL NA MENTE DO PROJETISTA, ANALISTA, PROGRAMADOR DEFEITO: QUANDO UM ERRO É INTRODUZIDO NUM PROGRAMA DE COMPUTADOR. O ERRO NÃO SE MANIFESTOU MAS ESTÁ LÁ FALHA: A MANIFESTAÇÃO EXTERNA (PERCEBIDA DE ALGUMA FORMA, - ERRO EM TELA, UM EQUIPAMENTO QUE NÃO FUNCIONA) ACIDENTE: A CONSEQUÊNCIA DA FALHA
  4. O Y2K é outro exemplo (com cosequências econômias e consumo de tempo e recursos humanos)
  5. Mudanças inicialmente ditadas pelas forças armadas e depois pela economia. Hoje por ambas. Deterioração ou desgaste acontece se nenhum esforço for realizado para contê-lo, e ao realizá-lo, novos erros são introduzidos no software. Negócios entre empresas nos EUA em 2003 (projeção): US1.8 trilhões, 14.5 em e-commerce (fonte:forrest research)
  6. Cada fase tem como resultado alguns produtos: especificação funcional, o projeto, os programas, etc. Manutenção corretiva: elimina defeitos (e pode introduzir outros...), geralmente feita depois de uma ou mais falhas preventiva: detectado um erro, ainda sem falha, elimina-se o defeito adaptativa: adequa para um novo ambiente ou situação (ex. permitir acesso via intranet) evolutiva: introduz novas funcionalidades, visando melhorar por exemplo a usabilidade reengenharia: é um novo ciclo, que busca normalmente uma solução diferente. Pode ser reversa
  7. Produtos: Audiência: Todo conhecimento sobre o público alvo (usuário) bem como sobre quem usa a informação (quem é o usuário): conhecimento prévio, inclinações, etc. Propósito: uma articulação da razão para o escopo da existência WEB. Durante todo o desenvolvimento o desenvolvedor precisa ter um suscinto proposito em mente. Pode ser: “Criar a presença na empresa no Cyberespaço” provavelmente ela mudará com o tempo. Objetivo: derivada do propósito, define metas especificas. Ex. “oferecer informação sobre uma nova linha de produtos”, isto implica em definir quais produtos a empresa oferece (imagens, vídeo, esquemas, preços, etc.) O objetivo muda junto com o propósito. Domínio da informação: uma coleção de informações sobre o assunto que a Web vai cobrir (tanto da necessidade do usuário quanto do desenvolvedor). Padrões, artigo, testes publicados, órgão de referência, leis pertinentes. Especificação Web: Descrição detalhada de da construção e elementos que irão para a Web. Suas limitações. Como as etapas serão constuídas, implementadas e publicadas. Apresentação Web: Os significados pelos quais a informação é disponibilizada ao usuário. Resultado do processo de projeto e implementação: considerações de estética, eficiência, usabilidade. Processos: Planejamento: O processo de escolher entre opções competitivas para comunicação. Isto inclui: antecipação e decisão sobre objetivos de audiência, propósito e objetivos para a informação. Também se aplica a coleta de informação de suporte que precisa ser coletada, como será coletada, quando, e como será atualizada. Uma definição dos “skill´s necessários a determinadas partes da Web. Análise: o processo de juntar e comparar informação sobre a Web e sua operação de forma a melhorar a qualidade. Análise da necessidade de novos desenvolvimentos, riscos envolvidos (pesando-os). Projeto: O Web Designer trabalha com a especificação, toma decisões sobre como os componentes Web serão construídos. Este processo leva em conta o propósito, audiência, objetivo e domínio da informação. Preocupa-se em alcançar a especificação de forma flexível, eficiente e elegante. Implementação: a construção em si. Codificação. Promoção: a inscrição em mecanismos de busca, uso de outros meios de comunicação. Conhecimento de comunidades na WEB. O emprego de específicas atividades de marketing e relacionamento. Inovação: Monitoração de novas tecnologias, visando incrementar a usabilidade, qualidade, funcionalidades.
  8. Permitem avaliar objetivamente uma situação atual. Permitem fazer previsões. Avaliar novas práticas. Tomar melhores decisões.
  9. &amp;lt;number&amp;gt; Um modelo criado para resolver um problema, deve resolver outros problemas de mesma natureza. Assim um fator, por exemplo “usabilidade”, pode ser medido, seguindo-se um modelo, atribuir-se um valor e assim determinar o nivel de qualidade dele. A escala de níveis de qualidade pode ser variável conforme a instalação.
  10. &amp;lt;number&amp;gt; Métricas nos fatores e subfatores de um padrão.
  11. &amp;lt;number&amp;gt; Generalizações erradas por falta de conhecimento.
  12. &amp;lt;number&amp;gt; Monotonicidade deve garantir que os elementos anteriores estão incluídos nos seguintes.
  13. &amp;lt;number&amp;gt;
  14. &amp;lt;number&amp;gt; Complexidade medida por caminhos distintos numa função. A função para os cálculos é extraída da teoria dos grafos
  15. &amp;lt;number&amp;gt;