Baixe o app para aproveitar ainda mais
Prévia do material em texto
Diagrama de Classes • Diagrama de Classes Conceitual (negócios) e de projeto = mesmo modelo . Abrange as Fases de Análise e Projeto . Modelagem de classes e seus relacionamentos. • Diagrama de Classes . Conta Corrente . Correntista . Lançamento Analisando os casos de uso, podemos identificar classes e atributos. • Diagrama de Classes . Conta Corrente . Correntista . Lançamento Vamos modelar as classes e atributos ? • Diagrama de Classes . Conta Corrente . Correntista . Lançamento ContaCorrente numero agencia dataAbertura senha ... abrirConta() bloquearConta() validarSenha(senha) ... Correntista nome cpf endereco dataNascimento ... cadastrar() ... Lancamento data tipo valor numDocumento ... lancar() listarLancamen tos(periodo) ... Primeira abstração: Atributos Modelagem evolui: Operações • Diagrama de Classes ContaCorrente numero agencia dataAbertura senha ... abrirConta() bloquearConta() validarSenha(senha) ... Correntista nome cpf endereco dataNascimento ... cadastrar() ... Lancamento data tipo valor numDocumento ... lancar() listarLancamen tos(periodo) ... As classes não vivem sozinhas... precisamos estabelecer seus relacionamentos !!! • Diagrama de Classes ContaCorrente Correntista Lancamento Relacionamento de Associação Relacionamento de Agregação Nas abstrações de níveis mais baixos, não precisamos trabalhar com todos os elementos. Diagrama de Classes • O que se define sobre uma classe (elementos mínimos. – Nome, Atributos e Métodos – Visibilidade: Atributos e Métodos – Relacionamentos entre classes do sistema – Multiplicidade = quantidade de objetos que participam do relacionamento entre classes. Diagrama de Classes • Multiplicidade – Mostra a quantidade de instâncias (objetos) possíveis em 1 relacionamento. • * - muitos • 0..1 - opcional • 1 ou 1..1 – exatamente 1 • * ou 0..* - nenhum ou muitos • 1..* - pelo menos 1 Diagrama de Classes • Sob a ótica da OO um sistema é um conjunto de objetos que interagem (trocam mensagens) • A Classe é uma abstração de objetos • Logo as Classes identificadas na solução de um problema devem se relacionar. As relações possíveis são: – Associação • Associação exclusiva – Classe de Associação – Generalização / especialização – Agregação – Composição – Dependência Relacionamento entre classes • Associação – Conecta 1 (auto associação), 2 (binária) ou mais (ternária ou ordem N) classes, demonstrando a colaboração entre instâncias (objetos) de classes. – Denota relacionamento entre classes não correlatas e independentes. Ao acabar o relacionamento, as 2 classes permanecem com suas vidas próprias. Relacionamento entre classes • Associação – Binária = objetos de 2 classes relacionam-se • As 2 classes existem, independente de se associarem ou não. – Uma associação pode ter: • Navegabilidade: se omitida, é bidirecional • Nome (faz) – pode vir com seta de direção • Papel (role): papel da classe na associação Aluno 0..* FAZ 0..* Disciplina Relacionamento entre classes Disciplina Pré-requisito • Unária = objetos da mesma classe • Associação exclusiva: é uma restrição em 2 ou mais associações. • Objetos de 1 classe podem participar de no máximo 1 das associações, a cada momento Relacionamento entre Classes • Classe de Associação: – Uma associação, entre 2 classes, pode requerer atributos / métodos para ser descrita (possui elementos próprios). • Ela gera uma Classe com propriedades específicas, que carecem de modelagem à parte (3a. Classe) – Os atributos Data empréstimo e data de devolução não são nem da classe sócio e nem da classe Fita. São referentes ao ato de emprestar, que gera a classe de associação (só acontece quando um sócio “associa-se” a uma fita, pegando-a emprestada) EMPRESTIMO. Fita Sócio Empréstimo Relacionamento entre classes • Generalização normal (herança) – Define uma hierarquia de classes que modela relacionamento “é um tipo de”. – Atributos e operações da SuperClasse (comum) são herdados pela Sub-Classe (+ específica) – A funcionalidade comum a diversas classes deve ser posicionada o mais alto possível na hierarquia. Relacionamento entre Classes • Generalização (herança) normal – Formas de representação Imposto DARF ISS DARF A DARF B Pessoa Cliente Fornecedor Funcionário Generalização Especialização • Generalização Restrita – Sub-classes podem ocorre simultaneamente (sobreposição) ou mutuamente exclusivas (disjunção) com relação à mesma superclasse. – Alto nível de detalhe, porém importante para o programador. Pessoa Aluno Professor Sobreposição Pessoa Homem Mulher Disjunção Relacionamento entre classes Relacionamento entre classes • Agregação e Composição – Tipo especial de associação (todo-parte) – Usado para descrever componentes que fazem parte de uma estrutura • 1 das classes do relacionamento é uma parte ou está contida em outra classe. • “consiste em”, “contém”, “é parte de “ – A composição é mais física, é mais forte, pois denota uma maior dependência entre o TODO e suas partes. Relacionamento entre classes • Agregação – 3 Questões, que indicam a agregação. Não necessariamente todas tem q ser V. • 1. O Objeto TODO pode existir sem as partes • 2. Um parte pode ser agregar com mais de 1 TODO, ao mesmo tempo. • 3. Geralmente é uma relação homogênea (partes semelhantes). – Pode ter multiplicidade N:N. Prova Questões Depto Funcionários Relacionamento entre classes Relacionamento entre classes • Composição – É uma agregação mais poderosa . • Onde as PARTES “estão contidas” (vivem) dentro do TODO – vida coincidente. A parte perde a identidade. • Sem o TODO as Partes não fazem sentido (dependência) – Multiplicidade: N só no lado das partes. Relacionamento entre classes • Composição
Compartilhar