Beruflich Dokumente
Kultur Dokumente
Luana Lachtermacher
Denis Silva da Silveira
Rodrigo de Barros Paes
Carlos Jos Pereira de Lucena
Departamento de Informtica
Abstract With the evolution of the Model Driven Architecture (MDA), there is a big
concern about model transformation. The OMG (Object Management Group ) recently
adopted a standard transformation language called Query View Transformation
(QVT). The main goal of this paper is to perform a transformation between models,
where the source model used was Activity Diagram shown in UML 2.0 and the target
model was Petri Net.
Keywords QVT, Transformation model to model, Activity Diagram and Petri Net.
1
Responsvel por publicaes
Rosane Teles Lins Castilho
Assessoria de Biblioteca, Documentao e Informao
PUC-Rio Departamento de Informtica
Rua Marqus de So Vicente, 225 - Gvea
22451-900 Rio de Janeiro RJ Brasil
Tel. +55 21 3527-1516 Fax: +55 21 3527-1530
E-mail: bib-di@inf.puc-rio.br
Web site: http://bib-di.inf.puc-rio.br/techreports/
Sumrio
1 Introduo 1
1.1 Objetivo 1
2 Diagrama de Atividade 2
3 Rede de Petri 2
5 Exemplo de Transformao 6
5.1 Consideraes Iniciais 6
5.2 Construindo o QVT 6
5.2.1 Mapeamentos dos elementos 7
5.2.2 Construo do script QVT 8
5.3 Transformao utilizando MediniQVT 20
6 Consideraes Finais 21
7 Referncias 22
1 Introduo
A expresso processo de negcio pode ser definida como um conjunto estruturado de ati-
vidades ordenadas, no tempo e no espao, que produzem um produto ou um servio,
com incio e fim, e entradas e sadas bem definidas (HAMMER e CHAMPY, 1994). Sua
implantao, no contexto de uma organizao, consome normalmente uma grande
quantidade de recursos (meios de produo: humanos, financeiros, matrias-primas, e
equipamentos). Logo, de grande utilidade para as organizaes o uso de alguma me-
todologia que possa identificar, o quanto antes, as inconsistncias nos processos de ne-
gcio. A execuo desses processos inconsistentes ir acarretar um custo muito maior
para as organizaes que o do desenvolvimento da metodologia.
A modelagem de um processo de negcio pode ser feita de muitas formas. O'NEILL e
SOHAL (1999) apresentam um conjunto variado de tcnicas (mtodos e ferramentas)
para essa funcionalidade. No contexto do desenvolvimento de Sistemas de Informao
orientados a objeto ou baseados em componentes, o Diagrama de Atividades tem ga-
nho bastante destaque.
Por outro lado, as redes de petri pelo seu formalismo com base matemtica e sua repre-
sentao grfica vem sendo amplamente utilizada para simulao, h mais de 30 anos,
em vrios domnios de aplicao, entre os quais se destacam os sistemas de manufatu-
ra, de transporte, logsticos e, de forma geral, todos os sistemas e eventos discretos
(MURATA, 1989). No entanto, ainda apresenta pouca familiaridade para os projetistas
de Sistemas de Informao quando comparada aos modelos da UML.
Sendo assim, a presente pesquisa desenvolver um processo de transformao entre o
Diagrama de Atividade, usado para modelagem de processos de negcio, para uma
Rede de Petri. A motivao para tal est no fato de ser mais fcil para os projetistas de
negcio, modelar o seu processo atravs do Diagrama de Atividade do que atravs das
Redes de Petri. Entretanto, esse processo de negcio, quando transformado em uma
Rede de Petri, em funo do seu formalismo matemtico, possibilitar a verificao de
propriedades, conforme apresentado em MURATA (1989). Entre essas propriedades
destacamos as de alcanabilidade, limitao, segurana, cobertura, limitao estrutural,
repetitividade e consistncia, que no so disponvel em um Diagrama de Atividade.
Para a realizao desta transformao, foi utilizado a linguagem de transformao de-
finida pelo OMG (Object Management Group): a Consulta/Viso/Transformao
(Query/Views/Transformation, QVT) (OMG, 2004).
1.1 Objetivo
O objetivo deste trabalho foi fornecer uma viso geral sobre o QVT, apresentando, um
exemplo na definio e execuo da transformao do Diagrama de Atividades em
uma Rede de Petri. Para alcanar esse objetivo, objetivos intermedirios foram alcana-
dos, como o estudo do QVT; do Diagrama de Atividades; da Rede de Petri e as ferra-
mentas utilizadas para realizar a transformao, como por exemplo: Eclipse Modeling
Framework, para fazer a gerao dos metamodelos e do exemplo que ser transformado
e o MediniQVT para fazer a transformao em si, utilizando como entrada os dois me-
tamodelos, o exemplo de Diagrama de Atividade e um script QVT desenvolvido.
Este trabalho ir primeiramente mostrar uma viso geral do Diagrama de Atividades,
Rede de Petri e QVT. Depois apresentado todos os passos para a transformao e uma
concluso do trabalho.
1
2 Diagrama de Atividade
A UML (BOOCH et al., 2005) um dos mais importantes padres mantidos pelo grupo
OMG. A UML vem sendo considerada como a linguagem de modelagem (grfica) pa-
dro no desenvolvimento orientado a objetos, oferecendo apoio criao de modelos
independentes da plataforma, nos quais os conceitos so separados da semntica exis-
tente nos modelos da implementao. As linguagens grficas de modelagem existem
h muito tempo na indstria de software, e o grande propulsor por trs de todas elas o
fato das linguagens de programao no possurem um nvel de abstrao suficiente-
mente alto que permita aos programadores raciocinar diretamente com os conceitos
envolvidos num projeto (FOWLER, 2004).
Modelagem, no sentido mais amplo, o uso econmico de algo (o modelo) no lugar de
alguma coisa real, tendo em vista algum objetivo cognitivo. Esta prtica permite o uso
de algo mais simples, seguro e barato do que o sistema real, para o estudo do objetivo
desejado(BOOCH,1994)(MEYER,1988). Um modelo , portanto, uma representao
simplificada de algum conceito ou situao, com os objetivos de sua observao, mani-
pulao e entendimento (MELLOR et al., 2004). No desenvolvimento de software, tal
como em outras aplicaes, os modelos so criados com o objetivo de diminuir a com-
plexidade inerente aos temas de suas aplicaes.
O Diagrama de Atividades utilizado para descrever lgica de programao, proces-
sos de negcio e workflows. Este diagrama determina as regras essenciais de seqncia
que se deve seguir para a execuo do processo. Neste trabalho, usamos uma verso
simplificada dos elementos do Diagrama de Atividades da UML 2.0 (OMG, 2005).
3 Rede de Petri
Rede de Petri uma ferramenta de modelagem aplicvel a uma srie de sistemas, espe-
cialmente aqueles com eventos concorrentes. Elas foram criadas por C. A. Petri, um
pesquisador alemo, que na sua tese de doutorado apresentou um tipo de grafo orien-
tado e bipartido com estados associados, com o objetivo de estudar a comunicao en-
tre autmatos (PETRI, 1961).
Um grafo G(P, E) consiste de um conjunto vrtices P = {p1,..., pn}, com n > 0, e de um
conjunto de arcos E = {e1,..., em}, tal que cada vrtice conectado com pelo menos outro
vrtice, e cada arco conecta dois vrtices de P. O grafo G dito orientado se todo arco
possui um sentido, bem como denominado finito se m e n so finitos. Um grafo, por
sua vez, considerado bipartido, quando o seu conjunto de vrtices P pode ser parti-
cionado em dois conjuntos X e Y. Tal que toda aresta E de G incidente a um elemento
de X e a um elemento de Y (BOAVENTURA NETTO, 2006).
Como ferramenta matemtica e grfica, as redes de petri oferecem um ambiente uni-
forme para a modelagem, anlise formal e simulao de sistemas e eventos discretos,
permitindo uma visualizao simultnea da sua estrutura e comportamento. No entan-
2
to, mais especificamente, as redes de petri modelam dois aspectos: eventos e condies.
Assim como, as relaes entre eles (HEUSER, 1990).
Os elementos dos dois conjuntos em que se podem dividir os vrtices que constituem
uma Rede de Petri denominam-se: lugares e transies. Os lugares so normalmente
representados por circunferncias ou elipses, e as transies por segmentos de reta, re-
tngulos ou barras. Os lugares encontram-se ligados s transies, e estas aos lugares,
atravs de arcos orientados, conforme ilustrado na.
3
4.1 Arquitetura do QVT
O QVT tem uma arquitetura hibrida, sendo uma parte declarativa e a outra imperativa.
As duas partes tm uma linguagem especifica.
A parte declarativa utilizada para fazer todo o processo de transformao. A lingua-
gem associada a esta parte, descreve os relacionamentos entre as variveis utilizando
funes ou regras de inferncia. Para a execuo desta linguagem necessrio um
compilador ou interpretador, que aplica um algoritmo sobre as relaes e produz um
resultado. Esta camada pode ter informaes suficientes para descrever uma transfor-
mao bidirecional ou unidirecional. (GARDNER et al., 2002) Existem duas camadas
declarativas. So elas:
A primeira camada a Relao (Relation) que tem como objetivo fazer uma especificao
do relacionamento entre modelos MOF. A linguagem utilizada nesta camada possibili-
ta a equivalncia entre de objetos complexos e cria classes de rastreamento para verifi-
car o que ocorreu durante a transformao. Alm da execuo propriamente dita, uma
relao pode ser utilizada apenas para garantir que a outra relao est correta.
A segunda camada chamada de Core. Essa camada responsvel por casar padres
de acordo com um conjunto de variveis e condies. O modelo Core pode ser direta-
mente implementado ou utilizado apenas como referencia da semntica da Relao. A
Relao facilmente transformada em Core utilizando a linguagem de transformao.
A parte imperativa composta pela camada de Mapeamento Operacional e pela Caixa
Preta. A camada Mapeamento Operacional uma extenso das duas camadas declarati-
vas e possui recursos normalmente encontrados em linguagens imperativas, como loops
e condies. A outra camada responsvel por juntar facilidades expressas em outras
linguagens como XSLT (Extensible Stylesheet Language Transformations) e integrar biblio-
teca que no so QVT (OMG 2004).
Neste trabalho, foi utilizada apenas a parte declarativa e, principalmente, a camada de
Relao.
4
Um domnio corresponde aos modelos utilizados para a transformao. Existem duas
constantes usadas antes da declarao do domnio: enforce e checkonly. Normalmente,
essa constante utilizada no domnio resultante. A constante enforce tem como objetivo
fazer com que o resultado da relao seja positivo, mesmo se para isso seja necessrio
inserir e alterar o modelo. A constante checkonly s ir verificar se a relao est vlida
ou no. Um exemplo de uma relao geral mostrado na Figura 2.
A clusula when especifica condies que a relao deve ter. J a clusula where especi-
fica uma condio que deve ser satisfeita por todos os elementos participantes da rela-
o.
Existem duas formas de relaes: nvel top e no nvel top. Uma relao com a constante
top determina que essa relao seja sempre executada, contrrio das relaes sem essa
constante. Normalmente, relaes sem essa constante so utilizadas apenas como con-
dio para outra relao.
A equivalncia dos padres pode estar associada com um domnio e isso chamado de
expresses de template de objeto (object template expressions) (OMG 2004).
5
a execuo. O rastreamento inverso pode ocorrer em um nmero arbitrrio de nveis.
Essa tcnica permite ao programa encontra um caminho sem falhas sem que haja muita
interferncia do usurio.
Para aumentar a complexidade das relaes possvel utilizar OCL (Object Constraint
Language), que possibilita a construo de queries para a avaliao mais especifica de
uma determinada caracterstica.
5 Exemplo de Transformao
5.1 Consideraes Iniciais
Esta seo tem como objetivo mostrar um exemplo de transformao entre modelos. A
transformao ter como entrada, alm deste script QVT, os respectivos metamodelos
do Diagrama de Atividades e da Rede de Petri, alm do Diagrama de Atividades que
dever ser transformado. A sada ser o Diagrama de Atividades expresso em uma Re-
de de Petri.
Assim como os dois metamodelos, o Diagrama de Atividade utilizando como entrada
foi modelado utilizando o software Eclipse Modeling Framework. Aps essa etapa, foi rea-
lizado o mapeamento entre os elementos de cada metamodelo. Foi atravs desse ma-
peamento que descrevemos o script QVT, que detalharemos no decorrer desta seo. O
processo final, descrito na seo 5.3 , contm todos esses elementos, que foram coloca-
dos no programa MediniQVT (IKV++ Tecnologies) para fazer a gerao do modelo ex-
presso em uma Rede de Petri. Abaixo apresentamos o diagrama de atividade usado
como exemplo para a transformao.
6
5.2.1 Mapeamentos dos elementos
7
5.2.2 Construo do script QVT
8
top relation ControletoTransicao {
ju : String;
ju : String;
9
top relation ObjetotoLugar {
pn : String;
checkonly domain ativ b:Atividade::objeto{
atividade = a : Atividade::ativ{},
nome = pn
};
Outro elemento que sofreu transformao foi a Ao. A relao similar com a relao
de Controle mostrado anteriormente, s mudando os elemento de origem e o ele-
mento de destino.
O ltimo elemento primrio que foi transformado foi o Pino. Como visto anteriormen-
te, o Pino tem trs formas separadas de transformao. Todas as transies entre os
elementos transformados foram feitas em uma relao s, que ser mostrada no final
desta seo. A primeira relao que iremos mostrar uma transio que liga um
Pino de sada em um Pino de Entrada. Para a transformao do Pino foi utili-
zada uma relao que transforma uma Transio que tem como origem um Pino
de sada e como destino um Pino de entrada em um lugar com duas marcas. A
transformao da ligao dos elementos ser mostrada a seguir. A Figura 9 est descri-
ta a relao de transformao.
10
Figura 9 Relao Pino Sada e Pino de Entrada com Lugar
A outra forma de transformao quando tem apenas o Pino de Sada. Para resol-
ver esse relacionamento foram necessrias quatro relaes: uma que transforma o Pino
de Sada em um lugar com uma marca, outra que garante que no tenha conflito com
a primeira forma de transformao e outras duas para criar as duas ligaes que a ao
que contem o Pino de Sada ter.
A primeira relao tem apenas diferena na clusula where. Nessa clusula utilizado
o operador lgico not com a segunda relao. A segunda relao garante que o Pino
de Sada no tem relao com nenhum Pino de Entrada, para que no sejam
sobrepostos as transformaes.
A Figura 10 tem a relao que transforma o Pino de Sada e a Figura 11 mostra re-
lao que evita conflitos com a primeira transformao de Pino.
11
Figura 11 - Relao para evitar conflitos com a outra transformao
Para simplificar a explicao, o elemento Ao que possui o Pino ser denominado
portador e o elemento para qual o Pino aponta ser chamado de destinatrio. As ou-
tras duas relaes feitas para a transformao do elemento Pino so: uma para fazer a
ligao entre o portador e o destinatrio e outra para fazer ligao entre portador e o
elemento que o Pino se transformou. Na primeira relao descrita acima, a principal
inovao como feita a recuperao dos dois elementos participando da ligao, o
elemento portador e o destinatrio. Para identificar o elemento portador, foi necessrio
fazer o acesso atravs da transio de origem e nesse ltimo elemento acessar a origem.
O mesmo foi feito para identificar o elemento destinatrio. Na Figura 12 e Figura 13
mostra as duas relaes explicadas anteriormente.
Figura 12 Relao de ligao entre o elemento que possui o Pino e quem o pino aponta
12
Figura 13 Relao de ligao entre o Pino e o elemento que possui o Pino
A ltima forma de transformao quando tem apenas o Pino de Entrada. Para
resolver esse relacionamento foram necessrias quatro relaes, parecida com as rela-
es feitas para a ltima forma de transformao de Pino. A nica mudana que nas
duas primeiras relaes, as relaes de transformao do Pino e garantia de no ter
conflito com a primeira forma de transformao, foi o elemento do domnio do Dia-
grama de Atividades que foi utilizado, neste caso Pino de Entrada. Nas outras du-
as relaes, a diferena foi qual era o tipo de elemento que ser transformado, que nes-
te caso o Arco de Input..
A prxima relao feita foi para transformar a ligao entre os elementos, no caso do
Diagrama de Atividade o elemento Transio e na Rede de Petri os elementos Arco In-
put e o Arco Output. O Arco de Input, sempre tem origem em um Lugar e destino em
uma Transio. Com o Arco de Output, exatamente o contrrio, origem em uma
Transio e o destino em um Lugar. Por causa dessa caracterstica, foi feito duas rela-
es, uma para todas as Transies que iriam virar Arcos Input e outra para os que iri-
am virar Arcos de Output.
Na relao de Arcos de Input, foi feita uma relao genrica, que tem a origem e o des-
tino como um N Atividade, que pai de todos os elementos com exceo da Tran-
sio. No domnio da Rede de Petri dessa relao, sempre ser criado um elemento
Arco de Input e sempre sero referenciados um lugar e uma transio. Foram analisa-
dos todos os elementos que poderiam ser origem e todos que podiam ser destino e foi
utilizada a clusula where para garantir essa analise. Essa relao foi desenvolvida para
garantir que apenas essa relao resolvesse todas as transformaes para Arco de In-
put. A Figura 14 demonstra relao Arco de Input e tem como objetivo resolver todos os
problemas mencionados.
13
Figura 14 Relao dos Arcos Input
O mesmo foi feito para o Arco de Output. Foi feito uma relao genrica e na clusula
when adicionando os elementos que poderiam ser origem e os que poderiam ser desti-
no. A relao Arco de Output est descrita abaixo.
Como mostrado no inicio desta seo, existem algumas simplificaes necessrias. To-
das elas foram resolvidas dentro do QVT.
14
As simplificaes foram dividas em trs grandes grupos. Para os trs grupos, foi neces-
srio fazer trs relaes. A primeira relao responsvel por criar o elemento Dummy,
dependendo dos elementos da relao. As duas outras relaes so para fazer a ligao
entre os elementos inicias da relao e o elemento Dummy criado.
O primeiro grupo dos elementos do Diagrama de Atividade que se transformam no
elemento Lugar da Rede de Petri, com exceo ao elemento Pino. Como dito anterior-
mente, existem 4 conjuntos de elementos que sofreram simplificao nesse grupo. So
eles: Deciso com Deciso, Unio para Unio, Unio para Deciso, Deciso para Unio.
Cada um desses conjuntos ter a primeira relao, com a criao do elemento Dummy.
Todas as quatro primeiras relaes so parecidas, trocando apenas qual elemento do
domnio do Diagrama de Atividade ser utilizado como origem e qual ser utilizado
como destino. No exemplo abaixo, est descrita a relao entre Deciso e Unio.
15
Figura 17 Primeira Relao de Simplificao do primeiro grupo
16
O segundo grupo dos elementos do Diagrama de Atividade que se transformam no
elemento Transio da Rede de Petri. Como dito anteriormente, existem 8 conjuntos de
elementos que sofreram simplificaes nesse grupo, que so: Ao com Ao, Ao
com Juno, Ao com Separao, Juno com Juno, Juno com Ao, Jun-
o com Separao, Separao com Separao, Separao com Ao, Separa-
o com Juno. A forma de desenvolvimento das relaes igual ao grupo anterior.
A primeira relao existe para cada conjunto de elementos e a segunda e terceira rela-
o nica para todo o grupo. Os elementos Separao e Juno esto classificados
como Controlet, com visto anteriormente. Por causa dessa classificao, passaram a
existir apenas as 4 primeiras relaes. A diferena entre as relaes neste caso qual o
tipo de elemento do domnio do Diagrama de Atividades que igual origem e ao
destino. A relao de uma Ao para uma Ao est descrita a seguir.
17
Figura 20 Segunda relao de simplificao do segundo grupo
A ultima simplificao realizada foi para o elemento Pino. Essa simplificao teve que
ser separada j que o acesso aos tipos de elementos que participam das transformaes
feito dentro de uma varivel aninhada. Foram feitas duas simplificaes, uma quan-
do tem apenas o elemento Pino de Sada e outra quando tem apenas o elemento
Pino de Entrada. A estrutura das duas simplificaes est igual ao das simplifica-
es j explicadas.
Para simplificar a explicao, o elemento que possui o Pino ser denominado porta-
dor e o elemento para qual o elemento Pino aponta ser chamado de destinatrio. A
18
primeira relao a seguir descreve a transformao de um Pino de Sada que tem
como origem o portador, que um elemento Ao e como destino o elemento destina-
trio, que tambm um elemento Ao. A segunda relao mostra a ligao entre o
elemento portador e o elemento em qual o Pino se transformou, e a terceira relao a
ligao entre o elemento portador e o elemento destinatrio. A diferena dessa simpli-
ficao para todas as demonstradas anteriormente, a forma que o elemento origem e
o elemento destino so recuperados. Para isso, necessrio acessar atravs da transio
que o Pino possui o elemento que origem dessa transio. Esse mecanismo foi utili-
zado para todas as relaes descritas a seguir.
19
Figura 60 Simplificao Pino de sada II
Para a transformao de modelos foi utilizado o software MediniQVT, que foi o nico
software livre encontrado que faz a transformao da camada de Relao do QVT.
A ferramenta MediniQVT tambm baseada no Eclipse, mas um software fechado. No
entanto, ele foi o escolhido para este trabalho por utilizar QVT Relao e consegue fa-
zer a partir de qualquer metamodelo a transformao em qualquer outro metamodelo
dado com input. Esse software desenvolvido ikv++ Technologies ag e a verso utilizada
do software foi 1.0.0.
Para utilizar esse sistema necessrio criar um projeto que tenha uma pasta com os
dois metamodelos, dois arquivo .ecore, e o exemplo do modelo, um arquivo .xmi. Sendo
tambm necessrio ter pasta com o script QVT desenvolvido e uma pasta de rastrea-
mento.
Um problema encontrado no momento de fazer a transformao, foi que alguns atribu-
tos tiverem que ser modificados para que pudesse ser entendida pelo software. Os atri-
butos alterados foram: container, containment e EOpossite. Para o lado 1 da relao, os
atributos tm os seguintes valores: container = true, containment = false e o EOpossite ir
referenciar o relacionamento onde est a parte N do relacionamento. J para o lado N
do relacionamento, os atributos tm os seguintes valores: container = false, containment =
true e EOpossite ir referenciar o relacionamento onde est a parte N do relacionamen-
to.
20
Depois de configurar esses detalhes, possvel executar a transformao e o arquivo
Petri.xmi criado. A seguir est o modelo da Rede de Petri gerada.
6 Consideraes Finais
O objetivo desse trabalho foi realizar um estudo sobre QVT. Para tal, transformou um
Diagrama de Atividades da UML 2.0 para uma Rede de Petri, utilizando a linguagem
QVT padronizada pelo OMG, exemplificando com a transformao de dois modelos
que tem o mesmo nvel de abstrao.
A importncia deste estudo est no fato de que os desenvolvedores no precisem utili-
zar o Diagrama de Atividades para finalidades as quais, ele no foi estruturado para
realizar. Alm disso, importante verificar que possvel fazer a transformao entre
outros modelos, que podem proporcionar benefcios futuros ainda no estudados e/ou
explorados.
No decorrer desse trabalho ocorreram algumas dificuldades na sua execuo. Entre
elas podemos destacar a complexidade do Eclipse Modeling Framework (EMF) e na utili-
zao do software MediniQVT.
Com relao ao EMF, destacamos o fato de que quando os arquivos eram gerados, a
importao do arquivo de biblioteca e outros arquivos fontes eram feitos de forma in-
correta, provocando erros e sendo necessrios consertos manuais. Outra dificuldade
encontrada foi, ao reabrir um projeto, que j possui o .edit e o .editor criados, ocorriam
erros de incompatibilidade com a verso da biblioteca JRE (Java Runtime Enviroment) do
Java. Nesse caso o procedimento adotado foi o de excluir os dois arquivos e fazer a ge-
rao novamente, uma vez que assim supervamos o problema.
J no software MediniQVT utilizado, o problema acontecia quando se executava uma
alterao do arquivo .xmi que continha o exemplo a ser transformado. Quando havia a
alterao do modelo a transformao se perdia e provocando um erro de falta de refe-
21
rencia do elemento excludo. Uma das solues possveis para esse problema era a tro-
ca do nome do arquivo que continha o exemplo. Outro problema acontecia ao abrir o
arquivo .xmi do modelo transformado pela primeira vez, que provocava o erro Unable
to create this part due to an internal error. Reason for the failure: assertion failed:. A soluo
encontrada foi a de realizar uma segunda tentativa para que o erro no persistisse.
No decorrer dos estudos observamos que o potencial desta proposta foi significativa-
mente superior ao previsto no incio do mesmo.
Como sugesto para continuidade deste trabalho a extenso das Redes de Petri para
que se possa incorporar todos os elementos que fazem parte do Diagrama de Ativida-
des da UML 2.0. Outra melhoria que poderia ser includa a criao de uma ferramen-
ta que interprete o XML e gere o desenho do modelo tanto do Diagrama de Atividades
quanto da Rede de Petri.
7 Referncias
BOAVENTURA NETTO, P. O., Grafos: Teoria, Modelos, Algoritmos, 4a. Edio,
Editora Edgard Blcher Ltda., So Paulo, 2006.
BOOCH, G., Object Oriented Analysis and Design with Applications, 2a Edition,
Addison-Wesley, ISBN 0-8053-5340-2, 1994.
BOOCH, G., RUMBAUGH, J. e JACOBSON, I., The Unified Modeling Language
User Guide, Addison-Wesley, 2a Edition, ISBN: 0321267974, 2005.
HAMMER, M. e CHAMPY J., Reengenharia Revolucionaria a Empresa, Editora
Campus, 1994.
HEUSER, C. A., Modelagem Conceitual de Sistemas Redes de Petri, Edio Preli-
minar, Publicada para a V Escola Brasileiro-Argenina de Informtica, 1990.
FOWLER, M., UML Distilled: A Brief Guide to the Standard object Modeling Lan-
guage, 3a Edition, Pearson Education, ISBN: 0321193687, 2004.
GARDNER, T., GRIFFIN, C., KOEHLER, J., et al., 2002, A review of OMG MOF
2.0 Query / Views / Transformations Submissions and Recommendations towards
the final Standard, OMG Document: ad/03-08-02.
MAQBOOL, S. Tranformation of a Core Scenario and Activity Diagrams into Petri
Net, Master In Computer Science in University of Ottawa, September 2005
MELLOR, J. S., SCOTT, K., UHL A. e WEISE, D., MDA Distilled: Principles of
Model-Driven Architecture, Addison-Wesley, ISBN: 0-201-78891-8, 2004.
MEYER, B., Object-Oriented Software Construction, Prentice-Hall, 1988.
MURATA, T., Petri Nets: Properties, Analysis and Applications. Proceedings of the
IEEE, 77(4): 541-580. April 1989.
OMG, Object Management Group - QVT - Query/Views/Transformations, version
1.8, 2004. Disponivel em: www.omg.org, acessado em: 10/10/2006.
OMG, Object Management Group - Unified Modeling Language (UML) Superstruc-
ture Specification, version 2.0, 2005. Disponivel em: http://www.omg.org/cgi-bin/doc?
formal/05-07-04, Acessada em: 01/2007.
22
O'NEILL, P. e SOHAL, A., Business Process Reengineering: A Review of Recent
Literature, Technovation, vol. 19, no. 9, pp. 571-581, 1999.
PETERSON, J. L., Petri Nets. ACM Computing Surveys, 9(3): 223-252. September
1977.
PETRI, C. A., Kommunikation Mit Automaten. PhD Thesis, Technische Hochschule
Darmstadt, 1961.
23