AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES...

23
04/07/2015 1 UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] DIAGRAMAS DE CLASSE

Transcript of AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES...

Page 1: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

1

UML

Prof. Esp. Fabiano Taguchihttp://fabianotaguchi.wordpress.com

[email protected]

DIAGRAMAS DE CLASSE

Page 2: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

2

REPRESENTAÇÃO DE CLASSES

DIAGRAMA DE CLASSES

O diagrama de classes serve deapoioapoioapoioapoio para o desenvolvimentode outros diagramas, pois:

� Estabelece como as classesfuncionam e se relacionamrelacionamrelacionamrelacionam;

� Permite visualizar as classesque compõem o sistema.

Page 3: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

3

CLASSES

As classes são representadas graficamente por retângulosincluindo seu nome, os atributos e métodos. É comum adotar umpadrão para renomear, geralmente sendo um substantivosubstantivosubstantivosubstantivo singularsingularsingularsingulare com a primeira letra maiuscula.

ATRIBUTOS

Os atributos de uma classe são a identificação de cadaobjeto de uma classe. Além do nomenomenomenome o atributo deve ser o tipotipotipotipode dado que será armazenado.

� Byte;

� Boolean;

� Int ou double;

� Char ou string.

Page 4: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

4

MÉTODOS

Os métodos são as ações (comportamentos) que serãoexecutadasexecutadasexecutadasexecutadas sobresobresobresobre osososos atributosatributosatributosatributos dasdasdasdas classesclassesclassesclasses. Os métodos sãonomeados para indicar algum resultado.

MÉTODOS

As operações de uma classe Pessoa são diferentesdependendo do ponto de vista de quem fará a ação.

PERSPECTIVAPERSPECTIVAPERSPECTIVAPERSPECTIVA DEDEDEDE UMUMUMUM BANCÁRIOBANCÁRIOBANCÁRIOBANCÁRIO:::: receber empréstimo, anexarconta, receber linha de crédito.

PERSPECTIVAPERSPECTIVAPERSPECTIVAPERSPECTIVA DEDEDEDE UMUMUMUM MÉDICOMÉDICOMÉDICOMÉDICO:::: examinar, tomar remédio, ir para ohospital, receber conta.

Page 5: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

5

TIPOS DE VISIBILIDADE

� Pública (+)Pública (+)Pública (+)Pública (+)

O atributo ou método pode ser usado por qualquer classe

