Universidade regional de blumenau



Baixar 1,07 Mb.
Página6/12
Encontro01.07.2018
Tamanho1,07 Mb.
1   2   3   4   5   6   7   8   9   ...   12

DESENVOLVIMENTO


Neste capítulo é abordado o desenvolvimento do FGA. Primeiramente são apresentados os requisitos do FGA. Na sequência é mostrada a especificação, que dá uma maior formalização sobre a ferramenta. Logo em seguida é apresentada a implementação, onde são comentadas as técnicas e ferramentas utilizadas, o desenvolvimento de cada etapa e a operacionalidade da ferramenta. Por fim são discutidos os testes e resultados obtidos.
    1. requisitos principais do problema a ser trabalhado


O sistema desenvolvido atende aos seguintes requisitos:

  1. disponibilizar funções para criação e edição de grafos com as seguintes operações: adicionar e remover vértices e arestas, atribuir pesos e capacidades para arestas (Requisito Funcional - RF);

  2. disponibilizar funções para gerar grafos completos, regulares, conexos ou desconexos, densos ou esparsos e simples ou multigrafos (RF);

  3. permitir extrair propriedades tais como o grafo ser completo, regular, trivial, nulo, bipartido, bipartido completo, conexo ou desconexo, fortemente conexo, denso ou esparso e simples ou multigrafo (RF);

  4. disponibilizar um subconjunto de algoritmos clássicos, sendo: Dijkstra, Floyd-Warshall, Bellman-Ford, Prim, Kruskal, Ford-Fulkerson, Hopcroft-Tarjan, ordenação topológica, busca em largura e busca em profundidade (RF);

  5. permitir persistir e carregar grafos (RF);

  6. ser implementado utilizando o ambiente Fedora Eclipse 3.4.1 e a linguagem Java versão 6 (Requisito Não-Funcional - RNF);

  7. conter documentação detalhada sobre os recursos oferecidos pelo FGA (RNF).
    1. ESPECIFICAÇÃO


Esta seção apresenta a especificação do FGA através do uso dos conceitos de orientação a objetos e da Unified Modeling Language (UML). São apresentados os diagramas de casos de uso, de classes, de atividades e de sequência. A modelagem dos diagramas foi feita utilizando a ferramenta Enterprise Architect.
      1. Casos de uso


O FGA é constituído de seis casos de uso (Figura 8). Os três primeiros mostram as diferentes formas de poder instanciar um grafo: criando manualmente, gerando um grafo com base em algumas restrições ou mesmo carregando um grafo a partir de um arquivo. Já o caso de uso, designado Salvar grafo em arquivo, detalha como é feito o procedimento para persistir um grafo criado.

Por fim, os dois últimos casos de uso, designados por Executar algoritmos e Testar propriedades, detalham as formas de trabalhar com o grafo.



Figura 8 – Diagrama de casos de uso

O primeiro caso de uso (Quadro 13), chamado de Criar grafo, descreve o processo de criar e editar um grafo. Ele possui um cenário principal, dois alternativos, permitindo ao usuário poder adicionar mais vértices ou arestas, e dois cenários de exceção, os quais informam se há duplicidade de identificadores de vértices ou arestas no grafo.


Cenário principal

1 Usuário solicita criação de um tipo de grafo

2 FGA retorna um grafo do tipo escolhido

3 Usuário cria um vértice

4 Usuário informa um identificador para o vértice

5 Usuário adiciona vértice

6 Usuário cria uma aresta

7 Usuário informa um identificador para a aresta

8 Usuário informa o vértice de origem e o vértice de destino

9 Usuário adiciona aresta


Fluxo alternativo 1

No passo 5, caso o usuário deseja infomar outro vértice:

5.1 Retorna ao passo 3



Fluxo alternativo 2

No passo 9, caso o usuário deseja infomar outra aresta:

9.1 Retorna ao passo 6



Exceção 1

No passo 5, caso o identificador do vértice já existir no grafo:

5.1 FGA retorna exceção avisando da duplicidade



Exceção 2

