Chapitre 1: Approcher la relation de service par les dynamiques professionnelles 27
3. Les dynamiques professionnelles de la relation de service 44
3.1. Le recours à la notion de profession dans la littérature sur les services 45
Nesta seção, descrevemos as funcionalidades desse novo módulo em CRefine para gerenciar o processo de criação e aplicação das táticas de refinamento. As principais funcionalidades desta extensão são:
• Criar uma tática de refinamento; • Gerar uma nova tática;
CAPÍTULO 4. ESTENDENDO CREFINE 38
Figura 4.2: Nova interface deCRefine. • Remover uma tática;
• Aplicar táticas no programaCircus.
Criar uma Tática de Refinamento
Uma das principais funcionalidades desta extensão é permitir que o usuário adicione suas táticas de refinamento a CRefine. Estas táticas geradas podem então ser utilizadas na otimização da aplicação do cálculo de refinamentos. Para inserir uma nova tática, o usuário deve escolher a opção New Tactic do novo item ArcAngelC. Esta opção inicializa o editor de táticas (apresentado na Figura 4.3). As táticas são escritas utilizando comandos específicos em LATEX que representam os construtores de ArcAngelC. Estes comandos
podem ser encontrados no Apêndice F. Todos os construtores deArcAngelC podem ser utilizados para a formalização das táticas de refinamento.
No processo de criação de uma tática de refinamento, o usuário pode digitar o código
ArcAngelC. Entretanto, um teclado virtual foi desenvolvido para auxiliar o usuário neste processo. Através da opção Virtual Keyboard o sistema disponibiliza comandosCircuse
macros para os diversos construtores deArcAngelC. Além disso, as macros apresentam comentários para auxiliar o usuário na criação das táticas de refinamento. Este teclado virtual pode ser encontrado na Figura 4.4. Nesta figura apresentamos a macro TactDecl que é responsável por disponibilizar o template para a declaração de qualquer tática de refinamento na ferramenta.
Após definir a tática, o usuário pode salvar a tática na ferramenta, através da opção Save Tactic do editor de táticas. Para um melhor gerenciamento, um diretório padrão
CAPÍTULO 4. ESTENDENDO CREFINE 39
Figura 4.3: Editor de Táticas
para armazenar as táticas de refinamento foi estabelecido, embora outro caminho possa ser utilizado pelo usuário. Esta opção de salvar uma tática apenas possibilita ao usuário armazenar o arquivo .tex da tática na ferramenta, sem realizar nenhuma verificação no conteúdo do arquivo.
Gerar uma Nova Tática
Para utilizar uma tática de refinamento como uma simples regra de transformação, o usuário deve gerar a tática. Após escrever a definição da tática, o usuário deve selecionar a opção Generate Tactic do editor de táticas. Ao selecionar esta opção, a tática é submetida a uma análise léxica e sintática através do parser de táticas, que também foi implemen- tado nesta dissertação. Este processo de compilação realiza a validação da tática e de seus argumentos. Além disso, verifica a existência das leis e das táticas de refinamento utiliza- das. Nesta versão, uma tática de refinamento pode receber como argumento: uma lei ou uma tática de refinamento, listas e funções. Caso este processo de geração (compilação) da tática ocorra com sucesso, a tática é inserida na ferramenta. Caso contrário, o sistema apresenta uma mensagem descrevendo o erro para o usuário.
Editar uma Tática de Refinamento
Outra funcionalidade nesta extensão é a edição de uma tática de refinamento. Para isso, é necessário que o usuário selecione a opção Open Tactic do novo item ArcAngelC. Com isso, o usuário deve selecionar um arquivo LATEX que contém a especificaçãoArcAn-
CAPÍTULO 4. ESTENDENDO CREFINE 40
Figura 4.4: Teclado Virtual
gelC. Após selecionar o arquivo, o editor de táticas é atualizado com o código do arquivo. A partir disso, o usuário pode verificar o códigoArcAngelC e editar a tática. Após editar uma tática, o usuário deve gerar a tática novamente.
Remover uma Tática de Refinamento
O usuário pode remover quaisquer táticas que já tenham sido geradas e consequente- mente inseridas na ferramenta. Para remover uma tática, é necessário escolher a opção Remove Tactic do novo item ArcAngelC. Quando esta opção for selecionada, uma lista com todas as táticas de refinamento presentes na ferramenta é disponibilizada. Após se- leção, o usuário confirma a remoção, resultando na remoção efetiva da tática do grupo de táticas disponíveis na ferramenta.
Aplicação de uma Tática de Refinamento
Para aplicar uma tática de refinamento é necessário que o usuário já tenha realizado o processo de criação e geração da tática. Com as táticas de refinamento adicionadas na ferramenta, o usuário deve carregar o arquivo de entrada no CRefine para iniciar o processo de refinamento. Para isso, o usuário deve selecionar a opção Refinement -> New no menu principal da ferramenta. Esta opção carrega na ferramenta a especificação inicial
Circus. Durante o carregamento,CRefine utiliza as ferramentas da CZT para efetuar as
verificações léxicas, sintáticas e de tipo. Caso nenhum erro tenha sido encontrado, o sistema atualiza as janelas de código e refinamento com a especificação inicial Circus.
Caso contrário, se a especificação apresentar algum erro, é apresentada uma mensagem de erro para o usuário.
CAPÍTULO 4. ESTENDENDO CREFINE 41 Após estas etapas de criar as táticas de refinamento e carregar a especificaçãoCircus
na ferramenta, o processo de aplicação de uma tática de refinamento pode então ser rea- lizado. Para isso, é utilizada a mesma sequência de etapas para a aplicação de uma lei de refinamento. Assim, o usuário deve selecionar a parte da especificação que deseja aplicar a tática. Com isso, uma janela pop-up será apresentada. Nessa janela o usuário deve esco- lher a opção Apply Tactic, que lista as táticas presentes no sistema para que o usuário selecione a tática que deseja aplicar. Na Figura 4.5 é possível verificar essa janela pop-up, a qual possibilita aplicar uma tática de refinamento.
Figura 4.5: Aplicação de uma Tática de Refinamento
A tática selecionada na Figura 4.5 é a tática NB, que representa a tática principal que deve ser aplicada para realizar o refinamento da primeira fase do estudo de caso desta dissertação, o qual será descrito em maiores detalhes no Capítulo 5. Esta tática realiza o refinamento dos processos passados como parâmetros.
Após o usuário selecionar a tática,CRefine efetua a sua aplicação de forma automá- tica. Se a aplicação da tática falhar, uma mensagem de erro é apresentada ao usuário. Caso contrário, a ferramenta atualiza as janelas de código e refinamento com o resultado da aplicação da tática. A janela de obrigações de prova também é atualizada, informando todas as OPs geradas na aplicação da tática.
CAPÍTULO 4. ESTENDENDO CREFINE 42
Figura 4.6: Resultado da Aplicação da Tática