Você está na página 1de 11

9.

UML ASPECTOS AVANADOS

Tpicos

Introduo
A Arquitectura do UML
Mecanismos de Extenso
Perfis UML
XMI XML Metadata Interchange

Introduo
Vimos ao longo dos captulos anteriores os principais aspectos da linguagem UML, em particular vimos a
sua estrutura de conceitos e a sua aplicao segundo diferentes perspectivas, designadamente segunda a
perspectiva de modelao de casos de utilizao, estrutural, comportamental e arquitectural. Analismos
nos captulos anteriores o UML segundo uma perspectiva de utilizao ao nvel da especificao de
modelos.
Neste captulo introduzimos alguns aspectos adicionais, que consideramos avanados, que permitem ao
utilizador uma mais profunda compreenso do UML e por conseguinte uma sua melhor aplicao.
Analisamos nomeadamente os seguintes aspectos:
(1) A estrutura e arquitectura do UML (i.e. como que o UML definido e est organizado).
(2) Mecanismo de extenso do UML (i.e. como estender o UML de forma a contemplar exigncias de
modelao mais recentes e futuras). Sero apresentados alguns exemplos concretos de conjuntos de
elementos que estendem o UML, os quais so designados por perfis.
(3) O standard OMG de interoperao de modelos UML em XML, o XMI. O objectivo do XMI que os
modelos UML possam ser exportados/importados e por conseguinte usados por diferentes ferramentas
CASE.

Embora a leitura deste captulo no seja essencial para uma utilizao corrente do
UML, tal leitura permite dar uma panormica mais abrangente e profunda da sua
arquitectura e correspondentes capacidades.

CENTRO ATLNTICO - COLECO TECNOLOGIAS

A Arquitectura do UML
A Estrutura do UML a Quatro Camadas
O UML est estruturado numa arquitectura de quatro camadas conforme ilustrado na Figura 9.1: metametamodelo; metamodelo; modelo; e objectos do utilizador.

Meta-metamodelo
e.g.: MetaClasse, MetaAtributo, MetaOperao, MetaComponente

Metamodelo
e.g.: Classe, Atributo, Operao, Componente

Modelo
e.g.: Termo, estado, mudaEstado, TermoServlet

Objectos do utilizador
e.g.: <Termo0033>, proposto, muda_estado, <termoServlet0444>

Figura 9.1: A Arquitectura do UML a Quatro Camadas.


Este tipo de arquitectura a quatro camadas apresenta uma infra-estrutura adequada para definio da
semntica associada a modelos complexos. As camadas distinguem-se pelo nvel de generalidade e de
abstraco dos seus elementos constituintes.
Na camada mais baixa da arquitectura Camada Objectos do Utilizador encontram-se os elementos
que constituem as instncias concretas dos elementos representados num modelo definido pelo utilizador
do UML (i.e., o analista ou consultor, e no o utilizador do sistema final): os objectos, os cenrios de um
caso de utilizao, as instncias de componentes, etc. Por exemplo
Na segunda camada Camada Modelo encontram-se os elementos que constituem as abstraces
definidas pelo utilizador do UML no seu processo de definio de modelos. Por exemplo, a classe Termo,
o atributo estado, a operao mudaEstado, a componente TermoServlet ou o caso de utilizao
Propr Termo ilustram elementos desta camada.

Na terceira camada Camada Metamodelo encontram-se os elementos que


constituem as abstraces definidas pelos criadores do UML, ou seja, os elementos que
constituem a estrutura de conceitos do UML e que, com base nos quais se podem
definir modelos (da a designao de metamodelo). Por exemplo: Classe, Atributo,
Operao, Componente, N.
Estas trs primeiras camadas so aquelas que a generalidade dos utilizadores UML
acabam por recorrer na maior parte das vezes, quer como utilizador (da terceira
camada) quer como criador (de elementos das duas primeiras camadas). Por isso
natural que se coloque a questo: para qu a quarta camada? De facto, esta camada
Camada Meta-metamodelo ser raramente usada pelo utilizador normal do UML. No
entanto, necessria para os responsveis pelo desenho e comparao deste tipo
linguagens. Esta camada permite definir os elementos que sero responsveis pela
especificao de metamodelos. Por exemplo: MetaClasse, MetaAtributo,
MetaOperao, MetaComponente, MetaN.

