• Nenhum resultado encontrado

Capítulo 5 – A Linguagem Estelle e a Ferramenta EDT

5.4. A Ferramenta EDT

O programa utilizado, a saber, o EDT (Estelle Development Toolset), encontra-se, atualmente, na sua versão 4.3 e, consiste em um conjunto de ferramentas para especificação e análise de sistemas de comunicação complexos usando a técnica de descrição formal Estelle.

O referido programa disponibiliza as ferramentas tanto para uso individualizado quanto para uso integrado através de uma interface X-windows, chamada xEdt. O xEdt faz a integração das seguintes ferramentas [Edt00]:

ƒ Tradutor Estelle; ƒ Gerador de Código C;

ƒ Compilador Estelle- C (Ec), que integra o tradutor Estelle e o gerador de código C;

ƒ Simulador/Debugador Estelle com gerador de trace (Edb); ƒ Browser;

ƒ Pretty Printer; ƒ Decompilador;

ƒ Splitter (Gerador de Especificação Distribuída);

ƒ Gerador Universal, que compreende o gerador de test drivers, o decompilador e o Spliter;

ƒ Ferramenta de Visualização. ƒ Editor Gráfico.

Todas as ferramentas foram escritas em C, exceto o editor gráfico e o gerador de trace, que foram implementados em Tcl/Tk.

A seguir, descreve-se de forma sucinta as funcionalidades de cada ferramenta.

5.4.1. Tradutor Estelle (Estelle Translator)

O Tradutor Estelle gera, a partir de uma dada especificação Estelle, uma representação em forma intermediária, adicionada com informações resultantes de uma análise completa (léxica, sintática e semântica) da especificação.

5.4.2. Gerador de Código C (Estelle Generator)

O Gerador de Código C retorna o código C da Especificação, a partir de uma representação de uma especificação Estelle em sua forma intermediária.

5.4.3. Compilador Estelle-C (Estelle to C Compiler)

Traduz uma especificação escrita na linguagem Estelle em um código fonte em linguagem C. O compilador consiste na integração das duas ferramentas anteriores: o Tradutor e o Gerador de Código C. Ressalta-se que essas duas partes do compilador podem ser usadas separadamente ou de forma encadeada uma após a outra para produzir o código C diretamente do código fonte em Estelle.

O termo compilador, portanto, nesse contexto, refere-se ao uso encadeado das duas ferramentas.

O código gerado pode ser executado sob o controle do Simulador/Debugador ou de um motor de implementação, que serve de interface para um dado sistema operacional. O motor de implementação é um conjunto de rotinas de suporte em tempo de execução pré-compiladas, independente da especificação, a ser ligada (linked) ao código gerado para produzir um programa executável.

5.4.4. Simulador/Debugador Estelle (Estelle Simulator/Debugger – Edb)

O Edb simula a execução de uma especificação Estelle, de acordo com o modelo semântico definido pelo padrão ISO 9074. O propósito de um Simulador/Debugador é auxiliar o usuário na descoberta e correção de erros que ocorrem durante a execução de uma especificação.

O Simulador/Debugador é uma ferramenta interessante, pois dá ao usuário a capacidade de poder controlar, observar e seguir a execução da Especificação através de comandos de simulação. O Edb é um simulador/debugador simbólico interativo cuja entrada consiste do código fonte da especificação Estelle, de sua forma intermediária e do resultado da compilação do código C gerado.

De acordo com o princípio da atomicidade da transição do modelo semântico de Estelle, a unidade de execução no Edb é uma simples transição.

Vale ressaltar, que todo tipo de não-determinismo inerente a uma descrição Estelle são resolvidos, durante a simulação, através de uma seleção randômica, se tratados sem qualquer intervenção do usuário. Comandos especiais

são oferecidos pelo simulador/debugador para controlar algumas destas escolhas não determinísticas de um modo interativo.

O Edb ofecere ainda meios eficientes, como comandos de macro e observadores, para descrever um cenário de simulação, incluindo a especificação de anomalias a serem detectadas.

