ualg/fct/deei análise e modelação de sistemas...
TRANSCRIPT
![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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/1.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/2.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/3.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/4.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/5.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/6.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/7.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/8.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/9.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/10.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/11.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/12.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/13.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/14.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/15.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/16.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/17.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/18.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/19.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/20.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/21.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/22.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/23.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/24.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/25.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/26.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/27.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/28.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/29.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/30.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/31.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/32.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/33.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/34.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/35.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/36.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/37.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/38.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/39.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/40.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/41.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/42.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/43.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/44.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/45.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/46.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/47.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/48.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/49.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/50.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/51.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/52.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/53.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/54.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/55.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/56.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/57.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/58.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/59.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/60.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/61.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/62.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/63.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/64.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/65.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/66.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/67.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/68.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/69.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/70.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/71.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/72.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/73.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/74.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/75.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/76.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/77.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/78.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/79.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/80.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/81.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/82.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/83.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/84.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/85.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/86.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/87.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/88.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/89.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/90.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/91.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/92.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/93.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/94.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/95.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/96.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/97.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/98.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/99.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/100.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/101.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/102.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/103.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/104.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/105.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/106.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/107.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/108.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/109.jpg)
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](https://reader030.vdocuments.net/reader030/viewer/2022020305/5c0e358709d3f2cc538c9874/html5/thumbnails/110.jpg)
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