Modelação
Aula T16
Modelação Conceptual de Sistemas
A Estrutura do Sistema
José Borbinha
Programa
T01-T03 – Módulo 1
– Introdução à Modelação de Sistemas
T04-T07 – Módulo 2
– Modelação Conceptual de Sistemas
T08-T11 – Módulo 3
– Ontologias
T12 – Correcção do Teste 1
T13-T15 – Módulo 4
– Modelação de Sistemas: Comportamento
T16-T18 – Módulo 5
–Modelação de Sistemas: Arquitectura
(A Estrutura do Sistema…)
T19-T25 – Módulo 6
– Temas avançados
Modelação
2
Modelação da estrutura de sistemas em UML e SysML
Modelação
3
Diagramas de Estrutura em UML
– A descrição física do software:
• Os diagramas de componentes são usados para modelar a arquitectura
de um sistema na perspectiva dos seus componentes de software (e.g.,
ficheiros de código fonte, de executáveis, de configuração, tabelas de
dados, documentos de gestão do projecto), explicitando principalmente as
suas múltiplas dependências.
– A descrição física do hardware:
• Os diagramas de instalação, por outro lado, são usados para modelar a
arquitectura de um sistema na perspectiva dos seus componentes de
hardware (e.g., computadores, adaptadores de rede, impressoras, routers,
cablagem), explicitando as suas dependências de comunicação.
– A integração do software com o hardware:
• Os diagramas de instalação com componentes são usados para
modelar um determinado ambiente de execução com componentes,
através da identificação de instâncias de componentes que são instaladas
em determinada instância de nó computacional.
4
UML
-
Diagramas de Componentes
Modelação
5
Componentes (de software)
• Um componente de software é uma agregação de várias
peças de software.
• Um componente pode concretizar uma ou mais classes.
• Vantagens e motivações para a construção de modelos de
componentes:
– os clientes podem ver a estrutura final do sistema
– a equipa de desenvolvimento tem uma estrutura de orientação que
lhe permite trabalhar de forma controlada
– a equipa de documentação e ajudas (help) podem entender melhor
o âmbito do seu trabalho
– promove-se a reutilização
– ...
Formas equivalentes em UML 2.0:
6
Componentes e Interfaces
• “Interface” é um conceito que:
– Providencia uma separação clara entre a vista
externa e a vista interna de uma abstracção
– Permite compreender melhor uma abstracção
sem conhecer os seus detalhes de
implementação
– Promove a abstracção; desenvolvimento
baseado em componentes; separação de
aspectos
• Conceito suportado por alguns modelos
ou linguagens de programação (Java,
Corba IDL, COM IDL, …)
7
Diagramas de Componentes
• A Component diagram illustrates the pieces
of software, embedded controllers and such
that make up a system, and their organization
and dependencies .
• A Component diagram has a higher level
of abstraction than a Class diagram;
usually a component is implemented by one
or more Classes (or Objects) at runtime. They
are building blocks, built up so that eventually
a component can encompass a large portion
of a system.
• The diagram below demonstrates some
components and their inter-relationships.
• Assembly connectors link the provided
interfaces supplied by Product and
Customer to the required interfaces
specified by Order.
• A Dependency relationship maps a
customer's associated account details to
the required interface Payment, indicated
by Order.
Modelação
Retirado do “Help” do Enterprise Architect
8
Componentes e Interfaces
“Interfaces” são relevantes para os conceitos de
substituição e reutilização de “componentes”:
– Pode-se substituir um componente por outro, se o novo
componente providenciar as interfaces do anterior
– Pode-se reutilizar um componente noutro sistema, se o
novo sistema puder aceder e reutilizar o componente
através das suas respectivas interfaces
9
Diagramas de Componentes
 Um diagrama de componentes pode ilustrar as dependências entre
vários componentes de software, tais como:
 de código fonte
 de código binário
 de código executável
 procedimentos de negócio
 documentos...
Notas:
 Um diagrama de componentes representa apenas tipos de
componentes e nunca instâncias (para ilustrar instâncias de
componentes devem ser usados diagramas de instalação)
 Apenas se ilustram componentes executáveis...
10
Diagramas de Componentes
Representação de vários detalhes de um componente
11
Diagramas de Componentes
Um componente pode conter outros componentes
wordsmith.dll
Speller.obj
Thesaurus.obj

Speller.obj
wordsmith.dll
Thesaurus.obj
12
Elementos de Diagramas de Componentes
Modelação
Retirado do “Help” do Enterprise Architect
13
UML
-
Diagramas de Pacotes
Modelação
14
Pacotes (“Packages”)
• Pacotes são um mecanismo genérico
para organizar elementos em grupos,
facilitando a modelação parcial do
sistema
pacote
Package A

