ciência da computação: uma visão abrangente 11a ediçãociência da computação: uma visão...
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/1.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/2.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/3.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/4.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/5.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/8.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/16.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/18.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/19.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/21.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.mx/reader036/viewer/2022071507/61278dd3db10c16f1b087396/html5/thumbnails/27.jpg)
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