� Protegida (#)Protegida (#)Protegida (#)Protegida (#)

Somente a classe ou subclasses terão acesso

� Privada (Privada (Privada (Privada (----))))

Somente a classe terá acesso

COMUNICAÇÃO ENTRE OBJETOS

Os objetos podempodempodempodem serserserser comunicarcomunicarcomunicarcomunicar atravésatravésatravésatravés dededede mensagensmensagensmensagensmensagens, enessa mensagem precisa estar definido:

�O nome do serviço requisitado;

� A informação necessária para a execução do serviço;

�O nome do requisitante.

Page 6: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

6

REPRESENTAÇÃO DE CLASSES

COMO DEFINIR AS CLASSES

Page 7: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

7

DEFINIÇÃO DE CLASSES

Existem três técnicas básicas que são consideradas para oprocesso de definição de classes:

� Definição das classes por partes;

� Definição através de refinamentos;

� Definição através de estereótipos.

DEFINIÇÃO POR PARTES

Neste método as classes são divididas em módulosclasses são divididas em módulosclasses são divididas em módulosclasses são divididas em módulos, assim o levantamento ocorre através dos casos de usos desenvolvidos anteriormente.

Atenção que, uma mesma classe pode ser empregada em mais deum caso de uso.

Page 8: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

8

DEFINIÇÃO POR REFINAMENTO

A técnica de refinamento é bem parecida com a técnica apartir dos casos de uso, ela consiste em dividirdividirdividirdividir oooo sistemasistemasistemasistema ememememgrandesgrandesgrandesgrandes classes,classes,classes,classes, quequequeque porporporpor suasuasuasua vezvezvezvez sãosãosãosão divididasdivididasdivididasdivididas emememem classesclassesclassesclassesmenoresmenoresmenoresmenores, até que não seja mais possível fazer este refinamento.Essa técnica é chamada de análise top-down.

DEFINIÇÃO POR ESTEREÓTIPOS

A UML define três estereótipos padrões para seremanalisados, são eles:

� ENTIDADEENTIDADEENTIDADEENTIDADE:::: Papel principal é armazenararmazenararmazenararmazenar dadosdadosdadosdados dededede entidadesentidadesentidadesentidades dodododomundomundomundomundo realrealrealreal, como: aluno, professor, disciplina;

� CONTROLECONTROLECONTROLECONTROLE: Papel é controlarcontrolarcontrolarcontrolar aaaa execuçãoexecuçãoexecuçãoexecução dededede processosprocessosprocessosprocessos,contendo geralmente o fluxo de execução de todo ou parte doscasos de uso.

� FRONTEIRAFRONTEIRAFRONTEIRAFRONTEIRA:::: Realiza o interfaceamentointerfaceamentointerfaceamentointerfaceamento comcomcomcom entidadesentidadesentidadesentidades externasexternasexternasexternas(atores).

Page 9: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

9

EXEMPLO

A situação a ser exemplificado é a de um sistemaacadêmico, onde temos o caso de uso para cadastro do aluno,que por sua vez envolve a comunicação de dois atores (secretariae SGBD).

CLASSES

Page 10: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

10

EXEMPLO

Quais seriam as classes para este caso de uso?

EXERCÍCIO

Baseado neste exemplo, que classes temos?

Page 11: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

11

RELACIONAMENTO ENTRE AS CLASSES

RELACIONAMENTO ENTRE CLASSES

Um relacionamento entre classe possuem:

� Nome;

� Sentido de leitura;

� Navegabilidade;

� Multiplicidade;

� Tipo;

� Papéis.

Page 12: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

12

MULTIPLICIADE

Neste argumento deve ser descrito qual é o valor dorelacionamento entre duas classes, quando esse valor foromitido, o valor padrão se torna o número 1.

MULTIPLICIDADEMULTIPLICIDADEMULTIPLICIDADEMULTIPLICIDADE DESCRIÇÃODESCRIÇÃODESCRIÇÃODESCRIÇÃO

0...1 No máximo um.

1...1 Um e somente um.

0...* Muitos

1...* Um ou muitos

3...5 Valores específicos. De três até cinco.

MULTIPLICIDADE

Page 13: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

13

RELACIONAMENTO ENTRE CLASSES

Dentre os principais tipos de relacionamentos entre classes, é possível destacar:

� Associação;

� Agregação / Composição;

� Herança;

� Dependência.

ASSOCIAÇÃO

Page 14: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

14

ASSOCIAÇÃO

� Um estudanteestudanteestudanteestudante pode participar de nenhuma ou até oito disciplinasdisciplinasdisciplinasdisciplinas

� Um estudanteestudanteestudanteestudante compete por no máximo 1 equipeequipeequipeequipe dededede futebolfutebolfutebolfutebol

� Uma equipeequipeequipeequipe dededede futebolfutebolfutebolfutebol tem de 11 até 22 jogadores

� Uma disciplinadisciplinadisciplinadisciplina pode ter no um ou mais alunos.

AGREGAÇÃO

É um tipo especial de associação. Esse relacionamentodemonstra que um objeto precisa ser complementado por umobjeto de outra classe.

Page 15: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

15

EXEMPLO - AGREGAÇÃO

COMPOSIÇÃO

É um relacionamento do tipo agregação que representa umvínculo mais forte entre objetos.

Page 16: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

16

AGREGAÇÃO X COMPOSIÇÃO

HERANÇA - GENERALIZAÇÃO

É um relacionamento do tipo especialização.

Page 17: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

17

DEPENDÊNCIA

Tipo menos comum de relacionamento, que representa umaligação fraca entre objetos de duas classes.

CLASSE DE ASSOCIAÇÃO

Este tipo de representação é usada quando umaassociação entre duas classes contiver atributos da associação.No exemplo abaixo A classe C existirá para todo relacionamentoda classe A com a classe B.

Page 18: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

18

CLASSE DE ASSOCIAÇÃO

OUTROS EXEMPLOS

Page 19: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

19

USO DE NOTAS

É possível fazer uso de comentários através de notas emclasses, métodos ou atributos. Geralmente é usado para:

� Informar restrição de funcionalidade;

� Indicar condições para relacionamentos.

RESTRIÇOES

Uma restrição limita os valores que os elementos podemassumir, no exemplo abaixo é restrito os valores dos atributos decomprimento e largura.

Page 20: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

20

OUTROS CASOS DE RESTRIÇÃO

EXEMPLOS

Page 21: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

21

BLOG

Qual o diagrama de classe proposta para a solução do blog desenvolvida na aula passada?

BLOG

Um blog tem um título e uma data de criação e além disso é umconjunto de conteúdos. Estes conteúdos (mensagens) podem sernotas ou comentários sobre as notas. Tanto notas quantocomentários têm características comuns como o texto e a datade sua criação.

Todo usuário possui:

E-mail (deve ser único, ou seja, não há mais de um usuáriocom o mesmo e-mail).

Page 22: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

22

BLOG

Permitir a criação de blogs

Permitir a utilização de blogs

Qualquer usuário pode ler conteúdos

Somente o dono do blog pode criar notas

Qualquer usuário pode criar comentários. Para criar umcomentário o usuários precisa ler as notas.

Somente o dono do blog pode remover conteúdos. Pararemover um conteúdo ele precisará ler o conteúdo. Casoele remova um comentário, o autor do comentário deveser notificado por e-mail.

BLOG - RESPOSTA

Page 23: AULA 02 - DIAGRAMA DE CLASSE 2 REPRESENTAÇÃO DE CLASSES DIAGRAMA DE CLASSES Odiagramadeclassesservede apoio para o desenvolvimento deoutrosdiagramas,pois: Estabelece como as classes

04/07/2015

23

CONTROLE DE CURSOS

Desenvolva o Diagrama de Classes para um sistema de cursos deinformática equivalente ao módulo de matrícula de acordo com osseguintes fatos:

� Um curso pode ter muitas turmas, no entanto, uma turma serelaciona exclusivamente com um único curso.

� Uma turma pode ter diversos alunos matriculados, no entanto umamatrícula refere-se exclusivamente a uma determinada turma. Cadaturma tem um número mínimo de matrículas para iniciar o curso.

� Um aluno pode realizar muitas matrículas, mas cada matrícula refere-se exclusivamente a uma turma específica e a um único aluno.

RESPOSTA – CONTROLE DE CURSOS