Análise e Concepção de Sistemas de Informação
Unified Modeling Language (UML)
- Modelação da Arquitectura -
Alberto Silva / José Borbinha
1
2
Modelação da Arquitectura
• Introdução
• Componentes
• Diagramas de Componentes
• Nós
• Diagramas de Instalação
3
Diagramas de Arquitectura
Diagramas de arquitectura (ou estrutura) permitem
• 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
Modelação da Arquitectura
• Introdução
• Componentes
• Diagramas de Componentes
• Nós
• Diagramas de Instalaçã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
– ...
6
Componentes
7
Componentes e Interfaces (outra vez...)
Interface
– 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
– Suportada por algumas linguagens de
programação (e.g., Java, Corba IDL, COM IDL,
…)
– A adequada definição de interfaces é essencial
para um bom desenho e desenvolvimento de
sistemas OO
8
Componentes e Interfaces (outra vez...)
exemplo de interfaces de uma componente em Active-X...
WP.exe
<<Interface>>
ISpell
WP.exe
wordsmith.dll
wordsmith.dll
ISpell
9
Componentes e Interfaces
interfaces
IThesaurus
ISpell
wordsmith.dll
IUnknown
componente
exemplo de interfaces de uma
componente em Active-X...
10
Componentes e Interfaces
Substituição e Reutilização
As interfaces têm um impacto significativo nos
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
11
Componentes
Tipos de Componentes
 Componentes de trabalho, a partir dos quais são criados os
componentes de instalação (ficheiros com código fonte, ficheiros
de dados, documentos, ...)
 Componentes de instalação, constituem a base dos sistemas
executáveis (DLL, executáveis, controlos Active-X, classes Java,
...)
 Componentes de execução, criados como resultado da
execução de um sistema, ou seja, correspondem a instâncias
dos componentes de instalação (processos, threads, agentes de
software, ...)
 NOTA: Os componentes de execução são apenas
representados nos diagramas de instalação (como instâncias de
“componentes de instalação”)
12
Componentes
• Estereótipos para componentes (UML, v1.3)
 «document»: denota um documento.
 «executable»: denota um programa que possa ser executado
num nó.
 «file»: denota um documento contendo código fonte ou dados.
 «libary»: denota uma biblioteca dinâmica ou estática.
 «table»: denota uma tabela de uma base de dados.
13
Modelação da Arquitectura
• Introdução
• Componentes
• Diagramas de Componentes
• Nós
• Diagramas de Instalação
14
Diagramas de Componentes
 Um diagrama de componentes ilustra as dependências entre
vários componentes de software.
 Incluem-se nesta definição lata, por exemplo, artefactos:
 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 de componentes (para ilustrar
instâncias de componentes devem ser usados diagramas de
instalação)

 Apenas se ilustram componentes executáveis...
15
Diagramas de Componentes
Componentes de Instalação e Interfaces…
A relação entre interface e componente designa-se por realização
16
Diagramas de Componentes
Relação entre Componentes
17
Diagramas de Componentes
Representação de vários detalhes de um componente
18
Diagramas de Componentes
Componentes com Componentes…
Um componente pode conter outros componentes: inclusão física
wordsmith.dll
Speller.obj
Thesaurus.obj

Speller.obj
wordsmith.dll
Thesaurus.obj
19
Diagramas de Componentes
Exemplo1: Página Web com um applet Java
demo/applets/Animator/example1.html
<html>
<head>
<title>The Animator Applet - example 1</title>
</head>
<body>
<h1>The Animator Applet - example 1</h1>
<applet codebase=".“
code=Animator.class width=46 height=160>
</applet>
<a href="Animator.java">The source.</a>
<hr>
</body>
</html>
20
Diagramas de Componentes
Exemplo: Pretende-se o diagrama de componentes da aplicação WinCOR, desenvolvida sobre ambiente
Windows, para gestão de correspondência de uma organização, que consiste no seguinte conjunto de
componentes de instalação:
 wincor.exe: ficheiro que contêm o executável da aplicação
 pblib32.dll, sde32.dll, sdemdb32.dll: bibliotecas com código binário de funcionalidades adicionais
 wincor.hlp: ficheiro de ajuda sobre a aplicação.
 wincor.ini: ficheiro de configuração da aplicação
 entrada.db, saida.db: ficheiros/tabelas da base de dados de suporte
21
Modelação da Arquitectura
• Introdução
• Componentes
• Diagramas de Componentes
• Nós
• Diagramas de Instalação
22
Nós
Um nó é um objecto físico que representa uma recurso, geralmente tendo
capacidades de memória e de processamento.
23
Nós e instâncias
24
Nós
Os nós podem consistir em recursos
–
–
–
–
computacionais (hardware)
humanos
organizacionais
processamento mecânico
Nós e Componentes
Semelhanças




Ambos podem participar em relações de
generalização, dependência e associação
Ambos podem ser aninhados
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
25
Modelação da Arquitectura
• Introdução
• Componentes
• Diagramas de Componentes
• Nós
• Diagramas de Instalação
26
Diagramas de Instalação (“deployment”)
O objectivo dos diagramas de
instalação é mostrar a
configuração de hardware de um
sistema, consistindo na
identificação de...
• nós (computadores, periféricos, …)
• instâncias de componentes de software
• objectos
...bem como nos canais de
comunicação existentes entre
esses nós...
27
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»)
28
Diagramas de Instalação
“connection”: associação que representa a
ligação fisica entre nós
Embora a ligação seja o tipo de associação mais comum entre dois nós, outros
tipos de associações (e.g., agregação e dependência) são também possíveis.
29
Diagramas de Instalação
Nós e Componentes
30
Diagramas de Instalação - Exemplo
“O sistema de trabalho
doméstico”: Diagrama
de componentes e
Diagrama de instalação
com componentes
31
Diagramas de Instalação...
32
Diagramas de Instalação - Exemplo (2)
PC com SIG-C-Gás e GestãoGIS
PC com acesso ao
SIG-C-Gás, via Web
Browser
Web Browser
(e.g., IE)
HTTP
Editor SIG-C-Gás (e.g., baseado
em ArcEditor, Map, GeoMedia)
HTTP
Servidor SIG-C-Gás
Servidor Map (e.g.,
ArcIMS, MapGuide)
Interfaces Web (e.g.,
HTML, JSP, ASPX)
Servidor Web
(e.g., IIS, Apache)
Ficheiro SIG (e.g.,
.shp, .dwg)
Componentes Aplicacionais
(e.g., .NET, EJB)
Servidor Aplicacional (e.g.
.NET/COM+, J2EE)
Base
Dados
Servidor Base Dados (e.g.,
Oracle, SQL Server)
33
Relações entre Diagramas de Componentes
e de Instalação
Exemplo: Sistema de informação de uma universidade
34
Exemplo: Diagrama de Componentes do Sistema de informação de uma
universidade
35
Exemplo: Diagrama de Instalação do Sistema de informação de uma universidade
36
Exemplo: Sistema de informação de uma universidade
37
A propósito dos Diagramas de Arquitectura
• Estes diagramas podem também ser aplicados na
modelação de negócios e de organizações em que
– os componentes de “código” representam os procedimentos e
regras de negócio;
– os nós (isto é, os componentes não digitais) representam a infraestrutura da organização através de um conjunto de recursos do
negócio (humanos e outros).
38
39
...!!! Extra à matéria da cadeira !!!...
Diagrama de Estrutura Composta (“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)
• Pode ser equivalente aos diagramas de classes,
mas mostra as partes individuais das classes, em
vez das classes no seu todo...
40
Download

Unified Modeling Language (UML) - Modelação da Arquitectura -