UML, PROCESSOS E FERRAMENTAS CASE - BETA-BOOK

Sai fora dos objectivos deste livro aprofundar esta quarta camada da arquitectura do
UML. Por outro lado, ilustra-se na seco seguinte uma panormica geral sobre a
camada do metamodelo.

A Camada Metamodelo
O UML descrito atravs de um modelo, designado metamodelo por ser um modelo que descreve outro
modelo, tambm ele descrito em UML. O metamodelo UML encontra-se estruturado nos seguintes pacotes
lgicos: Foundation, Behavioral Elements e Model Management (vid. Figura 9.2), os quais
por sua vez so decompostos em subpacotes.

Model
Management

Behavioral
Elements

Foundation

Figura 9.2: Os pacotes de alto nvel do metamodelo UML.


O metamodelo descrito de forma semi-formal usando as seguintes perspectivas: (1) sintaxe abstracta, (2)
regras e (3) semntica. A sintaxe abstracta providenciada atravs de um modelo descrito num subconjunto
do prprio UML consistindo nos diagramas de classe UML e por uma descrio em linguagem natural. As
regras so especificadas atravs de linguagem natural e da linguagem formal OCL. Por ltimo, a semntica
descrita principalmente em linguagem natural. De facto, o metamodelo UML descrito por uma
combinao de notaes grficas, linguagem natural e linguagem formal, o que segundo os seus
proponentes oferece um compromisso adequado entre expressividade e facilidade de leitura [OMG99].

Pacote Foundation
O pacote Foundation a componente da linguagem que especifica a estrutura esttica dos modelos.
Contem os seguintes pacotes Core, Extension Mechanisms, e Data Types (vid. Figura 9.3).
O pacote Core especifica os conceitos bsicos do metamodelo e define a estrutura arquitectural que
permite a associao de construtores adicionais, tais como metaclasses, metaassociaes, e metaatributos.
Foundation

Core

Extension
Mechanism

Data Types

Figura 9.3: Os subpacotes do pacote Foundation.

CENTRO ATLNTICO - COLECO TECNOLOGIAS

O pacote Core define os principais construtores do metamodelo (abstractos e concretos) necessrios ao


desenvolvimento de modelos de objectos. Os construtores abstractos so aqueles que no podem ser usados
directamente pelo utilizador e que apenas so concebidos para dar estrutura e organizao ao metamodelo
UML, tais como ModelElement, GeneralizableElement e Classifier. Por outro lado, os
construtores concretos so aqueles que so usados (i.e., instanciveis) directamente pelo utilizador, tais
como Class, Attribute, Operation e Association.
Por exemplo, o conceito de classifier usado extensivamente ao longo da especificao do UML sempre
que se pretende referir a um elemento com estrutura e comportamento, ou seja, sempre que se pretende
referir indistintamente a qualquer dos seguintes conceitos: classe, interface, tipo de dados, caso de
utilizao, actor, sinal, subsistema, n ou componente. Na Figura 9.4 ilustra o diagrama de classes dos
classifiers definidos no subpacote Core|Foundation. (Note-se que a a explicitao dos outros
classifiers, por exemplo actor ou caso de utilizao so definidos noutros subpacotes.) Segundo uma
descrio mais rigorosa, Classifier uma super metaclasse (meta, porque uma classe do
metamodelo), abstracta, que especializada por outras metaclasses, tais como Class, Interface ou
Node, em que estas so metaclasses concretas.
Classifier

Class

DataType

Interface

Node

Component
1..1

*
ElementResidence

*
1

ModelElement

Figura 9.4: Os classifiers definidos no subpacote Core|Foundation.


O pacote Extension Mechanisms especifica como os elementos do modelo podem ser configurados e
estendidos com nova semntica. Define a semntica de esteretipos, restries e marcas com valores
atravs da definio dos seguintes construtores concretos, respectivamente Stereotype, Constraint
e TaggedValue.
Por fim, o pacote Data Types define as estruturas de dados bsicas da linguagem, tais como tipos de
dados primitivos (e.g., Integer, String, Time), enumerados (e.g., Boolean, AggregationKind,
VisibilityKind), e outros (e.g., Expression, Mapping, Name, Multiplicity).

