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