leitura: cap1: sommerville – pressman - ariadnemaria/arqan/2011-1/cap1-introd.pdf · desenvolver...

72
Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 1 Engenharia de Softawre 3º Edição / Roger Pressman Engenharia de Software 1º Edição / Ariadne Carvalho Leitura: Cap1: Sommerville – Pressman - Ariadne Introdução Engenharia de Software

Upload: phambao

Post on 10-Feb-2019

234 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 1Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Leitura:Cap1: Sommerville – Pressman - Ariadne

Introdução

Engenharia de Software

Page 2: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 2Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Objetivos

� Compreender o que é Engenharia de Software e por que ela é importante.

� Mostrar as distinções e relacionamentos entre sistema e software.

� Mostrar as principais questões sobre engenharia software.

� Compreender questões profissionais e éticas relevantes para os engenheiros de software.

Page 3: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 3Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Por que?� Por que tanta demora para entregar o sistema?

� Por que os prazos se atrasam?

� Por que os custos são altos?

� Por que não achar todos os erros antes de entregar?

� Por que é difícil medir o progresso do desenvolvimento de um software?

Page 4: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 4Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Desafio

No mercado atual, não há dúvida de que os profissionais de TI envolvidos com projetos de

desenvolvimento de software e soluções corporativas têm um claro desafio:

PRODUZIR soluções mais rápidas, melhores e mais baratas que antes (melhor ainda ser mais rápidas,

melhores e mais baratas que a concorrência)

Page 5: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 5Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Desafio

� Desenvolver software é um problema de métodos e técnica, em suma, de atividade humana.

� Hoje a TI está comprometida com o SUCESSO -significa COMPETITIVIDADE, fazer mais, melhor e mais barato.

� Gerenciar projetos de TI é gerenciar riscosassumidos e vencidos por seres humanos inteligentes.

� PESSOAS precisam de investimentos massivos!!! (SOLUÇÃO).

Page 6: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 6Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Sistema?

� Um sistema é um conjunto de elementos inter-dependentes que realizam operações visando atingir metas especificadas.

� Sistema de Computação baseado em computador, éaquele destinado ao suporte ou automação de tarefas através de processamento de informações.

� Cada vez mais os sistemas possuem componente computacional, controlado por software.

Page 7: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 7Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Componentes de Sistemas deComputação

•Usuários– Usuários e operadores que realizam as tarefas e procedimentos.

•Procedimentos– Atividades realizadas pelos usuários e operadores, bem como pelos programas (procedimentos automatizados).

•Documentação– Manuais e formulários que descrevem as operações do sistema.

•Hardware– Computadores, periféricos e redes

•Software– Os programas e arquivos de dados

•Informações– Coleção de informações organizadas e sistematizadas necessárias ao desempenho das tarefas e procedimentos

Page 8: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 8Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Exemplos de Sistemas Computacionais

� Automação Bancária� Freqüência e Folha de Pagamento� Controle de Tráfego Urbano� Controle Acadêmico� Editoração de Jornais e Revistas� Controle de Elevadores� Automação de Biblioteca

Page 9: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 9Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Software?� Programas de computadores associados a documentação.

� Um programa é um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real.

� Tipos de produtos de software:• Genéricos (COTS – Commercial Off-The Shelf) - tipo stand-alone,

pacotes de software, como por exemplo, processadores de texto, ferramentas de gerenciamento.

• Sob encomenda ( personalizado) – desenvolvido para um cliente em particular.

Page 10: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 10Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Software?

Analisar as características que o tornam diferente dos outros produtos:

� Hardware: produto em forma física� Software: elemento de sistema lógico

Page 11: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 11Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Características do Software� Complexidade

– Software é mais complexo do que qualquer outro produto construídos por seres humanos

� Mutabilidade– Existe sempre uma pressão para se fazer mudanças em um

software

� Conformidade– O software deve ser desenvolvido conforme o ambiente. Não é o

ambiente que deve se adaptar ao software.

Page 12: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 12Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Características do Software� Desenvolvido ou projetado por engenharia, não

manufaturado no sentido clássico (industrial)• sucesso é medido pela qualidade e não quantidade

� Não se “desgasta”, mas se deteriora devido as mudanças

