Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
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 e...
ENGENHARIA DE SOFTWARE E
WEB
• ENGENHARIA
• Arte de aplicar conhecimentos científicos e empíricos e certas
habilitações es...
ENGENHARIA DE SOFTWARE E
WEB
• ENGENHARIA DE
SOFTWARE
• Prática industrial: operativa
• Disciplina acadêmica: Normativa
• ...
ENGENHARIA DE SOFTWARE E
WEB
• COMPLEXIDADE
• Software é um elemento complexo
• Que abrange ou encerra muitos elementos ou...
ENGENHARIA DE SOFTWARE E
WEB
• PARADIGMAS:
• (Weinberg – 89)
• Curar programas doentes ou produzir programas sãos?
• Elimi...
ENGENHARIA DE SOFTWARE E
WEB
• RISCOS ENVOLVIDOS
• SAÚDE (VIDA)
• REDES DE COMUNICAÇÃO (ECONÔMICO)
• TRÁFEGO (VIDA, ECONÔM...
ENGENHARIA DE SOFTWARE E
WEB
• EXEMPLOS DE DESASTRES
POR SOFTWARE:
• Patriot
• 28 soldados morreram (erro de
ponto flutuan...
ENGENHARIA DE SOFTWARE E
WEB
• CRISE DO SOFTWARE (Pressman, Boehm)
• Crise: imprevisibilidade de custos, prazos
• Mudança ...
ENGENHARIA DE SOFTWARE E
WEB
• O CICLO DE VIDA DO SOFTWARE (CLÁSSICO)
ANÁLISE
DE
REQUISITOS
ANÁLISE
DE
REQUISITOS
PROJETO
...
ENGENHARIA DE SOFTWARE E
WEB
• CICLO EM PARALELO
ANÁLISE DE REQUISITOS
ANÁLISE DE REQUISITOS
PROJETO
PROJETO
CODIFICAÇÃO
C...
ENGENHARIA DE SOFTWARE E
WEB
• CICLO EM ESPIRAL (original de Boehm 1988)
PLANEJAMENTO
ANÁLISE DE RISCO
ENGENHARIA
CONSTRUÇ...
ENGENHARIA DE SOFTWARE E
WEB
• CICLO E PROCESSO WEB
• Necessidades do usuário WEB
• Exibição de informação
• Ativação de l...
ENGENHARIA DE SOFTWARE E
WEB
• CICLO E PROCESSO WEB (John December)
Declaração de propósito
Domínio da informação
Informaç...
ENGENHARIA DE SOFTWARE E
WEB
• FERRAMENTAS DA
ENGENHARIA DE
SOFTWARE
• Diagramas para aplicações:
DFD´s, DTE´S, MER, ETC
•...
ENGENHARIA DE SOFTWARE E
WEB
• FERRAMENTAS DA ENGENHARIA DE SOFTWARE
• Quantificação
• Métricas de software
“A principal d...
ENGENHARIA DE SOFTWARE E
WEB
Problema
mundo
real
Modelo
abstrato
Modelo
transformad
o
Solução do
problema
USO DE MODELOS P...
ENGENHARIA DE SOFTWARE E
WEB
MÉTRICAS E A ISO 9126
Funcionalidade
Funcionalidade
Confiabilidade
Confiabilidade
Usabilidade...
ENGENHARIA DE SOFTWARE E
WEB
MEDIR NÃO É TAREFA FÁCIL
Paradoxo de Simpson
Departamento
I
Departamento
II
Homens 50 25
Mulh...
ENGENHARIA DE SOFTWARE E
WEB
MONOTONICIDADE PARCIAL FOI VIOLADA.
Depto I(1990) •> DeptoI(1980)
ao adicionarmos o Depto II:...
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 .027...
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
...
ENGENHARIA DE SOFTWARE E
WEB
MANUTENIBILIDADE
Algumas palavras sobre manutenção de software:
“O maior problema na manutenç...
Upcoming SlideShare
Loading in …5
×

engenharia de software e web, modelo john december

engenharia de software e web

  • Be the first to comment

engenharia de software e web, modelo john december

  1. 1. ENGENHARIA DE SOFTWARE E WEB
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.]

×