UML, PROCESSOS E FERRAMENTAS CASE - BETA-BOOK

Pacote Behavioral Elements


O pacote Behavioral Elements contem os pacotes Common Behavior, Collaboration, Use
Cases, Activity Graphs, e State Machines (vid. Figura 9.5) que permitem representar o
comportamento e a dinmica de um sistema. Incluem os conceitos discutidos ao longo dos Captulos 5 e 7,
tal como os seus nomes sugerem.
Behavioral Elements

Activity
Graphs

Collaborations

Use
Cases

State
Machine

Common
Behavior

Figura 9.5: Os subpacotes do pacote Behavioral Elements.

Pacote Model Management


O pacote Model Management depende do pacote Foundation e consiste num diagrama de classes
que ilustra como os elementos Model, Package e Subsystem se organizam e relacionam entre si. Estes
elementos servem principalmente como unidades de agrupamento e de organizao dos outros elementos
do modelo.

Mecanismos de Extenso
O UML providencia um nmero elevado de conceitos e notaes particularmente concebidos de forma a
satisfazer os requisitos tpicos de modelao de software. Contudo, podem surgir situaes em que se torna
desejvel a introduo de conceitos e/ou notaes adicionais para alm dos definidos originalmente no
momento da definio do standard. Para contemplar tais situaes, conforme introduzido na Seco 4.6.2, o
UML providencia os seguintes mecanismos que permitem estend-lo de forma consistente: restries,
marcas e esteretipos. Estes mecanismos permitem [OMG99]:

Introduzir novos elementos de modelao para uma maior expressividade e


compreenso dos modelos UML a criar.
Definir itens standard que no so considerados suficientemente interessantes ou
complexos para serem definidos directamente como elementos do metamodelo UML.
Definir extenses especficas das linguagens de implementao ou especficas dos
processos de desenvolvimento.
Associar arbitrariamente informao semntica e outra aos elementos do modelo.

CENTRO ATLNTICO - COLECO TECNOLOGIAS

Estes mecanismos aplicam-se aos elementos do modelo, no s suas instncias. Representam, portanto,
extenses prpria linguagem que permitem alterar a estrutura e semntica dos modelos criados.
A Figura 9.6 ilustra a sintaxe abstracta dos mecanismos de extenso do UML. Note-se a definio e relao
entre as metaclasses Stereotype, Constraint e TaggedValue.

ModelElement

TaggedValue

(from Core)

1..* {ordered}
tag:Name
value:String

*
GeneralizableElement

Constraint

(from Core)

(from Core)

{xor}

Stereotype

0..1

Icon:Geometry
baseClass:Name

0..1

Figura 9.6: Mecanismos de extenso.

Restries
O conceito de restrio consiste na especificao de semntica associada a um (ou a um conjunto ordenado
de) elemento(s) do modelo. Tal especificao escrita numa determinada linguagem de restries, que
pode ser mais ou menos formal. Por exemplo: OCL, linguagem de programao, notao matemtica ou
linguagem natural. Pelo facto da escolha da linguagem ser arbitrria, as restries so um mecanismo de
extenso [OMG99].
No metamodelo uma restrio (Constraint) associada directamente a um ModelElement descreve as
restries semnticas que esse ModelElement tem de satisfazer. Por outro lado, restries associadas a
um Stereotype aplicam-se a cada ModelElement ligados ao Stereotype.

Marcas com Valor


Uma marca com valor um par <marca, valor> que permite associar arbitrariamente informao a
qualquer elemento do modelo. Uma marca um nome arbitrrio, havendo contudo alguns nomes
predefinidos como elementos standard. O significado de cada marca intencionalmente especfica do
contexto da sua utilizao, podendo ser determinado pelo seu utilizador ou por convenes das ferramentas
de suporte.