� A maioria é feita sob medida em vez de ser montada a partir de catálogos de componentes existentes (reusabilidade de software).

Page 13: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 13Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas do Hardware

tempo

“desgaste”“mortalidadeinfantil”

índice de

falhas

Defeitos de projeto e manufatura

ProblemasAmbientais

(poeira, vibração, abuso, temperaturas, ...)

Page 14: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 14Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas do Software

mudanças

índice de falhas

curva real

curva idealizada

tempo

Page 15: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 15Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas do Hardware/Software� Quando um componente de hardware se

desgasta é substituído por uma “peça de reposição”

� Não existe “peça de reposição” para software• Toda falha indica um erro no projeto ou no

processo de tradução para o código executável

• Manutenção do software é mais complexa do que a do hardware

Page 16: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 16Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Formas do Software

Page 17: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 17Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� SOFTWARE DE SISTEMA: coleção de programas escritos para apoiar outros programas. Forte interação com o hardware.• sistema operacional, compiladores, drivers, etc...

� SOFTWARE DE TEMPO REAL software que monitora, analisa e controla eventos do mundo real• sistema de controle de tráfego aéreo, relógio digital

Aplicações do software

Page 18: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 18Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� SOFTWARE BUSINESS sistemas de operações comerciais e tomadas de decisões administrativas• folha de pagamentos, contas a pagar e a receber,

MIS, ...

• SOFTWARE EMBUTIDO usado para controlarprodutos e sistemas para os mercados industriais e de consumo • produtos inteligentes

Aplicações do software

Page 19: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 19Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� SOFTWARE CIENTÍFICO E DE ENGENHARIAcaracterizado por algoritmos de processamentonumérico• astronomia, vulcanologia, análise de fadiga da

mecânica de automóveis, biologia molecular, projeto CAD, ...

� SOFTWARE DE COMPUTADOR PESSOAL• envolve processamento de textos, planilhas

eletrônicas, computação gráfica, diversões, etc

Aplicações do software

Page 20: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 20Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� SOFTWARE BASEADO NA WEB • páginas Web (websites) recuperados por um

browser (tecnologia web ASP, HTML, CGI, JAVA, XML, etc...)

� SOFTWARE DE COMPUTADOR PESSOAL• envolve processamento de textos, planilhas

eletrônicas, computação gráfica, diversões, etc

Aplicações do software

Page 21: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 21Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

A Evolução do Software� A quarta era (meados de 80 a

meados de 90)o Aplicativos com Interfaces

Gráficaso Redes e Arquitetura Cliente-

Servidor� A quinta era (de meados de 90

a ???)o Software Distribuídos,

Internet, Groupwares e Intranets

� Sexta era??o Computação Pervasiva,

Móvel e Ubíqua

� Os primeiros anos (1950 a início dos 60)o Aplicações científicas e de

engenharia� A segunda era (1960 a

meados de 80)o Aplicações comerciais em

grande-porte (sistemas de informação BD)

� A terceira era (meados de 70 e década de 80)o Aplicativos pessoais em

microcomputadores

Page 22: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 22Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� 1950-1970: Desafio principal era desenvolver Hardware• Reduzir o custo de processamento e armazenamento de

dados� Hoje: Reduzir o custo e melhorar a qualidade dos

Softwares (potencial da computação)• Impacto na sociedade e cultura é profundo!!!!!!• O software atingiu as grandes massas; tomada de

decisões nos negócios, base para a pesquisa científica, solução de problemas de engenharia e telecomunicações, funcionalidade.

• Comunidade de Software objetiva desenvolver tecnologias para facilitar o projeto de softwares de alta qualidade

A Evolução do Software

Page 23: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 23Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Crise do Sofware� Refere-se a um conjunto de problemas encontrados no

desenvolvimento de software: (problemas não se limitam a softwares que não funcionam adequadamente)

� Prazos ultrapassados� Custos acima do previsto� Não atendimento dos requisitos do usuário� Elevado custo de manutenção� 1/3 dos projetos são cancelados� 2/3 dos projetos extrapolam o orçamento� Custo hardware x software

» 1970 = 8:2» 1991 = 2:8» Hoje = 1:9

Page 24: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 24Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Crise do Sofware

