1 unified modeling language (uml) - modelação da estrutura - alberto silva / josé borbinha...
TRANSCRIPT
![Page 1: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/1.jpg)
1
Unified Modeling Language (UML)- Modelação da Estrutura -
Alberto Silva / José Borbinha
Análise e Concepção de Sistemas de Informação
![Page 2: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/2.jpg)
2
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 3: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/3.jpg)
3
ClassesUma classe representa uma categoria de objectos que partilham os mesmos:– atributos– operações– relações– semântica
![Page 4: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/4.jpg)
4
Classes – Atributos e Operações
Atributos: [visibility] [/] name [: type] [ multiplicity ] [= default] [{ property-string }]Operações: [visibility] name [( parameter-list )] : [return-type] [{ property-string }]
Tipos de visibilidade:
+ público (pode ser visto e usado por qualquer classe que conheça esta classe)
- privado (só pode ser visto dentro da classe)
# protegido (só pode ser visto dentro da classe, ou pelos seus descendentes
![Page 5: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/5.jpg)
5
Classes - Sugestões
• Uma classe deve corresponder a algo tangível ou a uma abstracção conceptual existente no domínio do problema ou no domínio da solução
• Uma classe bem estruturada ...– Providencia uma abstracção definida a partir do
vocabulário do domínio do problema ou do domínio da solução.
– Agrega um conjunto restrito e bem definido de responsabilidades.
– Providencia uma separação clara entre a especificação abstracta e a sua implementação.
– É simples, e facilmente entendida.
![Page 6: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/6.jpg)
6
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de
Objectos• Pacotes (Packages)
![Page 7: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/7.jpg)
7
RelaçõesUma relação é uma ligação entre elementos. Numa modelação orientada a objectos os três tipos de relações mais importantes são:
– Dependências– Generalizações– Associações
elemento A
elementoB
relação
![Page 8: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/8.jpg)
8
Relações - Dependência
Uma dependência indica que a alteração na especificação de um elemento (e.g., pacote “UML 0.9”) pode afectar outro elemento que o usa (e.g., pacote “UML 1.0”) mas não necessariamente o oposto.
Em UML as dependências são usadas entre normalmente com packages, componentes e notas.
![Page 9: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/9.jpg)
9
Relações – Dependência (tipos de predefinidos)• Abstracção:
– «refinement»: Usado quando o cliente representa melhorias, junçõe, alterações e outros aspectos relativamente ao conteúdo do(s) fornecedor(es).
– «trace»: Usado quando se pretende representar relações históricas e dependência de elementos ao longo do tempo
• Ligação:– «bind»: Usado para estabelecer ligações entre parâmetros genéricos e
parâmetros efectivos, na criação de elementos não parametrizados
• Permissão:– «import»: Usado quando o pacote fornecedor concede ao pacote cliente
acesso aos seus elementos públicos, de forma que o nome desses elementos passem a poder ser referenciados directamente no pacote cliente.
• Utilização:– «include», «extend», «communicate»: Usados no contexto de diagramas de
casos de utilização
![Page 10: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/10.jpg)
10
Relações – DependênciaExemplo de dependência com semântica de «refinement»
– «refinement»: Usado quando o cliente representa melhorias, junções, alterações e outros aspectos relativamente ao conteúdo do(s) fornecedor(es).
![Page 11: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/11.jpg)
11
Relações - Generalização
Shape
originmove()resize()display()
Uma generalização é uma relação entre um elemento geral (superclasse) e um tipo mais específico desse elemento (subclasse).
Geralmente conhecida como uma relação “is-a” ou “is-a-kind-of”.
Rectanglecorner: Point
Circleradius: Float
Polygnpoints: List
Square
No contexto de classes usam-se generalizações para ilustrar relações de herança.
![Page 12: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/12.jpg)
12
Relações - Associação
Uma associação é uma relação semântica entre dois ou mais elementos de um modelo.
• Uma pessoa pode trabalhar para várias (0 ou mais) empresas. • Numa empresa trabalham 1 ou mais pessoas.
![Page 13: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/13.jpg)
13
Relações - Associação• Multiplicidade de uma associação
– Define quantos objectos participam na relação– O número de instâncias de uma classe relacionadas com uma
instância da outra classe– Especificada para cada participante (classe) da associação
1
0..* ou apenas *
1..*
0..1
2..4
2, 4..6
Não especificada
Apenas uma
Zero ou mais
Uma ou mais
Zero ou uma
Intervalo especificado
Valores e intervalos múltiplos
![Page 14: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/14.jpg)
14
Relações – Associação (Adornos Básicos)
- nome- o papel de cada participante na associação- a multiplicidade de cada participante na associação- tipo de agregação
![Page 15: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/15.jpg)
15
Relações – Associação (Adornos de Restrições)
As empresas têm um conjunto de empregados, o qual é uma lista ordenada pelo “nome” da pessoa. Adicionalmente, foi definido a restrição de que os empregados são todos do género masculino.
![Page 16: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/16.jpg)
16
Relações - Associação
Outros Adornos das Associações
– Navegação– Visibilidade– Qualificação– Vários tipos de Agregação
![Page 17: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/17.jpg)
17
Por omissão a navegação numa associação é bidireccional.
A navegação é um adorno mais relevante na fase de desenho...
“Para uma pessoa é relevante obter a lista das empresas em que se encontra ligada. Mas não é relevante ou interessante obter-se os
empregados de cada empresa .”
Relações – Associação (Adornos de Navegação)
![Page 18: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/18.jpg)
18
Relações – Associação (Adornos de Visibilidade)
Quando se pretende limitar a visibilidade a objectos externos a determinada associação.
Tipos de visibilidade:+ público- privado# protegido
Navegação da associação
“Instâncias de UserGroup podem aceder a instâncias de User (e vice-versa) mas não podem, por sua vez, ver as instâncias de Password dos respectivos User.”
User Password1 *
+ownerUserGroup
-key+user* *
![Page 19: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/19.jpg)
19
Relações – Associação (Adornos de Qualificação)
• Um qualificador é um atributo de uma associação que limita a relação entre as duas entidades relacionadas por essa associação.
Pessoa
qualificador*
Banco
NrConta
0..1
Quadrado
1
TabuleiroXadrez
LinhaColuna
1
![Page 20: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/20.jpg)
20
Relações – Associação (Adornos de Agregação)Relações entre classes do tipo “is-part-of” ou “has-a” são representadas através de agregação.
Uma composição é uma agregação forte ( “todo” em relação à “parte”) e com tempo de vida delimitado (as “partes” não podem existir sem o “todo”). O “todo” é responsável pela criação e destruição das suas “partes”.
... um Departamento não existe sem o contexto de uma Empresa...
... uma Pessoa pode existir sem uma
Empresa...
![Page 21: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/21.jpg)
21
Relações - Associação
![Page 22: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/22.jpg)
22
Relações – Associação...• «Uma mesa é constituída por um tampo e por quatro pernas…»• «Uma mesa é constituída por um tampo e por duas a seis pernas, as
quais têm de estar ordenadas…»
Perna
1
Mesa
Ordem
2..6Perna
1
Mesa
4
Tampo
1
1Tampo
1
1
![Page 23: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/23.jpg)
23
Relações - Associação
Numa associação entre classes, a associação pode também ter as suas próprias propriedades, devendo ser, por conseguinte, modelada também como uma classe.
Classes-Associação
Pessoa Empresa1..* *
empregado empregador
Tarefa
descriçãodataIníciosalário
classe associação
![Page 24: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/24.jpg)
24
Relações - Associação
Associações com aridade 3 ou superior.São pouco comuns, mas há casos que a sua aplicação é vantajosa...
Associação N-Ária (N 3)
Pessoa Empresa* *
TarefadescriçãodataIníciosalário
classe associação
TipoTarefa*
Tarefa
A multiplicidade em associações n-árias pode ser especificada mas é menos óbvia que a multiplicidade em associações binárias.A multiplicidade num papel representa o número de tuplos (de instâncias) numa associação quando os outro N-1 valores são fixos.
![Page 25: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/25.jpg)
25
Relações - Associação
Associação N-Ária (N 3)
As associações N-árias podem ser transformadas em várias relações binárias entre a classe-associação e as restantes classes participantes. Se for esta a estratégia adoptada deve ser assinalado esse facto (por exemplo, através de um estereótipo ou de uma anotação) junto à classe-associação Pessoa Empresa1 1
TarefadescriçãodataIníciosalário
TipoTarefa1
*
“Tarefa” é uma classe resultante da associação entre as classes “Pessoa”, “TipoTarefa” e “Empresa”
* *
![Page 26: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/26.jpg)
26
Relações - Associações Reflexivas
Quando uma classe tem uma associação consigo própria...
• “um docente, enquanto professor, pode ser responsável por outros docentes, designados por assistentes”
• “um docente, enquanto assistente, está dependente de um outro docente, designado por professor”
*1professor
assistenteDocente
“um departamento universitário pode conter outros departamentos”
*
1sub-departamento
Departamento
![Page 27: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/27.jpg)
27
Relações - Sugestões
• Usar dependência apenas quando a relação não é estrutural.
• Usar generalização apenas quando se tem uma relação do tipo is-a ou is-a-kind.
• Herança múltipla pode ser geralmente substituida pela agregação.
• Evitar relações de generalização ciclicas• Manter as generalizações balenceadas (nem muito largas,
nem muito fundas)
• Usar associações sempre que existirem relações semânticas entre objectos.
![Page 28: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/28.jpg)
28
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 29: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/29.jpg)
29
Diagramas de classes
• Representam a visão lógica do sistema, expressa pelo conjunto de todas as suas classes e respectivas relações.
• Elementos UML que são representados num diagrama de classes:– Classes e toda a sua estrutura interna– Relações
• Tipos (Associações, Agregações, Dependências, Generalização)• Multiplicidade• Navegabilidade• Nome da relação e papel de cada interveniente• ....
![Page 30: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/30.jpg)
30
Diagramas de classesPerspectivas:
• Modelo de Análise – diagrama de classes representa os conceitos do domínio em análise; normalmente existirá uma relação com as classes que os implementarão (modelos de domínio)
• Modelo de Desenho - diagrama de classes representa o desenho da implementação do software
• São muito ricos; podem-se tornar muito complicados...• Não se devem utilizar todas as notações disponíveis!!!• Começar com: classes, atributos, associações,
generalizações e restrições• Utilizar correctamente as diferentes perspectivas (análise vs
desenho)
![Page 31: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/31.jpg)
31
![Page 32: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/32.jpg)
32
![Page 33: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/33.jpg)
33
Diagrama de Classes dos diagramas da UML2.0
![Page 34: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/34.jpg)
34
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 35: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/35.jpg)
35
Interfaces
• Permite compreender melhor uma abstracção sem se ter de conhecer os detalhes da sua implementação
• Promove a abstracção; desenvolvimento baseado em componentes; separação de aspectos
• Suportada pela generalidade das modernas linguagens de programação (Java, VB, VisualC++, Delphi, Corba IDL, COM IDL, …)
• A adequada definição de interfaces é essencial para um bom desenho/desenvolvimento de sistemas OO
Visão externa
Visão interna
interface
elemento
Uma interface é um contrato na forma de uma colecção de assinaturas de métodos que providencia um mecanismo para separação clara entre a vista externa e a vista interna de um determinado elemento.
![Page 36: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/36.jpg)
36
Interfaces
Uma interface é uma especificação de um comportamento, uma colecção de operações que especificam um serviço de uma classe ou de um componente
![Page 37: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/37.jpg)
37
Interfaces
exemplo de interfaces de uma componente em Active-X...
WP.exe wordsmith.dll
ISpell<<Interface>>
ISpell
WP.exe wordsmith.dll
![Page 38: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/38.jpg)
38
Interfaces - Relações• Uma interface pode participar em relações do tipo
generalização, associação, dependência ou “realização”
Realização é uma relação semântica entre duas entidades, em que uma específica um contrato, e a outra garante a sua execução.
![Page 39: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/39.jpg)
39
Interfaces – Quando detalhar?Caso: A universidade promove várias actividades de cariz socioprofissional (e.g., jantares-debates, cursos de curta duração, visitas a empresas), as quais podem ser patrocinadas por empresas. Considerando que “Actividade” é uma interface:
Jantar-DebateEmpresaActividade
obterResponsável()obterPatrocionadores()obterCusto()
<<Interface>>
patrociona >
Jantar-DebateEmpresa
Actividade
patrociona >
??!
OK
![Page 40: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/40.jpg)
40
Interfaces - Sugestões
• Simples, ainda que completa: • providencia todas as operações necessárias para especificar
um determinado serviço ou papel• E.g., “serialização”, gestão de nomes, estabelecimento de
conexões HTTP, acesso a objecto remoto, …
• Compreensível: • providencia informação suficiente para ser, quer usada, quer
realizada sem ser necessário examinar-se a sua realização
• Fácil de aprender/utilizar• providencia informação para ser fácil utilizar as suas operações
principais, sem se ter que dominar, em detalhe, todas as operações
Uma interface bem estruturada é:
![Page 41: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/41.jpg)
41
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 42: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/42.jpg)
42
Instâncias
• Uma instância é uma manifestação concreta de uma abstracção, à qual um conjunto de operações pode ser aplicado, e que tem um estado que regista os efeitos das operações
• Exemplos:
– uma instância de uma classe é um objecto– uma instância de uma associação é uma ligação (link)– uma instância de um nó é um computador em concreto– uma instância de um caso de utilização (use case) é um cenário
![Page 43: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/43.jpg)
43
Instâncias - Objectos• Um objecto é uma instância de uma classe• O objecto herda assim todos os atributos e métodos definidos na
classe, possuindo uma representação de execução própria (a qual se pode designar genericamente por estado), bem como uma identificação única no contexto da sua execução
Sintaxe do nome de um objecto:Nome-do-objecto : Nome-da-classe
![Page 44: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/44.jpg)
44
Instâncias - Objectos
Estado de um objecto...– é dado pelos valores assumidos pelo conjunto de
atributos de um objecto. – é naturalmente um facto dinâmico, variando ao longo
do tempo e do espaço na medida em que o objecto interactua com outros objectos
![Page 45: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/45.jpg)
45
Instâncias - Objectos Activos
Objectos activos: objectos que podem executar o seu próprio comportamento sem necessidade de evocação de um método/operação em concretoEx: actores, processos, threads, agentes, aplicações,...
:AgentNews
t:HandlerNetworkThread
:Produtor:ProdutorLinhas com maior espessura
![Page 46: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/46.jpg)
46
Instâncias - Objectos Compostos• Um objecto composto é constituído por outros
(sub)objectos.• Podem ocorrer inúmeras situações de objectos compostos,
mas em geral tal reflecte relações de agregação entre as respectivas classes.
my:Empresa
d-fin:Departamento
d-pro:Departamento
d-ven:Departamento
d-fin:Departamento
d-pro:Departamento
d-ven:Departamento
my:Empresa
Objecto composto
A vantagem de se representar um conjunto relacionado (por agregação) de objectos através de um objecto composto é essencialmente por motivos de clareza e simplicidade dos diagramas produzidos, para além de se explicitar desta forma o nível de coesão entre os objectos.
![Page 47: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/47.jpg)
47
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 48: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/48.jpg)
48
Diagramas de ObjectosUm diagrama de objectos...
– ilustra um conjunto de objectos e respectivas relações num determinado momento
– permite captar uma imagem ou fotografia momentânea sobre determinado sistema
– é um grafo composto por objectos e ligações (links) entre eles
• Um diagrama de objectos não pode especificar completamente a estrutura de objectos de um dado sistema, pois para cada classe há quase sempre um grande número de combinações potenciais entre instâncias…
• Assim, o objectivo dos diagramas de objectos é apenas expor conjuntos relevantes de objectos de modo a melhor se entender as suas funcionalidades e relações.
![Page 49: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/49.jpg)
49
Diagramas de Objectos Exemplo “Sistema de Gestão de Automóveis”
Uma pessoa pode ser proprietário de vários veículos e estes são possuídos apenas por uma única pessoa. Por outro lado, um veículo tem de possuir necessariamente um motor. Um veículo é identificado univocamente pela matrícula e possuí ainda outras informações, tais como a cor, data de fabrico, marca e modelo. Um motor é identificado por um número de motor, tipo de combustível e cilindrada
Pessoa Veículomodelomatriculacor
Motornúmerocilindradacombustível
*0..1 10..1
ZéMaria:Pessoa
nome=“Zé Maria”
AudiA3:Veiculo
modelo=A3 TDimatricula=99-99-MMcor=vermelho
:Motor
número=9999cilindrada=1900cccombustível=gasóleo
tem tem
O Zé Maria é dono de um Audi A3 TDi vermelho, com matricula ‘99-99-MM’, que tem um motor 1900cc, com número ‘9999’
![Page 50: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/50.jpg)
50
Diagramas de Objectos - Sugestões...
Um diagrama de objectos bem estruturado:– Tem um foco: focaliza um determinado aspecto da visão do
desenho/processo estático do sistema
– Representa uma “Fotografia”: representa uma fotografia no storyboard dinâmico representado por um diagrama de interacções
– É simples: contém apenas os elementos que são essenciais à compreensão de determinado aspecto
– É consistente: providencia detalhes de forma consistente com o seu nível de abstracção
![Page 51: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/51.jpg)
51
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
![Page 52: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/52.jpg)
52
Packages
Torna-se difícil, impraticável, modelar de uma “só vez” sistemas de média/grande dimensão ou complexidade
Motivação
É um mecanismo genérico para organizar elementos em grupos
O que é?Package A
package
Um package pode conter outros elementos, incluindo: classes, interfaces, … e mesmo outros packages
Qualquer elemento é definido em apenas um único package
Um package providencia suporte para um espaço de nomes adequado (X::A é diferente de X::Y:A, diferente de Z::A, ...)
![Page 53: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/53.jpg)
53
Packages - Exemplos
![Page 54: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/54.jpg)
54
Packages - Tipos Standard
• facade: pacote com elementos (tipicamente classes e interfaces) que constituem a fachada (ou a interface de programação) providenciada conjunta e coerentemente por outros pacotes
• framework: um framework é uma arquitectura de classes e interfaces com inúmeros pontos de variabilidade ou de extensão e com estruturas de objectos padronizadas, conhecidas por padrões de desenho
• stub: um adaptador (stub) é usado quando se pretende partir um sistema em diferentes pacotes por motivos, e.g., de divisão de trabalho
• subsystem: uma parte independentemente do sistema inteiro
• system: pacote que representa o sistema inteiro; tipicamente este pacote agrega pacotes dos restantes tipos (subsistema, fachada, etc.)
5 estereótipos standard para packages…
![Page 55: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/55.jpg)
55
Packages - Conselhos ...Um package bem estruturado é:• Coerente: providencia uma fronteira bem definida que agrega um conjunto
de elementos relacionados• Minimiza as dependências: exporta apenas os elementos que outras
packages necessitarão; e importa de outras packages os elementos estritamente necessários
• Tem hierarquias balanceadas: evitar largas/profundas hierarquias de packages aninhadas
• Tem conteúdo balanceado: dentro do conjunto de packages de um sistema, não deverão existir packages nem demasiado grandes (partir), nem demasiado pequenos (juntar)
Quando utilizar Packages?• Sempre que um determinado diagrama que representa o sistema (ou
subsistema) não seja legível numa “folha A4”!!!• Um caso de testes por package!!!• Úteis ainda em termos de unidades de programação...
![Page 56: 1 Unified Modeling Language (UML) - Modelação da Estrutura - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação](https://reader036.vdocuments.net/reader036/viewer/2022081517/5706384b1a28abb8238f5fef/html5/thumbnails/56.jpg)
56
Modelação da Estrutura
• Classes• Relações• Diagramas de Classes• Interfaces• Instâncias• Diagramas de Objectos• Pacotes (Packages)
• FIM!!!