Modelagem de Dados - alanrigoni/Smart-Game GitHub Wiki

Modelagem de Dados

A modelagem de dados tem como objetivo gerar a estruturação dos dados utilizados pela aplicação e pelo banco de dados do projeto. Para isso, foram elaborados instrumentos que auxiliassem o projeto de desenvolvimento do software.

Diagrama de Caso de Uso

O diagrama de caso de uso descreve todas as funcionalidades propostas para a aplicação e seus respectivos atores (papéis de software ou de usuário).

Diagrama de Caso de Uso

Caso de Uso Descrição
Iniciar Jogo Inicia o jogo
Carregar Jogo Carrega a fase no qual o jogador parou
Coletar Cristais no Jogo Coleta os cristais para pular perguntas
Movimentar-se no Jogo O personagem é movimentado no jogo
Obter Pergunta Obtém a pergunta quando entra em contato com o inimigo
Responder Pergunta Responde a pergunta no qual o inimigo realizou
Avançar Para Próxima Fase Respondendo corretamente, o personagem poderá avançar a fase

Diagrama de Classe

O diagrama de classe é considerado a parte central UML pois representa todos os elementos de dados que serão utilizados pela aplicação e pelo banco de dados.

Diagrama de Classe

Classe Descrição
Pergunta Informações da pergunta
Alternativas Contém as alternativas da pergunta
Resposta Contém a resposta da pergunta
Tipo Contém o tipo da pergunta

Dicionário de Dados

  • Pergunta
Dado Descrição Tipo
Cod_pergunta Identificador único da pergunta Número
Pergunta Pergunta Texto
Cod_tipo Dado importado da classe Tipo Número
  • Alternativas
Dado Descrição Tipo
Cod_alternativa Identificador único da alternativa Número
alternativa_a Alternativa A Texto
alternativa_b Alternativa B Texto
alternativa_c Alternativa C Texto
alternativa_d Alternativa D Texto
  • Resposta
Dado Descrição Tipo
resposta Resposta para a pergunta sendo um valor verdadeiro Booleano
Cod_pergunta Dado importado da classe Pergunta Texto
Cod_alternativa Dado importado da classe Alternativa Texto
  • Tipo
Dado Descrição Tipo
Cod_tipo Determina a dificuldade da pergunta Número

Modelo Físico do Banco

// Estrutura da tabela `Pergunta`

"Pergunta": {
    "cod_pergunta": Number,
    "pergunta": String,
    "Fk cod_tipo": Number;
}

// Estrutura da tabela `Alternativas`

"Alternativas": {
    "Pk cod_alternativa": Number,
    "alternativa_a": String,
    "alternativa_b": String,
    "alternativa_c": String,
    "alternativa_d": String;
}

// Estrutura da tabela `Resposta`

"Resposta": {
    "resposta": Boolean,
    "Fk cod_pergunta": Number,
    "Fk cod_alternativa": Number;
}

// Estrutura da tabela `Tipo`

"Tipo": {
    "Pk cod_tipo": Number;
}