Um pacote pode conter outros elementos,
incluindo: classes, interfaces, … e mesmo
outros pacotes. Mas qualquer elemento é
definido em apenas um único pacote!!!

Um pactoe providencia um contexto, logo um
suporte para um espaço de nomes (X::A é
diferente de X::Y:A, diferente de Z::A, ...)
15
Packages - Exemplos
16
Pacotes...
Um package bem estruturado é:
•
Coerente: providencia uma fronteira bem definida que agrega um conjunto
de elementos relacionados
•
Minimizar as dependências: exportar e importar entre pacoters apenas os
elementos estritamente necessários
•
Hierarquias balanceadas: evitar longas hierarquias de pacotes aninhadas
•
Conteúdo balanceado: dentro do conjunto de pacotes de um sistema, não
deverão existir pacotes nem demasiado grandes nem demasiado pequenos
Quando utilizar Packages?
•
Pragmatismo e legibilidade: sempre que um determinado diagrama não seja
legível num espaço útil, deve-se repartir (p.ex. numa “folha A4”)
•
Rastreabilidade: representar um caso de testes por pacote…
•
Alinhamento com o desenvolvimento: pacote como unidades de
programação...
17
Elementos de diagramas de pacotes
Modelação
Retirado do “Help” do Enterprise Architect
18
UML
-
Diagramas de Instalação
Modelação
19
Diagramas de Instalação
•
A Deployment diagram shows how
and where the system is to be
deployed; that is, its execution
architecture. Hardware devices,
processors and software execution
environments (system Artifacts) are
reflected as Nodes, and the internal
construction can be depicted by
embedding or nesting Nodes. As
Artifacts are allocated to Nodes to
model the system's deployment, the
allocation is guided by the use of
deployment specifications.
•
Example: Two Nodes have a TCP/IP
communication path indicated.
Deployment relationships indicate the
deployment of Artifacts. Furthermore,
a deployment spec defines the
process of deployment for the
networkScanner Artifact. The
Manifestation relationships reveal the
physical implementation of
components ReposCustomer and
ReposInternalRecords.
Modelação
Retirado do “Help” do Enterprise Architect
20
Diagramas de Instalação
Modelação
Retirado do “Help” do Enterprise Architect
21
Nós
Um nó é um objecto físico que representa um recurso (geralmente com
capacidades de memória e de processamento).
Os nós podem consistir em recursos
– computacionais (hardware)
– humanos
– organizacionais
– processamento mecânico
– …
22
Nós e instâncias
23
Nós e Componentes
•
Semelhanças
– Ambos podem participar em relações de generalização,
dependência e associação
– Ambos podem ter instâncias
– Ambos podem participar em interacções
•
Diferenças
– Componentes são coisas que participam na execução de
um sistema  Nós são coisas que executam componentes
–
Componentes representam agrupamento de elementos
lógicos  Nós representam a instalação fisica de
componentes
24
Diagramas de Instalação (“deployment”)
• Mostram a configuração de hardware de
um sistema, identificando:
– nós (computadores, periféricos, …)
– instâncias de componentes de software
– objectos
– canais de comunicação existentes entre
os nós...
25
Diagramas de Instalação
Nós e Componentes
Podem-se representar os componentes relevantes que existem ou são suportados em
determinado nó (relação de dependência, de estereótipo «support»)
26
Diagramas de Instalação - Exemplo
“O sistema de trabalho doméstico”:
Diagrama de componentes e
Diagrama de instalação com
componentes
“connection”: associações que
representam ligações fisicas entre nós
27
Diagramas de
Estrutura e de Blocos...
Modelação
28
O que há de potencialmente errado neste domínio?
Modelação
Exemplo retirado de: http://www.jot.fm/issues/issue_2004_11/column5/
29
Potencialmente, uma grande trapalhada…
Instanciação possível
Modelação
Exemplo retirado de: http://www.jot.fm/issues/issue_2004_11/column5/
30
Diagrama de Estrutura Composta em UML
(“Composite Structure Diagram”)
• Diagrama para representar a estrutura interna de
alguns elementos (classes, componentes, nós, ...)
usando:
• Partes (instâncias que compõem o elemento)
• Portos (pontos de interacção entre as Partes)
• Conectores (“links” entre Partes ou Portos)
• Podem ser equivalentes aos diagramas de
classes, mas mostram as partes individuais das
classes, em vez das classes no seu todo...
31
Diagramas de Estrutura em UML e em SysML
Os “Composite Structure Diagram”
são no entanto um conceito confuso
em UML!
O seu objectivo é melhor conseguido
em SysML, nos diagramas de blocos
(a ver na próxima aula…)
Modelação
32
Download

cad-Mod-2008_T16