O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Diagramadeclassesal

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Aula 6   14042011 sii
Aula 6 14042011 sii
Carregando em…3
×

Confira estes a seguir

1 de 89 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Diagramadeclassesal (20)

Mais recentes (20)

Anúncio

Diagramadeclassesal

  1. 1. Diagrama de Classes
  2. 2. Diagrama de Classes Demonstra a estrutura estática das classes de um sistema, seus atributos e operações Mostra o relacionamento entre as classes
  3. 3. Diagrama de Classes – Um Exemplo SalesLineItem quantity : Integer subtotal() ProductCatalog specification() ProductSpecification description : Text price : Quantity upc : UPC Store address : Address name : Text addSale() Payment amount : Quantity Contains 1.. * Contains 1.. * POST endSale() enterItem() makePayment() Sale date : Date isComplete : Boolean time : Time becomeComplete() makeLineItem() makePayment() total() Captures Houses Uses Looks-in Paid-by Describes 1 1 1 1 1 1 1 1 1 1 1 1 1 * Logs-completed 4 * 1
  4. 4. Perspectivas de um Diagrama de Classes Conceitual: forma abstrata de se observar classes e objetos e independente da linguagem de programação (Modelo Conceitual) De Implementação: pensa-se em detalhes de implementação para definir as classes e objetos.
  5. 5. Definição de Objetos Conceitual: representa uma entidade, ”coisa” , processo ou conceito do mundo real e que possui: Identidade – valor de uma característica que o identifica para reconhecimento Atributos – qualidades, características Comportamento – habilidades de processamento
  6. 6. Definição de Objetos De implementação: representa um módulo de sw que recebe e produz dados Identidade – identificador em lg de implementação Atributos – variáveis e seus tipos, que recebem diferentes valores e definem o estado do objeto Comportamento – funções ou procedimentos, os resultados dessas funções determinam o comportamento do objeto
  7. 7. Definição de Classes Conceitual: são agrupamentos de objetos, são abstrações de um coletivo de entidades do mundo real O modelo genérico desse coletivo contém atributos e comportamentos comuns.
  8. 8. Definição de Classes De implementação: corresponde a um tipo de uma lg de programação Um modelo genérico para criar variáveis que armazenarão os objetos correspondentes.
  9. 9. Notação UML para Classes Identificação da classe Atributos Métodos <<entidade>> Cliente De Pacote Vendas Atributos Métodos <<entidade>> Cliente De Pacote Vendas
  10. 10. Notação UML para Atributos A maioria é opcional, seu uso vai depender do tipo de visão no qual estamos trabalhando e podem ser abstratos ou utilizar a notação de uma lg de programação [Visibili/d]Nome[Multiplici/d]:[Tipo]=[Valor][{Proprie/ds}]
  11. 11. Notação UML para Atributos - Visibilidade + : visibilidade pública: o atributo ü visível no exterior da classe. - : visibilidade privada : o atributo é visível somente por membros da classe. # : visibilidade protegida: o atributo é visível também por membros de classes derivadas
  12. 12. Notação UML para Atributos - Multiplicidade Usada para especificar atributos que são arranjos Indica dimensão de vetores e matrizes Ex: notas[10] matrizDeValores[5,10]
  13. 13. Notação UML para Atributos - Tipos Indicam o formato do valores que o atributo pode assumir Na visão conceitual o tipo é abstrato Ex: dataDaVenda: tipoData Na visão de implementação utilizam-se os tipos da lg de programação Ex: salario: float
  14. 14. Notação UML para Atributos – Valor Inicial e Propriedades Pode-se indicar o valor ou conteúdo do atributo imediatamente após a sua criação, ou o seu valor default Ex: resultado: int=0 As propriedades descrevem comentários ou indicações sobre o atributo, podem mostrar se ele é ou não opcional Ex: dataDaVenda {valor constante}
  15. 15. Notação UML para Métodos A notação e uso vai depender do tipo de visão no qual estamos trabalhando e podem ser abstratos ou utilizar a notação de uma lg de programação [Visibili/d]Nome(Parâmetros)]:[Retorno][{Proprie/ds}]
  16. 16. Notação UML para Métodos - Parâmetros Os parâmetros – dados de entrada e/ou saída para o método são representados por Nome-do-Parâmetro:Tipo=Valor-Padrão Ex: Visão conceitual ImprimirData(data:TipoData) Visão de implementação ArmazenarDados(nome:char[30],salario:float=0.0)
  17. 17. Notação UML para Métodos – Tipo de Retorno O Valor-de-Retorno indica se o método retorna algum valor ao término de sua execução e qual o tipo de dado do valor retornado. Ex: Visão Conceitual CalcularValor(): TipoDinheiro Visão de implementação ArmazenarDados(nome:char[30]): bool
  18. 18. Notação UML para Métodos – Visibilidade e Propriedades Visibilidade – similar ao de atributo Comentários ou restrições para os métodos Ex: Area() {Área <=600} Restringe a 600 unidades o valor máximo das áreas a calcular
  19. 19. Notação UML para Métodos – Propriedades É útil distingüir operações de métodos. Operações é algo que se evoca sobre um objeto (a chamada do procedimento). Para realizar uma operação a classe implementa um método (o corpo do procedimento) É útil distingüir operações que alteram ou não o estado (atributos) de uma classe Não alteram: query, métodos de obtenção, getting methods Alteram: modificadores, métodos de atribuição ou fixação, setting methods
  20. 20. Exemplo de Uma Classe Aluno <<entidade>> Aluno DePacoteCadastro nome:TipoNome RA: TipoCódigo -nome[30]:char +RA: int {valorconstante} calculaMédia():TipoNota +calculaMédia():Double Visão Conceitual Visão de Implementação
  21. 21. Identificação das Classes – Refinamentos Sucessivos VisãoAbstrata detalhadamento (impl.) Na visão conceitual: cada classe pode ser vista como um conceito ou um tipo, e os métodos são identificados numa fase posterior. Na visão de implementação: os métodos aparecem obrigatoriamente e consideramos aspectos de controle, estereótipos, pacotes, etc. Podem existir outras visões intermediárias
  22. 22. Identificação de Classes com Estereótipos Estereótipo é um classificador. Tipos: • Entidade: representam conceitos do mundo real e armazenam dados que os identificam • Controle: controlam a execução de processos e o fluxo de execução de todo ou de parte de casos de uso e comandam outras classes • Fronteira: realizam o interfaceamento com entidades externas (atores), contém o protocolo de comunicação com impressora, monitor, teclado, disco, porta serial, modem, etc.
  23. 23. Exemplos no Sistema Posto Comercial <<identidade>> Intens <<controle>><<fronteira>> ControleComprarItensInterfaceCliente
  24. 24. Identificando Classes Entidades –Regras Úteis É melhor especificar demais do que de menos Não exclua entidades simplesmente porque os requisitos não indicam a necessidade de guardar informações sobre eles (comum em projeto de BD) Comece fazendo uma lista de entidades candidatos a partir de uma lista Considere os substantivos e frases nominais nas descrições textuais do domínio do problema como possíveis candidatos a entidades ou atributos
  25. 25. Classes Entidades Típicas Categoria Especificação, projeto, ou descrição de coisas Especificação de produto Descrição de vôo Objeto físico ou tangível Terminal de ponto-de-venda Avião Lugares Loja Aeroporto Transações Venda, Pagamento Reserva Exemplos Itens de transação Itens de venda Parcelas de pagamento Container de coisas Loja Avião Papéis de pessoas Operador Piloto
  26. 26. Classes Entidades Típicas Coisas em um container Item Passageiro Sistemas externos Serviço de crédito Controle de tráfego aéreo Nomes abstratos Fome Aracnofobia Eventos Venda, Assalto, Reunião Vôo, Decolagem Organizações Departamento de vendas Companhia aérea Regras e políticas Política de devolução Política de cancelamento Categoria Exemplos
  27. 27. Classes Entidades Típicas Catálogos Catálogo de produtos Catálogo de peças Registros de finança, trabalho, contrato, questões legais Recibo, Contrato de trabalho Registro de manutenção Manuais, livros Manual do empregado Manual de reparos Instrumentos e serviços financeiros Linha de crédito Ações Categoria Exemplos
  28. 28. Identificando Entidades a partir dos Casos de Uso Usar com cuidado! Linguagens naturais: imprecisão e ambigüidade Ação do Ator Resposta do Sistema 1. Este caso de uso começa quando um Cliente chega no caixa com itens para comprar. 2. O Operador registra o identi- ficador de cada item. Se há mais de um do mesmo item, o Operador também pode informar a quantidade. 3. Determina o preço do item e adiciona informação sobre o item à transação de venda em anda- mento. Mostra a descrição e o preço do item corrente.
  29. 29. Entidades Candidatas para o Sistema Posto Comercial Conceitos restritos ao caso de uso Comprar Itens - Versão 1 StorePOST SaleItem Payment Sales LineItem Cashier Customer Manager Product Catalog Product Specification
  30. 30. Entidades de Relatório Não incluir no modelo conceitual quando: Toda informação contida no relatório é derivada de outras fontes Incluir no modelo conceitual quando: Relatório tem um papel especial em termos das regras de negócio Ex.: Recibo de venda dá direito à devolução dos itens comprados
  31. 31. Criando um Diagrama de Classes-Perspectiva Conceitual 1. Liste os conceitos candidatos para os casos de usos em questão usando a lista de categorias comuns e identificação textual de nomes. 2. Desenhe-os em um modelo conceitual. 3. Adicione as associações necessárias para registrar os relacionamentos para os quais é preciso preservar alguma memória 4. Adicione os atributos necessários para cumprir os requisitos de informação.
  32. 32. Estratégia do “fazedor de mapas”: Usar nomes existentes no vocabulário do domínio Incluir apenas conceitos pertinentes para os requisitos (casos de uso) em questão Excluir tudo que não há no domínio do problema Erro comum: atributo em vez de entidade Atributos normalmente correspondem a um texto ou número no mundo real Criando o Diagrama de Classes-Perspectiva Conceitual Vôo Aeroporto nome Vôo destino ou... ?
  33. 33. A especificação ou descrição de um objeto deve ser representada como uma entidade em separado evita perda de informação quando o objeto é deletado reduz informações redundantes ou duplicadas Muito comum no domínio de produtos e vendas Ex.: Entidades de Especificação ou Descrição Item descrição preço número serial UPC Especificação-Produto Item Número serial Descreve 1 * descrição preço UPC pior melhor
  34. 34. Entidades de Especificação ou Descrição – Outro exemplo pior melhor Vôo data número hora Aeroporto nome Voa-para 1 * Vòo data hora Descrição-Vôo número Aeroporto nome Descreve-vôo-para Descrito-por 1 * 1 *
  35. 35. Identificação das Classes de Controle Definir pelo menos uma classe do tipo controle para cada caso de uso de forma que ela contenha a descrição e comando do processo associado ao caso de uso. Definir classes de controle auxiliares em certos casos de uso que devido aà complexidade requeiram a divisão de seu processo em subprocessos. As classes auxiliares seriam controladas pela classe de controle principal
  36. 36. Identificação das Classes de Controle Suas principais características são: Cria, ativa e anula objetos controlados Controla a operação de objetos controlados Controla a concorrência de pedidos de objetos controlados Em muitos casos corresponde a implementação de um objeto intangível. Gerente de Registro para o Caso de Uso registrarAlunos
  37. 37. Identificação das Classes de Fronteira Definir uma classe do tipo fronteira para cada ator que participe do caso de uso, pois cada ator que pode exigir um protocolo próprio para comunicação. Uma classe para interface com o usuário, uma classe para interface com a impressora, uma classe para interface com a porta serial, etc.
  38. 38. Identificação das Classes de Fronteira Exemplos: Interface tipo Janela, Protocolo de Comunicação, Interface de Impressão, Sensores, etc. Classes: Formulário em Branco e Sistema de Cobrança
  39. 39. Relacionamentos Os relacionamentos entre as classes representam a interação entre seus objetos Tipos: Associação Agregação Generalização Dependência e Refinamentos
  40. 40. Associações Conexão entre classes/objetos Relacionamento que descreve uma série de ligações entre duplas de classes/ objetos Uma ligação significa por exemplo que: elas "conhecem uma a outra“ "estão conectadas com“ para cada X existe um Y
  41. 41. Associações Simples O mais comum, com apenas uma conexão, representada por uma linha sólida e um nome (geralmente verbo) Caixa Venda registra
  42. 42. Associações Pode possuir dois nomes, significando um nome para cada sentido da associação e os papéis de cada classe
  43. 43. Associações – Cardinalidade (Multiplicidade) Especifica o número de objetos de cada classe envolvidos com a associação A leitura da cardinalidade é diferente para os diferentes sentidos da associação Caixa Venda registra 0..*1
  44. 44. Associações - Cardinalidade zero or more; "many" one or more one to forty exactly five T T T T * 1..* 1..40 5 T 3, 5, 8 exactly three, five or eight
  45. 45. Associações - Navegabilidade Mostra a direção de navegação, ou seja do canal de comunicação entre os objetos e classes. Uma associação é navegável da classe A para a classe B, se, dado um objeto de A, consegue-se obter de forma direta os objetos relacionados da classe B.
  46. 46. Associações - Navegabilidade Empresa Mercadoria fornece Dada uma mercadoria pode-se identificar diretamente a empresa fornecedora,mas a volta não é verdadeira 0..* 0..*
  47. 47. Associação Recursiva ou Reflexiva Os objetos conectados são da mesma classe
  48. 48. Associação Qualificada Usadas com multiplicidades 1..* ou *. O qualificador (chave) identifica um objeto
  49. 49. Associação Exclusiva Restrição em duas ou mais associações, especificando que objetos de uma classe podem participar de no máximo uma das associações ao mesmo tempo
  50. 50. Associação Ordenada Especifica uma ordem entre os objetos da associação. Ex: janelas de um sistema têm que ser ordenadas na tela (uma está no topo, uma está no fundo e assim por diante). Janela Top Janela Bottom {ordenada}
  51. 51. Associações de Classe Serve para adicionar informações extras a uma associação existente, quando essa possuir operações e métodos (ela é uma classe)
  52. 52. Associação Ternária Envolve três classes (inclusive uma classe de associação)
  53. 53. Agregação A agregação é um caso particular de associação Uma das classes é uma parte ou está contida em outra. Palavras chaves: consiste em, contém, é parte de. Dois casos: composição e compartilhamento.
  54. 54. Agregação de Composição Uma classe pertence a um único composto (vive nele).
  55. 55. Agregação de Compartilhamento Uma classe pode fazer parte de mais de um composto e/ou estar contida nele várias vezes.
  56. 56. Generalização Relacionamento entre uma classe geral e outra mais específica (herança). A classe mais específica pode ser usada no lugar da mais geral. Generalização normal Generalização restrita: sobreposição, disjuntiva, completa e incompleta
  57. 57. Generalização Normal A classe mais específica (sub-classe) herda tudo da mais geral (super-classe)
  58. 58. Generalização Restrita Especifica restriçoes sobre a generalização e herança Sobreposição: nessa hierarquiva subclasses herdam de uma superclasse por sobreposição, ou seja, as sub- classes dessas poderão herdar de mais de uma sub-classe Disjuntiva
  59. 59. Generalização Restrita – Sobreposição e Disjuntiva Sobreposição: nessa hierarquiva subclasses herdam de uma superclasse por sobreposição, ou seja, as sub-classes dessas podem herdar de mais de uma sub-classe. Disjuntiva: as subclasses herdam de mais de uma superclasse, mas as sub-classes dessas poderão herdar de apenas uma.
  60. 60. Generalização Sobreposição
  61. 61. Generalização Completa e Incompleta Uma generalização está completa se já foram especificadas todas as sub- classes até aquele ponto e está incompleta se exisitir a possibilidade de uma outra generalização.
  62. 62. Dependências Conexão entre dois elementos, representando que uma mudança no elemento independente afeta o dependente.
  63. 63. Refinamentos Relacionamentos entre duas descrições de uma mesma coisa, mas em níveis de abstração diferentes São usados em modelos de coordenação, ou seja, modelos que mostram como os modelos de diferentes fases se relacionam
  64. 64. Identificação dos Relacionamentos Na perspectiva conceitual representam- se relacionamentos conceituais As associações são estabelecidas analisando-se os papéis. A generalização representa a hierarquia entre tipos e seus sub-tipos A agregação entre um todo e suas partes.
  65. 65. Perspectiva Conceitual Associações Indicam conhecimento de um relacionamento que precisa ser preservado durante algum tempo Duração de milisegundos ou anos, dependendo do contexto
  66. 66. Associações Típicas Categoria A é uma parte lógica de B (*) Item de Venda - Venda Escala - Vôo A é uma parte física de B (*) Gaveta - POST Asa - Avião A está fisicamente contido em B (*) POST - Loja Passageiro - Avião A está logicamente contido em B (*) Descrição-Item - Catálogo Vôo - Roteiro de Viagem Exemplos A é uma descrição de B Descrição-Item - Item Descrição-Vôo - Vôo A é conhecido/registrado/repor- tado/capturado em B (*) Venda - POST Reserva - Terminal de Reserva A é um item de uma transação ou relatório B Item de Venda - Venda Opção de Reserva - Reserva (*) Alta prioridade
  67. 67. Associações Típicas Categoria A é uma sub-unidade organizacional de B Departamento - Loja Manutenção - Companhia Aérea A é um membro de B Operador - Loja Piloto - Companhia Aérea A usa ou gerencia B Operador - POST Piloto - Avião A se comunica com B Cliente - Operador Agente de Reserva - Passageiro Exemplos A está relacionado com uma transação B Cliente - Pagamento Passageiro - Bilhete A é possuído por B POST - Loja Avião - Companhia Aérea A é uma transação relacionada com outra transação B Pagamento - Venda Reserva - Cancelamento
  68. 68. Identificando Associações Regras úteis: Focar nas associações cujo conhecimento deve ser preservado Usar nomes baseados em expressões verbais que façam sentido quando lidas no contexto do modelo Evitar mostrar associações deriváveis ou redundantes É mais importante identificar conceitos do que associações Associações demais tendem a confundir um modelo ao invés de iluminá-lo
  69. 69. Adicionando Associações ao Modelo Conceitual do Sistema POST Relacionamentos fundamentais Venda Capturada-em POST Para conhecer a venda corrente, calcular total e imprimir recibo Venda Paga-por Cliente Para saber se a venda foi paga, calcular troco, e imprimir recibo Catálogo-Produto Contém Especificação-Item Para obter a especificação de um item, dado um UPC
  70. 70. Aplicando a Lista Categoria A é uma parte lógica de B Item de Venda - Venda A é uma parte física de B N.A. A está fisicamente contido em B POST - Loja Item - Loja A está logicamente contido em B Especificação-Produto - Catálogo Catálogo - Loja Exemplos A é uma descrição de B Especificação-Produto - Item A é conhecido/registrado/repor- tado/capturado em B Venda (corrente) - POST Venda (completada) - Loja A é um item de uma transação ou relatório B Item de Venda - Venda
  71. 71. Aplicando a Lista Categoria A é uma sub-unidade organizacional de B N.A. A é um membro de B Operador - Loja A usa ou gerencia B Operador - POST Gerente - POST A se comunica com B Cliente - Operador Exemplos A está relacionado com uma transação B Cliente - Pagamento Operador - Pagamento A é possuído por B POST - Loja A é uma transação relacionada com outra transação B Pagamento - Venda
  72. 72. Eliminando Associações Redundantes Associação Operador Registra-vendas-em POST Conhecimento não exigido nos requisitos. Venda Iniciada-por Operador Conhecimento não exigido nos requisitos; derivável da associação Operador Registra-vendas-em POST. POST Inicializado-por Gerente Conhecimento não exigido nos requisitos. Venda Iniciada-por Cliente Conhecimento não exigido nos requisitos. Consideração Loja Armazena Item Conhecimento não exigido nos requisitos. Item de Venda Registra-venda-de Item Conhecimento não exigido nos requisitos.
  73. 73. Preservando Associações de Compreensão Preservar apenas associações de conhecimento pode resultar num modelo que não transmite um completo entendimento do domínio Ex.: Venda Iniciada-por Cliente Remoção deixa de fora um aspecto importante do domínio— o fato de que um cliente gera uma venda Regra geral: Enfatizar associações de conhecimento, mas preservar associações que enriquecem o entendimento do domínio
  74. 74. Identificação dos Relacionamentos Na perspectiva de implementação representa um canal de comunicação entre duas classes A necessidade desse canal é dada pelos diagramas de interação. Sempre que existir uma mensagem trocada entre dois objetos nesses diagramas existirá uma associação entre eles, que representa as responsabilidades das classes.
  75. 75. Identificando Generalizações Quando particionar em Sub-Classes a sub-classe tem atributos adicionais de interesse a sub-classe tem associações adicionais de interesse a sub-classe será manipulada ou usada de maneira diferente da super-classe ou das outras sub-classes a sub-classe se comporta diferente da super- classe ou das outras sub-classes
  76. 76. Identificando Generalizações Quando criar uma Super-Classe as potenciais sub-classes representam variações de um conceito similar as sub-classes satisfazem 100% a regra ``is-a'' todas as sub-classes possuem um atributo comum que poderá ser expresso na super- classe todas as sub-classes possuem uma associação comum que poderá ser relacionada à super-classe
  77. 77. Identificando Generalizações
  78. 78. Identificando Agregações Verificar se algumas classes podem ser agrupadas em algum composto: elas são geralmente criadas/destruídas no mesmo instante. possuem relacionamentos comuns
  79. 79. Identificando Agregações Verificar se alguma classe pode ser sub- dividida em partes. as partes possuem tempo de vida limitado ao tempo de vida do composto possuem relacionamentos particulares e de interesse
  80. 80. Identificando Atributos Atributos devem preferencialmente representar tipos primitivos de dados ou de valores simples Ex.: Data, Número, Texto, Hora, Endereço, etc. Atributos não devem ser usados para: Representar um conceito complexo Relacionar conceitos (atributo “chave- estrangeira”)
  81. 81. Identificando Atributos Cashier name currentPOST Cashier name POST number Uses Worse Better not a "simple" attribute 1 1
  82. 82. Um atributo deve ser de tipo não-primitivo quando: É composto de seções separadas Ex.: endereço, data Precisa ser analisado ou validado Ex.: CPF, número de matrícula Possui outros atributos Ex.: Um preço promocional com prazo de validade É uma quantidade com uma unidade Ex.: valores monetários, medidas Atributos de Tipo Não- Primitivo
  83. 83. Adicionando Atributos ao Sistema POST Conceito Especificação-Produto descrição—Para mostrar na tela e imprimir no recibo. UCP—Para localizar especificação do item. preço—Para calcular o total da venda. Pagamento quantia—Para determinar se pagamento é suficiente e calcular troco. Venda data, hora—Para imprimir no recibo e registrar no log de vendas. Item de Venda quantidade—Para registrar a quantidade digitada quando há mais de um do mesmo item. Atributos e justificativa Loja nome, endereço—Para imprimir no recibo.
  84. 84. Atributo Derivado Um atributo “derivado” é um atributo cujo valor pode ser deduzido a partir de outras informações Ex.: quantidade em Item de Venda—pode ser deduzido a partir da multiplicidade da associação entre Item de Venda e Item SalesLineItem /quantity ItemRecords-sale-of0..1 1..* derived attribute from the multiplicity value
  85. 85. POST Item Store address name Sale date time Payment amount Sales LineItem /quantity CashierCustomer Manager Product Catalog Product Specification description price UPC Stocks * Houses 1.. * Used-by * Contains 1.. * Describes * Captured-on Contained-in 1.. * Described-by * Records-sale-of 0..1 Started-by Paid-by Initiated-by Logs- completed 6 * 3 Records-sales-on 1 1 1 1 1 1..* 11 1 1 1 1 1 1 1 1 1 1
  86. 86. Identificação dos Métodos Os métodos são acrescentados na perspectiva de implementação e são derivados a partir dos diagramas de interação: colaboração e sequências. É útil distingüir operações de métodos. Operações é algo que se evoca sobre um objeto (a chamada do procedimento). Para realizar uma operação a classe implementa um método (o corpo do procedimento)
  87. 87. Identificação dos Métodos É útil distingüir operações que alteram ou não o estado (atributos) de uma classe Não alteram: query, métodos de obtenção, getting methods Alteram: modificadores, métodos de atribuição ou fixação, setting methods
  88. 88. Organização de Classes em Pacotes Lógicos Vendas Compras Adminis- tração
  89. 89. Organização de Classes em Pacotes Lógicos Classes VB Global Classes de fronteira Classes de Controle Coleções Entidades Elementos Entidades Classes Entidades

×