Esteretipos
O conceito de esteretipo providencia um mecanismo de classificar elementos, de tal forma que eles se
comportem, de alguma forma, como se fossem instncias de novos, mas virtuais, construtores definidos no
metamodelo.
Um esteretipo pode especificar adicionalmente restries e marcas com valor que sero aplicadas s suas
instncias. Um esteretipo pode ser usado para especificar diferenas de utilizao ou de sentido entre dois
elementos com uma estrutura semelhante.
Um esteretipo tem a indicao da sua classe base e, opcionalmente, uma representao grfica (cone)
correspondente. A classe base de um esteretipo uma classe no metamodelo UML (i.e., no um
elemento de modelao criado pelo utilizador) tal como Class, Association ou Refinement. Um
esteretipo pode ser um subtipo de um ou mais esteretipos existentes, dos quais herda as restries e
marcas com valor. Adicionalmente, um esteretipo pode adicionar as suas prprias restries, uma lista de
marcas com valor, e um novo cone para representao visual.

UML, PROCESSOS E FERRAMENTAS CASE - BETA-BOOK

Se um elemento do modelo (de nvel utilizador) classificado por um determinado esteretipo, a classe
base desse elemento tem de coincidir com a classe base especificada para esse esteretipo. As restries e
marcas com valores so implicitamente associadas a esse elemento do modelo.

Perfis UML
Os mecanismos de extenso ilustrados na Seco 9.3 devem ser considerados, como discutido na Seco
4.6, apenas como ltimo recurso. Pelas suas prprias caractersticas de especificidade, as extenses no so
normalmente compreendidas, suportadas e aceites pela generalidade dos utilizadores UML. De forma a
organizar e promover uma evoluo mais pacfica destas extenses, os promotores do UML lanaram o
conceito de perfil.
Um Perfil UML um nome dado a um conjunto predefinido de esteretipos, marcas com valor, restries
e cones que conjuntamente especializam e configuram o UML para um determinado domnio de aplicao
ou um determinado processo de desenvolvimento. Note-se que um perfil no estende o UML atravs da
introduo de novos conceitos de base.
Na especificao 1.3 do UML so descritos dois perfis, designados como perfis standard: (1) processos
de desenvolvimento de software; e (2) modelao de negcios.
Apresentamos de seguida, a ttulo de exemplo, algumas consideraes sobre os dois perfis referidos, bem
como o perfil de modelao de aplicaes Web baseado no livro Building Web Applications with
UML[Con00].
(Nota: Sai do mbito deste livro aprofundar a descrio dos perfis UML, tal como detalhar a sua aplicao
em situaes concretas.)

Perfil para Processos de Desenvolvimento de Software


O perfil Processos de Desenvolvimento de Software consiste na definio de um conjunto de esteretipos
(actualmente no foram definidos quaisquer marcas com valor ou restries) usados tipicamente em
processos de desenvolvimento de software, em particular pelo Unified Process ou o Iconix (vid Captulos
10 a 12).
Tabela 9.1: Resumo dos esteretipos definidos no perfil Processos de Desenvolvimento de
Software.
Classe do Metamodelo
Model
Model
Model
Model
Package
Package
Subsystem
Subsystem
Package
Subsystem
Subsystem
Package
Package
Subsystem
Class
Class
Class
Association
Association
Collaboration

Nome do Esteretipo
use-case model
analysis model
design model
implementation model
use-case system
analysis system
design system
implementation system
analysis package
design subsystem
implementation subsystem
use-case package
analysis service package
design service subsystem
boundary
entity
control
communicate
subscribe
use-case realization

CENTRO ATLNTICO - COLECO TECNOLOGIAS

Esteretipos de Modelos, Pacotes e Subsistemas


Um sistema modelado com base no Unified Process consiste em vrios modelos relacionados. Esses
modelos so caracterizados pela fase do ciclo de vida que representam, designadamente: casos de
utilizao; anlise; desenho; e implementao.

Casos de Utilizao
O modelo de casos de utilizao (use case model) especifica os servios que um sistema providencia do
ponto de vista dos seus utilizadores.
Um sistema de casos de utilizao (use case system) um pacote de nvel inicial ou de topo, e contm
outros pacotes (de esteretipo use case package) e/ou casos de utilizao e relaes respectivas. Por fim,
um use case package um pacote que contm apenas casos de utilizao e relaes.

