Foram definidos nove casos de uso principais para o desenvolvimento do protótipo da ferramenta de apoio ao ensino de Linguagens Livre de Contexto, conforme apresentados na figura 16.
ud Caso de Uso Principais
Name: Caso de Uso Principais Author: Gaspar
Version: 1.0
Created: 13/11/2006 22:09:47 Updated: 14/11/2006 18:09:16
Usuário Visualizar Teoria
Abrir Gramática
Realizar Deriv ações
Realizar Simplificações
Conv eter GLC para FNC Criar Autômato
com Pilha Reconhecer
Sentença pelo PDA Criar Analisador
Preditiv o LL(1) Reconhecer Sentença pelo
LL(1)
Figura 16 – Diagrama de Casos de Usos Principais
6.3.1 Caso de Uso 01 – Visualizar Teoria
• Atores: Usuário
• Propósito: Permitir o usuário visualizar as teorias apresentadas pela ferramenta.
• Fluxo Principal:
1. O usuário escolhe o módulo referente à teoria que deseja visualizar;
2. O sistema abre o respectivo módulo;
3. O usuário clica no botão “Teorias e Exemplos”, figura 25;
4. O sistema apresenta a página com as respectivas teorias do módulo.
6.3.2 Caso de Uso 02 – Abrir Gramática
• Atores: Usuário
• Propósito: Permitir o usuário abrir um arquivo de texto contendo uma gramática ou permitir que o mesmo digite uma gramática, verificar se a gramática está dentro das regras.
• Fluxo Principal:
1. O usuário clica em “Abrir Gramática”, figura 23;
2. O sistema apresenta a tela para abrir o arquivo de texto que contenha a gramática;
3. O usuário seleciona o arquivo e clica em abrir;
4. O sistema abre o arquivo e mostra no campo entrada;
5. O usuário clica em “Verificar Gramática”, figura 23;
6. O sistema verifica se a gramática está digitada conforme as regras de negócio 1 à 7;
7. O sistema apresenta a mensagem de verificação concluída com sucesso;
8. O usuário clica em “Criar Gramática”, figura 23;
9. O sistema cria um objeto com a gramática verificada.
• Fluxos Alternativos:
1. Se o usuário preferir digitar a gramática:
1.1. O usuário digita no campo entrada a gramática;
1.2. Ir para o item 5 do fluxo principal.
7. Se foram encontrados inconformidades na gramática:
7.1. O sistema apresenta uma mensagem de erro contendo as linhas e respectivas inconformidades encontradas;
7.2. O usuário corrige a gramática;
7.3. Voltar ao item 5 do fluxo principal.
6.3.3 Caso de Uso 03 – Realizar Derivações
• Atores: Usuário
• Propósito: Permitir o usuário visualizar a árvore de derivação de uma gramática;
• Fluxo Principal:
1. O usuário clica em Criar Gramática;
2. Executar Caso de Uso 02;
3. O sistema mostra a gramática criada em GLC Base;
4. O sistema apresenta a árvore de derivação da Gramática;
6.3.4 Caso de Uso 04 – Realizar Simplificações
• Atores: Usuário
• Propósito: Permitir o usuário realizar todas as simplificações à gramática automaticamente ou em partes.
• Fluxo Principal:
1. O usuário clica em “Criar Gramática”, figura 24;
2. Executar Caso de Uso 02;
3. O sistema mostra a gramática criada em GLC Base;
4. O usuário define as opções de simplificações que deseja realizar;
5. O usuário clica em executar simplificações;
6. O sistema executa os respectivos algoritmos referentes as simplificações selecionadas pelo usuários;
7. O sistema mostra a gramática simplificada;
8. O sistema habilita os botões “Ver Detalhes”, figura 24, de cada opção de simplificação selecionada pelo usuário;
9. O usuário clica em salvar;
10. O sistema salva a gramática em um arquivo de arquivo;
• Fluxos Alternativos:
9.1. Se o usuário escolher uma das opções de ver os detalhes:
9.1.1. O usuário clica em “Ver Detalhes”;
9.1.2. O sistema mostra os detalhes do respectivo item de simplificação selecionado;
9.1.3. O usuário clica em retornar;
9.1.4. Voltar ao item 9 do fluxo principal.
9.2. Se o usuário escolher converter a gramática simplificada em GLC Base:
9.2.1. O usuário clica em “Converter em GLC Base”, figura 24;
9.2.2. O sistema converte a gramática simplificada na GLC Base;
9.2.3. Voltar ao item 9 do fluxo principal.
9.3. Se o usuário escolher fechar o módulo:
9.3.1. O usuário clica em fechar;
9.3.2. O sistema armazena a gramática base atual no módulo principal do sistema, e fecha o módulo atual;
6.3.5 Caso de Uso 05 – Converter GLC para FNC
• Atores: Usuário
• Propósito: Permitir o usuário converter uma gramática para a Forma Normal de Chomsky.
• Fluxo Principal:
1. O usuário clica em Criar Gramática;
2. Executar Caso de Uso 02;
3. O sistema mostra a gramática criada em GLC Base;
4. O usuário clica em executar conversão;
5. O sistema executa os algoritmos de simplificações de gramática;
6. O sistema executa o respectivo algoritmo referente à conversão de gramáticas para a Forma Normal de Chomsky;
7. O sistema mostra a gramática na Forma Normal de Chomsky;
8. O usuário clica em salvar;
9. O sistema salva a gramática em um arquivo de arquivo;
• Fluxos Alternativos:
4. Se o usuário desmarcar a opção de execução da simplificação antes da conversão:
4.1. O usuário desmarca “simplificar GLC antes de converter”;
4.2. O sistema emite uma mensagem avisando das conseqüências de não simplificar a gramática antes da conversão;
4.3. Voltar ao item 4 do fluxo principal.
6.3.6 Caso de Uso 06 – Criar Autômato com Pilha
• Atores: Usuário
• Propósito: Permitir o usuário abrir um arquivo de texto contendo um autômato com pilha ou permitir que o mesmo digite o autômato, verificar se o autômato está dentro das regras.
• Fluxo Principal:
1. O usuário clica em “Abrir Autômato”, figura 26;
2. O sistema apresenta a tela para abrir o arquivo de texto que contenha o Autômato;
3. O usuário seleciona o arquivo e clica em abrir;
4. O sistema abre o arquivo e mostra no campo entrada;
5. O usuário clica em “Atualizar Dados”, figura 26;
6. O sistema verifica se o Autômato está digitado conforme as regras de negócio 8 e 9;
7. O sistema apresenta a mensagem de verificação concluída com sucesso;
8. O usuário clica em “Criar Autômato com Pilha”, figura 26;
9. O sistema cria um objeto com o autômato verificado.
• Fluxos Alternativos:
1. Se o usuário preferir digitar o autômato:
1.1. O usuário digita no campo entrada o autômato;
1.2. Ir para o item 5 do fluxo principal.
7. Se foram encontrados inconformidades no autômato:
7.1. O sistema apresenta uma mensagem de erro contendo as linhas e respectivas inconformidades encontradas;
7.2. O usuário corrige o autômato;
7.3. Voltar ao item 5 do fluxo principal.
6.3.7 Caso de Uso 07 – Reconhecer Sentença pelo PDA
• Atores: Usuário
• Propósito: Permitir o usuário entrar com uma sentença e realizar o reconhecimento dela pelo autômato criado.
• Fluxo Principal:
1. O usuário digita a sentença;
2. O usuário clica em “Forma de Reconhecimento - completo”, figura 27;
3. O sistema realiza o reconhecimento da sentença, com base no autômato;
4. O sistema apresenta o reconhecimento da sentença;
• Fluxos Alternativos:
2. Se o usuário clicar em reconhecer sentença passo a passo:
2.1. O usuário clica em “Forma de Reconhecimento – passo”, figura 27;
2.2. O sistema realiza o reconhecimento de 1 caractere da sentença, e apresenta o gráfico de transição da próxima sentença;
2.3. Volta para o item 2 do fluxo principal;
4. Se o sistema não reconhecer a sentença:
4.1. O sistema apresenta uma mensagem de que a sentença não é reconhecida pelo autômato atual;
4.2. Volta para o item 1 do fluxo principal;
6.3.8 Caso de Uso 08 – Criar Analisador Preditivo LL(1)
• Atores: Usuário
• Propósito: Permitir o usuário criar um Analisador Preditivo LL(1) a partir de uma gramática;
• Fluxo Principal:
1. O usuário clica em “Criar Gramática”,;
2. Executar Caso de Uso 02;
3. O sistema mostra a gramática criada em GLC Base;
4. O usuário clica em “Criar Analisador LL(1)”;
5. O sistema executa os respectivos algoritmos criando o conjunto first, follow e a tabela de análise preditiva;
6. O sistema mostra os conjuntos e a respectiva tabela criada;
6.3.9 Caso de Uso 09 – Reconhecer Sentença pelo LL(1)
• Atores: Usuário
• Propósito: Permitir o usuário entrar com uma sentença e realizar o reconhecimento dela pelo analisador LL(1).
• Fluxo Principal:
1. O usuário digita a sentença;
2. O usuário clica em Reconhecer Sentença;
3. O sistema realiza o reconhecimento da sentença, com base no analisador LL(1);
4. O sistema apresenta o reconhecimento da sentença;
• Fluxos Alternativos:
4. Se o sistema não reconhecer a sentença:
4.1. O sistema apresenta uma mensagem de que a sentença não é reconhecida pelo analisador atual;
4.2. Volta para o item 1 do fluxo principal;