A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Ceça Moraes Diagrama de Classes.

Apresentações semelhantes


Apresentação em tema: "Ceça Moraes Diagrama de Classes."— Transcrição da apresentação:

1 Ceça Moraes Diagrama de Classes

2 Classes Programação Orientada a Objetos:
os problemas de programação são pensados em termos de objetos Em vez de funções e rotinas Problema = desenvolver um sistema para locadoras Dividir o problema em objetos Clientes,DVDs,Filmes,Locação,...

3 Classes "Um objeto  é um termo que usamos para representar uma entidade do mundo real"  Fazemos isto através de um exercício de abstração...

4 Classes Podemos descrever o cachorro Bilú  em termos de seus atributos físicos: é pequeno sua cor principal é castanha olhos pretos orelhas pequenas e caídas,  rabo pequeno

5 Classes Podemos também descrever algumas ações que ele faz (temos aqui os métodos): balança o rabo foge e se deita quando leva reclamação late quando ouve um barulho ou vê um cão ou gato atende quando o chamamos pelo seu nome

6 Classes Representação do cachorro Bilú:
Propriedades : [Cor do corpo : castanha;  cor dos olhos : pretos;  altura: 15 cm;   comprimento: 38 cm   largura : 24 cm] Métodos : [balançar o rabo , latir , correr, deitar , sentar ] 

7 Classes Uma classe representa um conjunto de objetos que possuem comportamentos e características comuns Têm os mesmos atributos, operações, relacionamentos e semântica Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programação

8 Classes Ao definir uma classe é necessário definir : Propriedades
Informações específicas relacionadas a uma classe de objeto Características dos objetos da classe Exemplo: Cor , altura , tamanho , largura ,... Métodos: São ações que os objetos de uma classe podem realizar Exemplo : Latir , correr , sentar , comer, etc.

9 Diagrama de Classes Ilustram atributos e operações de uma classe e as restrições como que os objetos podem ser conectados ; Descrevem também os tipos de objetos no sistema e os relacionamentos entre estes objetos

10 Representação de Classe
Atributos visibilidade nome: tipo + altura: float Métodos visibilidade nome(args): tipo retorno + latir() + media(n1,n2): float Atributos Métodos

11 Diagramas de Classes Visibilidade dos atributos e métodos em uma classe : + (público) visível em qualquer classe # (protegido) qualquer descendente pode usar – (privado)  visível somente dentro da classe

12 Relacionamentos entre Classes
Os relacionamentos determinam conexões entre os objetos das classes Fornecem um caminho para a comunicação entre os objetos Tipos de Relacionamentos: Associações :  agregação e composição Generalização (herança) Dependências

13 Relacionamento entre Classes
Os relacionamentos possuem: Nome: descrição dada ao relacionamento (faz, tem, possui,...) Sentido de leitura Navegabilidade: indicada por uma seta no fim do relacionamento Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7 Tipo: associação (agregação, composição), generalização e dependência Papéis: desempenhados por classes em um relacionamento

14 Relacionamentos E a navegabilidade? Pessoa Empresa nome multiplicidade
sentido de leitura Pessoa 1..* trabalha para * Empresa empregado empregador Tipo: associação papéis E a navegabilidade?

15 Relaci0namentos O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence navegabilidade reside Cliente Endereço 1 * © LES/PUC-Rio

16 Associação Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem Não há conceito de posse As associações podem ser: unárias - quando a associação ocorre entre objetos de uma mesma classe binárias - quando a associação ocorre entre dois objetos de classes distintas

17 Associação Uma associação é uma conexão entre classes (linha sólida)

18 Associação Indicadores de multiplicidade: 1 Exatamente um
1..* Um ou mais 0..* Zero ou mais (muitos) * Zero ou mais (muitos) 0..1 No máximo um (zero ou um) m..n Faixa de valores (por exemplo: 4..7)

19 Multiplicidade

20 "Qualquer empregado é chefiado por no máximo um chefe."
Associação "Qualquer empregado é chefiado por no máximo um chefe." UML Empregado Chefe Chefia * 0..1 empregados chefe

21 Papel

22 Associação Exemplo

23 Navegação Navegação por definição, a navegação entre classes associadas é bidirecional por conveniência, a navegação pode ser restringida a uma única direção

24 Navegação Exemplo

25 Associação Exemplo Um Estudante pode ser:
Um aluno de uma Disciplina e Um jogador da Equipe de Futebol Cada Disciplina deve ser cursada por no mínimo 1 aluno Um Aluno pode cursar de 0 até 8 disciplinas

26 Associação com Classe Ocorre quando a associação tem propriedades

27 Agregação É um tipo especial de associação
Utilizada para indicar “todo-parte” um objeto “parte” pode fazer parte de vários objetos “todo” Mostra como classes são compostas de outras classes

28 Agregação

29 "Uma empresa possui vários veículos."
Agregação "Uma empresa possui vários veículos." UML frota Empresa Veículo 0..1 *

