Gerador de Expressões Algébricas em Digrafos Acíclicos - IME-USP

Propaganda
GEADA
Gerador de Expressões Algébricas em Digrafos Acíclicos
para versão 1.0, de agosto/2008.
Autor: Márcio Katsumi Oikawa
1
1
Introdução
O GEADA (Gerador de Expressões Algébricas em Digrafos Acíclicos) é um
protótipo de software que implementa os algoritmos de geração de expressões
algébricas descritos na tese de doutorado intitulada Geração de expressões algébricas para processos de negócio usando reduções de digrafos série-paralelo [1].
Do ponto de vista sistêmico, o objetivo é oferecer uma idéia de interface gráfica
de modelagem de processos de negócio que permita a aplicação de algoritmos
de geração de expressões algébricas. Do ponto de vista acadêmico, o objetivo
é oferecer um instrumento de manipulação de processos que permita testar e
validas os algoritmos propostos na tese de doutorado [1].
Este documento descreve a interface do GEADA e apresenta um exemplo
de sua utilização. Alguns dos termos utilizados neste documento se referem à
terminologia utilizada nos Capítulos 5, 6 e 7 de [1], de modo que recomendamos
a leitura do texto antes da utilização deste software.
2
Instalação
O GEADA é implementado na linguagem de programação Java e utiliza o compilador da versão 6 update 7 (JDK 6, update 7). Para utilizar o software, é necessário fazer o download do Java Runtime Environment (JRE). Recomenda-se
utilizar a versão 6, ou superior, na qual foram realizados os testes de visualização. É possível que versões anteriores do JRE também sejam compatíveis,
porém não foram feitos testes, até o momento, para comprovar essa compatibilidade.
O JRE pode ser obtido diretamente no site da linguagem Java, http://
java.sun.com. Uma vez instalado o JRE, basta fazer o download do GEADA,
no endereço http://www.ime.usp.br/~koikawa/tese e descompactá-lo em um
diretório qualquer. Nesse diretório, abra uma tela de comandos e execute a
seguinte instrução:
java -jar geada.jar
Caso não ocorra erros, a tela principal do GEADA se abrirá, permitindo sua
utilização. O arquivo geada.jar também contém o código-fonte da aplicação.
3
3.1
Utilizando o GEADA
Criação do Grafos
A interface do GEADA procura ser a mais simples possível, permitindo que o
usuário possa modelar seu processo de negócio por meio de uma tela gráfica
na qual objetos são criados e relacionados (ver Figura 1). A tela principal do
2
Figura 1: Interface gráfica do GEADA
GEADA apresenta, em sua lateral esquerda, uma barra de ferramentas, usada
para criar elementos na tela central (ver Figura 2). Os elementos da barra de
ferramentas são, considerando a ordem de cima para baixo:
• mouse: retira a seleção dos modos de edição de vértices e arcos;
• atividade: seleciona o modo de edição de vértices de atividade;
• vértice com operador paralelo: seleciona o modo de edição de vértices de
ramificação e sincronização com regra de composição paralela;
• vértice com operador alternativo: seleciona o modo de edição de vértices
de ramificação e sincronização com regra de composição alternativa;
• arco: seleciona o modo de edição que cria arcos entre vértices.
Figura 2: Barra de ferramentas do GEADA
3
O clique em qualquer um dos botões da barra de ferramentas cria um modo
de edição de objetos, que pode estar associado à criação de vértices e arcos. Os
modos são descritos a seguir:
3.1.1
Modo de Criação de Vértices
Ao habilitar o modo de criação de vértices, cada novo clique no painel central
cria um novo vértice para o digrafo. Os vértices são classificados em:
• Atividades: representam as atividades que compõem o processo de negócio;
• Vértices de composição paralelos: são usados para determinar pontos de
ramificação ou sincronização entre dependências com regra de composição
paralela;
• Vértices de composição alternativos: são usados para determinar pontos de
ramificação ou sincronização entre dependências com regra de composição
alternativa;
É bom salientar que pontos de atividades não podem representar pontos de
ramificação ou sincronização. Dessa maneira, todos os pontos de ramificação
devem ser modelados necessariamente com vértices de composição paralela ou
alternativa. Uma conseqüência direta desse fato é que todos os vértices que
representam atividades possuem, no máximo, um único sucessor e um único
antecessor.
Também é possível criar vértices de atividades usando a seqüência de menus
Processo > Cadastrar > Atividade. Essa operação abrirá uma janela, na
qual é solicitado um rótulo para a nova atividade. Ao confirmar a operação
(clicando no botão “Cadastrar”), um novo vértice de atividades é criado no
painel.
Vértices também podem ser removidos acionando a seqüência de menus Processo > Remover > Vértice. Essa operação abrirá uma janela com a lista
de vértices do digrafo. A lista exibe os rótulos de todos os vértices do digrafo,
sejam eles atividades ou vértices de composição. Ao escolher um vértice e clicar
no botão “Remover”, o vértice será excluído do digrafo. Na exclusão de um
vértice, todos os seus arcos adjacentes são também excluídos, para manter a
consistência do digrafo.
É possível movimentar os vértices sobre o painel clicando sobre o vértice
desejado e arrastando-o até a posição desejada. Todos os arcos adjacentes ao
vértice também serão movimentados.
3.1.2
Modo de Criação de Arcos
Ao habilitar o modo de criação de arcos, é possível criar arcos no digrafo. O
arco é criado por meio da seleção de dois vértices. Para selecionar um vértice,
basta fazer um clique sobre o vértice. Vértices selecionados serão diferenciados
dos demais pela indicação de pontos em suas bordas.
4
Após a seleção de um vértice, um novo clique sobre outro vértice criará um
arco entre ambos. Não é possível criar arcos reflexivos (com cabeça e cauda no
mesmo vértice). Caso o segundo clique não ocorra sobre um vértice, o vértice
inicial (selecionado) perderá a sua seleção.
Também é possível criar arcos sem a utilização do mouse. Por meio da
seqüência de menus Processo > Cadastrar > Dependência, uma janela
com duas listas de vértices é aberta. Ao escolher os vértices extremos (cauda
e cabeça) e apertar o botão de confirmação, é criado um nó entre os vértices
selecionados.
Para remover um arco, usa-se a seqüência de menus Processo > Remover
> Dependência para acionar a janela de remoção. Após escolher um arco e
apertar o botão de confirmação, o arco escolhido será removido do digrafo.
3.2
Redução de Processos de Negócio
O passo seguinte à definição do processo de negócio por meio de um digrafo
é a obtenção de sua expressão algébrica. A operação que realiza essa tarefa é
acionada pela seqüência de menus Processo > Gerar Expressão. Isso criará
uma nova janela, que exibe inicialmente o digrafo de expressão construído a
partir do digrafo (processo de negócio) inicial. Caso o processo de negócio
apresente ciclos em sua estrutura, será exibida uma mensagem de advertência
ao usuário e a operação é interrompida. Uma das hipóteses para criação de
expressões algébricas é que o digrafo original não contenha ciclos.
Nessa nova janela, que chamaremos Janela de Expressão, são mostradas
as mudanças sofridas pelo digrafo de expressão até a obtenção da expressão
algébrica, quando possível. Na Janela de Expressão aparecem novo vértices,
coloridos com cinza, que representam composições seqüenciais. Os rótulos das
atividades do digrafo inicial são mepeados para arcos no digrafo de expressão.
A seqüência de menus Processo > Reduzir, na Janela de Expressão, executa
o algoritmo de redução sobre a estrutura.
Caso o resultado seja um digrafo série-paralelo trivial, a expressão algébrica
final é mostrada como o rótulo do único arco do digrafo de expressão. Caso o
resultado da redução não seja um digrafo série-paralelo trivial, então haverá uma
ponte de Wheatstone em sua estrutura. No menu Processo, aparecerá uma nova
opção, chamada “Reduzir Wheatstone”. Quando as pontes de Wheatstone forem
isoláveis, é possível ainda obter expressões algébricas, porém com risco de perda
de equivalência em relação ao digrafo original. Ao utilizar o menu Processo >
Reduzir Wheatstone, o digrafo resultante da Janela de Expressão sofre uma
transformação segundo, de acordo com os 16 casos tratados no Capítulo 6 de
[1]. Uma vez realizada a operação, é possível reaplicar a operação de redução
para dar seqüência à redução do digrafo.
4
Exemplo
5
Para ilustrar os passos descritos na seção anterior, será apresentado um
exemplo que ilustra integralmente a obtenção de uma expressão algébrica a
partir de um modelo de processo de negócio baseado em digrafos acíclicos.
Primeiramente, são criadas as atividades que fazem parte do processo de
negócio. Neste exemplo, o processo de negócio é formado por 6 atividades.
Essa operação é mostrada na Figura 3.
Figura 3: Exemplo: Definição das atividades do processo de negócio
Em seguida, são definidas as regras de composição entre atividades. A definição dessas regras depende da criação de vértices auxiliares, como mostra a
Figura 4.
É possível criar relações complexas, como a mostrada na Figura 5. Neste
exemplo, o processo de negócio indica que uma das atividades, 4 ou 5, executa
em paralelo com as atividades 2 e 3.
Uma vez finalizado o modelo do processo de negócio, é iniciada a geração
da expressão algébrica por meio da execução do menu Processo > Gerar
Expressão, como mostrado na Figura 6.
Essa operação abrirá uma nova janela que exibirá, inicialmente, o digrafo
de expressão obtido a partir do modelo inicial de processo de negócio, como
mostrado na Figura 7
Também é possível movimentar os vértices nessa nova janela. É possível
que, durante a construção do digrafo de expressão, alguns vértices fiquem sobrepostos. A movimentação dos vértices pode facilitar a visualização global
da estrutura. O passo seguinte na geração da expressão algébrica do processo
de negócio é reduzir o digrafo de expressão, acionando a seqüência de menus
Processo > Reduzir, como mostrado na Figura 8.
A operação finaliza com sucesso, exibindo a expressão algébrica como rótulo
do arco do digrafo trivial, como mostrado na Figura 9.
6
Figura 4: Exemplo: Inclusão de regras de composição
Figura 5: Exemplo: Modelo final do processo de negócio
5
Problemas Conhecidos
Grande parte dos problemas apresentados está relacionada à interface do
software, que ainda está em fase de aprimoramento. Apesar disso, as funcionalidades internas, baseadas na redução de digrafos acíclicos, são consideradas
estáveis. As limitações conhecidas do GEADA são:
7
Figura 6: Exemplo: Início da geração da expressão algébrica
Figura 7: Exemplo: Início da geração da expressão algébrica
• Não é possível selecionar arcos por meio de cliques de mouse na interface;
• Arcos redundantes (com mesmas cabeça e cauda) não podem ser diferenciados pela interface;
8
Figura 8: Exemplo: Início da geração da expressão algébrica
• Não há como salvar trabalhos;
• Rótulos de arcos e vértices não podem ser movimentados;
Referências
[1] Marcio Katsumi Oikawa. Geração de expressões algébricas para processos
de negócios usando redução de digrafos série-paralelo. Tese de doutorado
em avaliação, 2008.
9
Figura 9: Exemplo: Início da geração da expressão algébrica
10
Download