�� As estimativas de prazo e de custo são As estimativas de prazo e de custo são imprecisasimprecisas• “Não dedicamos tempo para coletar dados sobre o

processo de desenvolvimento de software”• “Estimativas são feitas a olho, com resultados ruins”• “Os prazos arrastam-se por meses”• “Causa insatisfação para o cliente e falta de

confiança”• “Sem nenhuma indicação sólida de produtividade,

não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões”

Page 25: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 25Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Crise do Sofware

�� A produtividade das pessoas da A produtividade das pessoas da áárea de software rea de software não tem acompanhado a demanda por seus não tem acompanhado a demanda por seus serviserviççosos• “Os projetos de desenvolvimento de software

normalmente são efetuados apenas com um vago indício das exigências do cliente”

• “A comunicação entre o cliente e o desenvolvedor de software é muito fraca”

Page 26: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 26Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Crise do Sofware�� A qualidade de software A qualidade de software frequentementefrequentemente éé

inadequadainadequada• Não uso de técnicas de teste sistemáticas e

completas

• Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software

Page 27: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 27Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Crise do Sofware�� O software existente O software existente éé muito difmuito difíícil de mantercil de manter

• A tarefa de manutenção devora o orçamento destinado ao software

• A facilidade de manutenção não foi enfatizada como um critério importante

=====================================Solução para a Crise do Sofware �

Engenharia de software aliada a técnicas e ferramentas

Page 28: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 28Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software -Ariane

� Ariane 5, 1996

� O foguete explodiu 40 segundos após a sua primeira decolagem.

� Prejuízo de US$ 500 milhões

� Foi aproveitado um pacote de software de navegação do Ariane 4 que não tinha erros.

Page 29: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 29Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software -Ariane

� No módulo Sistema de Referencia Inercial uma conversão de valores de 16-bits para 64-bits causou um operando inválido que o interrompeu

� A falha no SRI levou o computador de bordo a modificar a trajetória do foguete levando à ruptura de juntas e isto causou a ativação da auto-destruição.

� No Ariane 5, o módulo SRI só deveria ter sido utilizado antes do lançamento.

Page 30: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 30Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software - -LAS

� London Ambulance System - despacho de ambulâncias em Londres, 1992.

� Morte de pessoas que não foram socorridas em tempo.� Problema de Gerência de Software:

– Responsáveis contrataram uma empresa desconhecida cujo valor cobrado era menor que os cobrados pelas empresas de renome.

– Colocaram o sistema no ar sem os devidos testes.– Não foi feita uma migração correta do sistema antigo para o

novo.

Page 31: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 31Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software - -Therac-25

� Máquina de radioterapia com software controlador (1985-87).

� O controle de segurança feito pelo hardware em máquinas anteriores foi removido e passou a ser feito pelo software.

� O software falhou na tarefa de, ao mesmo tempo, manter invariantes essenciais: o feixe de elétrons e o dispositivo que controla a concentração do feixe em níveis seguros.

� Diversas mortes em decorrência de queimaduras.� O programador não tinha experiência em programação

concorrente.

Page 32: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 32Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software -Denver

� Sistema de triagem/controle de bagagem do aeroporto internacional de Denver (EUA)

� Objetivo: Sistema para controlar 4000 "telecars" ao longo de 21 milhas de trilhos, transportando a bagagem entre os portões e asáreas de retirada de bagagem de 20 companhias aéreas.

� Características: Uma rede de cerca de 100 computadores, 5000 "olhos eletrônicos", 400 receptores de rádio e 56 leitores de códigos de barra, organizando o transporte e entrega segura de cada malaou valise desde a chegada ao aeroporto até a entrega ao passageiro e respectiva conferência.

Page 33: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 33Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Falhas Famosas de Software -Denver

� Problemas:• Atrasou a inauguração do aeroporto. Custo do sistema: US$

193 milhões• Inauguração estava prevista para Out/1993. Em Junho/1994 o

sistema ainda não estava funcionando e causava prejuízos de US$ 1,1 milhão/dia

• No começo de 1995 um controle MANUAL de bagagem foi instalado para que o aeroporto pudesse ser inaugurado (com atraso de mais de um ano)

• Problema de planejamento e gerenciamento.

