View
7.577
Download
0
Category
Tags:
Preview:
Citation preview
Projeto de Software
Diagrama de Classes
Alunos:Maiky Nata, Douglas Pose, Igor Moreia
Diagrama de Classes Demonstra a estrutura estática dasclasses de um sistema, seus atributos eoperações Mostra o relacionamento entre asclasses
Exemplo:
Perspectivas de um Diagramade Classes Conceitual: forma abstrata de seobservar classes e objetos eindependente da linguagem deprogramação (Modelo Conceitual) De Implementação: pensa-se emdetalhes de implementação para definiras classes e objetos.
Definição de Classes Conceitual: são agrupamentos de objetos,são abstrações de um coletivo deentidades do mundo real
O modelo genérico desse coletivo contématributos e comportamentos comuns.
Definição de Classes
De implementação: corresponde a um tipo de uma linguagem de programação.
Um modelo genérico para criar variáveisque armazenarão os objetoscorrespondentes.
Notação UML para Atributos A maioria é opcional, seu uso vai dependerdo tipo de visão no qual estamos trabalhandoe podem ser abstratos ou utilizar a notaçãode uma linguagem de programação.
[Visibili/d]Nome[Multiplici/d]:[Tipo]=[Valor][{Proprie/ds}]
Notação UML para Métodos� A notação e uso vai depender do tipo devisão no qual estamos trabalhando e podemser abstratos ou utilizar a notação de umalinguagem de programação.
[Visibili/d]Nome(Parâmetros)]:[Retorno][{Proprie/ds}]
Exemplo de Uma Classe
Aluno----------------------------------
nome:TipoNomeRA: TipoCódigo----------------------------------calculaMédia():TipoNota
Aluno----------------------------------
nome:TipoNomeRA: TipoCódigo----------------------------------calculaMédia():TipoNota
<<entidade>>Aluno
DePacoteCadastro-----------------------------------
---nome[30]:char+RA: int {valorconstante}-----------------------------------
--+calculaMédia():Double
<<entidade>>Aluno
DePacoteCadastro-----------------------------------
---nome[30]:char+RA: int {valorconstante}-----------------------------------
--+calculaMédia():Double
Entidades de Especificação ouDescriçãoA especificação ou descrição de umobjeto deve ser representada como umaentidade em separado evita perda de informação quando o
objeto édeletado reduz informações redundantes ou
duplicadas Muito comum no domínio de produtos evendas
Ex.:
Pior Item--------------------DescriçãoPreçoNúmero serialUPC
Especificação Produto-----------------------------DescriçãoPreçoUPC
Item---------------------- Número serial
Descreve
Melhor
Identificação das Classes deControle Definir pelo menos uma classe do tipo
controle para cada caso de uso de forma queela contenha a descrição e comando doprocesso associado ao caso de uso. Definir classes de controle auxiliares em
certos casos de uso que devido aàcomplexidade requeiram a divisão de seuprocesso em subprocessos. As classesauxiliares seriam controladas pela classe decontrole principal
Identificação das Classes deControle 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 deum objeto intangível;
Gerente de Registro para o Caso de UsoRegistrar Alunos
Identificação das Classes deFronteira Definir uma classe do tipo fronteira para
cada ator que participe do caso de uso,pois cada ator que pode exigir umprotocolo próprio para comunicação. Uma classe para interface com o
usuário, uma classe para interface coma impressora, uma classe para interfacecom a porta serial, etc.
Identificação das Classes deFronteira
Exemplos: Interface tipo Janela,Protocolo de Comunicação, Interface deImpressão, Sensores, etc.Classes: Formulário em Branco eSistema de Cobrança
Relacionamentos Os relacionamentos entre as classesrepresentam a interação entre seusobjetos Tipos:
Associação Agregação Generalização Dependência e Refinamentos
Associações Conexão entre classes/objetosRelacionamento que descreve uma sériede 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
Associações Simples O mais comum, com apenas uma
conexão, representada por uma linhasólida e um nome (geralmente verbo)
Caixa Venda
Registra
Associações Pode possuir dois nomes, significando
um nome para cada sentido daassociação e os papéis de cada classe
Cliente Conta CorrentePossui→
← É possuído
Associações – Cardinalidade(Multiplicidade) Especifica o número de objetos de cadaclasse envolvidos com a associação A leitura da cardinalidade é diferentepara os diferentes sentidos daassociação
Caixa Venda
Registra
1 0..*
Associações - Navegabilidade Mostra a direção de navegação, ou sejado canal de comunicação entre osobjetos e classes. Uma associação é navegável da classeA para a classe B, se, dado um objetode A, consegue-se obter de formadireta os objetos relacionados da classeB.
Associações - NavegabilidadeDada uma mercadoria pode-se identificar diretamentea empresa fornecedora,mas a volta não é verdadeira
Empresa MercadoriaFornece
0...* 0...*
Associação Recursiva ouReflexiva Os objetos conectados são da mesmaclasse
PessoaEsposa
Marido
É casado com
Associação Qualificada� Usadas com multiplicidades 1..* ou *.O qualificador (chave) identifica umObjeto.
ClienteCód_ContaCorrente
Conta corrente
Associação Exclusiva Restrição em duas ou mais associações,especificando que objetos de uma classepodem participar de no máximo uma dasassociações ao mesmo tempo
Contrato
{OU} -----------------------------------------0...*0...*0...*
0...*
1...*1...*
Associação Ordenada Especifica uma ordem entre os objetos
da associação. Ex: janelas de umsistema têm que ser ordenadas na tela(uma está no topo, uma está no fundo eassim por diante).
Janela Top Janela Bottom {Ordenada}
Associações de Classe Serve para adicionar informaçõesextras a uma associação existente,quando essa possuir operações emétodos (ela é uma classe)
Cliente
Fila
Processo
Associação Ternária Envolve três classes (inclusive umaclasse de associação)
Contrato Cliente
Regras Contratuais
1...*
1...*0...*
Agregação A agregação é um caso particular deassociação Uma das classes é uma parte ou estácontida em outra. Palavras chaves: consiste em, contém,é parte de. Dois casos: composição ecompartilhamento.
Agregação deCompartilhamento Uma classe pode fazer parte de mais deum composto e/ou estar contida nelevárias vezes.
Time Pessoa
Membros
Generalização Relacionamento entre uma classe gerale outra mais específica (herança). Aclasse mais específica pode ser usadano lugar da mais geral. Generalização normal Generalização restrita: sobreposição,
disjuntiva, completa e incompleta
Generalização Normal A classe mais específica (sub-classe) herdatudo da mais geral (super-classe)
Conta Corrente Poupança
Dependências Conexão entre dois elementos,representando que uma mudança noelemento independente afeta odependente.
Classe A Classe B<<Amigo>>
Identificação dosRelacionamentos Na perspectiva conceitual representam-serelacionamentos conceituais As associações são estabelecidasanalisando-se os papéis. A generalização representa a hierarquiaentre tipos e seus subtipos A agregação entre um todo e suaspartes.
Identificação dosRelacionamentos Na perspectiva de implementaçãorepresenta um canal de comunicaçãoentre duas classes A necessidade desse canal é dada pelosdiagramas de interação. Sempre queexistir uma mensagem trocada entre doisobjetos nesses diagramas existirá umaassociação entre eles, que representa asresponsabilidades das classes.
Identificando GeneralizaçõesQuando particionar em Subclasses a subclasse tem atributos adicionais de
interesse a subclasse tem associações adicionais de
interesse a subclasse será manipulada ou usada de
maneira diferente da superclasse ou dasoutras subclasses a subclasse se comporta diferente da
superclasseou das outras subclasses
Identificando Generalizações
Identificando Agregações Verificar se algumas classes podem seragrupadas em algum composto:
elas são geralmente criadas/destruídas nomesmo instante.
possuem relacionamentos comuns
Identificando Agregações Verificar se alguma classe pode ser subdivididaem partes.
as partes possuem tempo de vida limitadoao tempo de vida do composto
possuem relacionamentos particulares e deinteresse
Identificando Atributos Atributos devem preferencialmenterepresentar tipos primitivos de dados oude 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”)
Identificação dos Métodos Os métodos são acrescentados na
perspectiva de implementação e sãoderivados a partir dos diagramas deinteração: colaboração e sequências.
É útil distinguir operações de métodos.Operações é algo que se evoca sobre umobjeto (a chamada do procedimento). Pararealizar uma operação a classe implementaum método (o corpo do procedimento).
Quando utilizar diagrama de classes
Iremos utilizar os diagramas de classes para a construção dos produtos que necessitam de orientação a objetos. Diagramas de classes são a base de quase todas as metodologias implementadas em orientação a objetos, portanto nós iremos utilizá-los o tempo todo.
Pontos fortes e fracos Diagramas de classes são muito ricos na descrição do sistema/software.
Podem ser muito complexos de usar.
Podemos ficar preso em detalhes de implementação.
Ferramentas que auxiliam na criação
Astah UML
UmbrelloUML
Visual Paradigma
Bibliografiahttp://www.macoratti.net/net_uml1.htm
http://www.dsc.ufcg.edu.br/~?jacques/cursos/map/html/uml/diagramas
http://pt.wikipedia.org/wiki/Diagrama_de_classes/
http://astah.change-vision.com/
www.inf.ufpr.br
www.dsc.ufcg.edu.br/~jacques/cursos/apoo/html/.../proj8.htm
Recommended