30 Agregação Exemplo

31 Composição Tipo especial de agregação é um relacionamento de contenção
Um objeto (container) CONTÉM outros objetos (elementos) Elementos que estão contidos dentro de outro objeto dependem dele para existir

32 Composição x Agregação
estabelece uma relação todo-parte entre classes, sendo que a parte pode existir sem o todo. Ex: Carro e Roda. Uma Roda é parte de um Carro, porém a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro. Composição: estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo. Ex: Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruídos junto, eles não tem sentido se não houver um Pedido.

33 Composição Exemplo

34 Composição Exemplo Língua natural UML
"Um humano é composto por uma cabeça e dois braços." UML Humano Cabeça 1 Braço 2

35 Herança Uma classe pode ser definida a partir de outra já existente
Abstrai classes genéricas (superclasse), a partir de classes com propriedades (atributos e operações) semelhantes

36 Herança Modelar aspectos semelhantes entre classes, preservando suas diferenças As subclasses herdam todas as propriedades de sua superclasse E possuem as suas próprias

37 Herança Relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) Veículo superclasse “é um” “é um tipo de” Terrestre Aéreo subclasses

38 Herança Forma Círculo Retângulo FormaComposta
uma Forma pode ser um Círculo, um Retângulo ou uma FormaComposta Círculo Retângulo FormaComposta

39 Herança

40 Processo de Generalização
Identificar classes com propriedades semelhantes Definir uma nova classe com as propriedades comuns As classes originais tornam-se subclasses da nova classe e herdam as propriedades desta Os relacionamentos em comum passam para a superclasse e os demais continuam nas subclasses

41 Processos de Especialização
Definir uma ou mais subclasses a partir de uma classe existente Adicionar propriedades e relacionamentos específicas de cada nova subclasse Relacionamentos comuns a todas as subclasses são ligados à superclasse

42 Generalização / Especialização

43 EXEMPLO

44 Exemplo: Sistema de Matrícula Descrição
A Universidade XYZ deseja informatizar seu sistema de matrículas: A universidade oferece vários cursos. O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre. Várias disciplinas são oferecidas em um curso. Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10. Estudantes podem se matricular em 4 disciplinas. Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado. Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas. Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas. Todos os usuários do sistema devem ser validados.

45 Exemplo: Sistema de Matrícula
Diagrama de Casos de Uso

46 Exemplo: Sistema de Matrícula
Descrição Resumida do Caso de Uso “Matricular em Disciplina” Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais. O sistema verifica se a credencial é válida. O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas. O estudante preenche um formulário eletrônico de matrícula e o submete para análise de consistência. O sistema analisa as informações contidas no formulário. Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais. Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.

47 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando as classes Professor Coordenador Estudante Universidade Disciplina Turma Curso FormularioMatricula AnalisadorMatricula SistemaRegistroAcademico ListaAlunos

48 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os relacionamentos Exemplos de possibilidades de relacionamentos entre as classes A e B: A é parte física ou lógica de B A está contido fisicamente ou logicamente em B A é uma descrição de B A é membro de B A é subunidade organizacional de B A usa ou gerencia B A se comunica/interage com B A está relacionado com uma transação B A é possuído por B A é um tipo de B

49 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os relacionamentos O formulário de matrícula é processado por um analisador de matrícula é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1

50 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os relacionamentos O analisador de matrícula gerencia a disciplina é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 0..* Disciplina

51 Exemplo: Sistema de Matrícula
Diagrama de Classes é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 1 gerencia 0..* é-definida-por é-preenchido-por Disciplina Coordenador 1..* 1 1 aluno 1 1..* está-matriculado-em é-ministrada-por Estudante Turma Professor 3..10 4 0..3 1

52 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os atributos Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema. Cada turma oferecida possui um código, uma sala e um horário. Turma código sala horário

53 Exemplo: Sistema de Matrícula
Diagrama de Classes é-processado-por FormularioMatricula AnalisadorMatricula 0..* 1 1 1 gerencia 0..* Disciplina nome numCréditos é-definida-por é-preenchido-por Coordenador 1..* 1 1 1..* aluno 1 Turma código sala horário Estudante Professor está-matriculado-em é-ministrada-por nome matricula nome titulação 3..10 4 0..3 1

54 Exemplo: Sistema de Matrícula
Diagrama de Classes: identificando os métodos modelar antes os diagramas de seqüência

55 Exemplo: Sistema de Matrícula
Diagrama de Classes: E a navegabilidade? Turma Estudante 3..10 está-matriculado-em 4 public class Estudante { private String nome; private String matricula; ... } public class Turma { private String codigo; private String sala; private Estudante alunos[]; ... } OBS: Turma não aparece como atributo de Estudante!

56 Exemplo: Sistema de Matrícula
Diagrama de Classes: Acrescentando generalizações: Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral.

57 Exemplo: Sistema de Matrícula


Carregar ppt "Ceça Moraes Diagrama de Classes."

Apresentações semelhantes


Anúncios Google