Diagramas de casos de uso ilustram uma unidade de funcionalidade proporcionada pelo sistema, tendo como objetivo principal “auxiliar equipes de desenvolvimento visualizar os requisitos funcionais de um sistema, incluindo a relação
de "intervenientes" (seres humanos que irão interagir com o sistema) para processos essenciais, assim como as relações entre os diferentes casos de utilização” (BELL 2003).
A Figura 11 apresenta o diagrama de casos de uso geral para o sistema desenvolvido. Esse diagrama é apenas uma visão geral dos casos de uso do sistema, pois casos de uso mais detalhados serão exibidos nos diagramas por pacote.
Figura 11 - Diagrama de casos de uso geral.
Como visto na Figura 11, o sistema é composto por 6 atores, dos quais o “Serviço de Autorização” é um subsistema e os demais são pessoas que interagem com o sistema. A seguir são descritos os papéis de cada ator:
Usuário de Sistema. Todo e qualquer pessoa que possua um login e senha (um cadastro) no sistema. O usuário de sistema possui somente o acesso básico ao sistema, de forma que esse não consegue usufruir das funcionalidades, necessitando de permissões mais elevadas.
Funcionário. Um funcionário é um indivíduo cadastrado para uma empresa em específico, tendo suas permissões herdadas do “Usuário de Sistema”. Esse ator possui a permissão extra de aplicar questionários existentes no sistema.
Gerente. O gerente pode ser especificado como um funcionário da empresa com um nível de acesso mais elevado. Esse herda todos os acessos do “Funcionário” mais as seguintes permissões: criação e edição de formulários e geração de relatórios.
Administrador. Esse ator possui nível de acesso mais elevado na empresa. O administrador herda todas as permissões do “Gerente” e mais as seguintes permissões: manutenção de gerentes e funcionários da empresa e manutenção dos dados da empresa (planos de assinatura, preferências e dados de cadastro).
Cliente. O cliente é um ator que não possui cadastro no sistema. Portanto não pode ser considerado um “Usuário de Sistema” (no sentido de possuir login e senha). Esse ator tem apenas a função de responder aos questionários aplicados pelos funcionários da empresa.
Serviço de Autorização. O serviço de autorização é um subsistema da aplicação. Porém, esse foi colocado como ator por entrar na categoria de serviços. A função principal é garantir que cada ator possa acessar apenas as funcionalidades e páginas do sistema que realmente tenha permissão. Toda e qualquer ação do usuário do sistema passa pelo serviço de autorização.
4.2.2. Diagrama de pacotes geral
O diagrama de pacotes é um diagrama estrutural que apresenta os pacotes, suas dependências e seus relacionamentos. Na Figura 12 apresentamos o diagrama geral de pacotes.
Figura 12 - Diagrama geral de pacotes.
A seguir encontra-se uma breve descrição de cada pacote:
Core (core): contém todas as classes, interfaces, modelos, componentes e definições básicas da aplicação, sendo o pacote necessário para o funcionamento do sistema. Os demais pacotes importam, implementam ou estendem suas funcionalidades e definições.
Controle de acesso (access-control): pacote responsável por efetuar controle de permissões (autorização), autenticação e auditoria (AAA - authentication, authorization, accounting). Assim a aplicação está mais protegida a invasões e mantém um controle de conteúdo acessível apenas a pessoas com níveis de permissão adequado.
Empresas (companies): esse pacote contém as operações e funcionalidades voltadas ao cadastro e manutenção das empresas e manutenção de funcionários e suas permissões. Esse pacote faz uso do pacote de controle de acesso e o de usuários.
Planos (plans): contém as funcionalidades relacionadas aos planos de assinatura das empresas, como por exemplo a funcionalidade da empresa escolher o seu plano de assinatura e as definições das funcionalidades que cada plano possui.
Usuários: (users): contém as funcionalidades referentes à criação de usuário e login, usando o pacote de controle de acesso.
Questionários (questionnaires): No pacote estão as funcionalidades referentes a criação, manutenção, aplicação e geração de relatórios de questionários. Esse pacote usa o pacote de questões.
Questões (questions): Nesse pacote encontram-se as funcionalidades referentes ao cadastro e manutenção do banco de questões por empresa e a listagem de todas as questões disponíveis para a empresa (banco de questões privado e público).
Metas (goals): Mantém as funcionalidades referentes à criação e manutenção de metas de aplicação de questionários, porém não são de uso obrigatório e não impactam na criação e utilização de questionários.
4.2.3. Diagrama de casos de uso por pacote
Aqui são representados mais casos de uso que são específicos por pacote que não foram inclusos no diagrama de casos de uso geral, pois não é o objetivo daquele diagrama. Os diagramas serão exibidos na seguinte sequência: a Figura 13 apresenta os casos de uso para o pacote controle de acesso e usuários, a Figura 14 os casos de uso para o pacote empresas e, por fim, a Figura 15 apresenta os casos de uso para os pacotes questionários e questões. Na seção 4.2.4 há uma descrição completa de alguns casos de uso considerados os mais importantes.
Figura 13 - Diagrama de casos de uso para os pacotes controle de acesso e usuário.
Figura 15 - Diagrama de casos de uso para os pacotes questionários e questões.
4.2.4. Especificação dos casos de uso
As tabelas a seguir apresentam as principais especificações de casos de uso. Na especificação de casos de uso são identificados todos os atores que participam do caso de uso, os requisitos funcionais envolvidos, as regras de negócio aplicadas no caso de uso, sequência típica de eventos e fluxos alternativos em caso de exceção.
Nessa seção apresentamos as especificações de 4 casos de uso: Registrar empresa (Tabela 3), cadastrar questões (Tabela 4), criar questionário (Tabela 5) e gerar relatório básico (Tabela 6).
Tabela 3 - Especificação do caso de uso "Registrar empresa".
ID UC1. Registrar empresa
Pacote Empresas
Ator(s) Administrador
Finalidade Registrar uma nova empresa no sistema e
criar um usuário administrador para ela
Visão geral A empresa por meio do site ou aplicativo
móvel acessa a página de registro, informa os dados necessários e passa a ser usuária do sistema
Tipo Primário
Pré-condição N/A
Pós-condição A empresa possui acesso às funcionalidades
do sistema. Requisitos funcionais envolvidos RF7, RF8
Regras de negócio RN13
Casos de uso relacionados Enviar e-mail de confirmação Sequência típica de eventos
Empresa (usuário ADM) Sistema
1. Acessar o site ou aplicativo 2. Acessar página de registro
3. Preencher formulário de criação de usuário Administrador e concordar com os termos de uso.
4. Criar novo usuário administrador para empresa.
5. Redirecionar usuário para página de login 6. Enviar e-mail de confirmação
7. Usuário verifica sua caixa de e-mail e clica no link de verificação enviado.
8. Sistema marca e-mail como verificado. 9. Redireciona para login
10. Informa login e senha e clica em “Entrar”
11. Logar usuário
12. Redirecionar usuário para página de cadastro da empresa.
13. Preencher formulário de cadastro da empresa.
14. Inserir nova empresa
15. Definir usuário como administrador da empresa
16. Redirecionar usuário para escolha do plano de assinatura
17. Escolher um plano de assinatura
18. Atualizar empresa definindo o novo plano de assinatura
19. Redirecionar usuário para dashboard Exceções
Passo Ação
4. Usuário já cadastrado Retornar ao passo 3 e exibir mensagem de erro.
11. Usuário não possui e-mail confirmado Retornar ao passo 7 e exibir mensagem de erro com a opção de reenviar e-mail de confirmação
N/A
Tabela 4 - Especificação do caso de uso "Cadastrar Questão".
ID UC2. Cadastrar questão
Pacote Questões (questions)
Ator(s) Gerente
Finalidade Cadastrar uma nova questão privada que
pode ser utilizada na criação de formulários.
Visão geral O gerente acessa a página de cadastro de
questão, informa os dados e escolhe o tipo da questão e salva.
Tipo Primário
Pré-condição Possuir nível de acesso “Gerente”
Pós-condição Questão cadastrada e disponível para
utilização em questionários; Requisitos funcionais envolvidos RF3
Regras de negócio RN3, RN8
Casos de uso relacionados N/A
Sequência típica de eventos
Usuário de sistema Sistema
1. Acessa a página de cadastro de questão, preenche os dados básicos.
2. Escolhe o tipo de questão e informa suas alternativas e clica em “salvar”
3. Efetua validação do formulário
4. Verifica as permissões do usuário e salva a questão
5. Retornar ao usuário mensagem de sucesso
6. Efetua redirecionamento para listagem de questões
Exceções
Passo Ação
3. Formulário inválido Apresenta mensagem de erro indicando os campos que estão inválidos e retorna ao passo 2
4. Usuário não possui permissão igual ou
superior a “gerente” Apresentar mensagem de erro indicando acesso negado e retorna ao passo 2 Fluxos alternativos
2. Tipo da pergunta não possui alternativas
editáveis pelo usuário Escolhe apenas o tipo de questão e clica em salvar
Tabela 5 - Especificação do caso de uso "Criar Questionário".
ID UC3. Criar questionário
Pacote Questionários (questionnaires)
Ator(s) Gerente
Finalidade Cadastrar um novo questionário
Visão geral O gerente acessa a página de cadastro de
questionários, preenche informações básicas. Adiciona questões públicas e/ou
privadas, definindo sua ordem de execução e salva.
Tipo Primário
Pré-condição Possuir nível de acesso “Gerente” ou
superior
Pós-condição Novo questionário cadastrado com sucesso
e disponível para ser utilizado. Requisitos funcionais envolvidos RF2
Regras de negócio RN1, RN5, RN6, RN7, RN8, RN10
Casos de uso relacionados N/A
Sequência típica de eventos
Usuário de sistema Sistema
1. Acessa a página de criação de questionários
2. Retorna a lista de questões privadas e públicas disponíveis
3. Preenche os dados básicos do questionário (nome, categoria, etc) 4. Seleciona as questões que deseja que o
questionário contenha
5. Define qual questão será a primeira questão do questionário
6. Para cada questão no questionário, define qual será a próxima por padrão e caso necessário, quais serão as próximas conforme as alternativas da questão.
7. Apresenta uma pré-visualização 8. Confere o questionário criado e salva
9. Validar questionário
10. Retornar mensagem de sucesso ao usuário e redirecionar para a listagem de questionários
Exceções
Passo Ação
9. Validar questionário: questionário possui loops ou questões que nunca serão executadas
Apresentar mensagem de erro e sugerir ao usuário uma solução
Fluxos alternativos N/A
Tabela 6 - Especificação do caso de uso "Gerar Relatório Básico".
ID UC4. Gerar relatório básico
Pacote Questionários (questionnaires)
Ator(s) Gerente
Finalidade Gerar relatório para um questionário aplicado
Visão geral O gerente acessa a página de relatórios,
escolhe um dos questionários disponíveis para geração de relatório, escolhe como deseja recebe-lo e clica em “Gerar relatório”.
Tipo Primário
Pós-condição Relatório para o questionário escolhido gerado e apresentado da forma escolhida (e- mail ou em tela)
Requisitos funcionais envolvidos RF14
Regras de negócio RN12
Casos de uso relacionados Enviar e-mail
Sequencia típica de eventos
Usuário de sistema Sistema
1. Por meio da listagem de questionários ou o dashboard (metas), selecionar o questionário que se deseja gerar um relatório.
2. Selecionar a maneira que deseja receber o relatório (e-mail ou em tela) e definir o período do relatório (data de início e fim)
3. Iniciar processo de geração de relatório 4. Gerar gráfico geral com informações
referentes ao número de respostas obtidas conforme o tempo
5. Para cada questão gerar um gráfico apresentando as quantidades por alternativa
6. Gerar um gráfico apresentado por usuário o número de respostas coletadas
7. Apresentar para o usuário 8. Conferir relatório
Exceções
Passo Ação
2: Data de início é maior que data de fim Apresenta mensagem de erro para usuário e aguarda correção
Fluxos alternativos
Usuário de Sistema Sistema
7. Relatório deve ser enviado por e-mail
8. Enviar e-mail para o usuário atual com o relatório.
9. Apresentar mensagem de sucesso indicando para qual e-mail o relatório foi enviado.
10. Verificar caixa de e-mail e abrir relatório 11. Conferir relatório