Download - Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

Transcript
Page 1: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

1Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Introdução à Engenharia de Software

Page 2: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

2Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Conceitos de Engenharia de Software.Produto e processo de desenvolvimentode software. Extração, análise e especificaçãode requisitos. Métodos de desenvolvimento desoftware. Verificação, validação e manutençãode especificações de software. Planejamentoe gestão de projetos. Estimativas: métricas emodelos de custo, estudo de viabilidade

Engenharia de SoftwareEmenta

Page 3: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

3Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de SoftwarePrograma

1. INTRODUÇÃO

1.1 Definições e Objetivos 1.2 Conceitos Básicos

1.3 Características do Software 1.4 Componentes e Aplicações do Software

Page 4: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

4Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de SoftwarePrograma

2. PROCESSO DE SOFTWARE2.1 Modelo de Processo2.2 Ciclo de Vida Clássico/Modelo Cascata2.3 Modelo Evolucionário2.4 Modelo Espiral2.5 Técnicas de Quarta Geração2.6 Desenvolvimento Rápido de Software2.7 Combinando Paradigmas

Page 5: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

5Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

3. REQUISITOS DE SOFTWARE

3.1 Classificação de requisitos3.2 Técnicas de extração de requisitos3.3 Documento de requisitos de software3.4 Processos de Engenharia de Requisitos

Engenharia de SoftwarePrograma

Page 6: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

6Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

4. GERENCIAMENTO DE CUSTO

4.1 Planejamento4.2 Estudo de Viabilidade4.3 Estimativa

4.4 Métricas de Software4.5 Gerenciamento de Pessoal4.6 Gerenciamento de Grupos

Engenharia de SoftwarePrograma

Page 7: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

7Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

5. MODELOS DE SISTEMA

5.1 Modelos de Contexto 5.2 Modelos de Comportamento5.3 Métodos Estruturados5.4 Métodos Orientado a Objeto

– Casos de Uso

Engenharia de SoftwarePrograma

Page 8: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

8Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

6. MODELO PARA PROJETO

6.1 Hierarquia de módulos e objetos 6.2 Estratégias para derivar o projeto 6.3 Qualidade do projeto:

coesão, acoplamento

Engenharia de SoftwarePrograma

Page 9: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

9Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

7. MODELO DE DADOS

7.1 Diagrama de Entidade e Relacionamento 7.2 Tipos de Entidades7.3 Tipos de Relacionamento7.4 Normalização

Engenharia de SoftwarePrograma

Page 10: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

10Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

8. VERIFICAÇÃO, VALIDAÇÃO E TESTE

8.1 Planejamento de verificação e validação8.2 Inspeções de Software8.3 Teste de Software

Engenharia de SoftwarePrograma

Page 11: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

11Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

9. EVOLUÇÃO DE SOFTWARE

9.1 Manutenção de Software9.2 Tipos de Manutenção9.3 Previsão de mudanças9.4 Processo de Evolução9.5 Evolução de Sistemas Legados

Engenharia de SoftwarePrograma

Page 12: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

12Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

10. GERENCIAMENTO DE QUALIDADE

10.1 Qualidade de Processo e de Produto

10.2 Padrões de Qualidade10.3 Controle de Qualidade

Engenharia de SoftwarePrograma

Page 13: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

13Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de Software

Bibliografia Básica ― Sommerville, Ian, Engenharia de Software.

Ed. Addison Wesley, 8º Edição― PRESSMAN, ROGER, Engenharia de Software.

Ed. Mc-Graw Hill, 6º Edição, 2006.― POMPILHO, S. Análise Essencial – Guia Prático

de Análise de Sistemas. Ed. Infobook, 1995.

Page 14: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

14Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de Software

Bibliografia de Apoio ― http://wps.prenhall.com/br_pfleeger_engsoftware_2― www.aw.com/sommerville_br― http://www.computer.org/portal/web/swebok/html/copyright

Page 15: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

15Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 16: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

16Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 17: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

17Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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:

Desafio

Page 18: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

18Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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)

Desafio

Page 19: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

19Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

• Gerenciar projetos de TI é gerenciar riscos assumidos e vencidos por seres humanos inteligentes.

