Escolar Documentos
Profissional Documentos
Cultura Documentos
Diagrama de Classes
Aula 06
Prof. Kleinner Farias
Programa Interdisciplinar de Ps-Graduao
em Computao Aplicada PIPCA
Universidade do Vale do Rio dos Sinos
Objetivos
Compreender os principais conceitos sobre
diagrama de classes da UML
Entender como o diagrama de classes
complementa os outros diagramas da UML
Elaborar diagramas a partir de situaes
cotidianas
4/7/14
@KleinnerFarias
Agenda
Introduo
Motivao
Elementos do Diagrama de Classes
Exemplo Prtico
Referncias
4/7/14
@KleinnerFarias
Introduo
Representa uma viso esttica (ou estrutural)
do projeto de um software
Diagrama mais utilizado da UML
Modela os conceitos de
domnio da aplicao
descrevendo o prprio domnio do problema
projeto da aplicao
descrevendo como a implementao deve ser feita
4/7/14
@KleinnerFarias
Motivao
4/7/14
@KleinnerFarias
Motivao
4/7/14
@KleinnerFarias
Motivao
4/7/14
@KleinnerFarias
Metamodelo
4/7/14
@KleinnerFarias
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
operaes
4/7/14
@KleinnerFarias
10
Exemplo:
+ nome: String
4/7/14
@KleinnerFarias
11
Exemplo:
+ getNome(): String
4/7/14
@KleinnerFarias
12
Aluno
nome: Texto
matrcula: Inteiro
cdigo: Texto
sala: Texto
horario: Horario
estaAberta()
definirProfessor(professor)
incluirAluno(aluno)
definirNome(nome)
obterNome()
definirMatricula(matricula)
obterMatricula
4/7/14
-ministrada-por
Professor
nome: Texto
titulao: Texto
definirNome(nome)
obterNome()
definirTitulacao(titulo)
obterTitulacao
@KleinnerFarias
13
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
14
4/7/14
@KleinnerFarias
15
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
16
Tipos de relacionamento:
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
17
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
18
4/7/14
@KleinnerFarias
19
@KleinnerFarias
20
4/7/14
@KleinnerFarias
21
4/7/14
@KleinnerFarias
22
4/7/14
@KleinnerFarias
23
4/7/14
@KleinnerFarias
24
4/7/14
@KleinnerFarias
25
@KleinnerFarias
26
4/7/14
@KleinnerFarias
27
4/7/14
@KleinnerFarias
28
4/7/14
@KleinnerFarias
29
4/7/14
@KleinnerFarias
30
4/7/14
@KleinnerFarias
31
Pessoa
1..*
sentido de leitura
trabalha para
empregado
empregador
Empresa
Tipo: associao
papis
E a navegabilidade?
4/7/14
@KleinnerFarias
32
Cliente
4/7/14
reside
@KleinnerFarias
Endereo
33
4/7/14
@KleinnerFarias
34
Um ou mais
0..*
Zero ou um
m..n
Pessoa
1..*
trabalha para
Empresa
associao
4/7/14
@KleinnerFarias
35
4/7/14
@KleinnerFarias
36
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
37
todo
parte
Pedido
1..*
Item
agregao
4/7/14
@KleinnerFarias
38
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
39
0..*
0..*
@KleinnerFarias
Teclado
Frame
errado
40
Janela
1
Empresa
1
0..1
1..*
Departamento
1..*
Escritrio
2
Scroll
0..1
Ttulo
1
Corpo
4/7/14
@KleinnerFarias
41
4/7/14
@KleinnerFarias
42
Mesa
1
1..n
Andar
4/7/14
1..n
@KleinnerFarias
Edifcio
43
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
44
cliente
4/7/14
fornecedor
@KleinnerFarias
45
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
46
Veculo
superclasse
um
um tipo de
Terrestre
subclasse
4/7/14
@KleinnerFarias
Areo
47
4/7/14
@KleinnerFarias
48
Interface
Relacionamento
Associao
Agregao
Composio
Dependncia
Generalizao
Realizao
4/7/14
@KleinnerFarias
49
4/7/14
@KleinnerFarias
50
4/7/14
@KleinnerFarias
51
4/7/14
@KleinnerFarias
52
4/7/14
@KleinnerFarias
53
Breve descrio
associao
agregao
composio
dependncia
generaliao
Relacionamento de herana de OO
Relacionamento entre algo mais
genrico (estvel) e algo mais
especfico (menos estvel)
realizao
Notao
54
Exemplo de Diagrama
4/7/14
55
Exemplo Prtico
A Universidade XYZ deseja informatizar seu sistema de matrculas:
A universidade oferece vrios cursos.
O Coordenador de um curso define as disciplinas que sero oferecidas
pelo seu curso num dado semestre.
Vrias disciplinas so oferecidas em um curso.
Vrias turmas podem ser abertas para uma mesma disciplina, porm o
nmero de estudantes inscritos deve ser entre 3 e 10.
Estudantes selecionam 4 disciplinas.
Quando um estudante matricula-se para um semestre, o Sistema de
Registro Acadmico (SRA) notificado.
Aps a matrcula, os estudantes podem, por um certo prazo, utilizar o
sistema para adicionar ou remover disciplinas.
Professores usam o sistema para obter a lista de alunos matriculados
em suas disciplinas.
Todos os usurios do sistema devem ser validados.
4/7/14
@KleinnerFarias
56
Exemplo Prtico
Descrio do Caso de Uso
4/7/14
@KleinnerFarias
57
Exemplo Prtico
Descrio do Caso de Uso Matricular em Disciplina
Esse caso de uso se inicia quando o Estudante de Curso inicia uma sesso no
sistema e apresenta suas credenciais.
4/7/14
@KleinnerFarias
58
Exemplo Prtico
Exemplos de candidatos a relacionamentos:
4/7/14
@KleinnerFarias
59
Exemplo Prtico
Identificando as classes
Professor
Universidade
Coordenador
Disciplina
FormularioMatricula
Turma
Curso
AnalisadorMatricula
SistemaRegistroAcademico
4/7/14
Estudante
@KleinnerFarias
ListaAlunos
60
Exemplo Prtico
Identificando os relacionamentos
O formulrio de matrcula processado por um analisador de matrcula
FormularioMatricula
-processado-por
0..*
AnalisadorMatricula
-processado-por
0..*
AnalisadorMatricula
1
0..*
Disciplina
4/7/14
@KleinnerFarias
61
Exemplo Prtico
FormularioMatricula
1
-processado-por
0..*
AnalisadorMatricula
1
gerencia
0..*
-preenchido-por
Disciplina
1
aluno
4/7/14
1..*
Coordenador
1..*
Estudante
-definida-por
est-matriculado-em
3..10
Turma
@KleinnerFarias
-ministrada-por
0..3
Professor
62
Exemplo Prtico
Identificando os atributos:
Examine as descries dos casos de uso e entenda bem
os conceitos do domnio do problema
Cada turma oferecida possui:
Turma
um cdigo
uma sala
um horrio
4/7/14
cdigo
sala
horrio
@KleinnerFarias
63
Exemplo Prtico
-processado-por
FormularioMatricula
0..*
AnalisadorMatricula
1
gerencia
0..*
Disciplina
-preenchido-por
nome
numCrditos
-definida-por
1..*
Coordenador
1
1..*
aluno
Estudante
nome
matricula
4/7/14
Turma
est-matriculado-em
3..10
cdigo
sala
horrio
@KleinnerFarias
-ministrada-por
0..3
Professor
nome
titulao
64
Exemplo Prtico
Identificando os mtodos
Dica: criar os diagramas de sequncia
: SIM
: AnalisadorMatricula
AnalisadorMatricula
adicionar(aluno, disciplina)
1: submeterFormulario(f)
2: adicionar(a,d )
SIM
submeterFormulario(formulario)
4/7/14
@KleinnerFarias
65
Exemplo Prtico
E a navegabilidade?
Estudante
est-matriculado-em
3..10
Turma
@KleinnerFarias
66
Exemplo Prtico
Acrescentando generalizaes:
Atributos, operaes e/ou relacionamentos
comuns podem ser movidos para uma classe
mais geral.
Us uario
nome : Texto
definirNome(nome)
obterNome()
Estudante
4/7/14
Professor
matricula : Inteiro
titulacao : Texto
definirMatricula(matricula)
obterMatricula()
definirTitulacao(titul acao)
obterTitulacao()
@KleinnerFarias
67
Exemplo Prtico
FormularioMatricula
-processado-por
obterEstudante() : Estudante
obterNomeDIsciplina(i : Inteiro) : Texto
0.. *
AnalisadorMatricula
1
-preenchido-por
-aluno
SIM
usa
gerencia
1
0..*
Estudante
Disciplina
matricula : Inteiro
definirMatricula(matricula)
obterMatricula()
nome : Texto
numCreditos : Inteiro
3.. 10
estaCompleta()
adicionar(aluno : Estudante)
1
est-matriculado-em
Usuario
nome : Texto
definirNome(nome)
obterNome()
1..*
Turma
Professor
responsvel-por
titulacao : Texto
definirTitulacao(titulacao)
obterTitulacao()
4/7/14
0..3
codigo : Texto
sala : Texto
4 horario : Horario
numAlunos : Inteiro
completa : Booleano
1
@KleinnerFarias
estaCompleta() : Booleano
68
Prxima Aula
Estimativa de esforo (use case ponits)
Processo de desenvolvimento de software
4/7/14
@KleinnerFarias
69
References
[Rumbaugh99] J. Rumbaugh, I. Jacobson, G. Booch, The
Unified Modeling Language Reference Manual, AddisonWesley, 2a edition, 1999.
4/7/14
@KleinnerFarias
70