Orientação a objetos







identidade
abstração
classificação
encapsulamento
herança
polimorfismo
persistência
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Objetos e classes
•
Todo objeto tem um nome (também chamado de
referência ou indicador).
• Objetos podem ter atributos (como cor, tamanho
e origem).
• Objetos podem ter operações e comportamentos
(como decolar, aterrissar e ser consertado).
• Cada objeto é uma instância de uma classe.
• A implementação específica de uma operação
para uma certa classe é chamado de método
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Projeto orientado a objetos






Normalmente utiliza uma especificação de
requisitos orientada a objetos
Identifica e representa as classes e os objetos,
inclusive os detalhes dos atributos e os
comportamentos de cada um
Também identifica as interações e relações
Insere aspectos computacionais
Insere alguns detalhes da biblioteca de classes
Considera os requisitos não-funcional e aprimora
o projeto de maneira adequada aos requisitos
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Casos de uso

Os diagramas devem ter quatro elementos:




atores
casos
extensões
usos
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Identificando os participantes





Quais usuários ou grupos utilizam o sistema para
realizar uma tarefa?
Quais usuários ou grupos são necessários para que o
sistema possa realizar suas funções?
Quais sistemas externos utilizam o sistema para realizar
uma tarefa?
Quais sistemas externos, usuários ou grupos enviam
informações para o sistema?
Quais sistemas externos, usuários ou grupos recebem
informações do sistema?
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
A UML no processo OO







Diagramas de workflow
Modelo de objetos
Diagramas de seqüência
Diagramas de colaboração
Diagramas de pacotes
Diagramas de componentes
Diagramas de implantação
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Itens que podem sugerir a primeira identificação das
classes de objetos








Estruturas
Sistemas externos
Dispositivos
Papéis
Procedimentos operacionais
Lugares
Organizações
Coisas que são manipuladas pelo sistema que
está sendo construído
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Diretrizes para decidir o que incluir em
uma lista de classes





O que necessita ser processado de uma determinada
maneira?
Quais itens têm vários atributos?
Quando você tem mais de um objeto em uma classe?
O que tem como base os próprios requisitos e não é
derivado de seu entendimento dos requisitos?
Quais atributos e operações são sempre aplicáveis a
uma classe ou a um objeto?
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Diretrizes para identificar
comportamentos







Verbos no imperativo
Verbos na voz passiva
Ações
Coisas ou eventos lembrados
Papéis
Procedimentos operacionais
Serviços fornecidos por uma organização
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Nome da classe: abastecimento
Categoria: serviço
Documentos externos:
Controle de exportação: Público
Cardinalidade: n
Hierarquia:
Superclasses: serviços
Associações:
combustível em associação <nome>
Nome da operação: preço
Membro público de: abastecimento
Documentação:
// Calcula o preço final do combustível
Pré-condições:
galões > 0
diagrama de objetos: (não especificado)
Semântica:
preço_final = galões * preço
diagrama de objeto: (não especificado)
Concurrência: seqüencial
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Interface pública:
Operações:
preço
Interface privada:
Atributos:
galões
preço
Implementação:
Atributos:
galões
preço
Máquina de estado: não
Concorrência: seqüencial
Persistência: transitória
Prentice Hall
Considerações para um projeto do
programa





Requisitos não-funcionais
Componentes que podem ser reutilizados a partir de
sistemas previamente construídos
Componentes que podem ser reutilizados em outros
sistemas além do que atualmente está em
desenvolvimento
Requisitos da interface com o usuário
Estrutura de dados e detalhes sobre o
gerenciamento
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Engenharia de Software: Teoria e Prática
Shari Lawrence Pfleeger
Capítulo 6
Prentice Hall
Download

cap06