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