diagrama de classes1.1

45
Projeto de Software Diagrama de Classes Alunos: Maiky Nata, Douglas Pose, Igor Moreia

Upload: maikynata

Post on 19-Jun-2015

7.577 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Diagrama de classes1.1

Projeto de Software

Diagrama de Classes

Alunos:Maiky Nata, Douglas Pose, Igor Moreia

Page 2: Diagrama de classes1.1

Diagrama de Classes Demonstra a estrutura estática dasclasses de um sistema, seus atributos eoperações Mostra o relacionamento entre asclasses

Page 3: Diagrama de classes1.1

Exemplo:

Page 4: Diagrama de classes1.1

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.

Page 5: Diagrama de classes1.1

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.

Page 6: Diagrama de classes1.1

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.

Page 7: Diagrama de classes1.1

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}]

Page 8: Diagrama de classes1.1

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}]

Page 9: Diagrama de classes1.1

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

Page 10: Diagrama de classes1.1

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

Page 11: Diagrama de classes1.1

Ex.:

Pior Item--------------------DescriçãoPreçoNúmero serialUPC

Especificação Produto-----------------------------DescriçãoPreçoUPC

Item---------------------- Número serial

Descreve

Melhor

Page 12: Diagrama de classes1.1

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

Page 13: Diagrama de classes1.1

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

Page 14: Diagrama de classes1.1

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.

Page 15: Diagrama de classes1.1

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

Page 16: Diagrama de classes1.1

Relacionamentos Os relacionamentos entre as classesrepresentam a interação entre seusobjetos Tipos:

Associação Agregação Generalização Dependência e Refinamentos

Page 17: Diagrama de classes1.1

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

Page 18: Diagrama de classes1.1

Associações Simples O mais comum, com apenas uma

conexão, representada por uma linhasólida e um nome (geralmente verbo)

Caixa Venda

Registra

Page 19: Diagrama de classes1.1

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

Page 20: Diagrama de classes1.1

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..*

Page 21: Diagrama de classes1.1

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.

Page 22: Diagrama de classes1.1

Associações - NavegabilidadeDada uma mercadoria pode-se identificar diretamentea empresa fornecedora,mas a volta não é verdadeira

Empresa MercadoriaFornece

0...* 0...*

Page 23: Diagrama de classes1.1

Associação Recursiva ouReflexiva Os objetos conectados são da mesmaclasse

PessoaEsposa

Marido

É casado com

Page 24: Diagrama de classes1.1

Associação Qualificada� Usadas com multiplicidades 1..* ou *.O qualificador (chave) identifica umObjeto.

ClienteCód_ContaCorrente

Conta corrente

Page 25: Diagrama de classes1.1

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...*

Page 26: Diagrama de classes1.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}

Page 27: Diagrama de classes1.1

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

Page 28: Diagrama de classes1.1

Associação Ternária Envolve três classes (inclusive umaclasse de associação)

Contrato Cliente

Regras Contratuais

1...*

1...*0...*

Page 29: Diagrama de classes1.1

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.

Page 30: Diagrama de classes1.1

Agregação deCompartilhamento Uma classe pode fazer parte de mais deum composto e/ou estar contida nelevárias vezes.

Time Pessoa

Membros

Page 31: Diagrama de classes1.1

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

Page 32: Diagrama de classes1.1

Generalização Normal A classe mais específica (sub-classe) herdatudo da mais geral (super-classe)

Conta Corrente Poupança

Page 33: Diagrama de classes1.1

Dependências Conexão entre dois elementos,representando que uma mudança noelemento independente afeta odependente.

Classe A Classe B<<Amigo>>

Page 34: Diagrama de classes1.1

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.

Page 35: Diagrama de classes1.1

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.

Page 36: Diagrama de classes1.1

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

Page 37: Diagrama de classes1.1

Identificando Generalizações

Page 38: Diagrama de classes1.1

Identificando Agregações Verificar se algumas classes podem seragrupadas em algum composto:

elas são geralmente criadas/destruídas nomesmo instante.

possuem relacionamentos comuns

Page 39: Diagrama de classes1.1

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

Page 40: Diagrama de classes1.1

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”)

Page 41: Diagrama de classes1.1

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).

Page 42: Diagrama de classes1.1

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.

Page 43: Diagrama de classes1.1

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.

Page 44: Diagrama de classes1.1

Ferramentas que auxiliam na criação

Astah UML

UmbrelloUML

Visual Paradigma

Page 45: Diagrama de classes1.1

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