Escolar Documentos
Profissional Documentos
Cultura Documentos
1
Índice
2
Introdução a Linguagem de Modelagem Unificada (UML)
Diante de várias técnicas fez com a OMG1 (Object Management Group) aprovasse a
UML em 1997. A UML segundo o autor Eduardo [BEZERRA, 2002] é uma mistura de
sintaxe gráfica preexistentes, com alguns elementos removidos e outros elementos
adicionados com o objetivo de torná-la mais expressiva. A UML é destinada para
visualizar, especificar, construir e documentar sistemas complexos.
3
⇒ Atividades
3. Implementação
⇒ Componentes
⇒ Deployment
Segundo [JONES,2001], existem sete pontos importantes da UML que foram definidos
pelos próprios autores:
1. Prover aos usuários uma linguagem de modelagem visual expressiva e pronta para
uso, de forma que eles possam desenvolver e compartilhar modelos significativos.
2. Prover mecanismos de extensibilidade e especialização para ampliar os conceitos
centrais.
3. Ser independente de linguagens de programação e processos de desenvolvimento
particulares.
4. Prover uma base formal para entendimento da linguagem de modelagem.
5. Estimular o crescimento do mercado de ferramentas orientadas a objetos.
6. Suportar conceitos de desenvolvimento de nível mais alto, tais como
colaborações, estruturas, modelos e componentes.
7. Integrar as melhores práticas.
4
1. Mostrar as fronteiras de um sistema e suas funções principais utilizando atores e
casos de uso.
2. Ilustrar a realização de casos de uso com diagramas de interação.
3. Representar uma estrutura estática de um sistema utilizando diagramas de classe.
4. Modelar o comportamento de objetos com diagramas de transição de estado.
5. Revelar a arquitetura de implementação física com diagramas de componente e de
implantação.
6. Estender sua funcionalidade através de estereótipos.
XMI é um formato padrão recomendado pela OMG (Object Management Group) desde
1999 [CARLSON,2001], que tem como objetivo o intercâmbio de dados possibilitando o
compartilhamento de modelos entre ferramentas de modelagem diferentes. XMI
possibilita a transferência de modelos UML e metamodelos MOF (Meta Objects
Facility), através do padrão XML DTD.
A especificação XMI define uma rigorosa abordagem para geração de uma DTD XML à
partir de um metamodelo, e para geração de um documento XML como modelo
instânciado do metamodelo.
XMI é uma tecnologia da OMG, mas é baseado no padrão XML da W3C, por isso ele é
conhecido por integrar três padrões: XML da W3C, UML e MOF, os quais são padrões
de modelagem da OMG. Essa integração permite que desenvolvedores de sistemas
distribuídos compartilhem modelos de objeto e outros metadados via Internet.
A figura 2.1 abaixo mostra as camadas da arquitetura MOF, onde pode-se observar que
outros padrões de modelos são metamodelos instanciados do modelo MOF.
5
Modelo MOF
Camada M3
Camada M2
Camada M1
Camada M0
Dados Documento XML
Objetos
O padrão XMI foi projetado para permitir a troca de qualquer modelo de metadados
especificado segundo o metamodelo MOF, e é composto de dois componentes principais:
regras de produção de Document Type Definitions (DTDs) XML, que expressam
como produzir DTDs para metadados codificados em XMI; e regras de produção de
documentos XML, que expressam como codificar metadados em documentos XML
válidos e bem formados.
XMI define uma rigorosa abordagem para geração de uma XML DTD a partir de um
metamodelo e a geração de um documento XML de modelo instanciado do metamodelo.
Exemplificando essa abordagem na figura 2.2 abaixo, é possível ver alguns atributos
padrões da sintaxe XMI e suas definições [CARLSON,2001].
Atributo XMI TIPO Definição
xmi.id ID Define um identificador do elemento que
contém esse atributo.
xmi.idref IDREF O valor desse atributo deve ter um
valor xmi.id correspondente em um
outro elemento dentro do mesmo
documento.
xmi.label CDATA Fornece uma descrição para esse
elemento.
href CDATA Contém um ponteiro para um elemento
dentro do mesmo documento ou que esteja
em outro documento..
xmi.value CDATA Esse atributo XML contém um dos valores
da lista de enumeração, definida na
DTD.
Figura 2.2 – Padrão de atributos xmi
6
3. Mapeamento UML para XML
A figura 3.1 abaixo ilustra o relacionamento entre UML e XML. O esquema XML gerado
através do diagrama de classe é utilizado para validar o documento XML que poderá ser
gerado da instância do diagrama de classe. Observe que a instância do diagrama de classe
tem um relacionamento bi-direcional com o documento XML, o que significa que uma
instância de um diagrama de classe pode gerar, ou ser gerada, de um documento XML.
UML
Instância
Mapeamento
utilizando XMI
Diagrama Esquema
de Classe XML
Instância Validado
Mapeamento
Diagrama de utilizando XMI Documento
Objeto XML
7
3.1 Mapeamento do diagrama de classe para DTD XML
Um projeto OO não gera automaticamente uma DTD XML, por isso o mapeamento deve
utilizar regras de consistência para mapear um projeto OO para uma DTD XML. Essas
regras de mapeamento são especificadas pela XMI, e podem gerar uma DTD restrita ou
relaxada. A DTD relaxada permite um mapeamento com menos limitações que a DTD
restrita como exemplo, pode-se considerar o caso do mapeamento de um atributo UML
para elemento ou atributo XML. Na DTD restrita, o atributo UML é mapeado apenas
para elemento XML e na DTD relaxada é possível mapear tanto para elemento XML
quanto para atributo XML.
A tabela apresentada na figura 3.9 abaixo representa os critérios para gerar uma DTD
relaxada a partir de um modelo UML:
Critério Descrição
Mapeamento de Namespace Conforme [AMARAL,2002], DTD não suporta a
declaração de vários namespaces, um modelo UML
pode ser representado com um ou nenhum namespace.
Unicidade do nome do Utilizar o nome da classe como prefixo no nome do
elemento atributo.
Elementos ou atributos Um elemento XML representa um atributo UML e
regras de associação.
Um atributo XML representa um atributo UML e tem
tipo primitivo com multiplicidade maxima igual a um.
Multiplicidade Todos os elementos XML têm multiplicidade ilimitada.
Todos os atributos XML que representam regras de
associações como IDREFs, podem ser ilimitados.
Herança Não é suportada pela DTD; copia todos os atributos da
classe pai para a classe filho.
Ordem dos elementos Não existe uma ordem pré-definida dos elementos.
Tipo de dados A DTD permite apenas tipos de dados: CDATA para
8
atributos e PCDATA para elementos.
Lista de valores Conforme [AMARAL,2002], para classe UML com
estereótipo <<enumeration>>, devem ser produzidos
um elemento e um atributo que descrevam a lista
enumerada de valores.
Linking Usar atributo do tipo HREF para fazer links a outras
fontes de dados. Usar ID e IDREF para fazer links
dentro do próprio documento.
Figura 3.2 - Critérios de uma DTD relaxada[CARLON,2001]
Comparando a DTD relaxada diante das características gerais da DTD com mapeamento
restrito, pode-se sumarizar os seguintes itens:
❏ Restrições de multiplicidade de acordo com o modelo UML.
❏ Apenas elementos XML são gerados, os atributos não são gerados.
❏ Ordem de seqüência do conteúdo do modelo para forçar a multiplicidade.
Na tabela abaixo são representados os critérios para gerar uma DTD restrita:
Critério Descrição
Mapeamento de Namespace Conforme [AMARAL,2002], DTD não suporta a
declaração de vários namespaces, um modelo UML
pode ser representado com um ou nenhum namespace.
(Semelhante a DTD relaxada).
Unicidade do nome do Utilizar o nome da classe como prefixo no nome do
elemento atributo. (Semelhante a DTD relaxada).
Elementos ou atributos Gerar um elemento XML para cada atributo e cada
associação.
Regras de multiplicidade É forçada com modelo de conteúdo, usando: branco,
“?”, “*” ou “+”. Atributos UML com multiplicidade
não definida assumem ser únicos, sem repetições.
Herança Não é suportada pela DTD; copia todos os atributos da
classe pai para a classe filho. (Semelhante a DTD
relaxada).
Ordem dos elementos Os elementos aparecem na mesma ordem especificada
no modelo de classe da UML.
Tipo de dados A DTD permite apenas tipos de dados: CDATA para
atributos e PCDATA para elementos. (Semelhante a
DTD relaxada).
Linking Usar atributo do tipo HREF para fazer links a outras
fontes de dados. Usar ID e IDREF para fazer links
9
dentro do próprio documento.(Semelhante a DTD
relaxada).
Figura 3.3 - Critérios da DTD restrita
3.2.1 Classe
Cada mapeamento de classe gera um elemento XML. O tag gerado tem o mesmo nome
da classe UML desde que essa tenha um nome válido, pois o nome do tag não pode
conter espaços, permite caracteres especiais como “-” e “.”. O nome do tag deve ser
iniciado com uma letra ou “_”. A XMI permite mas não obriga o uso de namespace como
parte do nome de um tag.
3.2.2 Herança
O padrão XML não apresenta uma maneira de representar herança. Uma DTD não
representa herança entre elementos definidos. Como resultado dessa limitação, XMI
especifica o uso da copia dos atributos da super classe para subclasse.
10
O exemplo abaixo, citado por [AMARAL,2002], mostra que a subclasse “PessoaFisica”
copia os atributos da super classe “Cliente”.
<PessoaFisica>
<Cliente.codigo> 1567 </Cliente.codigo>
<Cliente.nome>José da Silva</Cliente.nome>
<Cliente.endereco>Rua das Flores 500</Cliente.endereco>
<Cliente.telefone>3245-9876</Cliente.telefone>
<Cliente.telefone>9932-6768</Cliente.telefone>
<PessoaFisica.CPF> 12345678977</PessoaFisica.CPF>
<PessoaFisica.Renda>1700</PessoaFisica.Renda>
.....
</PessoaFisica>
Um atributo UML pode ser mapeado para um elemento XML ou para um atributo XML.
Na primeira abordagem o mapeamento é praticamente direto onde o nome do atributo
UML é qualificado com o nome da classe (exemplo: cliente.telefone, cliente é a classe e
o telefone é o atributo).
Um tipo de atributo enumerado requer que o valor do atributo UML esteja presente em
uma lista pré-definida. Exemplificando, um atributo “DiaSemana” só poderá conter os
dias da semana (“segunda”, “terça”, “quarta”, “quinta”, “sexta”, “sábado” e “domingo”).
Esse atributo pode ser especificado em um documento DTD, conforme estrutura a seguir:
<!ATTLIST Agenda.DiaSemana xmi.value( Segunda | Terça | Quarta | Quinta | Sexta |
Sábado |Domingo) #REQUIRED>
11
A especificação do padrão XMI contém dois mapeamentos de valores enumerados de
UML para documento XML. Através da DTD é possível checar se o conteúdo do atributo
é válido ou não. No primeiro seria um mapeamento normal para atributo XML apenas
diferenciado pela validação que a DTD faz do conteúdo. A figura 3.13 abaixo representa
esse mapeamento.
Uma outra alternativa seria associar o atributo xmi.id a um elemento para receber o
conteúdo de referência. Pode-se visualizar essa abordagem na figura 3.15 abaixo onde
tem-se um funcionário contendo dois dependentes.
12
......
<Funcionario xmi.id = “r1”>
<Funcionario.nome> João da Silva </Funcionario.nome>
</Funcionario>
Os quatro fatores abaixo são pontos importantes para ter-se optado por XML neste
trabalho:
A XML viabiliza a troca de dados entre computadores em redes heterogêneas.
XML é a linguagem padrão da Web para intercâmbio de dados.
Hoje existe um número grande de aplicações sobre XML.
Baixo custo, da recuperação das informações. Uma vez que informações de um
SGBD podem ser acessadas por outros computadores que não possuam esse tipo
de software.
A troca de informações via XML se torna mais rápida devido a ausência de
formatação do arquivo.
E mais objetivo uma vez que as informações são contextuais, ou seja, estão dentro
das marcações que dão mais semântica aos dados do documento.
13
Referência Bibliográfica
[BOOCH, 2000] BOOCH, Grady; RUMBAUCH, James; JACOBSON, Ivar. UML Guia
do Usuário. Ed. Campus, Rio de Janeiro. 2000.
[FURLAN, 1998] FURLAN, José Davi. Modelagem de Objetos através da UML- São
Paulo: Makron Books, 1998.
14