Page 34: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 34Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Causas dos problemas associados à crise de software

�� FILOSOFIA DO SOFTWAREFILOSOFIA DO SOFTWARE

�� FALHAS DAS PESSOAS RESPONSFALHAS DAS PESSOAS RESPONSÁÁVEIS VEIS PELO DESENVOLVIMENTO DE SOFTWAREPELO DESENVOLVIMENTO DE SOFTWARE

�� MITOS DO SOFTWAREMITOS DO SOFTWARE

Page 35: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 35Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Causas�� PRPRÓÓPRIO CARPRIO CARÁÁTER DO SOFTWARETER DO SOFTWARE

• O software é um elemento de sistema lógico e não físico. Conseqüentemente o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas.

�� FALHAS DAS PESSOAS RESPONSFALHAS DAS PESSOAS RESPONSÁÁVEIS PELO VEIS PELO DESENVOLVIMENTO DE SOFTWAREDESENVOLVIMENTO DE SOFTWARE• Gerentes sem nenhum background em software

• Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software

• Resistência a mudanças.

Page 36: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 36Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Software� O estabelecimento de objetivos gerais é suficiente para

se começar a escrever programas.

� Mudanças no software podem ser feitas facilmente porque ele é "flexível".

� Um projeto é bem sucedido se conseguirmos um programa funcionando corretamente.

� Administrativos, do Cliente e do Profissional

Page 37: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 37Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos Administrativos

� Gerentes se encontram sob pressão

• manter orçamentos

• evitar que os prazos sejam ultrapassados

• melhorar a qualidade

Page 38: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 38Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos Administrativos

� Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software.

� Realidade:• Será que o manual é usado?• Os profissionais sabem que ele existe? • Ele reflete a prática moderna de desenvolvimento de

software? • Ele é completo?

Page 39: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 39Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos Administrativos� Mito: Meu pessoal tem ferramentas de

desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores.

� Realidade:• É preciso muito mais do que os mais recentes

computadores para se fazer um desenvolvimento de software de alta qualidade.

• Ferramentas de engenharia e software auxiliada por computador CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware

Page 40: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 40Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Clientes� Mito: Uma declaração geral dos objetivos é

suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

� Realidade:• Uma definição inicial ruim é a principal causa de

fracassos dos esforços de desenvolvimento de software.

• É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação.

Page 41: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 41Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Clientes� Mito: Os requisitos de projeto modificam-se

continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software éflexível.

� Realidade:• Requisitos podem ser mudados, mas o impacto

varia de acordo com o tempo que é introduzido (projeto e custo)

• Um mudança, quando solicitada tardiamente num projeto, é mais dispendiosa do que a mesma mudança solicitada nas fases iniciais

Page 42: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 42Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Profissional� Mito: Assim que escrevermos o programa e o

colocarmos em funcionamento nosso trabalho estará completo.

� Realidade:• Os dados da indústria indicam que entre 50 e 70%

de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente

Page 43: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 43Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Profissional� Mito: Enquanto não tiver o programa

"funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

� Realidade:• Mecanismo (Revisão Técnica Formal) de garantia

de qualidade de software é aplicado desde o começo do projeto

• Revisões de software são um “filtro de qualidade” -descobre erros/defeitos

Page 44: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 44Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Mitos do Profissional� Mito: A única coisa a ser entregue em um

projeto bem-sucedido é o programa funcionando.

� Realidade:• Um programa funcionando é somente uma parte de

uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software.

• A DOCUMENTAÇÃO é o alicerce

Page 45: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 45Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Categorias de Tamanho de Softwares

1 a 10 milhões5-10 anos2000-5000Extremamentegrande

1 milhão4-5 anos100-200Muito grande

50 mil a 100 mil2-3 anos5-20Grande

5 mil a 50 mil1-2 anos2-5Médio

1000 a 20001-6 meses1Pequeno

5001-4 semanas1Trivial

Tamanho do Fonte

(linhas de código)

DuraçãoTamanho daEquipe

Categoria

ex: O Win 95: teve 11 milhões de linhas e 200 programadores / O Nestscape teve 3 milhões de linhas e 120 programadores

Page 46: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 46Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

SOLUÇÃO

� Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos

� Métodos e Técnicas para o disciplinar o processo de desenvolvimento do software

.

Page 47: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 47Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Aspectos históricos da Engenharia de Software

� 1968 Conferência da OTAN� Objetivo: resolver a “Crise do Software”� Software é entregue

– Atrasado– Com orçamento estourado– Com falhas residuais

� Eles não encontraram uma solução, mas definiram uma meta: Engenharia de Software (aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção de software)

� Custo do hardware decrescente e custo do software em ascensão

Page 48: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 48Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Engenharia de Software?

� Fritz Bauer – 1969 ( primeira definição)

“O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter

economicamente um software que seja confiável e que funcione eficientemente em máquinas

reais”

Page 49: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 49Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Engenharia de Software?

� IEEE, 1993

“A aplicação de uma abordagem sistemática, disciplinada e quantificável para o

desenvolvimento, operação e manutenção do software. O estudo de abordagens e princípios a

fim de obter economicamente softwares confiáveis e que executem de forma eficiente

nas máquinas reais”

Page 50: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 50Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Engenharia de Software?

� É uma disciplina de engenharia que se ocupa de todos os aspectos da produção de software, desde os estágios iniciais de especificação do sistema até a manutenção.

� Os engenheiros de software adotam uma abordagem sistemática e organizada em seu trabalho e usam ferramentas e técnicas apropriadas dependendo do problema a ser resolvido.

Page 51: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 51Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é Engenharia de Software?

� É uma disciplina que integra métodos,ferramentas e procedimentos para o desenvolvimento de software de computador.

� Possibilitar ao gerente o controle do processo de desenvolvimento

� Oferecer ao profissional uma base para a construção de software de alta qualidade

Page 52: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 52Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Engenharia de Software - Método

� Métodos: proporcionam os detalhes de “como fazer” para construir o software.

� Envolvem um amplo conjunto de tarefas

� Um método de ES é uma aproximação estruturada para o desenvolvimento de software

Page 53: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 53Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Engenharia de Software - Método

� Objetivo: Produção de software de alta qualidade de um modo cost-effective.

� Início na década de 70 (DeMarco e Jackson):• Identificação dos componentes funcionais básicos

de um sistema;• Orientado à função;• Métodos ainda muito utilizados.

Page 54: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 54Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� 80s-90s Métodos orientados a objeto (Booch e Rumbaugh).

� Atualmente os diferentes métodos estão integrados numa aproximação unificada baseada em Unified Modeling Language (UML).

Engenharia de Software - Método

Page 55: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 55Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Todos os métodos pretendem

• Criar modelos do sistema que possam ser representados graficamente;

• Usar estes métodos como especificação

Engenharia de Software - Método

Page 56: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 56Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

• Métodos devem incluir os seguintes componentes:• Descrição gráficas.

• Descrições dos modelos do sistema que deverão ser desenvolvidos e da notação usada para os definir. Ex. Modelos de objetos, fluxos de dados etc.

• Regras • Restrições que se aplicam a modelos de sistema.

Ex.Cada entidade deve ter um único nome.

Engenharia de Software - Método

Page 57: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 57Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

• Métodos devem incluir os seguintes componentes (cont):• Recomendações

• Conselho em prática de projeto. Ex. Nenhum objeto deve ter mais que sete sub-objetos.

• Diretrizes de processo • Descrição das atividades que podem ser seguidas.• Atributos de objetos devem ser documentados.

Engenharia de Software - Método

Page 58: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 58Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Ferramentas : fornecem suporte automatizado ou semi aos métodos.• Existem atualmente ferramentas para sustentar

cada um dos métodos• Quando as ferramentas são integradas é

estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE -Computer Aided Software Engineering

Engenharia de Software -Ferramentas

Page 59: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 59Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

O que é CASE(Computer-Aided Software Engineering)

� Sistemas de software automatizado utilizados para apoiar as atividades de processo de software.

� Upper-CASE• Ferramenta para dar apoio às fases iniciais do processo de

software.

� Lower-CASE• Ferramenta para dar apoio à implementação a aos testes.

Page 60: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 60Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

� Procedimentos : constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento do software. • Seqüência em que os métodos serão aplicados• Produtos (deliverables) que se exige que sejam