Tal ferramenta dá ao usuário a capacidade de poder se concentrar completamente nas propriedades que ele deseja verificar ou detectar.

O Edb fornece ainda a capacidade de, durante uma simulação, o usuário poder requisitar de forma on-line a geração de múltiplas visões MSC (Message

Sequence Chart), individualmente parametrizadas.

5.4.5. Browser

É uma ferramenta interativa que gera visões de alto nível chamadas de Visões HLD (High Level Design) da especificação, representadas em sua forma intermediária. Tais visões podem ser mostradas na tela e/ou gravadas em arquivo.

A Visão HLD consiste em uma descrição da hierarquia de instâncias dos módulos e dos canais de comunicação entre as instâncias dos módulos (pontos de interação), omitindo-se a descrição de seu comportamento. Ela corresponde, portanto, a arquitetura da especificação, em termos de instâncias dos módulos, até uma certa profundidade definida pelo usuário.

5.4.6. Pretty Printer

A ferramenta Pretty Printer é usada para dar um formato diferente a especificação, em termos de: tamanho das linhas, tamanho das tabulações, identificadores e palavras-chaves em maiúsculas, minúsculas, entre outros. Permitindo, assim, que o usuário possa aplicar padrões de formatação de forma automática em toda a especificação.

5.4.7. Decompilador (Decompiler)

O Decompilador permite gerar, a partir da forma intermediária, a especificação Estelle correspondente.

5.4.8. Spliter (Distributed Specification Generator)

O Spliter permite que o usuário gere, a partir de uma especificação Estelle que contenha “n” sub-sistemas (módulos do tipo “systemprocess” ou “systemactivity”):

ƒ “n” especificações Estelle, cada uma contendo um sub-sistema e uma inteface especial chamada de switch board, ao mundo exteno;

ƒ Um programa supervisor em C.

5.4.9. Gerador Universal (Universal Generator – Ug)

Assim como ocorre no Compilador Estelle-C, o Gerador Universal é uma ferramenta que integra outras duas ferramentas, a saber: o Splitter (Seção 5.4.5) e o Decompilador (Seção 5.4.6). Cada função do Ug, portanto, pode ser vista como uma ferramenta separada.

O Gerador Universal permite ao usuário:

ƒ Gerar uma especificação modificada, a partir de uma especificação fonte em Estelle, na qual alguns corpos de módulos (body) selecionados pelo usuário serão substituídos por corpos universais (Universal Test Drivers Generator – Utdg). Esta ferranebta permite a geração de tests drivers interativos para qualquer especificação Estelle aberta.

ƒ Gerar especificações menores e mais simples de depurar (Splitter);

ƒ Gerar a especificação fonte em Estelle a partir da forma intermediária (Decompilador).

5.4.10. Gerador de Tabela Estado-Evento (Estelle State/Event Tables Generator – Edoc)

Essa ferramenta permite a geração automática de tabelas de estado- evento correspondente a um corpo especificado pelo usuário dentro de uma especificação. Estas tabelas são geradas a partir da informação encontrada no arquivo em forma intermediária, que foi gerado pelo Tradutor Estelle a partir de uma especificação Estelle, onde, cada coluna corresponde a um estado FROM, um

STATESET ou STATELIST e, cada linha corresponde a um evento que é uma

condição de disparo de uma transição. Em cada célula, encontro da coluna e linha, é mostrado o nome da transição, o estado TO e as saídas.

5.4.11. Editor Gráfico (Graphical Editor)

O editor Estelle/GR é uma interface gráfica baseada em janela para definição, edição e visualização de uma especificação Estelle numa sintaxe gráfica.

O editor provê um ambiente estruturado que separa a estrutura Estelle das definições de comportamento. Ele foi concebido para complementar o EDT. Suporta a importação de especificações textuais que tenham sido compiladas pelo Ec (gerador de código intermediário do EDT) e pode gerar especificações textuais que podem ser usadas como entrada para o EDT.