04/11/2016

UML Prof. Esp. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected]

DIAGRAMAS DE CLASSE

1

04/11/2016

REPRESENTAÇÃO DE CLASSES

DIAGRAMA DE CLASSES O diagrama de classes serve de apoio para o desenvolvimento de outros diagramas, pois:

 Estabelece como as classes funcionam e se relacionam;  Permite visualizar as classes que compõem o sistema.

2

04/11/2016

CLASSES As classes são representadas graficamente por retângulos incluindo seu nome, os atributos e métodos. É comum adotar um padrão para renomear, geralmente sendo um substantivo singular e com a primeira letra maiuscula.

ATRIBUTOS Os atributos de uma classe são a identificação de cada objeto de uma classe. Além do nome o atributo deve ser o tipo de dado que será armazenado.  Byte;  Boolean;  Int ou double;  Char ou string.

3

04/11/2016

MÉTODOS Os métodos são as ações (comportamentos) que serão executadas sobre os atributos das classes. Os métodos são nomeados para indicar algum resultado.

MÉTODOS As operações de uma classe Pessoa são diferentes dependendo do ponto de vista de quem fará a ação.

PERSPECTIVA DE UM BANCÁRIO: receber empréstimo, anexar conta, receber linha de crédito. PERSPECTIVA DE UM MÉDICO: examinar, tomar remédio, ir para o hospital, receber conta.

4

04/11/2016

TIPOS DE VISIBILIDADE  Pública (+) O atributo ou método pode ser usado por qualquer classe  Protegida (#) Somente a classe ou subclasses terão acesso  Privada (-) Somente a classe terá acesso

COMUNICAÇÃO ENTRE OBJETOS Os objetos podem ser comunicar através de mensagens, e nessa 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.

5

04/11/2016

REPRESENTAÇÃO DE CLASSES

COMO DEFINIR AS CLASSES

6

04/11/2016

DEFINIÇÃO DE CLASSES Existem três técnicas básicas que são consideradas para o processo 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ódulos, assim o levantamento ocorre através dos casos de usos desenvolvidos anteriormente.

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

7

04/11/2016

DEFINIÇÃO POR REFINAMENTO

A técnica de refinamento é bem parecida com a técnica a partir dos casos de uso, ela consiste em dividir o sistema em grandes classes, que por sua vez são divididas em classes menores, 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 serem analisados, são eles:  ENTIDADE: Papel principal é armazenar dados de entidades do mundo real, como: aluno, professor, disciplina;  CONTROLE: Papel é controlar a execução de processos, contendo geralmente o fluxo de execução de todo ou parte dos casos de uso.  FRONTEIRA: Realiza o interfaceamento com entidades externas (atores).

8

04/11/2016

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

EXEMPLO Quais seriam as classes para este caso de uso?

9

04/11/2016

EXERCÍCIO Baseado neste exemplo, que classes temos?

RELACIONAMENTO ENTRE AS CLASSES

10

04/11/2016

RELACIONAMENTO ENTRE CLASSES Um relacionamento entre classe possuem:  Nome;  Sentido de leitura;  Navegabilidade;  Multiplicidade;  Tipo;  Papéis.

MULTIPLICIADE Neste argumento deve ser descrito qual é o valor do relacionamento entre duas classes, quando esse valor for omitido, o valor padrão se torna o número 1. MULTIPLICIDADE

DESCRIÇÃ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.

11

04/11/2016

MULTIPLICIDADE

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

 Associação;  Agregação / Composição;  Herança;  Dependência.

12

04/11/2016

ASSOCIAÇÃO

ASSOCIAÇÃO  Um estudante pode participar de nenhuma ou até oito disciplinas  Um estudante compete por no máximo 1 equipe de futebol  Uma equipe de futebol tem de 11 até 22 jogadores  Uma disciplina pode ter no um ou mais alunos.

13

04/11/2016

AGREGAÇÃO É um tipo especial de associação. Esse relacionamento demonstra que um objeto precisa ser complementado por um objeto de outra classe.

EXEMPLO - AGREGAÇÃO

14

04/11/2016

COMPOSIÇÃO É um relacionamento do tipo agregação que representa um vínculo mais forte entre objetos.

AGREGAÇÃO X COMPOSIÇÃO

15

04/11/2016

HERANÇA - GENERALIZAÇÃO É um relacionamento do tipo especialização.

DEPENDÊNCIA Tipo menos comum de relacionamento, que representa uma ligação fraca entre objetos de duas classes.

16

04/11/2016

CLASSE DE ASSOCIAÇÃO Este tipo de representação é usada quando uma associação entre duas classes contiver atributos da associação. No exemplo abaixo A classe C existirá para todo relacionamento da classe A com a classe B.

CLASSE DE ASSOCIAÇÃO

17

04/11/2016

OUTROS EXEMPLOS

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

 Informar restrição de funcionalidade;  Indicar condições para relacionamentos.

18

04/11/2016

RESTRIÇOES Uma restrição limita os valores que os elementos podem assumir, no exemplo abaixo é restrito os valores dos atributos de comprimento e largura.

OUTROS CASOS DE RESTRIÇÃO

19

04/11/2016

EXERCÍCIOS

BLOG

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

20

04/11/2016

BLOG Um blog tem um título e uma data de criação e além disso é um conjunto de conteúdos. Estes conteúdos (mensagens) podem ser notas ou comentários sobre as notas. Tanto notas quanto comentários têm características comuns como o texto e a data de sua criação. Todo usuário possui: E-mail (deve ser único, ou seja, não há mais de um usuário com o mesmo e-mail).

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 um comentário o usuários precisa ler as notas. Somente o dono do blog pode remover conteúdos. Para remover um conteúdo ele precisará ler o conteúdo. Caso ele remova um comentário, o autor do comentário deve ser notificado por e-mail.

21

04/11/2016

BLOG - RESPOSTA

CONTROLE DE CURSOS Desenvolva o Diagrama de Classes para um sistema de cursos de informática equivalente ao módulo de matrícula de acordo com os seguintes fatos:  Um curso pode ter muitas turmas, no entanto, uma turma se relaciona exclusivamente com um único curso.  Uma turma pode ter diversos alunos matriculados, no entanto uma matrícula refere-se exclusivamente a uma determinada turma. Cada turma tem um número mínimo de matrículas para iniciar o curso.  Um aluno pode realizar muitas matrículas, mas cada matrícula referese exclusivamente a uma turma específica e a um único aluno.

22

04/11/2016

RESPOSTA – CONTROLE DE CURSOS

23