Anlise
Um modelo de anlise (analysis model) um modelo cujo pacote de mais alto nvel do esteretipo
analysis system. Este pacote contm pacotes de anlise (de esteretipo analysis package) e/ou pacotes
de servios (de esteretipo analysis service package) e/ou classes de anlise (de esteretipos entity,
boundary e control) e respectivas relaes. Um pacote de anlise contm pacotes de anlise, pacotes
de servios de anlise, classes de anlise e relaes. Por fim, um pacote de servio de anlise contm
apenas classes de anlise e relaes.

Desenho
Um modelo de desenho (design model) um modelo cujo subsistema de mais alto nvel do esteretipo
design system. Um sistema de desenho contm subsistemas de desenho (de esteretipo design
subsystem) e/ou subsistemas de servios de desenho (de esteretipo design service subsystem) e/ou
classes de desenho e respectivas relaes. Um subsistema de desenho contm outros subsistemas de
desenho, subsistemas de servios de desenho, classes de desenho e relaes. Por fim, um subsistema de
servio de desenho contm apenas classes de desenho e relaes.

Implementao
Um modelo de implementao (implementation model) um modelo cujo subsistema de mais alto nvel
do esteretipo implementation system. Um sistema de implementao contm subsistemas de
implementao (de esteretipo implementation subsystem) e/ou componentes e respectivas relaes.
Um subsistema de implementao contm outros subsistemas de implementao, componentes e relaes.

Esteretipos de Classe
Definem-se trs esteretipos para as classes de anlise: entity, boundary e control (vid Figura 9.7).
Para as classes de desenho no so definidos quaisquer esteretipos.
control

TermoRegistar
TermoRegistar

boundary

TermoWindow
TermoWindow
entity

Termo
Termo

Figura 9.7: Exemplos de esteretipos de classes do perfil de modelao de software.

UML, PROCESSOS E FERRAMENTAS CASE - BETA-BOOK

Entidade (entity )
Uma entidade (entity) uma classe passiva, no sentido que os seus objectos no iniciam interaces por
si prprios. Este tipo de objectos participa em diferentes realizaes de casos de utilizao e geralmente
persiste para alm das interaces em que participa (i.e., so objectos persistentes).

Controlo (control)
Um controlo (control) uma classe cujos objectos controlam as interaces entre coleces de objectos.
Geralmente este tipo de classes tem um comportamento especfico para determinado caso de utilizao e
normalmente as suas instncias no persistem para alm das interaces em que participam (i.e., so
objectos no persistentes).

Interface (boundary)
Uma interface (boundary) uma classe que se encontra na fronteira de um sistema, contudo, ainda
dentro dele. A responsabilidade destes objectos mediar a comunicao entre os actores externos do
sistema e os outros objectos internos ao sistema.

Esteretipos de Associao
So apenas definidos neste perfil UML dois esteretipos particulares para associaes entre classes:
communicate e subscribe.

Comunicao (communicate)
A comunicao (communicate) uma associao entre actores e casos de utilizao, que traduz o envio
de mensagens do actor para o caso de utilizao e/ou vice-versa. Pode tambm ser usada entre as classes de
interface, controlo e entidade, e entre actores e classes de interface. Se for relevante pode-se explicitar a
direco da comunicao atravs de um adorno de navegabilidade (por omisso, assume-se comunicao
bidireccional).

Subscrio (subscribe)
A subscrio (subscribe ) uma associao entre duas classes-estado, cujos objectos da classe
subscritora so notificados quando um determinado evento ocorre nos objectos da classe destino (designada
por classe publicadora). A associao inclui a especificao do conjunto de eventos, cuja ocorrncia
implica que o subscritor seja notificado.

Perfil para Modelao de Negcios


O perfil Modelao de Negcios consiste na definio de um conjunto de esteretipos (no foram
definidos quaisquer marcas com valor ou restries) e ilustra as capacidades do UML para modelar no
apenas sistemas de software, mas outras realidades, neste caso o mundo real das organizaes.
A Tabela 9.2 resume os principais esteretipos definidos neste perfil UML, destacando-se entre outros, os
conceitos de unidade da organizao (organization unit), unidade trabalho (work unit), trabalhador
(worker) e entidade (entity).

CENTRO ATLNTICO - COLECO TECNOLOGIAS

10

Tabela 9.2: Resumo dos esteretipos definidos no perfil Modelao de Negcios.


