UALG/FCT/DEEI Análise e Modelação de Sistemas...
Transcript of UALG/FCT/DEEI Análise e Modelação de Sistemas...
UALG/FCT/DEEIUALG/FCT/DEEIAnálise e Modelação de Análise e Modelação de Sistemas InformáticosSistemas Informáticos
7. UML, A vista da estrutura: as 7. UML, A vista da estrutura: as ClassesClasses
P. SerenderoP. Serendero
2
A vista da Estrutura do sistemaA vista da Estrutura do sistema
Documenta os aspectos estáticos do sistema. Os elementos intervenientes assim como as suas ligações
Na abordagem OO isto implica a identificação das classes e as suas relações
UML permite uma abordagem mais simples e geral para a fase de Análise e uma mais específica para a fase de Desenho
3
UML Meta-modeloUML Meta-modeloO meta-modelo do UML contém 3 categorias de elementos:
Classificadores, eventos e comportamentos
Classificador: Descreve um conjunto de objetos
Uma cosa no sistema com um estado e uma relação
com outros objetos. Tem estrutura e dados
Evento: Descreve um conjunto de ocorrências possíveis
Ocorrência: Algo que acontece com repercussão no sistema
Execução: A realização dum algoritmo de acordo com um conjunto de regras.
Comportamento: Descreve um conjunto de execuções possíveis.
4
UML: sobre modelosUML: sobre modelos
Os modelos não contém objetoOs modelos não contém objetoss, , ocorrênciasocorrências e e execuçõesexecuções porque elas são o sujeito dos modelos porque elas são o sujeito dos modelos e não o seu conteúdoe não o seu conteúdo
São as São as classesclasses, , eventoseventos e e comportamentoscomportamentos que que modelam modelam o conjunto de objetos, ocorrências e o conjunto de objetos, ocorrências e execuções com propriedades semelhantes.execuções com propriedades semelhantes.
5
ClassificadorClassificadorUma meta-classe abstracta. RedefinívelUma meta-classe abstracta. RedefinívelDefine um tipoDefine um tipo. Define características de tipo e . Define características de tipo e estruturaestruturaPode ter generalizações e desta maneira pode Pode ter generalizações e desta maneira pode definir relações de generalização com outros definir relações de generalização com outros classificadoresclassificadoresRepresenta Representa uma classificação de instâncias que uma classificação de instâncias que tem atributos e características comunstem atributos e características comunsClassificadores gerais são classificadores Classificadores gerais são classificadores referenciados por relações de generalização. Não referenciados por relações de generalização. Não são instanciáveis.são instanciáveis.
Classificador:Classificador: ClassesClasses, , Tipos de dados Tipos de dados (datatypes), (datatypes), Máquinas de EstadoMáquinas de Estado, , Casos de Casos de UtilizaçãoUtilização, , interfacesinterfaces, , outros componentesoutros componentes..
6
ClassificadorClassificador
FazerCompra
LojaExemplo dum classificador
proprietário dum Caso de Utilização
Praticamente todos os objetos e artefactos definidos no UML são classificadores: meta definição de instâncias.
Ver por exemplo taxinomia de classificadores na pág. 705 no manual da super estrutura.
7
Diagramas da Estrutura do Diagramas da Estrutura do sistemasistema
Diagramas de ClassesDiagramas de ClassesDiagramas de ComponentesDiagramas de ComponentesDiagramas de InstalaçãoDiagramas de Instalação
Estes são os diagramas utilizados pelo UML Estes são os diagramas utilizados pelo UML utilizados para modelar a estrutura do sistemautilizados para modelar a estrutura do sistema
8
ClassesClasses: classificadores de : classificadores de objetosobjetos
Um classificador de objetos que partilham os Um classificador de objetos que partilham os mesmos propriedades, restrições e mesmos propriedades, restrições e semântica.semântica.
Uma classe fornece e encapsula a Uma classe fornece e encapsula a implementação duma certa funcionalidade implementação duma certa funcionalidade de negócio do sistema.de negócio do sistema.
9
ClassesClasses
A classe (ou descritor) representa um conceito no A classe (ou descritor) representa um conceito no interior do sistema modelado: um objeto abstractointerior do sistema modelado: um objeto abstracto
O propósito das classes é especificar a classificação O propósito das classes é especificar a classificação dos objetos, assim como especificar a estrutura e dos objetos, assim como especificar a estrutura e comportamento destes objetoscomportamento destes objetos
Os objetos duma classe devem ter valores de atributos Os objetos duma classe devem ter valores de atributos que pertençam a dita classe, de acordo com as que pertençam a dita classe, de acordo com as características do atributo: tipo e multiplicidade por características do atributo: tipo e multiplicidade por exemplo.exemplo.
objeto?objeto? Pessoas, lugares, coisas, conceitos, relatórios,Pessoas, lugares, coisas, conceitos, relatórios,
10
ClassesClassesO símbolo da classe é o símbolo dum classificador, O símbolo da classe é o símbolo dum classificador, o mais utilizado em UMLo mais utilizado em UML
AlunoAluno
-------------------------atributos
-------------------------Operações
Nome
estrutura
métodos
11
ClassesClasses
Aluno----------------------------------------------Nome: stringEndereço: stringIdade: integere-mail: string----------------------------------------------Criar();Actualizar();Apagar();
12
ClassesClasses
Atributos:Atributos:
Locação com um nome ao interior dum classificador Locação com um nome ao interior dum classificador que descreve um intervalo de valores que podem que descreve um intervalo de valores que podem ter as suas instânciaster as suas instâncias
Método:Método:
Implementação duma operação. Algoritmo ou Implementação duma operação. Algoritmo ou procedimento para obter os resultados duma procedimento para obter os resultados duma operaçãooperação
13
Classes: Atributos e MétodosClasses: Atributos e Métodos
14
ClassesClasses
Rectângulo----------------------------------------------------------------p1: Pointp2: Point----------------------------------------------------------------<<constructor>>Rectangulo(p1:Point, p2: Point)<<query>>Area(): RealAspect(): Real...<<update>>Move(delta: Point)Scale(ratio: Real);
Estereótipos aplicados a grupos de elementos:
<<constructor>>
<<query>>
<<update>>
<<create>>
<<destroy>>
15
ClassesClasses
Encomenda ----------------------------------------------------- Data entregue: Date- Numero: Integer-# Num Cliente: Integer- Total: currency- Completa: Boolean---------------------------------------------#CalcularTotal(): currency# CalcularIVA(tipo: Real): currency- GetIVAcalc() {visibility: implementation}......
16
Classes: visibilidade dos AtributosClasses: visibilidade dos Atributos
17
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
18
Classes: Classes: AssociaçõesAssociações
DisciplinaAluno
Uma associação descreve um conjunto de tuplas cujos valorescaracterizam instâncias com tipo. Representada por uma linha a cheio
Tem pelo menos dois extremos representados por propriedadesCada uma ligada ao extremo correspondente: pode mostrar o nomeUma instância duma associação é chamada um ‘link’Os objetos num extremo da associação reconhecem os objetos no Outro extremos e podem enviar sinais o mensagens a eles.
A associação tem: Nome: inscrito numa Papel (rol) regular, obrigatória Multiplicidade 1..*, 1, 0..*, 1..20, etc. String de Propriedade
1..* inscrito numa 1
regular obrigatória
19
Classes: AssociaçõesClasses: Associações
AlunoFuncionário1..* lecciona 1
Docente regular
Disciplina
0..6
Associação Navegável: uni-direccional
Associação reflexiva:
Uma classe com relação estrutural consigo própria. objetos desempenham vários papeis
Multiplicidade:
Definição dum intervalo inclusivo de inteiros não negativos que começam num limite inferior e terminam com um limite superior (se calhar infinito)1, *, 0..*, 1..*, 0..1,(3), (2..4), 1..3,7..9
20
Associações reflexivasAssociações reflexivas
Pessoa
\ lidera
Equipa
1..7membro
líder 1bancário
banqueiro
*
1..5
Neste caso os dois extremos são distintos
‘lidera’ é o nome da associação
‘lider’ e ‘membro’ são os nomes de ambos dois extremos
O ‘\’ ao frente do nome da associação indica uma associação derivada: herança
21
Classes e associaçõesClasses e associaçõesNavigável:Navigável:
As instâncias que participam num link no tempo de As instâncias que participam num link no tempo de execução (instâncias da associação) execução (instâncias da associação) podem ser podem ser acedidas eficientementeacedidas eficientemente por instâncias participando por instâncias participando nos outros links da associação. (uma seta aberta no nos outros links da associação. (uma seta aberta no extremo)extremo)
Se um extremo não é navegável, acesso pelo outro Se um extremo não é navegável, acesso pelo outro extremo poderia ou não ser possível. Se é, poderia extremo poderia ou não ser possível. Se é, poderia não ser eficiente. (UML não impede este tipo de não ser eficiente. (UML não impede este tipo de navegabilidade) (uma pequena ‘x’ no extremo)navegabilidade) (uma pequena ‘x’ no extremo)
Quando um extremo numa associações é ordenado, Quando um extremo numa associações é ordenado, indica que os links levam esta informação ao indica que os links levam esta informação ao extremo da associaçãoextremo da associação
22
Associações de agregaçãoAssociações de agregação
Factura LinhaFactura
A relação do todo e as suas partes: agregação simples e composta
“Faz parte de”...
Um objeto formado por outros objetos
Só associações binárias podem ser agregações
Agregação simples: um ou mais elementos do elemento componente podem ser apagados sem alterar a classe composta.
1 1..*
23
Associações de agregação Associações de agregação compostacomposta
Window
Cabeçalho Painel Régua
O todo é o único dono das suas partes.
As partes podem incluir classes e associações
Os objetos compostos têm responsabilidade pela existência e armazenamento dos objetos componentes
24
Associações de agregação Associações de agregação compostacomposta
Avião Componente
Uma agregação composta é uma forma forte de agregação: requer que uma instância da parte seja incluída numa composição.
Se a composição é apagada, todas as suas partes são normalmente apagadas com ela.
Uma parte pode ser apagada duma composição antes da composição ser apagada
1 1..*
peças
0..*
0..*
25
Associações ternáriasAssociações ternárias
Associações podem ligar mais que dois Associações podem ligar mais que dois classificadores.classificadores.
Ano
JogadorEquipa
época *
*
*
*
AnoJogou
anoAssociação
Binária
ordem de
leituraAssociação
ternária
26
Restrições nas AssociaçõesRestrições nas Associações
Pessoa Comité
As restrições podem ser escritas na linguagem O.C.L. ou em linguagem natural
* membro de *
{ subconjunto}
1 Presidente de *
Aluna Residência
{ ordenado, FIFO}
0..* lista de espera 1
As alunas esperam obter residência. Estão em fila
de espera, conforme o critério de “primeira chegada primeira servida”
27
Associação com Associação com propriedadepropriedade
Indicada por uma string no interior de chavetasIndicada por uma string no interior de chavetasPodem-se aplicar vários tipos a um extremo da associaçãoPodem-se aplicar vários tipos a um extremo da associação {subsets <nome da propriedade>}{subsets <nome da propriedade>} o extremo é um o extremo é um
subconjunto da propriedade chamada <nome da propriedade>subconjunto da propriedade chamada <nome da propriedade> {redefines <end-name>}{redefines <end-name>} o extremo redefine aquele chamado o extremo redefine aquele chamado
<end name>.<end name>. {union}{union} o extremo é derivado representando a união dos seus o extremo é derivado representando a união dos seus
subconjuntos.subconjuntos. {ordered}{ordered} o extremo representa um conjunto ordenado. o extremo representa um conjunto ordenado. {bag}{bag} o extremo representa uma coleção que permite ao o extremo representa uma coleção que permite ao
mesmo elemento aparecer mais que uma vez.mesmo elemento aparecer mais que uma vez. {sequence}{sequence} ou ou {seq}{seq} o extremos representa uma coleção o extremos representa uma coleção
(bag) ordenada(bag) ordenada
Repare que por defeito uma associação representa um Repare que por defeito uma associação representa um conjuntoconjunto
28
AssociaçõesAssociaçõesUm ponto no extremo indica que este é da Um ponto no extremo indica que este é da propriedade do classificadorpropriedade do classificador onde este faz a ligação onde este faz a ligação (opcional) (opcional)
A BExtremoA ExtremoB
* Associação binária AB *
Banco
numeroConta
Cliente
1
1..*
Encomenda
NumProduto
LinhaEncomenda
1
1..*
Qualificador: seu valor serve
para partilhar o conjunto de instâncias associadas com outra instância numa associação.
Associações qualificadas
29
Associação X-ORAssociação X-OR
Uma entre várias associações potenciais é possível Uma entre várias associações potenciais é possível de ser instanciada num momento para uma de ser instanciada num momento para uma instância.instância.
Utiliza uma linha tracejada ligando duas ou mais Utiliza uma linha tracejada ligando duas ou mais associações as quais tem que ter um classificador associações as quais tem que ter um classificador comum com a string de restrição x-orcomum com a string de restrição x-or
Aluno
trabalhador-estudante
regular
{xor}
30
Classes Classes AbstractasAbstractas
Classe Abstracta ou metaclasse: não podem ser Classe Abstracta ou metaclasse: não podem ser directamente instanciadasdirectamente instanciadas
Pessoa{abstract}
HomemMulher Empregado
{complete, disjoint} {incomplete,
disjoint}
Generalization setconstrains
Classificador abstractoItalica;
Estereótipo opcional
Uma classe abstracta é por exemplo uma acçãoexistem tipos específicos de acções
31
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
32
Relação de GeneralizaçãoRelação de Generalização
Animal
InvertebradosVertebrados
Corresponde ao conceito de herança: uma classe pai ou super classe e umas classes filhas, que são instâncias da super classe
33
Relação de GeneralizaçãoRelação de Generalização
Uma relação taxionómica entre um elemento mais Uma relação taxionómica entre um elemento mais geralgeral (pai) e um elemento mais (pai) e um elemento mais específicoespecífico (filha) que é (filha) que é completamente consistente com o primeiro elemento completamente consistente com o primeiro elemento e que agrega informação adicionale que agrega informação adicional
• Os links numa generalização pertencem a uma colecção de subconjuntos aos quais esta generalização pertence:
Conjunto de generalização
• Todos os links que partilha um classificador geral estão divididos nestes conjuntos. Cada um deles representa uma dimensão única de especialização do classificador geral
Exemplos: disjoint, incomplete, overlapping, covering
34
Notação para Conjuntos de Notação para Conjuntos de GeneralizaçãoGeneralização
{complete, disjoint}{complete, disjoint} – – O conjunto de generalização O conjunto de generalização cobre todas as hipóteses. Os classificadores não tem cobre todas as hipóteses. Os classificadores não tem instâncias comuns.instâncias comuns.
{incomplete, disjoint}{incomplete, disjoint} O conjunto de generalização O conjunto de generalização não cobre todas as hipóteses. Os classificadores não não cobre todas as hipóteses. Os classificadores não tem instâncias comuns. - *.tem instâncias comuns. - *.
{complete, overlapping}{complete, overlapping} - - O conjunto de O conjunto de generalização cobre todas as hipóteses. Os generalização cobre todas as hipóteses. Os classificadores tem instâncias comuns.classificadores tem instâncias comuns.
{incomplete, overlapping}{incomplete, overlapping} - - O conjunto de O conjunto de generalização não cobre todas as hipóteses. Os generalização não cobre todas as hipóteses. Os classificadores tem instâncias comuns.classificadores tem instâncias comuns.
* Opção por defeito é:* Opção por defeito é: {incomplete, disjoint}{incomplete, disjoint}
35
Relação de GeneralizaçãoRelação de Generalização
Pessoa
FuncionárioGerente Supervisor
{complete }
Complete: Todos os filhos foram especificados. Não se esperam filhos adicionais. Não há mais tipos de filhos para Pessoa neste conjunto de generalização
Generalization setConjunto degeneralização
36
Relação de GeneralizaçãoRelação de Generalização
Árvore
OliveiraAzinheira Sobreiro
{ incomplete }
Incomplete: A lista está incompleta. Há mais filhos não mostrados no modelo
37
Relação de GeneralizaçãoRelação de Generalização
Vehiculo
Veiculoaquático
VeiculoCom motor
Veiculoterrestre
{ overlapping : true }
Overlapping:{true, false} o classificador geral partilha instâncias em comum
Veiculoeólico
38
Classes: GeneralizaçãoClasses: Generalização
Pessoa
ProfessorAluna
{ disjoint : true }
Disjoint: especifica se o conjunto de generalização dum classificador tem ou não instâncias em comum
Se verdadeiro: a intersecção entre os filhos está vazia
Ex.: Uma Pessoa só pode ser Aluna ou Professor
39
Classes: GeneralizaçãoClasses: Generalização
Pessoa
VendedorGerente
{disjoint: false}
{disjoint:false} : Há instâncias de Pessoa que podem ser Gerente e Vendedor ao mesmo tempo
40
Classes: GeneralizaçãoClasses: Generalização
Pessoa
Sexo MasculinoSexo Femenino
covering: True. Cada instância de Pessoa pertence (no mínimo) ao sexo feminino ou masculino
Cada instância do classificador geral (Pessoa) é pelo menos também uma instância no seu conjunto de generalização
{covering: true}
41
Classes: GeneralizaçãoClasses: Generalização
Representante
RegionalEurodiputado
covering: false: Há instâncias de parlamentário para as quais nenhum estes classificadores no seu conjunto de generalização aplica-se: ex.: Vereador Municipal
{covering: false}
MembroAssambleia
42
Classificadores e Classificadores e Power TypePower Type: : agrupar objetos por categoriasagrupar objetos por categorias
Classificador: classifica instâncias de acordo com as suas Classificador: classifica instâncias de acordo com as suas característicascaracterísticasA ideia de A ideia de Power TypePower Type (Tipo de Poder) está associada com a ideia (Tipo de Poder) está associada com a ideia de Conjunto de Poder: de Conjunto de Poder: aquele cujas instâncias são subconjuntosaquele cujas instâncias são subconjuntos..Portanto, um Portanto, um Tipo de PoderTipo de Poder é uma classe cujas instâncias são é uma classe cujas instâncias são subclasses dum outro classificador.subclasses dum outro classificador.Ex.:As instâncias de Espécie de Árvore são subtipos de ÁrvoreEx.:As instâncias de Espécie de Árvore são subtipos de Árvore
Árvore
Localizaçãogeográfica
:Especies Florestais
{incomplete, disjoint}
Carvalheiro
Espécie deÁrvore
Padrãofolha
Oliveira Azinheiro Alfarrobeira
*
*
1
1
*
1árvore espécies
1
locação
43
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
44
Relações de DependênciaRelações de Dependência
Encomenda
GeradorAutomático
Números
_____________________
NovoNumero()
Um elemento ou um conjunto deles Um elemento ou um conjunto deles requer de outros elementos requer de outros elementos para a sua especificação ou implementaçãopara a sua especificação ou implementação
A semântica do elemento dependente é estruturalmente A semântica do elemento dependente é estruturalmente dependente do elemento fornecedordependente do elemento fornecedor
Uma relação Cliente/FornecedorUma relação Cliente/FornecedorA semântica do cliente não está completa sem o FornecedorA semântica do cliente não está completa sem o Fornecedor
Ex.: Encomenda depende deEx.: Encomenda depende deGeradorAutomático de números deGeradorAutomático de números deencomendaencomenda
45
Relações de DependênciaRelações de Dependência
Relação entre 2 classes na qual uma Relação entre 2 classes na qual uma alteração alteração numa delas poderia obrigar mudanças na outranuma delas poderia obrigar mudanças na outra, , mesmo que não há associação explicita entre mesmo que não há associação explicita entre elaselas
Representada por uma Representada por uma linha dirigida e tracejadalinha dirigida e tracejada
Sensor Temperatura
Inicializar()DefinirAlarme()
T: real;
Valor: Real;
Temperatura
Elemento que
implementa
Elemento que
especifica
46
Relações de DependênciaRelações de DependênciaEx. Uma encomenda está definida pelo seu número. Mais este Ex. Uma encomenda está definida pelo seu número. Mais este
pode estar definido numa outra classepode estar definido numa outra classeEx.:Ex.:Uma classe é “amiga” duma outraUma classe é “amiga” duma outraUma classe depende do interface duma outraUma classe depende do interface duma outraUma classe contem uma operaçãoUma classe contem uma operaçãoQue toma um objeto duma outra como valorQue toma um objeto duma outra como valorUma classe que acede um objeto globalUma classe que acede um objeto globalDuma outra classeDuma outra classe
Encomenda
GeradorAutomático
Números
_______________________NovoNumero()
47
Relações de DependênciaRelações de Dependência
Quando devemos modelar Quando devemos modelar dependênciasdependências??
Quando a relação entre os classificadores é Quando a relação entre os classificadores é transitóriatransitória. Não é persistente. Não é persistenteAcontece quando um dos objetos envolvidos na Acontece quando um dos objetos envolvidos na relação é transitório ele próprio ou bem é uma classe.relação é transitório ele próprio ou bem é uma classe.
Encomenda
GeradorAutomático
NovoNumero()
<<controlador>>AgendarEntregue
Classe transitória
Faz calendário da entregue de encomendas
48
Relação de Realização:Relação de Realização:(de dependência)(de dependência)
Uma realização significa que o conjunto de Uma realização significa que o conjunto de elementos são uma elementos são uma implementaçãoimplementação do conjunto da do conjunto da classe, que serve como classe, que serve como especificaçãoespecificação..
Universidade
Docente FuncionárioAluno
A classe Universidade é realizada pela combinação de Aluno, Docente e Funcionário
49
Relação de Realização:Relação de Realização:‘realização’ de dependência‘realização’ de dependência
encontramos realização frequentemente nos interfacesencontramos realização frequentemente nos interfacesOu em componentes complexosOu em componentes complexos
ImplementaCliente
ColeçãoClientes
DefiniçãoClientes
<<componente>> Clientes
50
Tipos de relações existentes nos diagramas de estrutura
51
Classes ‘associativas’Classes ‘associativas’ou Classes de associaçãoou Classes de associação
Um elemento de modelação que tem as características Um elemento de modelação que tem as características duma associação e duma classe duma associação e duma classe simultaneamentesimultaneamente
Pode ser vista como uma associação que tem Pode ser vista como uma associação que tem propriedades duma classe, ou como uma classe que propriedades duma classe, ou como uma classe que tem propriedades duma associaçãotem propriedades duma associação
Representada pelo símbolo duma classe + linha Representada pelo símbolo duma classe + linha tracejadatracejada
Lembram-se dos atributos nas relações do modelo Lembram-se dos atributos nas relações do modelo relacional?relacional?
Aluno Curso
InscriçãoAno:
CalcMédia()
52
Classes de AssociaçãoClasses de Associação
A linha de associação e a Classe de associação A linha de associação e a Classe de associação formam um só elemento de modelação que tem formam um só elemento de modelação que tem um só nomeum só nome
Uma associação com os seus próprios atributosUma associação com os seus próprios atributos
Jogador Equipa
ContratoDuração:Ordenado:
Actualizar()Rescindir()
0..* contrato 1
empregado empregador
O nome pode ser
colocado na associação quando só tem atributos
Caso contrário, colocado na caixa da associação para enfatizar a sua natureza de “classe”
53
Classes de AssociaçãoClasses de AssociaçãoA linha de associação e a Classe de associação A linha de associação e a Classe de associação
formam um só elemento de modelação o qual tem formam um só elemento de modelação o qual tem um só nomeum só nome
Só pode existir uma classe associação por cada par Só pode existir uma classe associação por cada par de classificadores relacionados.de classificadores relacionados.
Universidade Pessoa
Data:Categoria:Ordenado:
1 emprego 1..*
A associação está qualificada com atributos.
Estes formam um todo com a relação: emprego
O nome pode ir colocado num ou no outro elemento ou em ambos dois
54
Classes de AssociaçãoClasses de AssociaçãoComo instância da classe associação, há só uma Como instância da classe associação, há só uma
instância dos classificadores associados em cada instância dos classificadores associados em cada extremo da associação.extremo da associação.
Elemento de modelação, ‘resolvido’ na fase de Elemento de modelação, ‘resolvido’ na fase de desenhodesenho
Aluno Disciplina
ano:nota:média:
1 Inscrição 1..*
NomeNúmeoCursoInscrever()Actualizar()Apagar()
55
Atributos vs. AssociaçõesAtributos vs. AssociaçõesUma propriedade que designa um objeto duma Uma propriedade que designa um objeto duma
classe presente no modelo, deve ser modelada classe presente no modelo, deve ser modelada como associação e não como atributocomo associação e não como atributo
Cidade Pais1..* pertence à 1
Nomecapital
1 1
capital
Capital está definida como propriedade, mas já existe objeto Cidade que permite instanciar cidades que são também capitais
1
UALG/FCT/DEEIUALG/FCT/DEEIAnálise e Modelação de Análise e Modelação de Sistemas InformáticosSistemas Informáticos
7. UML, A vista da estrutura: as 7. UML, A vista da estrutura: as ClassesClasses
P. SerenderoP. Serendero
2
2
A vista da Estrutura do sistemaA vista da Estrutura do sistema
Documenta os aspectos estáticos do sistema. Os elementos intervenientes assim como as suas ligações
Na abordagem OO isto implica a identificação das classes e as suas relações
UML permite uma abordagem mais simples e geral para a fase de Análise e uma mais específica para a fase de Desenho
3
3
UML Meta-modeloUML Meta-modeloO meta-modelo do UML contém 3 categorias de elementos:
Classificadores, eventos e comportamentos
Classificador: Descreve um conjunto de objetos
Uma cosa no sistema com um estado e uma relação
com outros objetos. Tem estrutura e dados
Evento: Descreve um conjunto de ocorrências possíveis
Ocorrência: Algo que acontece com repercussão no sistema
Execução: A realização dum algoritmo de acordo com um conjunto de regras.
Comportamento: Descreve um conjunto de execuções possíveis.
4
4
UML: sobre modelosUML: sobre modelos
Os modelos não contém objetoOs modelos não contém objetoss, , ocorrênciasocorrências e e execuçõesexecuções porque elas são o sujeito dos modelos porque elas são o sujeito dos modelos e não o seu conteúdoe não o seu conteúdo
São as São as classesclasses, , eventoseventos e e comportamentoscomportamentos que que modelam modelam o conjunto de objetos, ocorrências e o conjunto de objetos, ocorrências e execuções com propriedades semelhantes.execuções com propriedades semelhantes.
5
5
ClassificadorClassificadorUma meta-classe abstracta. RedefinívelUma meta-classe abstracta. RedefinívelDefine um tipoDefine um tipo. Define características de tipo e . Define características de tipo e estruturaestruturaPode ter generalizações e desta maneira pode Pode ter generalizações e desta maneira pode definir relações de generalização com outros definir relações de generalização com outros classificadoresclassificadoresRepresenta Representa uma classificação de instâncias que uma classificação de instâncias que tem atributos e características comunstem atributos e características comunsClassificadores gerais são classificadores Classificadores gerais são classificadores referenciados por relações de generalização. Não referenciados por relações de generalização. Não são instanciáveis.são instanciáveis.
Classificador:Classificador: ClassesClasses, , Tipos de dados Tipos de dados (datatypes), (datatypes), Máquinas de EstadoMáquinas de Estado, , Casos de Casos de UtilizaçãoUtilização, , interfacesinterfaces, , outros componentesoutros componentes..
6
6
ClassificadorClassificador
FazerCompra
LojaExemplo dum classificador
proprietário dum Caso de Utilização
Praticamente todos os objetos e artefactos definidos no UML são classificadores: meta definição de instâncias.
Ver por exemplo taxinomia de classificadores na pág. 705 no manual da super estrutura.
7
7
Diagramas da Estrutura do Diagramas da Estrutura do sistemasistema
Diagramas de ClassesDiagramas de ClassesDiagramas de ComponentesDiagramas de ComponentesDiagramas de InstalaçãoDiagramas de Instalação
Estes são os diagramas utilizados pelo UML Estes são os diagramas utilizados pelo UML utilizados para modelar a estrutura do sistemautilizados para modelar a estrutura do sistema
8
8
ClassesClasses: classificadores de : classificadores de objetosobjetos
Um classificador de objetos que partilham os Um classificador de objetos que partilham os mesmos propriedades, restrições e mesmos propriedades, restrições e semântica.semântica.
Uma classe fornece e encapsula a Uma classe fornece e encapsula a implementação duma certa funcionalidade implementação duma certa funcionalidade de negócio do sistema.de negócio do sistema.
9
9
ClassesClasses
A classe (ou descritor) representa um conceito no A classe (ou descritor) representa um conceito no interior do sistema modelado: um objeto abstractointerior do sistema modelado: um objeto abstracto
O propósito das classes é especificar a classificação O propósito das classes é especificar a classificação dos objetos, assim como especificar a estrutura e dos objetos, assim como especificar a estrutura e comportamento destes objetoscomportamento destes objetos
Os objetos duma classe devem ter valores de atributos Os objetos duma classe devem ter valores de atributos que pertençam a dita classe, de acordo com as que pertençam a dita classe, de acordo com as características do atributo: tipo e multiplicidade por características do atributo: tipo e multiplicidade por exemplo.exemplo.
objeto?objeto? Pessoas, lugares, coisas, conceitos, relatórios,Pessoas, lugares, coisas, conceitos, relatórios,
10
10
ClassesClassesO símbolo da classe é o símbolo dum classificador, O símbolo da classe é o símbolo dum classificador, o mais utilizado em UMLo mais utilizado em UML
AlunoAluno
-------------------------atributos
-------------------------Operações
Nome
estrutura
métodos
11
11
ClassesClasses
Aluno----------------------------------------------Nome: stringEndereço: stringIdade: integere-mail: string----------------------------------------------Criar();Actualizar();Apagar();
12
12
ClassesClasses
Atributos:Atributos:
Locação com um nome ao interior dum classificador Locação com um nome ao interior dum classificador que descreve um intervalo de valores que podem que descreve um intervalo de valores que podem ter as suas instânciaster as suas instâncias
Método:Método:
Implementação duma operação. Algoritmo ou Implementação duma operação. Algoritmo ou procedimento para obter os resultados duma procedimento para obter os resultados duma operaçãooperação
13
13
Classes: Atributos e MétodosClasses: Atributos e Métodos
14
14
ClassesClasses
Rectângulo----------------------------------------------------------------p1: Pointp2: Point----------------------------------------------------------------<<constructor>>Rectangulo(p1:Point, p2: Point)<<query>>Area(): RealAspect(): Real...<<update>>Move(delta: Point)Scale(ratio: Real);
Estereótipos aplicados a grupos de elementos:
<<constructor>>
<<query>>
<<update>>
<<create>>
<<destroy>>
15
15
ClassesClasses
Encomenda ----------------------------------------------------- Data entregue: Date- Numero: Integer-# Num Cliente: Integer- Total: currency- Completa: Boolean---------------------------------------------#CalcularTotal(): currency# CalcularIVA(tipo: Real): currency- GetIVAcalc() {visibility: implementation}......
16
16
Classes: visibilidade dos AtributosClasses: visibilidade dos Atributos
17
17
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
18
18
Classes: Classes: AssociaçõesAssociações
DisciplinaAluno
Uma associação descreve um conjunto de tuplas cujos valorescaracterizam instâncias com tipo. Representada por uma linha a cheio
Tem pelo menos dois extremos representados por propriedadesCada uma ligada ao extremo correspondente: pode mostrar o nomeUma instância duma associação é chamada um ‘link’Os objetos num extremo da associação reconhecem os objetos no Outro extremos e podem enviar sinais o mensagens a eles.
A associação tem: Nome: inscrito numa Papel (rol) regular, obrigatória Multiplicidade 1..*, 1, 0..*, 1..20, etc. String de Propriedade
1..* inscrito numa 1
regular obrigatória
19
19
Classes: AssociaçõesClasses: Associações
AlunoFuncionário1..* lecciona 1
Docente regular
Disciplina
0..6
Associação Navegável: uni-direccional
Associação reflexiva:
Uma classe com relação estrutural consigo própria. objetos desempenham vários papeis
Multiplicidade:
Definição dum intervalo inclusivo de inteiros não negativos que começam num limite inferior e terminam com um limite superior (se calhar infinito)1, *, 0..*, 1..*, 0..1,(3), (2..4), 1..3,7..9
20
20
Associações reflexivasAssociações reflexivas
Pessoa
\ lidera
Equipa
1..7membro
líder 1bancário
banqueiro
*
1..5
Neste caso os dois extremos são distintos
‘lidera’ é o nome da associação
‘lider’ e ‘membro’ são os nomes de ambos dois extremos
O ‘\’ ao frente do nome da associação indica uma associação derivada: herança
21
21
Classes e associaçõesClasses e associaçõesNavigável:Navigável:
As instâncias que participam num link no tempo de As instâncias que participam num link no tempo de execução (instâncias da associação) execução (instâncias da associação) podem ser podem ser acedidas eficientementeacedidas eficientemente por instâncias participando por instâncias participando nos outros links da associação. (uma seta aberta no nos outros links da associação. (uma seta aberta no extremo)extremo)
Se um extremo não é navegável, acesso pelo outro Se um extremo não é navegável, acesso pelo outro extremo poderia ou não ser possível. Se é, poderia extremo poderia ou não ser possível. Se é, poderia não ser eficiente. (UML não impede este tipo de não ser eficiente. (UML não impede este tipo de navegabilidade) (uma pequena ‘x’ no extremo)navegabilidade) (uma pequena ‘x’ no extremo)
Quando um extremo numa associações é ordenado, Quando um extremo numa associações é ordenado, indica que os links levam esta informação ao indica que os links levam esta informação ao extremo da associaçãoextremo da associação
22
22
Associações de agregaçãoAssociações de agregação
Factura LinhaFactura
A relação do todo e as suas partes: agregação simples e composta
“Faz parte de”...
Um objeto formado por outros objetos
Só associações binárias podem ser agregações
Agregação simples: um ou mais elementos do elemento componente podem ser apagados sem alterar a classe composta.
1 1..*
23
23
Associações de agregação Associações de agregação compostacomposta
Window
Cabeçalho Painel Régua
O todo é o único dono das suas partes.
As partes podem incluir classes e associações
Os objetos compostos têm responsabilidade pela existência e armazenamento dos objetos componentes
24
24
Associações de agregação Associações de agregação compostacomposta
Avião Componente
Uma agregação composta é uma forma forte de agregação: requer que uma instância da parte seja incluída numa composição.
Se a composição é apagada, todas as suas partes são normalmente apagadas com ela.
Uma parte pode ser apagada duma composição antes da composição ser apagada
1 1..*
peças
0..*
0..*
25
25
Associações ternáriasAssociações ternárias
Associações podem ligar mais que dois Associações podem ligar mais que dois classificadores.classificadores.
Ano
JogadorEquipa
época *
*
*
*
AnoJogou
anoAssociação
Binária
ordem de
leituraAssociação
ternária
26
26
Restrições nas AssociaçõesRestrições nas Associações
Pessoa Comité
As restrições podem ser escritas na linguagem O.C.L. ou em linguagem natural
* membro de *
{ subconjunto}
1 Presidente de *
Aluna Residência
{ ordenado, FIFO}
0..* lista de espera 1
As alunas esperam obter residência. Estão em fila
de espera, conforme o critério de “primeira chegada primeira servida”
27
27
Associação com Associação com propriedadepropriedade
Indicada por uma string no interior de chavetasIndicada por uma string no interior de chavetasPodem-se aplicar vários tipos a um extremo da associaçãoPodem-se aplicar vários tipos a um extremo da associação {subsets <nome da propriedade>}{subsets <nome da propriedade>} o extremo é um o extremo é um
subconjunto da propriedade chamada <nome da propriedade>subconjunto da propriedade chamada <nome da propriedade> {redefines <end-name>}{redefines <end-name>} o extremo redefine aquele chamado o extremo redefine aquele chamado
<end name>.<end name>. {union}{union} o extremo é derivado representando a união dos seus o extremo é derivado representando a união dos seus
subconjuntos.subconjuntos. {ordered}{ordered} o extremo representa um conjunto ordenado. o extremo representa um conjunto ordenado. {bag}{bag} o extremo representa uma coleção que permite ao o extremo representa uma coleção que permite ao
mesmo elemento aparecer mais que uma vez.mesmo elemento aparecer mais que uma vez. {sequence}{sequence} ou ou {seq}{seq} o extremos representa uma coleção o extremos representa uma coleção
(bag) ordenada(bag) ordenada
Repare que por defeito uma associação representa um Repare que por defeito uma associação representa um conjuntoconjunto
28
28
AssociaçõesAssociaçõesUm ponto no extremo indica que este é da Um ponto no extremo indica que este é da propriedade do classificadorpropriedade do classificador onde este faz a ligação onde este faz a ligação (opcional) (opcional)
A BExtremoA ExtremoB
* Associação binária AB *
Banco
numeroConta
Cliente
1
1..*
Encomenda
NumProduto
LinhaEncomenda
1
1..*
Qualificador: seu valor serve
para partilhar o conjunto de instâncias associadas com outra instância numa associação.
Associações qualificadas
29
29
Associação X-ORAssociação X-OR
Uma entre várias associações potenciais é possível Uma entre várias associações potenciais é possível de ser instanciada num momento para uma de ser instanciada num momento para uma instância.instância.
Utiliza uma linha tracejada ligando duas ou mais Utiliza uma linha tracejada ligando duas ou mais associações as quais tem que ter um classificador associações as quais tem que ter um classificador comum com a string de restrição x-orcomum com a string de restrição x-or
Aluno
trabalhador-estudante
regular
{xor}
30
30
Classes Classes AbstractasAbstractas
Classe Abstracta ou metaclasse: não podem ser Classe Abstracta ou metaclasse: não podem ser directamente instanciadasdirectamente instanciadas
Pessoa{abstract}
HomemMulher Empregado
{complete, disjoint} {incomplete,
disjoint}
Generalization setconstrains
Classificador abstractoItalica;
Estereótipo opcional
Uma classe abstracta é por exemplo uma acçãoexistem tipos específicos de acções
31
31
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
32
32
Relação de GeneralizaçãoRelação de Generalização
Animal
InvertebradosVertebrados
Corresponde ao conceito de herança: uma classe pai ou super classe e umas classes filhas, que são instâncias da super classe
33
33
Relação de GeneralizaçãoRelação de Generalização
Uma relação taxionómica entre um elemento mais Uma relação taxionómica entre um elemento mais geralgeral (pai) e um elemento mais (pai) e um elemento mais específicoespecífico (filha) que é (filha) que é completamente consistente com o primeiro elemento completamente consistente com o primeiro elemento e que agrega informação adicionale que agrega informação adicional
• Os links numa generalização pertencem a uma colecção de subconjuntos aos quais esta generalização pertence:
Conjunto de generalização
• Todos os links que partilha um classificador geral estão divididos nestes conjuntos. Cada um deles representa uma dimensão única de especialização do classificador geral
Exemplos: disjoint, incomplete, overlapping, covering
34
34
Notação para Conjuntos de Notação para Conjuntos de GeneralizaçãoGeneralização
{complete, disjoint}{complete, disjoint} – – O conjunto de generalização O conjunto de generalização cobre todas as hipóteses. Os classificadores não tem cobre todas as hipóteses. Os classificadores não tem instâncias comuns.instâncias comuns.
{incomplete, disjoint}{incomplete, disjoint} O conjunto de generalização O conjunto de generalização não cobre todas as hipóteses. Os classificadores não não cobre todas as hipóteses. Os classificadores não tem instâncias comuns. - *.tem instâncias comuns. - *.
{complete, overlapping}{complete, overlapping} - - O conjunto de O conjunto de generalização cobre todas as hipóteses. Os generalização cobre todas as hipóteses. Os classificadores tem instâncias comuns.classificadores tem instâncias comuns.
{incomplete, overlapping}{incomplete, overlapping} - - O conjunto de O conjunto de generalização não cobre todas as hipóteses. Os generalização não cobre todas as hipóteses. Os classificadores tem instâncias comuns.classificadores tem instâncias comuns.
* Opção por defeito é:* Opção por defeito é: {incomplete, disjoint}{incomplete, disjoint}
35
35
Relação de GeneralizaçãoRelação de Generalização
Pessoa
FuncionárioGerente Supervisor
{complete }
Complete: Todos os filhos foram especificados. Não se esperam filhos adicionais. Não há mais tipos de filhos para Pessoa neste conjunto de generalização
Generalization setConjunto degeneralização
36
36
Relação de GeneralizaçãoRelação de Generalização
Árvore
OliveiraAzinheira Sobreiro
{ incomplete }
Incomplete: A lista está incompleta. Há mais filhos não mostrados no modelo
37
37
Relação de GeneralizaçãoRelação de Generalização
Vehiculo
Veiculoaquático
VeiculoCom motor
Veiculoterrestre
{ overlapping : true }
Overlapping:{true, false} o classificador geral partilha instâncias em comum
Veiculoeólico
38
38
Classes: GeneralizaçãoClasses: Generalização
Pessoa
ProfessorAluna
{ disjoint : true }
Disjoint: especifica se o conjunto de generalização dum classificador tem ou não instâncias em comum
Se verdadeiro: a intersecção entre os filhos está vazia
Ex.: Uma Pessoa só pode ser Aluna ou Professor
39
39
Classes: GeneralizaçãoClasses: Generalização
Pessoa
VendedorGerente
{disjoint: false}
{disjoint:false} : Há instâncias de Pessoa que podem ser Gerente e Vendedor ao mesmo tempo
40
40
Classes: GeneralizaçãoClasses: Generalização
Pessoa
Sexo MasculinoSexo Femenino
covering: True. Cada instância de Pessoa pertence (no mínimo) ao sexo feminino ou masculino
Cada instância do classificador geral (Pessoa) é pelo menos também uma instância no seu conjunto de generalização
{covering: true}
41
41
Classes: GeneralizaçãoClasses: Generalização
Representante
RegionalEurodiputado
covering: false: Há instâncias de parlamentário para as quais nenhum estes classificadores no seu conjunto de generalização aplica-se: ex.: Vereador Municipal
{covering: false}
MembroAssambleia
42
42
Classificadores e Classificadores e Power TypePower Type: : agrupar objetos por categoriasagrupar objetos por categorias
Classificador: classifica instâncias de acordo com as suas Classificador: classifica instâncias de acordo com as suas característicascaracterísticasA ideia de A ideia de Power TypePower Type (Tipo de Poder) está associada com a ideia (Tipo de Poder) está associada com a ideia de Conjunto de Poder: de Conjunto de Poder: aquele cujas instâncias são subconjuntosaquele cujas instâncias são subconjuntos..Portanto, um Portanto, um Tipo de PoderTipo de Poder é uma classe cujas instâncias são é uma classe cujas instâncias são subclasses dum outro classificador.subclasses dum outro classificador.Ex.:As instâncias de Espécie de Árvore são subtipos de ÁrvoreEx.:As instâncias de Espécie de Árvore são subtipos de Árvore
Árvore
Localizaçãogeográfica
:Especies Florestais
{incomplete, disjoint}
Carvalheiro
Espécie deÁrvore
Padrãofolha
Oliveira Azinheiro Alfarrobeira
*
*
1
1
*
1árvore espécies
1
locação
43
43
Relações nas ClassesRelações nas Classes
Ligação entre dois elementos:Ligação entre dois elementos:
AssociaçãoAssociação GeneralizaçãoGeneralização DependênciaDependência RealizaçãoRealização
44
44
Relações de DependênciaRelações de Dependência
Encomenda
GeradorAutomático
Números
_____________________
NovoNumero()
Um elemento ou um conjunto deles Um elemento ou um conjunto deles requer de outros elementos requer de outros elementos para a sua especificação ou implementaçãopara a sua especificação ou implementação
A semântica do elemento dependente é estruturalmente A semântica do elemento dependente é estruturalmente dependente do elemento fornecedordependente do elemento fornecedor
Uma relação Cliente/FornecedorUma relação Cliente/FornecedorA semântica do cliente não está completa sem o FornecedorA semântica do cliente não está completa sem o Fornecedor
Ex.: Encomenda depende deEx.: Encomenda depende deGeradorAutomático de números deGeradorAutomático de números deencomendaencomenda
45
45
Relações de DependênciaRelações de Dependência
Relação entre 2 classes na qual uma Relação entre 2 classes na qual uma alteração alteração numa delas poderia obrigar mudanças na outranuma delas poderia obrigar mudanças na outra, , mesmo que não há associação explicita entre mesmo que não há associação explicita entre elaselas
Representada por uma Representada por uma linha dirigida e tracejadalinha dirigida e tracejada
Sensor Temperatura
Inicializar()DefinirAlarme()
T: real;
Valor: Real;
Temperatura
Elemento que
implementa
Elemento que
especifica
46
46
Relações de DependênciaRelações de DependênciaEx. Uma encomenda está definida pelo seu número. Mais este Ex. Uma encomenda está definida pelo seu número. Mais este
pode estar definido numa outra classepode estar definido numa outra classeEx.:Ex.:Uma classe é “amiga” duma outraUma classe é “amiga” duma outraUma classe depende do interface duma outraUma classe depende do interface duma outraUma classe contem uma operaçãoUma classe contem uma operaçãoQue toma um objeto duma outra como valorQue toma um objeto duma outra como valorUma classe que acede um objeto globalUma classe que acede um objeto globalDuma outra classeDuma outra classe
Encomenda
GeradorAutomático
Números
_______________________NovoNumero()
47
47
Relações de DependênciaRelações de Dependência
Quando devemos modelar Quando devemos modelar dependênciasdependências??
Quando a relação entre os classificadores é Quando a relação entre os classificadores é transitóriatransitória. Não é persistente. Não é persistenteAcontece quando um dos objetos envolvidos na Acontece quando um dos objetos envolvidos na relação é transitório ele próprio ou bem é uma classe.relação é transitório ele próprio ou bem é uma classe.
Encomenda
GeradorAutomático
NovoNumero()
<<controlador>>AgendarEntregue
Classe transitória
Faz calendário da entregue de encomendas
48
48
Relação de Realização:Relação de Realização:(de dependência)(de dependência)
Uma realização significa que o conjunto de Uma realização significa que o conjunto de elementos são uma elementos são uma implementaçãoimplementação do conjunto da do conjunto da classe, que serve como classe, que serve como especificaçãoespecificação..
Universidade
Docente FuncionárioAluno
A classe Universidade é realizada pela combinação de Aluno, Docente e Funcionário
49
49
Relação de Realização:Relação de Realização:‘realização’ de dependência‘realização’ de dependência
encontramos realização frequentemente nos interfacesencontramos realização frequentemente nos interfacesOu em componentes complexosOu em componentes complexos
ImplementaCliente
ColeçãoClientes
DefiniçãoClientes
<<componente>> Clientes
50
50
Tipos de relações existentes nos diagramas de estrutura
51
51
Classes ‘associativas’Classes ‘associativas’ou Classes de associaçãoou Classes de associação
Um elemento de modelação que tem as características Um elemento de modelação que tem as características duma associação e duma classe duma associação e duma classe simultaneamentesimultaneamente
Pode ser vista como uma associação que tem Pode ser vista como uma associação que tem propriedades duma classe, ou como uma classe que propriedades duma classe, ou como uma classe que tem propriedades duma associaçãotem propriedades duma associação
Representada pelo símbolo duma classe + linha Representada pelo símbolo duma classe + linha tracejadatracejada
Lembram-se dos atributos nas relações do modelo Lembram-se dos atributos nas relações do modelo relacional?relacional?
Aluno Curso
InscriçãoAno:
CalcMédia()
52
52
Classes de AssociaçãoClasses de Associação
A linha de associação e a Classe de associação A linha de associação e a Classe de associação formam um só elemento de modelação que tem formam um só elemento de modelação que tem um só nomeum só nome
Uma associação com os seus próprios atributosUma associação com os seus próprios atributos
Jogador Equipa
ContratoDuração:Ordenado:
Actualizar()Rescindir()
0..* contrato 1
empregado empregador
O nome pode ser
colocado na associação quando só tem atributos
Caso contrário, colocado na caixa da associação para enfatizar a sua natureza de “classe”
53
53
Classes de AssociaçãoClasses de AssociaçãoA linha de associação e a Classe de associação A linha de associação e a Classe de associação
formam um só elemento de modelação o qual tem formam um só elemento de modelação o qual tem um só nomeum só nome
Só pode existir uma classe associação por cada par Só pode existir uma classe associação por cada par de classificadores relacionados.de classificadores relacionados.
Universidade Pessoa
Data:Categoria:Ordenado:
1 emprego 1..*
A associação está qualificada com atributos.
Estes formam um todo com a relação: emprego
O nome pode ir colocado num ou no outro elemento ou em ambos dois
54
54
Classes de AssociaçãoClasses de AssociaçãoComo instância da classe associação, há só uma Como instância da classe associação, há só uma
instância dos classificadores associados em cada instância dos classificadores associados em cada extremo da associação.extremo da associação.
Elemento de modelação, ‘resolvido’ na fase de Elemento de modelação, ‘resolvido’ na fase de desenhodesenho
Aluno Disciplina
ano:nota:média:
1 Inscrição 1..*
NomeNúmeoCursoInscrever()Actualizar()Apagar()
55
55
Atributos vs. AssociaçõesAtributos vs. AssociaçõesUma propriedade que designa um objeto duma Uma propriedade que designa um objeto duma
classe presente no modelo, deve ser modelada classe presente no modelo, deve ser modelada como associação e não como atributocomo associação e não como atributo
Cidade Pais1..* pertence à 1
Nomecapital
1 1
capital
Capital está definida como propriedade, mas já existe objeto Cidade que permite instanciar cidades que são também capitais