Upload
alan-lira
View
2.049
Download
2
Embed Size (px)
Citation preview
11
UMLUMLLinguagem de Modelagem UnificadaLinguagem de Modelagem Unificada
Aula 4Aula 420042004
22
Modelagem de DadosModelagem de Dadoscom UMLcom UML
33UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– Representação dos dados manipulados e Representação dos dados manipulados e
armazenados pelos programas de acordo armazenados pelos programas de acordo com os conceitos de Orientação a Objetoscom os conceitos de Orientação a Objetos
–– Notação fortemente baseada no Notação fortemente baseada no Diagramas EntidadeDiagramas Entidade--Relacionamento de Relacionamento de Peter Peter ChenChen
44UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– NotaçãoNotação
Nome da classe
Atributoatributo: tipo de dadoatributo: tipo de dado = valor inicial
OperaçãoOperação(lista de argumentos):
tipo do resultadoOpcionais(fornecidos somente apósum melhor entendimentodo sistema)
55UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– AssociaçõesAssociações
Livro Pessoaescrito por0..* 1..*
Multiplicidade da associação
Rótulo da associação66U
FPA-
2004
-U
ML
(Lin
guag
em d
e M
odel
agem
Uni
ficad
a) -
quite
s@co
mpu
ter.
org
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– AtributosAtributos
Pessoa
Nome: StrEndereço: {Logradouro: Str,Bairro: Str,Cidade: Str. }Telefones: Array of Int Obs: Atributos compostos e
Multivalorados sãopermitidos pelo modelo dedados OO
77UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– AssociaçõesAssociações
Livro
Título: StrISBN: IntEditora: Str
Pessoa
Nome: StrEndereço: {Logradouro: Str,Bairro: Str,Cidade: Str. }Telefones: Array of Int
escrito por0..* 1..*
Multiplicidade da associação
Rótulo da associação
88UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– Atributos e MétodosAtributos e Métodos
Conta Bancária
númerosaldodataAbertura
criar()bloquear()desbloquear()creditar()debitar()
Pessoa
Nome: StrEndereço: {
Logradouro: Str,Bairro: Str,
Cidade: Str. }Telefones: Array of Int
1*titular
Papel da classe na associação
Obs: recomenda-se sempre incluiro nome da associação ou um papel
99UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– Associações entre objetos (Exemplos)Associações entre objetos (Exemplos)
Funcionário
0..1
*
Supervisiona
Associação Unária
Funcionário
João
supervisiona
É supervisionado por
1010UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– Associações entre objetosAssociações entre objetos
NavegabilidadeNavegabilidade
Funcionário Departamento0..* trabalha 1 Associação Binária
Funcionário trabalha em Departamento
Funcionário
João
Departamento
Financeiro
1111UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– Associações entre objetosAssociações entre objetos
NavegabilidadeNavegabilidade
Funcionário Departamento0..* trabalha
Funcionário
João
Departamento
Financeiro
1212UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Multiplicidade Significado
0..1 Zero ou um
1 Somente 1 (opcional)
0..* Maior ou igual a zero
* Maior ou igual a zero
1..* Maior ou igual a 1
1..15 (m..n) De 1 a 15 (m a n), inclusive
Diagrama de ClassesDiagrama de Classes–– MultiplicidadeMultiplicidade
1313UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– ExemplosExemplos
Funcionário Departamento1 trabalha 0..1
Funcionário Departamento0..* trabalha
Funcionário Departamento0..* trabalha 1..*
(adaptado de BEZ02) 1414UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClassesDiagrama de Classes–– ExemplosExemplos
Funcionário Departamento
trabalha**
gerente 0..1
1515UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
ExemplosExemplos
Financeira
códigonome
Venda
datahora
VendedornúmeronenhanívelAutorização
financia0..1 * *
realizada por
1616UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– Classes associativasClasses associativas
Informação que surge a partir da associação Informação que surge a partir da associação de duas outras classesde duas outras classes
Pessoa
NomeEndereço: {Logradouro;
Bairro;Cidade. }
Sexo
marido
esposa
0..1
0..1
casamento DataRegime
1717UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– Classes associativasClasses associativas
Aluno Disciplina** matriculado
conceitosemestre
1818UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– Classes associativasClasses associativas
Financeira
códigonome
Venda
datahora
VendedornúmeronenhanívelAutorização
financia0..1 * *
realizada por
registroAprovaçãodataAprovação
Financiamento
1919UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– Classes associativasClasses associativas
Observação importante: o conceito de “Classe Observação importante: o conceito de “Classe Associativa” não é permitido em todas as Associativa” não é permitido em todas as linguagens de programação e sistemas de linguagens de programação e sistemas de banco de dados OObanco de dados OOAssim, em muitos casos as classes Assim, em muitos casos as classes associativas encontradas em Análise são associativas encontradas em Análise são substituídas por classes regulares em Projetosubstituídas por classes regulares em Projeto
2020UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de ClasseDiagrama de Classe–– Classes associativasClasses associativas
Classe associativa substituída por normalClasse associativa substituída por normalFuncionário Departamento* trabalha 0..1
saláriodataContratação
Funcionário Departamento?EmpregosaláriodataContratação
???
Exercício: definir a multiplicacidade para manter o mesmo significado do modelo acima
2121UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de Classe Diagrama de Classe –– AgregaçãoAgregação
Associa de Associa de todo/partetodo/parteAção realizada sobre todo atinge as partesAção realizada sobre todo atinge as partesTipo especial de associaçãoTipo especial de associação
Documento Parágrafo Sentença0..* 0..*
Documento Parágrafo Sentença0..* 0..*
composto-por composto-por
2222UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Diagrama de Classe Diagrama de Classe –– AgregaçãoAgregação
ExemploExemplo
AssociaçãoEsportiva
Equipe Jogador0..* 0..*◀ afiliada
2323UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUMLAgregação Agregação vsvs ComposiçãoComposição–– Composição é um tipo especial de agregação (por Composição é um tipo especial de agregação (por
valor)valor)–– Semanticamente equivalente a um atributoSemanticamente equivalente a um atributo
Pessoa
nomeendereço: {logradouro;bairro;cidade. }cpfsexo
Pessoa
nomesexo
logradourobairrocidade
Endereço
composição
número
CPF
validaCPF: bool2424U
FPA-
2004
-U
ML
(Lin
guag
em d
e M
odel
agem
Uni
ficad
a) -
quite
s@co
mpu
ter.
org
Modelagem de Dados com Modelagem de Dados com UMLUML
ComposiçãoComposição–– A remoção do todo implica na remoção A remoção do todo implica na remoção
das partesdas partes–– O acesso às partes é restrito ao todoO acesso às partes é restrito ao todo
Pessoa
nomesexo
logradourobairrocidade
Endereço
número
CPF
validaCPF: bool
pessoa
endereço cpf
Objetoexterno
2525UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
ComposiçãoComposição–– ExemploExemplo
Produto
códigodescrição
ItemVenda
quantidade
Venda
datahora
* *
(adaptado de [HEU00])
Uso inadequado de composição:Partes de uma composição não podem ser referenciadaspor objetos externos
2626UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
ComposiçãoComposição–– ExemploExemplo
Produto
códigodescrição
ItemVenda
quantidade
Venda
datahora
* *
Uso adequado de composição
2727UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização
2828UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização–– Herança de propriedadesHerança de propriedades–– Associação do tipo “é um”Associação do tipo “é um”
Cliente
nome
PessoaFísicaCPFRGSexoDataNascimento
PessoaJurídica
CGCRazãoSocial
Super-classe
Sub-classes(herdeiras)
2929UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização–– Polimorfismo: não há necessidade de se Polimorfismo: não há necessidade de se
criar uma associação entre Venda e criar uma associação entre Venda e subclasses de Clientesubclasses de Cliente
Cliente
nome
PessoaFísicaCPFRGSexoDataNascimento
PessoaJurídica
CGCRazãoSocial
Compra** realiza
3030UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização
Empregado {abstrata}
recebido durante o ano
calcular pagamento
Empregado Horistataxa horáriataxa por hora extracalcular pagamento
Empregado Assalariado
taxa semanal
calcular pagamento
Empregado Autônomo
taxa mensal
calcular pagamento
Classes Abstratas(não é usada para
gerar objetos)
3131UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização–– Herança MúltiplaHerança Múltipla
Veículoanfíbio
Veículo
Veículoterrestre
Veículoaquático
Conceito pouco usado na prática:Conceito pouco usado na prática:••Poucas linguagens de programaçãoPoucas linguagens de programaçãopermitem o usopermitem o uso
••Adiciona maior complexidade aoAdiciona maior complexidade aomodelomodelo
3232UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Generalização/EspecializaçãoGeneralização/Especialização
Cliente
ContaBancárianúmerodataAberturasaldo
debitar(quantia)creditar(quantia)
HistóricoTransações
ContaCorrente
limiteSaque
ContaPoupançadataAniversáriorendimento
** *
3333UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
ExercícioExercício–– Usar classes e associações para definir o glossário do sistema Usar classes e associações para definir o glossário do sistema
“Jogo de Futebol” descrito de seguida: “O jogo de futebol é “Jogo de Futebol” descrito de seguida: “O jogo de futebol é realizado por duas equipes de jogadores. Cada equipe é realizado por duas equipes de jogadores. Cada equipe é composta por 11 jogadores, com diferentes funções: o goleiro, composta por 11 jogadores, com diferentes funções: o goleiro, zagueiros, médios, atacantes, e pontas de lança. O ponta de zagueiros, médios, atacantes, e pontas de lança. O ponta de lança é um atacante especial por ter especiais características lança é um atacante especial por ter especiais características de de goleador... O jogo é realizado num campo com medidas goleador... O jogo é realizado num campo com medidas regulamentares (em comprimento e largura), tem duas balizas, regulamentares (em comprimento e largura), tem duas balizas, cada qual em extremos opostos do campo. Ganha o jogo a cada qual em extremos opostos do campo. Ganha o jogo a equipe que marcar mais gols (i.e., colocar a bola) na baliza do equipe que marcar mais gols (i.e., colocar a bola) na baliza do adversário. No jogo apenas existe uma única bola, que apresenta adversário. No jogo apenas existe uma única bola, que apresenta características (peso, diâmetro, …) regulamentares... O jogo de características (peso, diâmetro, …) regulamentares... O jogo de futebol é mediado por uma equipe de 3 árbitros, em que um é o futebol é mediado por uma equipe de 3 árbitros, em que um é o árbitro principal, e os outros dois são árbitros auxiliares…”.árbitro principal, e os outros dois são árbitros auxiliares…”.
3434UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
Diretoria func{func.cargo = “Diretor”}0..1 0..*
Contacorrente
Indivíduo
Organização
0..*
0..*0..1
0..1
{ou}
3535UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
Contrato deSeguro
Indivíduo
Empresa
0..*
0..*1..*
1..*
{ou}Companhiade Seguros
0..*1
3636UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
PessoaEmpresaempregado
1 *
chefe0..1
*
{ Pessoa.empregador = Pessoa.chefe.empregador }
empregador
Pessoa Comitê
Membro-de
Presidente-de
{subconjunto}
0..*
0..*
0..*
3737UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
Empregado
salário chefe
{Empregado.salário < Empregado.chefe.salário}
Janelacomprimentolargura
{0,8<=comprimento/largura<=1,5} Cargo
prioridade
{prioridade nunca cresce}
1..*
1
Janela TelaVisível em
{ordenado}
*
3838UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
Pessoa
NomeEndereço: {Logradouro;
Bairro;Cidade. }
Sexo
marido
esposa
0..1
0..1 casamentoData
Regime{pessoa.sexo=Feminino}
{pessoa.sexo=Masculino}
3939UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições–– ExemplosExemplos
Pessoa Condomínio
mora
síndico
*
{subconjunto}
4040UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
RestriçõesRestrições
Conta Bancária
númerosaldodataAbertura
criar()bloquear()desbloquear()creditar()debitar()
Pessoa
Nome: StrEndereço: {
Logradouro: Str,Bairro: Str,
Cidade: Str. }Telefones: Array of Int
1..**correntista
titular
{subconjunto}
*
4141UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
Modelagem de Dados com Modelagem de Dados com UMLUML
Atributo derivadoAtributo derivado
Pessoa
data-de-nascimento/idade
{idade = data-atual - data-de-nascimento}
Atributo derivado
ProdutoValor de vendaCusto/Lucro
{lucro = valor de venda - custo}
Atributo derivado
4242UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
4343UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
DiscussãoDiscussão
Complementar o modelo de controle Complementar o modelo de controle acadêmico.acadêmico.–– Acrescentar o monitor (aluno): o aluno Acrescentar o monitor (aluno): o aluno
pode exercer o papel de monitor durante pode exercer o papel de monitor durante um períodoum período
–– Permitir que uma pessoa exerça Permitir que uma pessoa exerça simultaneamente o papel de Professor e simultaneamente o papel de Professor e Aluno da UniversidadeAluno da Universidade
4444UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
DiscussãoDiscussão
Monitor, Professor, Aluno: herançaMonitor, Professor, Aluno: herança
Pessoa
AlunoProfessor
Monitor
4545UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
DiscussãoDiscussão
Monitor, Professor, Aluno: herançaMonitor, Professor, Aluno: herança–– ProblemasProblemas
Acomodação inábil de objetos que mudam de Acomodação inábil de objetos que mudam de classesclassesTransmutaçãoTransmutação Pessoa
AlunoProfessor
Monitor4646U
FPA-
2004
-U
ML
(Lin
guag
em d
e M
odel
agem
Uni
ficad
a) -
quite
s@co
mpu
ter.
org
DiscussãoDiscussão
Monitor, Professor, Aluno: herançaMonitor, Professor, Aluno: herança–– SoluçãoSolução
Combinar herança e associaçãoCombinar herança e associação
PapelPessoa
AlunoProfessor Monitor
Pessoa {abstrata}*
nomecpfdataNascimento
exerce
matrícula matrícula
1. Início: 01/022. Início: 01/11
Fim: 31/123. Fim: 31/12
4. Início: 01/01/próximo ano
0. criação
4747UFP
A-20
04 -
UM
L (L
ingu
agem
de
Mod
elag
em U
nific
ada)
-qu
ites@
com
pute
r.or
g
TransmutaçãoTransmutação
ExercícioExercício–– Em uma IFES, o plano de carreira para Em uma IFES, o plano de carreira para
professores é dividido em quatro etapas:professores é dividido em quatro etapas:Auxiliar, Assistente, Adjunto e TitularAuxiliar, Assistente, Adjunto e Titular
–– Construa um modelo de classes que Construa um modelo de classes que preserve o histórico de um professor preserve o histórico de um professor durante a sua vida profissionaldurante a sua vida profissional
Em particular, é importante manter o registro Em particular, é importante manter o registro do início e término do desempenho em uma do início e término do desempenho em uma das etapasdas etapas