Classe do Metamodelo
Model
Package
Package
Model
Subsystem
Subsystem
Subsystem
Class
Class
Class
Class
Collaboration
Association
Association

Nome do Esteretipo
use-case model
use-case system
use-case package
object model
object system
organization unit
work unit
worker
case worker
internal worker
entity
use-case realization
communicates
subscribe

A Figura 9.8 ilustra a representao grfica de alguns dos esteretipos definidos no perfil de modelao de
negcios.
worker

Administrador
Administrador

internal worker

Programador
Programador
case worker

Comercial
Comercial

entity

Contrato
Contrato

Figura 9.8: Exemplos de esteretipos de classes do perfil de modelao de negcios.

Perfil para Modelao de Aplicaes Web


Conallen, no seu livro Building Web Applications with UML[Con00], prope um processo de modelao
de aplicaes Web baseado em UML.
Aplicaes Web so aplicaes baseadas em diversos modelos computacionais (e.g., computao no
cliente, computao no servidor, computao distribuda entre cliente e servidor) e tecnologias (e.g., HTTP,
HTML, frames, ncoras, linguagens de scripting, DOM, XML, Java/Beans, ActiveX/COM, objectos
distribudos) que esto na base da generalidade dos actuais sistemas de informao das organizaes em
todo o mundo.
Conollen prope um nmero significativo de extenses ao UML, designado no seu conjunto como WAE
(Web Application Extension), designadamente os seguintes esteretipos:

Metaclasses Class: Server Page, ClientPage, Form, Frameset, Target, JavaScript


Object, ClientScript Object.
Metaclasses Association: Link, Targeted Link, Frame Content, Submit. Builds,
Redirect, IIOP, RMI.
Metaclasses Attribute: Input Element, Select Element, Text Area Element.

UML, PROCESSOS E FERRAMENTAS CASE - BETA-BOOK

11

Metaclasses Component: Web Page, ASP Page, JSP Page, Servlet, Script Library.
O processo de desenvolvimento deste tipo de aplicaes clssico (ou seja, segundo a abordagem proposta
pelo Unified Process ou pelo Iconix) nas fases de especificao de requisitos e de anlise, mas inovador
na fase de desenho. nesta fase que aplicado o WAE de forma adequada.

XMI XML Metadata Interchange


O XMI (XML Metadata Interchange) o standard da OMG para interoperao de metadata. Foi aplicado
inicialmente na metadata de modelao (i.e., de modelos de UML) e de programao, mas est tambm em
curso para modelar outros domnios de aplicao e de tecnologia tais como datawarehouse e componentes.
Modelo UML

Negcio

Cliente
id : Long
actualiza()

Esquema XMI
<!-- Document Prologue, etc. -->
<Model xmi.id="a1"> <name>Negcio</name><visibility xmi.value="public"/>
<ownedElement>
<Class xmi. id="a7"><name>Cliente</name>
<feature>
<Attribute><name>id</name>
<multiplicity><XMI.field>1</ XMI.field>
< XMI.field>1</ XMI.field></multiplicity>
<type>< DataType href=|a247"/></type> <!-- Long -->
</Attribute>
<Operation><name>actualiza</name>
<scope xmi.value="instance"/>
</Operation>
</feature>
</Class>
</ownedElement>
</Model>

Figura 9.9: Exemplo de um modelo UML representado em XMI.


No respeitante modelao, o XMI especifica uma estrutura de representao de modelos UML conforme
o metamodelo UML. O principal objectivo do XMI permitir a interoperao e utilizao dos modelos
UML de forma independente das plataformas, linguagens, repositrios e ferramentas CASE.
O XMI definido segundo um extenso DTD XML (de 121 pginas!) que permite que os modelos sejam
representados num formato ASCII, facilmente trocados entre diferentes processos/aplicaes e
eventualmente legveis por indivduos tcnicos.
A Figura 9.9 ilustra, a ttulo de exemplo, um modelo UML, constitudo pela classe Cliente definida no
pacote Negcio, e a sua respectiva representao em XMI.
(Nota: Sai do mbito deste livro aprofundar a descrio do XMI e apresentar exemplos da sua aplicao
em situaes reais.)