Desafio

Page 20: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

20Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Evolução do SoftwarePeríodo Evolução

1950-1960 Orientação a batchSoftware totalmente customizadoDistribuição limitada

1960-1970 MultiusuáriosTempo RealBanco de Dados

Page 21: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

21Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

DesafioPeríodo Evolução

1980-1990 Sistemas distribuídosInteligência EmbutidaHardware de baixo custo

1990-2000 Sistemas de desktop poderososTecnologia orientada a objetoSistemas Especialistas....

Page 22: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

22Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

DesafioPeríodo Evolução

2000 - atual As tecnologias orientadas a objetosUso das técnicas de "quarta geração" para o desenvolvimento de softwareOs sistemas especialistas e o software de inteligência artificial.

Page 23: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

23Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Aplicação do Software

Básico Coleção de programas escritos para apoio a outros programas.

Tempo Real Software que monitora / analisa / controla eventos do mundo real.

Comercial Processa informações comerciais, reestruturação de dados para tomada de decisões.

Científico e de

engenharia

Algoritmos de processamento de números(astronomia,vulcanologia).

Page 24: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

24Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Aplicação do SoftwareEmbutido usado para controlar produtos e

sistemas para os mercados industriais e de consumo.

Computador Pessoal

Processamento de textos, planilhas, computação gráfica.

Inteligência Artificial

faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta.

Page 25: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

25Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

O que é Sistema?

é um conjunto de elementos inter-dependentes que realizam

operações visando atingir metasespecificadas.

Page 26: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

26Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Sistema de Computação

é aquele destinado ao suporte ouautomação de tarefas através deprocessamento de informações.

Page 27: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

27Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Componentes de Sistemas deComputação

Hardware Computadores,periféricos e redes.

Software Os programas e arquivos de dados.

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

Page 28: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

28Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Componentes de Sistemas deComputação (cont.)

Procedimentos

Atividades realizadas pelos usuários e operadores, bem como pelos programas.

Documentação

Manuais e formulários que descrevem as operações do sistema.

Page 29: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

29Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Exemplos de Sistemas Computacionais

• Automação Bancária• Frequê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 30: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

30Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

O que é Software?• Programas de computadores

associados a documentação.

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

Page 31: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

31Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 32: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

32Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Componentes do Software

Plano Especificaçãode Requisitos

Projeto Listagem

Plano deTestes

Estruturasde Dados

ProgramaFuncionando

Page 33: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

33Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Características do Software

• Complexidade

• Conformidade

• Mutabilidade

Page 34: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

34Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Características do Software

• Complexidade– Software é mais complexo do

que qualquer outro produto construídos por seres humanos.

Page 35: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

35Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Características do Software• Conformidade

– O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software.

–Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial).

–Sucesso é medido pela qualidade e não quantidade.

Page 36: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

36Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Características do Software• Mutabilidade

– Existe sempre uma pressão para se fazer mudanças em um software.

–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 37: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

37Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Falhas do Hardware

tempo

“desgaste”“mortalidade infantil”

índice de falhas

Defeitos de projeto e manufatura

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

Page 38: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

38Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Falhas do Softwaremudanças

índice de falhas

curva real

curva idealizada

tempo

Page 39: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

39Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 40: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

40Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Formas do Software

Page 41: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

41Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Crise do Software• Refere-se a um conjunto de problemas encontrados no desenvolvimento de software.

• Problemas não se limitam a softwares que não funcionam

adequadamente.

Page 42: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

42Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Crise do Software

• Prazos ultrapassados

• Custos acima do previsto

• Não atendimento dos requisitos do usuário

Page 43: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

43Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• 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

Crise do Software

Page 44: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

44Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• As estimativas de prazo e de custo são imprecisas:– 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

Crise do Software

Page 45: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

45Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• As estimativas de prazo e de custo são imprecisas (cont.)– 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.

Crise do Software

Page 46: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

46Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Crise do Sofware• A produtividade das pessoas da área

de software não tem acompanhado a demanda por seus serviços

– Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente

Page 47: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

47Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Crise do Sofware• O software existente é muito difícil 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.

Page 48: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

48Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Crise do Sofware

