ciência da computação: uma visão abrangente 11a ediçãociência da computação: uma visão...

27
Copyright © 2012 Pearson Education, Inc. Ciência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Upload: others

Post on 02-Apr-2021

83 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc.

Ciência da computação: Uma visão abrangente

11a Edição

by

J. Glenn Brookshear

Capítulo 7: Engenharia de Software

Page 2: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-2

Capítulo 7: Engenharia de software

• 7.1 A disciplina de Engenharia de Software

• 7.2 O ciclo de vida de Software

• 7.3 Metodologias de Engenharia de Software

• 7.4 Modularidade

• 7.5 Ferramentas do comércio

• 7.6 Teste

• 7.7 Documentação

• 7.8 Responsabilidade e Propriedade do software

Page 3: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-3

A disciplina de Engenharia de

Software

• Distinta de outras áreas de engenharia

– Componentes pré-fabricados

– Métricas

• Praticantes contra teóricos

• Organizações profissionais: ACM, IEEE, etc.

– Códigos de ética profissional

– Normas

Page 4: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-4

Computer Aided Software

Engineering (CASE) tools

• Planejamento de projeto

• Gerenciamento de projetos

• Documentação

• Prototipagem e simulação

• Design de interface

• Programação

Page 5: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-5

O ciclo de vida de software

Desenvolvimento Uso

Manutenção

Page 6: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-6

A fase de desenvolvimento do ciclo

de vida de software

Análise de Requisitos

Design

Implementação

Teste

Page 7: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-7

Etapa de Análise de Requisitos

• Requisitos

– Orientado à Aplicação

• Especificações

– Orientado tecnicamente

• Documento de requisitos de software

Page 8: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-8

Fase de Concepção (Design) - Projeto

• Metodologias e ferramentas (discutidas

mais tarde)

• Interface humana (Psicologia e ergonomia)

Page 9: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-9

Fase de implementação

• Criar o sistema a partir de um projeto

– Escrever programas

– Criar arquivos de dados

– Desenvolver bases de dados

• Papel de "analista de software" versus

"programador"

Page 10: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-10

Fase de testes

• Testes de validação

– Confirmar que o sistema atende as

especificações

• Testes de defeitos

– Encontrar bugs

Page 11: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-11

Metodologias de Engenharia de

Software

• Modelo em cascata

• Modelo Incremental

– Prototipagem (Evolucionária vs. Descartável)

• Desenvolvimento em código aberto

• Extreme Programming

Page 12: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-12

Ferramentas

• Diagrama de fluxo de dados

• Diagrama entidade-relacionamento

– Relação um para um

– Relação um-para-muitos

– Relação muitos-para-muitos

• Dicionário de dados

• UML – Unified Modeling Language

– Diagrama de Casos de Uso

– Diagrama de Classes

Page 13: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-13

Um diagrama de fluxo de dados

simples

Page 14: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-14

UML - Unified Modeling Language

• Diagrama de caso de uso

– Casos de uso

– Atores

• Diagrama de classes

Page 15: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-15

Um diagrama de caso de uso simples

Page 16: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-16

Um diagrama de classe simples

Médico Paciente QuartoCuida de Hospeda

Ocupa

Page 17: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-17

Relacionamentos um-para-um, um-para-

muitos e muitos-para-muitos entre

entidades dos tipos X e Y

Page 18: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-18

Um diagrama de classe retratando

generalizações

RegistroMedico

RegistroCirurgico RegistroCirurgico

DatadeRegistro

Paciente

Medico

ImprimirRegistro

ImprimirRegistroDarAltaaoPaciente

ImprimirRegistro

Sintomas

Diagnostico

ProcedimentoCirurg

Hospital

DatadaAlta

Page 19: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-19

Diagrama de seqüência

Fonte: LES (PUC-Rio)

Page 20: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc.

Exemplo: Blog (Fonte: LES – PUC-Rio)

0-20

Caso de Uso

Page 21: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc.

Blog: Diagrama de Classes

0-21

Page 22: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc.

Blog: Diagrama de Sequencia de “criar

nota”

0-22

Page 23: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-23

Design Patterns

• "Modelos" bem projetados para resolver problemas recorrentes

• Exemplos:– Adapter pattern: Usado para adaptar a interface de um

modulo às necessidades atuais

– Decorator pattern: Usado para controlar a complexidade envolvida quando muitas combinações diferentes das mesmas atividades são necessárias

• Inspirados no trabalho de Christopher Alexander em arquitetura

Page 24: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-24

Estratégias de teste de software

• Teste Glass-box (caixa branca)

– Princípio de Pareto

• Erros de software tendem a ser concentrados, e não

dispersos. Assim, resultados frequentemente podem

ser melhorados aplicando-se os esforços em uma

área específica

– Teste de caminho básico

• Cada instrução deve ser executada ao menos 1 vez

• Teste Black-box (caixa preta)

– Análise dos valores limite

– Teste de redundância

– Beta testing

Page 25: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-25

Documentação

• Documentação de usuário

– Livro impresso para todos os clientes

– Módulos de ajuda on-line

• Documentação do sistema

– Código-fonte

– Documentos de projeto

• Documentação técnica

– Para instalar, personalizar, atualizar, etc.

Page 26: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-26

Propriedade do software

• Copyright

– Permitir que um produto seja lançado,

mantendo a posse da propriedade intelectual

– Garantia em todas as partes do produto:

• Especificações

• Código-fonte

• Produto final

Page 27: Ciência da computação: Uma visão abrangente 11a EdiçãoCiência da computação: Uma visão abrangente 11a Edição by J. Glenn Brookshear Capítulo 7: Engenharia de Software

Copyright © 2012 Pearson Education, Inc. 0-27

Propriedade do software

(continuação)

• Licença de software

– Um acordo legal que concede ao usuário

determinadas permissões sem transferência

de propriedade

• Patentes

– Deve demonstrar que é novo, útil e não óbvio

para os outros com origens semelhantes

– Process is expensive and time-consuming