UALG/FCT/DEEI Análise e Modelação de Sistemas...

110
UALG/FCT/DEEI UALG/FCT/DEEI Análise e Modelação de Análise e Modelação de Sistemas Informáticos Sistemas Informáticos 7. UML, A vista da estrutura: as 7. UML, A vista da estrutura: as Classes Classes P. Serendero P. Serendero

Transcript of UALG/FCT/DEEI Análise e Modelação de Sistemas...

Page 1: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 2: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 3: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 4: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 5: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..

Page 6: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 7: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 8: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 9: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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,

Page 10: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 11: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

11

ClassesClasses

Aluno----------------------------------------------Nome: stringEndereço: stringIdade: integere-mail: string----------------------------------------------Criar();Actualizar();Apagar();

Page 12: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 13: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

13

Classes: Atributos e MétodosClasses: Atributos e Métodos

Page 14: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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>>

Page 15: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

15

ClassesClasses

Encomenda ----------------------------------------------------- Data entregue: Date- Numero: Integer-# Num Cliente: Integer- Total: currency- Completa: Boolean---------------------------------------------#CalcularTotal(): currency# CalcularIVA(tipo: Real): currency- GetIVAcalc() {visibility: implementation}......

Page 16: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

16

Classes: visibilidade dos AtributosClasses: visibilidade dos Atributos

Page 17: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 18: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 19: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 20: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 21: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 22: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..*

Page 23: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 24: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..*

Page 25: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 26: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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”

Page 27: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 28: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 29: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 30: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 31: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 32: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 33: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 34: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 35: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 36: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 37: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 38: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 39: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 40: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 41: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 42: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 43: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 44: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 45: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 46: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 47: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 48: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 49: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 50: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

50

Tipos de relações existentes nos diagramas de estrutura

Page 51: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 52: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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”

Page 53: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 54: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 55: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 56: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 57: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 58: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 59: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 60: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..

Page 61: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 62: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 63: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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.

Page 64: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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,

Page 65: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 66: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

11

11

ClassesClasses

Aluno----------------------------------------------Nome: stringEndereço: stringIdade: integere-mail: string----------------------------------------------Criar();Actualizar();Apagar();

Page 67: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 68: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

13

13

Classes: Atributos e MétodosClasses: Atributos e Métodos

Page 69: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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>>

Page 70: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}......

Page 71: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

16

16

Classes: visibilidade dos AtributosClasses: visibilidade dos Atributos

Page 72: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 73: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 74: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 75: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 76: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 77: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..*

Page 78: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 79: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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..*

Page 80: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 81: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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”

Page 82: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 83: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 84: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 85: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 86: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 87: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 88: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 89: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 90: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 91: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 92: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 93: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 94: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 95: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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}

Page 96: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 97: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 98: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 99: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 100: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 101: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 102: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 103: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 104: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 105: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

50

50

Tipos de relações existentes nos diagramas de estrutura

Page 106: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 107: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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”

Page 108: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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

Page 109: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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()

Page 110: UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticosw3.ualg.pt/~pserende/DATABASES/DATABASES/TEORICAS/PDF/3b-Classes e... · Sistemas Informáticos 7. UML, ... Representa

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