3.2 ESPECIFICAÇÃO
3.2.1 Diagrama de casos de uso
Nessa seção são descritos os principais casos de uso da AduboGL. Por se tratar de uma aplicação voltado à aprendizagem da matéria de computação gráfica a partir da biblioteca OpenGL, encontrou-se apenas um ator que será o próprio usuário do sistema, sendo ele o aluno ou o professor da disciplina. A Figura 5 exibe o diagrama de casos de uso do referido trabalho.
33
Para entender os casos de uso é necessário ter conhecimento das partes que formam a aplicação. A AduboGL é formada por cinco janelas, sendo elas: fábrica que é o local onde
as peças são disponibilizadas para serem colocadas no exercício; bandeja é onde o exercício
é construído; janela de código-fonte da peça selecionada é onde o usuário visualiza o código em C++ das peças conforme são selecionadas; a janela de visualização do exercício 3D é onde o resultado do exercício é exibido; e por fim, visualização 3D com câmera é a visualização da janela de resultado a partir de uma câmera, para visualizar o
exercício em um ângulo diferente.
O UC01 mostra como o ator Usuário cria peças para interagir com o exercício da
AduboGL. O Quadro 13 apresenta os detalhes do caso de uso.
UC01 – Criar peças disponíveis na fábrica para realizar um exercício
Descrição As peças do exercício são aquelas que são colocadas no cenário para gerar posteriormente o código-fonte. Cada peça representa um comando da OpenGL, por exemplo, o desenho de um cubo ou o comando glPushMatrix() glPopMatrix(), ou ainda as transformações escala, rotação e translação (ver seção 2.2.4).
A aplicação possui um espaço para disponibilizar todas essas peças a serem utilizadas pelo usuário, o espaço chama-se fábrica. As peças disponíveis nela ficam armazenadas em uma lista da fábrica. A janela a esquerda é dividida em duas partes: fábrica (exibe peças para serem criadas) e bandeja (apresenta as peças já criadas, colocadas e encaixadas). As partes são separadas por uma linha horizontal;
Cenário Principal
1.O Usuário inicia a AduboGL;
2.O Usuário clica com o mouse em uma peça da fábrica e arrasta para qualquer parte do exercício mantendo o botão do mouse pressionado;
3.A aplicação irá criar uma peça idêntica a clicada.
Pós-Condição A peça criada é armazenada na aplicação em uma lista de peças da bandeja para que o usuário possa realizar os demais movimentos com a mesma. O usuário poderá visualizar a peça conforme o cursor do mouse é movimentado. A peça deve acompanhar o cursor.
Quadro 13 – Detalhamento do caso de uso UC01
Já o UC02 mostra como o ator Usuário coloca uma das peças já criadas no ambiente do exercício. O Quadro 14 apresenta os detalhes do caso de uso.
34
UC02 – Colocar a peça criada no ambiente do exercício, sobre a bandeja
Descrição Após a criação da peça, ela deve ser colocada na bandeja para que o exercício possa ser iniciado, assim como a aprendizagem da OpenGL e a geração do código-fonte.
A bandeja é o local que armazena as peças já criadas que irão compor o exercício.
A peça que representa os comandos glPushMatrix() glPopMatrix() poderá receber peças internamente, chamadas de peças filhas. Essas peças filhas representam os comandos que são circundados pelo comando glPushMatrix()e glPopMatrix().
Pré-Condição UC01 Cenário
Principal
1. O Usuário deve soltar o botão do mouse para soltar a peça criada em qualquer local da bandeja;
2. A aplicação colocará a peça abaixo da última já posicionada, caso for a primeira peça, colocará no topo da bandeja.
Cenário Alternativo 1
1. Se no passo 1 do cenário principal o Usuário soltar a peça dentro da fábrica, a peça será removida da bandeja e da lista de peças da bandeja.
Cenário Alternativo 2
1. No passo 1 do cenário principal o Usuário pode soltar a peça ao lado de outra peça;
2. A aplicação verificará se a peça que está ao lado da nova permite ter peças filhas;
3. Se permitir, irá adicionar a peça como filha dela em uma lista de peças filhas e mostrará a mesma encaixada na peça solta;
4. Se a peça já tiver peças filhas, encaixará a nova peça a cima ou abaixo da atual filha, conforme for posicionada na bandeja;
5. Se não permitir apagará a peça criada.
Pós-Condição O Usuário deve poder visualizar a peça criada no exercício. Essa peça corresponde a um dos comandos principais da OpenGL que formarão o código- fonte posterior.
Quadro 14 – Detalhamento do caso de uso UC02
Ainda, o UC03 mostra como o ator Usuário pode alterar as propriedades dos
comandos da OpenGL. Esses comandos são os representados pelas peças já colocadas na bandeja. O Quadro 15 apresenta os detalhes do caso de uso.
O UC04 mostra como o ator Usuário pode movimentar e alterar a posição das peças já
35
UC03 – Alterar propriedades dos comandos da OpenGL
Descrição Alguns comandos da OpenGL possuem parâmetros, como o cubo que possui sua cor e as transformações translação, escala e rotação que possuem os valores de x, y e z a serem transformados. Ao colocar uma peça que representa esses comandos, o Usuário pode alterar suas propriedades.
Pré-Condição UC02 Cenário
Principal
1. Se colocar uma peça que representa o cubo, o Usuário pode alterar sua cor pressionando a tecla “R” para colori-lo de vermelho, “G” para colori-lo de verde ou “B” para colori-lo de azul;
2. Se o Usuário colocar uma peça que represente as transformações ele poderá alterar os valores de x, y e z utilizando as teclas numéricas 1 e 2 para diminuir e aumentar o valor de x, ou 3 e 4 para diminuir e aumentar o valor de y, ou ainda 5 e 6 para diminuir e aumentar o valor de z.
Cenário Alternativo
1. Se a peça já estiver colocada e o Usuário desejar alterar suas propriedades, ele deve clicar sobre a peça e então realizar os passos do cenário principal. Exceção 1. Se o Usuário desejar alterar as propriedades de uma peça filha já
posicionada não conseguirá, pois não é possível selecionar a peça filha após ter clicado em outra.
Pós-Condição Quando for um cubo o Usuário visualizará sua nova cor sobre a própria peça. Quando for uma peça de transformação, o Usuário visualizará o valor alterado na janela de código-fonte, nas posições respectivas de x, y e z.
Quadro 15 – Detalhamento do caso de uso UC03 UC04 – Mexer e alterar a posição das peças já criadas e colocadas na bandeja
Descrição Depois de posicionar a peça no exercício, o Usuáriopode trocá-la de posição, colocando-a em cima, embaixo ou entre uma já colocada.
Pré-Condição UC02 Cenário
Principal
1. O Usuáriodeve clicar e manter pressionado o botão do mouse sobre a peça a ser alterada de lugar;
2. A peça irá se mover na tela conforme o cursor do mouse se movimentar; 3. Quando a peça estiver posicionada ao lado da peça que deseja ser encaixada,
o Usuáriodeve soltar o botão do mouse;
4. A aplicação realizará comparações para verificar a posição em que a peça será encaixada, coloca-a no lugar, desloca as demais peças para baixo e atualiza o índice de todas.
Cenário Alternativo
1. Se no item 3 do cenário principal o Usuário soltar a peça na área da fábrica, a peça será removida e apagada do exercício.
Exceção 1. Se o Usuário tentar mover uma peça filha não conseguirá, pois não é permitido.
Pós-Condição O Usuáriodeve visualizar a peça movida em seu novo lugar e as demais peças deslocadas para baixo.
Quadro 16 – Detalhamento do caso de uso UC04
O UC05 mostra como o ator Usuário pode visualizar o código-fonte de uma peça
selecionada, sendo da fábrica ou da bandeja. O Quadro 17 apresenta os detalhes do caso de uso.
36
UC05 – Visualizar código da peça conforme peça selecionada
Descrição Ao clicar sobre uma peça o Usuário pode visualizar o código-fonte em C++
com OpenGL resultante da montagem da mesma. O Usuário visualizará o código-fonte na janela código-fonte da peça selecionada.
Pré-Condição Nenhuma Cenário
Principal
1. O Usuáriodeve clicar sobre uma peça, sendo da fábrica ou da bandeja; 2. A aplicação exibirá na janela de código-fonte da peça selecionada o
código correspondente a peça (se for da fábrica a peça estará com suas inicializações zeradas, se for da bandeja será exibido o código conforme a montagem e sua configuração no exercício).
Cenário alternativo
1. Se o Usuário clicar sobre uma peça que representa os comandos glPushMatrix() glPopMatrix() e dentro da peça tiver peças filhas, será exibido o código com as configurações de cada uma das peças filhas empilhadas.
Pós-Condição O Usuário deve poder visualizar o código-fonte a partir de um arquivo com extensão cpp. A partir deste arquivo o Usuário pode entender como funciona algumas diretivas e comandos do OpenGL e pode executá-lo em um novo projeto.
Quadro 17 – Detalhamento do caso de uso UC05
O UC06 mostra como o ator Usuário pode salvar o exercício conforme as peças
colocadas na bandeja. O Quadro 18 apresenta os detalhes do caso de uso.
UC06 – Salvar o exercício
Descrição Após disponibilizar as peças sobre a bandeja, o Usuário pode salvar o exercício montado para abri-lo posteriormente ou para visualizá-lo na cena em 3D. Pré-Condição UC02
Cenário Principal
1. O Usuário deve clicar com o botão direito dentro da bandeja; 2. A aplicação mostrará um menu;
3. O Usuário deve clicar na opção “Gravar exercício”;
4. A operação irá gerar um arquivo texto no diretório do projeto com o nome “Exercicio.txt” com todas as configurações das peças colocadas na bandeja e na mesma ordem. Caso o arquivo já exista, o mesmo é sobreposto.
Pós-Condição O Usuário deve poder visualizar o arquivo gerado na pasta do projeto com o nome de “Exercicio.txt”. E na janela Visualização do exercício 3D deve aparecer a cena em 3D correspondente ao exercício gravado.
Quadro 18 – Detalhamento do caso de uso UC06
O UC07 mostra como o ator Usuário pode abrir o exercício já salvo em um arquivo
texto. O Quadro 19 apresenta os detalhes do caso de uso.
UC07 – Abrir o exercício salvo
Descrição Após salvar um arquivo com a disposição das peças o Usuário pode abri-lo novamente, mesmo tendo fechado a aplicação.
Pré-Condição UC06 Cenário
Principal
1. O Usuáriodeve clicar com o botão direito dentro da bandeja; 2. A aplicação mostrará um menu;
3. O Usuáriodeve clicar na opção “Abrir exercício”;
4. A aplicação carregará as peças na bandeja na mesma ordem e com as mesmas configurações conforme foram gravadas no arquivo.
Pós-Condição O Usuário deve visualizar as peças carregadas na bandeja, conforme foram salvas, assim como o exercício em 3D. Deve também poder alterar o exercício como é explicado nos casos de uso anteriores.
37
Por fim, o UC08 mostra como o ator Usuário pode visualizar a cena em 3D gerada
pelas peças do exercício. O Quadro 20 apresenta os detalhes do caso de uso.
UC08 – Visualizar cena 3D
Descrição Após salvar um arquivo com a disposição das peças o Usuáriopode visualizá- lo na janela de visualização do exercício 3D.
Pré-Condição UC06 Cenário
Principal
1. O Usuário deve abrir o arquivo exercício, caso não esteja visualizando o cenário em 3D;
2. Na janela Visualização 3D com câmera é exibida a cena 3D correspondente as peças montadas a partir de um frustum de visão.
Pós-Condição O Usuário deve visualizar o cenário 3D conforme as peças gravadas no arquivo. E na janela Visualização do exercício 3D aparece a cena vista de frente.
Quadro 20 – Detalhamento do caso de uso UC08