Académique Documents
Professionnel Documents
Culture Documents
Tpicos
Introduo
Viso Histrica
Tipos de Elementos Bsicos
Tipos de Relaes
Tipos de Diagramas
Mecanismos Comuns
Organizao dos Artefactos Pacotes
4.1 Introduo
O Unified Modeling Language (UML) uma linguagem para especificao, construo,
visualizao e documentao de artefactos de um sistema de software.
promovido pelo Object Management Group (OMG) com contribuies e direitos de
autoria das seguintes empresas: Hewlett-Packard, IBM, ICON Computing, i-Logix,
IntelliCorp, Electronic Data Services, Microsoft, ObjecTime, Oracle Platinum, Ptech,
Rational Reich, Softeam, Sterling, Taskon A/S e Unisys.
O UML providencia as seguintes particularidades principais [OMG99]:
Semntica e notao para tratar um grande nmero de tpicos actuais de modelao.
Semntica para tratar tpicos de modelao futura, relacionados em particular com a
tecnologia de componentes, computao distribuda, frameworks e Internet.
Mecanismos de extensibilidade de modo que futuras aproximaes e notaes de
modelao possam continuar a ser desenvolvidas sobre o UML.
Semntica e sintaxe para facilitar a troca de modelos entre distintas ferramentas.
O UML alarga o mbito de aplicaes alvo comparativamente com outros mtodos
existentes, designadamente porque permite, por exemplo, a modelao de sistemas
concorrentes, distribudos, para a Web, sistemas de informao geogrficos, etc.
A nfase do UML na definio de uma linguagem de modelao standard, e por
conseguinte independente das linguagens de programao, das ferramentas CASE,
bem como dos processos de desenvolvimento. A razo referida que dependendo do
tipo de projecto, da ferramenta de suporte, ou da organizao envolvida, devem ser
adoptados distintos processos/metodologias, mantendo-se contudo a utilizao da
mesma linguagem de modelao.
Industrializao
UML 1.1
Submisso ao OMG
Standardizao
UML 1.0
Jan. 97
Jun. 96
UML 0.9
Unificao
UML
Partners
Out. 95
Booch'93
Outros
mtodos
OMT-2
Fragmentao
Booch'91
OMT-1
OOSE
Classe
ClasseActiva
Interface
Caso de
Utilizao
Actor
Colaborao
Componente
Agrupamento
Anotao
estado
Pacote
mensagem
isto uma
anotao
*
vive
dependncia
realizao
transio de estado
generalizao
<<abstract>>
Consulta
Consulta
Lista Membros
Consulta
Termos Oficiais
Consulta
Lista Referncias
Utilizador Annimo
autor
0..
0..*
1
*
discute
*
Membro
nome : String
morada : string
email : String
instituicao : String
username : String
password : String
recebePropostas : Boolean
recebeDiscussoes : Boolean
Controversia
data : Date
concorda : Boolean
mensagem : String
:WebDEI
bdDEI:BDDEI
:UDocente
validarAcesso(login, pwd)
aPwd= obterPwd(login)
[aPwd == pwd]
f= obterUIRegistarEvento()
f.preencherFormulrio
submeterEvento(info)
validarEvento(info)
guardarRegistoEvento()
notificarSucesso()
Diagramas de Colaborao
Os diagramas de colaborao ilustram interaces entre objectos com nfase para a
representao das ligaes entre objectos. Como os diagramas de colaborao no
mostram o tempo como um elemento explcito (tal como acontece nos diagramas de
sequncias), a sequncia de mensagens e de actividades concorrentes determinada
usando-se nmeros sequenciais, com diferentes nveis hierrquicos. Colaboraes so
entidades de modelao principais e constituem geralmente a base para a
representao visual de padres de desenho (design patterns) [GHJV94].
Este tipo de diagrama foi adoptado, entre outros, a partir do diagrama de objectos de
Booch [Boo94], e do diagrama de interaces de objectos de Fusion [MCL+96].
Diagramas de Actividades
Os diagramas de actividade (ver exemplo da Figura 4.8) so um caso particular dos
diagramas de transio de estado, no qual a maioria dos estados so estados
correspondentes a aces e/ou actividades, e no qual as transies so
desencadeadas devido concluso de aces nos estados originais.
O objectivo deste diagrama representar os fluxos conduzidos por processamento
interno, em contraste com eventos externos representados tipicamente nos diagramas
de estado.
Este tipo de diagramas podem ser encarados como um caso particular de diagramas de
estado e inspirados nos diagramas de workflow, fluxogramas ou naqueles baseados em
SDL (Specification and Description Language) [ITU93].
Gestor Comercial
Pedir
Proposta
Gestor Produo
Registar
Briefing
:Oramento
[aberto]
Registar
Oramento
:Oramento
[preparao
]
Preparar Oramento
(info Comercial)
Fechar Oramento
Preparar Oramento
(info Produo)
:Oramento
[fechado]
Preparar Proposta
Receber
Proposta
Diagramas de componentes
Os diagramas de componentes descrevem as dependncias entre componentes de
software, incluindo componentes de cdigo fonte, cdigo binrio e executveis.
Os diagramas de componentes so representados na forma de tipos e no na forma de
instncias. Para descrever-se instncias de componentes, usam-se os diagramas de
instalao.
Diagramas de Instalao
Os diagramas de instalao (deployment diagrams) descrevem a configurao de
elementos de suporte de processamento, e de componentes de software, processos e
objectos existentes nesses elementos (ver exemplo da Figura 4.9).
10
PC
Web browser
Java GUI
<<device>>
Consola
Clientes
Servidor
Web
*
<<device>
Modem
*
Internet <<device>
Modem
RMI
Servidor
JDBC-ODBC Servidor
BD
Workstation Linux
Apache
Servlets:
VerificaPassword
ObtemTermos
ObtemReferencias
...
Ver http://www.objectspace.com
para mais informao sobre o ORB
alb. 2000/6/12
11
Esteretipos
Um esteretipo um metatipo, isto , um tipo que descreve tipos. Permite definir novos
tipos de elementos no metamodelo do UML, e por conseguinte permite estender o UML.
O nome de um esteretipo representado entre os caracteres e . Exemplos:
Na modelao de processos de negcio: trabalhador, documento, poltica.
Na modelao de aplicaes especficas: classes de interface, controlo, e
entidade.
Na modelao de aplicaes Web, usando o Web Application Extension [Con00]):
classes de Server Page, Client Page, Form, Select Element.
esteretipo exception
com nome e icon
esteretipo com nome
metaclass
ModelElement
exception
Overflow !
esteretipo
boundary com icon
SensorTemperatura
Figura 4.11: Exemplo de esteretipos.
12
Servidor
{processador=3}
library
Trans.dll
{serverOnly}
Restries
Qualquer elemento em UML tem necessariamente uma determinada semntica. As
restries (contraints) permitem adicionar ou alterar a semntica assumida por omisso.
Uma restrio consiste na especificao de uma condio delimitada pelos caracteres
{ e }. A condio pode ser especificada numa linguagem formal (e.g., OCL) ou
informal (e.g., texto em portugus).
13
Exemplo 2
Exemplo 1
Departamento
0..1
marido
Pessoa
gnero:{m, f}
{self.mulher.genero=f and
self.marido.genero=m}
{subset}
0..1
mulher
restrio formal
usando OCL
membro
1..*
gestor
Pessoa
14
Utilizadores
nomes simples
(1)
+UAnnimo
+URegistado
-Utilizador
(2)
package (DEI) dentro de
outro package (Docentes)
Regras de Negcio
(3)
DEI::Docentes
{version=1.4}
DEI
DEI
Docentes
{version=1.4}
=
Docentes
Visibilidade
Os smbolos +, - e #, semelhana do que acontece na especificao de atributos
e operaes de classes, permite indicar o tipo de visibilidade que os elementos
constituintes de um pacote apresentam.
Um elemento com visibilidade pblica (+) significa que esse elemento pode ser
usado/referenciado por qualquer outro elemento independentemente do local onde
definido.
Um elemento com visibilidade privada (-) significa que esse elemento apenas pode ser
usado/referenciado por elementos definidos no mesmo pacote.
15
Um elemento com visibilidade protegida (#) significa que esse elemento pode ser
usado/referenciado por um elemento definido no mesmo pacote ou num outro pacote
que seja uma especializao (atravs da relao de herana) do primeiro.
semelhana do que acontece com algumas linguagens de programao (e.g., C++)
relativamente relao entre classes, possvel definir-se uma relao de friend entre
dois pacotes ( uma relao de dependncia entre pacotes, com esteretipo friend).
Neste caso, um pacote que friend de outro pode aceder/referenciar todos os seus
elementos independentemente da sua visibilidade. Contudo este tipo de dependncia
deve ser evitado sempre que possvel porque viola os princpios do encapsulamento e
da minimizao de dependncias.
Importao e Exportao
Um pacote exporta, por definio, todos os seus elementos pblicos. Mas tal facto no
implica que um elemento definido noutro pacote possa aceder/referenciar a um
elemento exportado num outro pacote. Por exemplo, o elemento DataBase exportado
no pacote DataServer no pode ser referenciado por qualquer elemento definido em
WebDEI (ver Figura 4.15). Para que tal pudesse ocorrer deveria existir explicitamente
uma relao de importao entre esses dois pacotes.
DataServer
WebDEI
+DataBase
+LoggingService
+HomePage
+DocentesPage
-BrokerPage
exportao
DEIServlets
+HomeServlet
+ DocentesServlet
-AbstractServlet
import
importao
javax::servlets::http
import
16
Note-se por fim que a relao de importao no inversa. Ou seja, o facto dos
elementos definidos em WebDEI poderem aceder aos elementos pblicos de
DEIServlets no implica que o inverso seja verdade.
Preferencialmente, os elementos exportados por cada pacote devem ver do tipo
interface j que as interfaces providenciam uma interface de programao sem
revelarem os detalhes de implementao e as relaes de classes definidas
internamente no respectivo pacote.
Generalizao
A relao de generalizao entre pacotes semelhante homloga relativamente a
classes, e usada para se especificar famlias de pacotes, tpicas em sistemas
complexos ou flexveis (e.g., significativamente parametrizveis, multi-plataforma, multilinguagem).
WebServer
+Page
+Form
#EventHandler
generalizao
Servlets
+Page
+Form
#EventHandler
+HttpServlet
ASP
17