entregues• Controles que ajudam assegurar a qualidade e

coordenar as alterações• Marcos de referência que possibilitam administrar o

progresso do software

Engenharia de Software -Procedimentos

Page 61: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 61Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Princípios da Engenharia de Software

� Todo engenheiro de software deve desenvolver com:

– Rigor e Formalidade– Separação de interesses– Modularidade– Abstração– Antecipação de mudanças– Generalidade– Possibilidades de evolução

Page 62: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 62Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Quais os custos da Engenharia de Software?

� Não existe uma resposta direta.

� A distribuição dos custos através do processo de software depende do processo usado e do tipo de software a desenvolver.

� Custos de desenvolvimento de um software complexo quando se conseguem definir custos separadamente para especificação, desenho, implementação, integração e testes

Page 63: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 63Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Quais os custos da Engenharia de Software?

Page 64: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 64Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Custo em relação a falhas

Page 65: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 65Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Quais os custos da Engenharia de Software?

0 25 50 75 100

Especificação Desenho Desenvolvimento Integração e Teste

�Custos segundo aproximação evolutiva0 25 50 75 100

Especificação Desenvolvimento Evolutivo Testes do Sistema

�Custos relativos entre desenvolvimento e manutenção do software0 25 50 75 100

Desenvolvimento Manutenção

Page 66: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 66Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Quais os custos da Engenharia de Software?

� Custos de desenvolvimento de produtos de software genéricos:

0 25 50 75 100

Especificação Desenvolvimento Teste

Page 67: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 67Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Impacto dos custo de manutenção• Diferentes tipos de manutenção

– Manutenção corretiva [aproximadamente 20%] • 60 a 70% das necessidades de correção são falhas de especificação ou design

– Manutenção evolutiva (melhoria)• Aperfeiçoamento [aproximadamente 60%]• Adaptação [aproximadamente 20%]

• Grande parte dos esforços em qualidade de software têm sido em melhoria dos processos de software de maneira a diminuir os custos da manutenção.

Page 68: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 68Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Quais são os principais desafios enfrentados pela Engenharia de Software?

� Sistemas de legado • Devem ser mantidos e devem ser atualizado

� Heterogeneidade • Operar com sistemas distribuídos e incluem uma mistura de

hardware e software

� Fornecimento • Entrega mais rápida de software

Page 69: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 69Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Responsabilidade profissional e ética

� Confiabilidade – respeitar a confiabilidade de seus empregadores ou clientes.

� Competência – os engenheiros não devem aceitar serviços que estejam for a do seu limite de competência.

� Direito de propriedade intelectual – os engenheiros devem estar cientes das leis locais que regulam o uso da propriedade intelectual, como patentes e direitos autorais.

Page 70: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 70Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Resumindo Engenharia de Software

� Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software.

� Aplicação de métodos, técnicas e ferramentas para o gerenciamento do processo de desenvolvimento.

� Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários.

� Encontrar caminhos para se "construir" softwares de qualidade;

Page 71: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 71Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Resumindo Engenharia de Software

� Ao invés de ser um fator único, a qualidade deve ser vista como a conjunção entre um conjunto de metas;

� Fatores externos, perceptíveis aos usuários e clientes, devem ser distinguidos dos fatores internos, perceptíveis aos projetistas e implementadores;

� A manutenção de software, que consome grande parte dos custos do software, é penalizada pela dificuldade em se implementar mudanças no software produto, e pela excessiva dependência dos programas da estrutura física dos dados que eles manipulam.

Page 72: Leitura: Cap1: Sommerville – Pressman - Ariadnemaria/arqan/2011-1/cap1-introd.pdf · Desenvolver software é um problema de métodos e técnica, ... base para a pesquisa científica,

Auxiliadora Freire Fonte: Engenharia de Software 6º Edição / ©Ian Sommerville 2000 Slide 72Engenharia de Softawre 3º Edição / Roger PressmanEngenharia de Software 1º Edição / Ariadne Carvalho

Prática

� Visualizando a informática na sua empresa, cite exemplos de:• Mitos utilizados pelo analista ou pelo

administrador de sua empresa.• Falhas que ocasionaram grandes custos.• Falhas que ocasionaram mudanças de

projetos.