Solução para a Crise do Sofware

Engenharia de Software aliada a:

TÉCNICAS E FERRAMENTAS

Page 49: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

49Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Causas dos problemas associados à crise de software

• Filosofia do Software.

• Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software.

• Mitos do Software.

Page 50: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

50Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Filosofia do Software

O software é um elemento de sistemalógico e não físico.Consequentemente, o sucesso é medidopela qualidade de uma única entidade enão pela qualidade de muitas entidadesmanufaturadas.

Page 51: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

51Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Falhas das Pessoas Responsáveis pelo Desenvolvimento 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 52: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

52Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Software

Mitos do Administrativos, do Cliente e do Profissional

Page 53: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

53Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Problemas Administrativos

• Gerentes se encontram sob pressão– manter orçamentos– evitar que os prazos sejam ultrapassados– melhorar a qualidade

Page 54: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

54Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos

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

Page 55: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

55Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos

• 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 56: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

56Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos

• Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores.

Page 57: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

57Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos• Realidade:

—É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade.

—Ferramentas de Engenharia de Software Auxiliada por Computador - CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware.

Page 58: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

58Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos

• Mito: Se nós estamos atrasados nosprazos, podemos adicionar maisprogramadores e tirar o atraso.

Page 59: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

59Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos Administrativos

• Realidade:– O desenvolvimento de software não é

um processo mecânico igual à manufatura.

– Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas.

Page 60: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

60Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos dos Clientes

• Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde.

Page 61: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

61Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Mitos dos Clientes

Page 62: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

62Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos dos Clientes

• Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível.

Page 63: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

63Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Realidade:– Requisitos podem ser mudados, mas o

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

– Uma mudança, quando solicitada tardiamente num projeto, é mais dispendiosa do que a mesma mudança solicitada nas fases iniciais.

Mitos dos Clientes

Page 64: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

64Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional

• Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo.

Page 65: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

65Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional• 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 66: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

66Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional

• Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade.

Page 67: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

67Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional

• 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 68: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

68Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional

• Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando.

Page 69: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

69Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Mitos do Profissional• 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 70: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

70Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Categorias de Tamanho de Softwares

Categoria Tamanho daEquipe

Duração Tamanho do Fonte

(linhas de código)

Trivial 1 1-4 semanas 500

Pequeno 1 1-6 meses 1000 a 2000

Médio 2-5 1-2 anos 5 mil a 50 mil

Grande 5-20 2-3 anos 50 mil a 100 mil

Muito grande 100-200 4-5 anos 1 milhão

Extremamentegrande

2000-5000 5-10 anos 1 a 10 milhões

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 71: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

71Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 disciplinar o processo de desenvolvimento do software.

.

Page 72: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

72Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 disciplinar o processo de desenvolvimento do software.

.

Page 73: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

73Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Page 74: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

74Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Eles não encontraram uma solução, mas definiram uma meta: Engenharia de Software.

• Custo do hardware decrescente e custo do software em ascensão.

Aspectos históricos da Engenharia de Software

Page 75: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

75Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 76: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

76Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

O que é Engenharia de Software?

Page 77: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

77Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Programador (técnicas)

Engenheiro (técnicas)

1. Paradigma de tentativa e erro

1. Paradigma adaptado ao escopo do sistema

2. Estrutura de Dados 2. Análise e Projeto

3. Linguagens de Programação

3. Ferramentas CASE e SGBD´s

O que é Engenharia de Software?

Page 78: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

78Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• É 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.

O que é Engenharia de Software?

Page 79: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

79Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de Software - Método

• 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 80: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

80Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• 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 81: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

81Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Década de 70 (DeMarco e Jackson):–Orientado à função.

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

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

Engenharia de Software - Método

Page 82: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

82Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Engenharia de Software - Método

Page 83: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

83Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Métodos devem incluir os seguintes componentes:

–Descrição gráficas –Regras–Recomendações –Diretrizes de processo

Engenharia de Software - Método

Page 84: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

84Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Engenharia de Software - Método

Page 85: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

85Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Regras Restrições que se aplicam a modelos desistema. Ex.Cada entidade deve ter um único nome.

• Recomendações Conselho em prática de projeto. Ex.Nenhum objeto deve ter mais que sete

