ualg/fct/deei análise e modelação de sistemas...

Post on 10-Dec-2018

219 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related