No passo 9, caso o identificador da aresta já existir no grafo:

9.1 FGA retorna exceção avisando da duplicidade



Quadro 13 – Caso de uso Criar grafo

O segundo caso de uso (Quadro 14), designado Gerar grafo, descreve o procedimento para gerar um grafo com base em restrições. Ele possui, além do cenário principal, um cenário alternativo, necessário para caso haja mais parâmetros para a geração do grafo, e um cenário de exceção, para informar sobre a impossibilidade de gerar um grafo com as especificações dadas pelo usuário.



Cenário principal

1 Usuário solicita a geração de um grafo de um certo tipo

2 FGA solicita a quantidade de vértices

3 Usuário informa a quantidade de vértices

4 FGA retorna o grafo gerado



Fluxo alternativo 1

No passo 3, caso o tipo de grafo solicitado necessite de mais parâmetros:

3.1 FGA solicita outros parâmetros

3.2 Usuário informa outros parâmetros


Exceção 1

No passo 3, caso seja impossível gerar um grafo com as especificações do usuário:

3.1 FGA retorna exceção avisando da impossibilidade



Quadro 14 – Caso de uso Gerar grafo

O terceiro caso de uso (Quadro 15), chamado de Carregar grafo de arquivo, descreve o processo de recuperação de um grafo persistido em um arquivo. Ele possui um cenário principal e outro cenário de exceção, que informa caso um arquivo não exista.



Cenário principal

1 Usuário informa arquivo onde está o grafo

2 FGA retorna o grafo contido no arquivo



Exceção 1

No passo 1, caso o arquivo não exista:

1.1 FGA retorna exceção avisando da inexistência do arquivo



Quadro 15 – Caso de uso Carregar grafo de arquivo

O quarto caso de uso (Quadro 16), designado Salvar grafo em arquivo, descreve o processo para salvar um grafo em um arquivo. Ele possui, além do cenário principal, um cenário de exceção, que informa ao usuário se o caminho passado como parâmetro é inválido.



Cenário principal

1 Usuário informa grafo a ser salvo

2 Usuário informa arquivo onde será salvo o grafo

3 FGA salva o grafo


Exceção 1

No passo 2, caso o endereço for inválido:

2.1 FGA retorna exceção avisando da invalidez



Quadro 16 – Caso de uso Salvar grafo em arquivo

O quinto caso de uso (Quadro 17), chamado de Executar algoritmos, descreve o procedimento para executar um algoritmo sobre um grafo. Ele possui, além do cenário principal, um cenário alternativo, para o caso de haver mais parâmetros necessários para a execução do algoritmo, e um cenário de exceção, para informar ao usuário se o grafo dado como parâmetro é inválido para o algoritmo escolhido.



Cenário principal

1 Usuário solicita a execução de um algoritmo

2 FGA solicita um grafo como parâmetro

3 Usuário informa o grafo para o algoritmo

4 FGA executa o algoritmo solicitado

5 Usuário solicita obter o resultado

6 FGA retorna o resultado da execução do algoritmo



Fluxo alternativo 1

No passo 3, caso o algoritmo necessite de mais parâmetros:

3.1 FGA solicita outros parâmetros

3.2 Usuário informa outros parâmetros


Exceção 1

No passo 3, caso o grafo informado for inválido para a execução do algoritmo:

3.1 FGA retorna exceção avisando da invalidez do grafo



Quadro 17 – Caso de uso Executar algoritmos

O sexto caso de uso (Quadro 18), designado Testar propriedades, descreve o processo para testar alguma propriedade de um grafo. Ele possui somente um cenário principal, já que não há como ocorrer exceção ou mesmo haver um fluxo alternativo.



Cenário principal

1 Usuário solicita o teste de uma propriedade

2 FGA solicita um grafo

3 Usuário informa o grafo

4 FGA retorna o resultado do teste



Quadro 18 – Caso de uso Testar propriedades


1   2   3   4   5   6   7   8   9   ...   12


©livred.info 2017
enviar mensagem

    Página principal