subobjetos.

Engenharia de Software - Método

Page 86: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

86Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Diretrizes de processo – Descrição das atividades que podem ser seguidas.

–Atributos de objetos devem ser documentados.

Engenharia de Software - Método

Page 87: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

87Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Fornecem suporte automatizado ou semi- automatizado 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.

Engenharia de Software - Ferramentas

Page 88: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

88Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

O que é CASE (Computer-Aided Software Engineering)

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

• Lower-CASE - Ferramenta para dar apoio à implementação a aos testes.–Ex.(Poseidon para UML , ArgoUML ..)

Page 89: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

89Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

– Constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento do software.

– Sequência em que os métodos serão aplicados.– 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 90: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

90Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Procedimentos

Engenharia de Software - Procedimentos

Métodos

Ferramentas

Resultados

Page 91: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

91Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 92: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

92Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Rigor e Formalidade O rigor é a abordagem que produz

produtos mais confiáveis pelo controle das variáveis envolvidas. Formalidade é o requisito de que o processo seja dirigido e avaliado por leis matemáticas.

Princípios da Engenharia de Software

Page 93: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

93Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Separação de interesses Separar conceitos permite-nos

trabalhar com aspectos individuais e diferentes de um mesmo problema. Esta separação facilita o entendimento, focando a atenção em certas características mais significativas.

Princípios da Engenharia de Software

Page 94: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

94Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Modularidade Consiste na divisão de sistemas

complexos em partes menores e mais simples (módulos) com características desejáveis (coesão e acoplamento).

Princípios da Engenharia de Software

Page 95: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

95Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Modularidade (cont.)– Decomposição é o ato de dividir um

problema original em subproblemas recursivamente.

– Composição é o ato de juntar os elementos componentes de um problema até chegar ao sistema completo. Ajuda na manutenção do sistema.

Princípios da Engenharia de Software

Page 96: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

96Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Antecipação de mudanças Sistemas de softwares são desenvolvidos

enquanto seus requisitos ainda não estão totalmente claros. Quando o sistema é finalmente liberado, novos requisitos podem ser descobertos e velhos requisitos atualizados através do “feedback” do usuário.

Princípios da Engenharia de Software

Page 97: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

97Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Generalidade / Especialidade Soluções genéricas tendem a ser mais

caras em termos de recursos e em tempo de desenvolvimento, ao contrário das soluções específicas. No processo de produção de software estas questões devem ser cuidadosamente analisadas.

Princípios da Engenharia de Software

Page 98: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

98Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

• Incrementabilidade Caracteriza o processo em modo

passo a passo, incrementalmente. O objetivo desejado é atingido por aproximações sucessivas. Útil quando os requisitos iniciais não foram todos obtidos antes do início do desenvolvimento da aplicação.

Princípios da Engenharia de Software

Page 99: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

99Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Quais os custos da Engenharia de Software?

• 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 100: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

100Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Quais os custos da Engenharia de Software?

Page 101: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

101Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Quais os custos da Engenharia de Software?

Page 102: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

102Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Custos de desenvolvimento de produtos de software genéricos:

0 25 50 75 100

Especificação Desenvolvimento Teste

Quais os custos da Engenharia de Software?

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

Desenvolvimento Manutenção

Page 103: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

103Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Custo em relação a falhas

Page 104: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

104Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Impacto dos custo 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%]

Page 105: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

105Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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 106: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

106Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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.

Page 107: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

107Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Responsabilidade profissional e ética

Page 108: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

108Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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.

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

Page 109: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

109Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Resumindo Engenharia de Software

• Encontrar caminhos para se "construir" softwares de qualidade.

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

Page 110: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

110Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

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

Resumindo Engenharia de Software

Page 111: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1 Introdução à Engenharia.

111Profa. Maria Auxiliadora

Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° EdiçãoSOMMERVILLE - Engenharia de Software - 8° Edição

Prática• Visualizando a informática em uma

empresa, cite exemplos de:–Mitos utilizados pelo analista ou pelo

administrador de uma empresa específica.

–Falhas que ocasionaram grandes custos.–Falhas que ocasionaram mudanças de

projetos.