IREI
folitédnico
1 daGuarda
Polytechnic of GuardaRELATÓRIO DE PROJETO
Licenciatura em Engenharia Informática
Micael Madeira Saraiva
Instituto Politécnico da Guarda
Escola Superior de Tecnologia e Gestão
Micael Madeira Saraiva, nº 1009996
Projeto de Engenharia Informática
ii
Instituto Politécnico da Guarda
Escola Superior de Tecnologia e Gestão
Gestão de Presenças
Aplicação Móvel para gerir as presenças dos Alunos do Instituto
Politécnico da Guarda
iii
Instituto Politécnico da Guarda
Escola Superior de Tecnologia e Gestão
Gestão de Presenças
Aplicação Móvel para gerir as presenças dos Alunos do Instituto
Politécnico da Guarda
Orientador: Doutor Noel Lopes.
Micael Madeira Saraiva Dezembro de 2015
i
Agradecimentos
Á família sem ela não seria possível concretizar este sonho, aos colegas de escola foram um elemento importante nos momentos difíceis, todos os amigos que sempre estiveram do meu lado, aos docentes da ESTG, especialmente ao meu orientador deste projeto Professor Doutor Noel Lopes, um obrigado.
ii
Resumo
Este relatório tem como objetivo descrever e discriminar o trabalho realizado na Unidade Curricular de Projeto de Informática, esta unidade curricular pertence à Licenciatura de Engenharia Informática.
Devido à rápida e constante evolução dos dispositivos móveis tem-se notado um grande crescimento no desenvolvimento de aplicações com a finalidade de serem executadas em um
smartphone ou tablet.
Uma Aplicação Web tem a vantagem em relação a uma aplicação nativa de poder ser executada em qualquer sistema operativo seja ele Android, IOS, etc.
Este projeto proposto pelo docente Noel Lopes do Instituto Politécnico da Guarda, consiste em uma aplicação web para a gestão de presenças de alunos em sala de aula em que o Professor cria a Aula da Unidade Curricular que está a Lecionar, o aluno marca que está presente e o Professor valida ou não consoante a presença do aluno na aula.
A ferramenta utilizada no desenvolvimento deste projeto foi o Microsoft Visual Studio, com recurso às tecnologias C#, ASP.net e SQL Server.
iii
ABSTRACT
This report aims to describe and distinguish the work done in the Course of Computer Project, this course belongs to the Bachelor of Computer Science.
Due to the constant and rapid evolution of mobile devices has noticed a big growth in developing applications in order to run on a smartphone or tablet.
A Web application has the advantage over a native application can be run on any operating system be it Android, iOS, etc.
This project proposed by the teacher Noel Lopes Polytechnic Institute of Guarda, consists of a web application for managing attendance of students in the classroom where the teacher creates the lesson of the course that is to Teach the student mark is present and Professor valid or not depending on the presence of the student in class.
The tool used in the development of this project was the Microsoft Visual Studio, using C # ace technologies, ASP.net and SQL Server.
iv
Índice
1.INTRODUÇÃO ... 1 1.1.Motivação ... 1 1.2. Definição do Problema ... 1 1.3. Objetivos Previstos ... 2 1.4. Solução ... 2 1.5. Estrutura do Documento ... 2 2.ESTADO DE ARTE ... 4 2.1. Introdução ... 42.2. Exemplos de Aplicações Existentes ... 4
2.2.1. AccuClass ... 5
2.2.2. School Track ... 6
2.2.3. APlus+Attendance ... 7
2.2.4. MyAttendanceTracker ... 8
2.3 Análise Crítica do Estado de Arte ... 8
3.METODOLOGIA E RESULTADOS ESPERADOS ... 9
3.1.Metodologia ... 9
3.2. Descrição de Tarefas ... 9
3.3. Resultados Esperados ... 10
4.ANÁLISE DOS REQUESITOS E CONCEÇÃO DA APLICAÇÃO ... 12
4.1. Diagrama de Contexto... 12
4.2. Atores e Respetivos Casos de Uso ... 13
4.3. Diagrama de Casos de Uso ... 14
4.4. Descrição de Casos de Uso ... 15
4.4.1. Descrição do Caso de Uso, Criar Cursos ... 16
4.4.2. Descrição do Caso de Uso, Inscrever Docentes ... 16
4.4.3. Descrição do Caso de Uso, Inscrever Alunos... 17
4.4.4. Descrição do Caso de Uso, Criar Unidades Curriculares ... 17
4.4.5. Descrição do Caso de Uso, Inscrever Alunos na Unidade Curricular ... 18
4.6. Descrição do Caso de Uso, Criar Aula ... 19
4.4.7. Descrição do Caso de Uso, Marcar Presença ... 20
4.4.2. Descrição do Caso de Uso, Validar Presença ... 21
4.5.Diagramas de Sequência ... 21
4.5.1.Diagrama de Sequência, Criar Curso ... 22
4.5.2.Diagrama de Sequência, Inscrever Docente ... 23
v
4.5.4.Diagrama de Sequência, Criar Aula ... 25
4.5.5.Diagrama de Sequência, Inscrever Aluno ... 26
4.5.6.Diagrama de Sequência, Inscrever Aluno na Unidade Curricular ... 27
4.5.7.Diagrama de Sequência, Marcar Presença... 28
4.6.Diagrama de Classes ... 30
4.7. Semântica de Classes ... 31
4.7.1.Semântica e Operações da Classe, Curso ... 31
4.7.2.Semântica e Operações da Classe, Docente ... 32
4.7.3.Semântica e Operações da Classe, Unidade Curricular ... 33
4.7.4.Semântica e Operações da Classe, Aula ... 35
4.7.5.Semântica e Operações da Classe, Inscrição ... 36
4.7.6.Semântica e Operações da Classe, Aluno ... 37
5.TECNOLOGIAS UTILIZADAS ... 38 5.1.Introdução ... 38 5.1.1.ASP.NET ... 38 5.1.2.C# ... 39 5.1.3.MicrosoftVisualStudio ... 39 5.1.4.SQLServer ... 40 5.1.5.MicrosoftVisio ... 40 6.IMPLEMENTAÇÃO DA SOLUÇÃO ... 41 6.1.Introdução ... 41 6.2.Registo de utilizadores ... 41
6.3.Página Inicial e de Login na aplicação ... 41
6.4.Página para o Docente Criar a Aula ... 42
6.5. Páginas para o Gestor Ver/Criar/Editar Cursos ... 43
6.5. Página para o Gestor Criar uma Unidade Curricular ... 44
6.5. Página para o Gestor inscrever os alunos nas unidades curriculares e listar ou mesmo alterar as inscrições ... 45
7. CONCLUSÃO E TRABALHO FUTURO ... 46
7.1. Conclusão ... 46
7.2. Trabalho Futuro ... 46
REFERÊNCIAS BIBLIOGRÁFICAS ... 47
Anexo A ... 48
vii
ÍNDICE DE TABELAS
Tabela 1 Casos de uso ... 13
Tabela 2 Descrição do Caso de Uso, Criar Cursos ... 16
Tabela 3 Descrição do Caso de Uso, Inscrever Docentes ... 16
Tabela 4 Descrição do Caso de Uso, Inscrever Alunos ... 17
Tabela 5 Descrição do Caso de Uso, Criar Unidades Curriculares ... 17
Tabela 6 Descrição do Caso de Uso, Inscrever Alunos na Unidade Curricular ... 18
Tabela 7 Descrição do Caso de Uso, Criar Aula ... 19
Tabela 8 Descrição do Caso de Uso, Marcar Presença ... 20
Tabela 9 Descrição do Caso de Uso, Validar Presença ... 21
Tabela 10 Semântica da Classe, Curso ... 31
Tabela 11 Operações da Classe, Curso ... 31
Tabela 12 Semântica da Classe, Docente ... 32
Tabela 13 Operações da Classe, Docente ... 32
Tabela 14 Semântica da Classe, Unidade Curricular ... 33
Tabela 15 Operações da Classe, Unidade Curricular ... 34
Tabela 16 Semântica da Classe, Aula ... 35
Tabela 17 Operações da Classe, Aula ... 35
Tabela 18 Semântica da Classe, Inscrição ... 36
Tabela 19 Operações da Classe, Inscrição ... 37
Tabela 20 Semântica da Classe, Aluno ... 37
viii
ÍNDICE DE FIGURAS
Figura 1, Imagem Plataforma AccuClass ... 5
Figura 2, Imagem Plataforma School Track ... 6
Figura 3, Imagem Plataforma APlus+Attendance ... 7
Figura 4 Imagem Plataforma MyAttendanceTracker ... 8
Figura 5 Lista de Tarefas ... 10
Figura 6 Mapa de Gantt ... 10
Figura 7 Diagrama de Contexto ... 12
Figura 8 Diagrama de Casos de Uso ... 14
Figura 9 Diagrama de Sequência, Criar Curso ... 22
Figura 10 Diagrama de Sequência, Inscrever Docente... 23
Figura 11 Diagrama de Sequência, Criar Unidade Curricular ... 24
Figura 12 Diagrama de Sequência, Criar Aula ... 25
Figura 13 Diagrama de Sequência, Inscrever Aluno ... 26
Figura 14 Diagrama de Sequência, Inscrever Aluno na Unidade Curricular ... 27
Figura 15 Diagrama de Sequência, Marcar Presença ... 28
Figura 16 Diagrama de Sequência, Validar Presença ... 29
Figura 17 Diagrama de Classes ... 30
Figura 18 Imagem ASP.NET ... 38
Figura 19 ... 38
Figura 20 Imagem C# ... 39
Figura 21 MicrosoftVisualStudio ... 39
Figura 22SQLServer ... 40
Figura 23 MicrosoftVisio ... 40
Figura 24 Imagem Página Inicial e de Login na aplicação ... 41
Figura 25 Imagem Página para o Docente Criar a Aula ... 42
Figura 26 Imagem Página para os gestor ver os cursos existentes no sistema ... 43
Figura 27 Imagem Página para os gestor criar cursos no sistema ... 43
Figura 28 Imagem Página para os gestor editar os cursos existentes no sistema ... 44
Figura 29 Imagem Página para o Gestor Criar uma Unidade Curricular ... 44
Figura 30 Imagem Página para o Gestor inscrever os alunos nas unidades curriculares ... 45
Figura 31 Imagem Página para o Gestor editar os alunos nas unidades curriculares ... 45 Figura 32 Base de Dados da Aplicação ... Erro! Marcador não definido.
ix
Glossário
API – Application Programming Interface ASP.NET – Active Server Pages.NET BD – Base de Dados
CSS – Cascading Style Sheets DE – Diagrama de Estados ER – Entidade Relacionamento FK – Foreign Key
HTML – HyperText Markup Language IDE – Integrated Development Environment IIS – Internet Information Services
IPG – Instituto Politécnico da Guarda OS – Operating system
PDF – Portable Document Format PK – Primary Key
SGBD – Sistema de Gestão de Base de Dados SQL – Structured Query Language
T-SQL – Transact-Structured Query Language
UML – Unified Modeling Language
URL – Uniform Resource Locator
XML – eXtensible Markup Language
1.INTRODUÇÃO
O projeto consiste no desenvolvimento de uma aplicação web para dispositivos móveis, para registar a presença de alunos em sala de aula, atualmente regista-se em papel, visto que ao longo dos anos se tem minorado o gasto excessivo de papel por ser um grave problema para o ambiente e ao mesmo tempo facilitar a tarefa os fastidiosa de analisar dados em papel, cria-se então esta aplicação web para dispositivos móveis.
1.1.Motivação
A principal motivação para a escolha deste projeto foi o fato de se poder desenvolver uma aplicação para o Instituto Politécnico da Guarda, onde se possa cada vez mais analisar o desempenho individual de cada aluno, e deixar em aberto para que outros alunos continuem o desenvolvimento da mesma.
O fato de achar que as aplicações cada vez menos vão ser nativas e sim vão ser aplicações em que o utilizador acede a uma aplicação presente em um servidor e faz o pretendido aumentou em muito a motivação para este projeto também pelo gosto das tecnologias Microsoft em especial a tecnologia ASP.net.
1.2. Definição do Problema
Desenvolvimento de uma aplicação web para dispositivos móveis com a finalidade de registar a presença de alunos na sala de aula com validação pelo professor.
O Administrador:
Inscreve Docentes na aplicação; Inscreve Alunos na aplicação; Inscreve Cursos na aplicação;
Inscreve Unidades Curriculares na aplicação; Inscreve Alunos nas Unidades Curriculares.
2
O Docente:
Inscreve a aula da unidade curricular na aplicação; Valida a presença dos vários alunos na aula.
O Aluno:
Marca a presença na aula.
1.3. Objetivos Previstos
Os objetivos previstos, do projeto, que se pretendem atingir são os seguintes: Registar, consultar, pesquisar, editar Docentes;
Registar, consultar, pesquisar, editar Alunos; Registar, consultar, pesquisar, editar Cursos;
Registar, consultar, pesquisar, editar Unidades Curriculares; Registar, consultar, pesquisar, editar Aula;
Inscrever alunos nas Unidades Curriculares;
Visualizar os dados da aplicação importantes para o aluno e para o Docente.
1.4. Solução
A resolução para a criação da solução passa pela criação de uma aplicação móvel que registe Docentes e Alunos e manipule toda a sua informação relativa a presença em Aulas de determinada Unidade Curricular, informatizando e simplificando todo o processo.
A aplicação apenas se destina a Docentes e Alunos registados pelo Administrador.
1.5. Estrutura do Documento
O presente documento contém sete capítulos.O primeiro capítulo dá a conhecer a motivação do presente projeto, a definição do problema, os objetivos previstos, a solução encontrada, a contribuição e a estrutura do documento.
3 O segundo capítulo retrata o estado da arte, mostra aplicações existentes no mercado analisando-as.
O terceiro capítulo fala das metodologias usadas no desenvolvimento, descreve as tarefas e já mostra os resultados esperados.
O quarto capítulo mostra a conceção da aplicação desde a análise dos requisitos, onde se expõem os diagramas de contexto, de classes de casos de uso e os vários diagramas da linguagem UML.
O quinto capítulo fala das tecnologias e software usado para conceber aplicação. O sexto capítulo é o que contém a implementação da solução, mostra algumas partes da aplicação.
O sétimo capítulo mostra as vantagens de se ter desenvolvido a aplicação, fala de módulos seguintes que se possam desenvolver na própria aplicação.
4
2.ESTADO DE ARTE
2.1. Introdução
Retrata-se neste capítulo o estado da arte, aplicações idênticas existentes no mercado, analisam-se com o intuito de retirar ideias, verificar se nelas existem módulos que estejam em falta, para tornar a nossa aplicação diferente e útil, para a escola. Sempre que se faz um projeto seja ele académico ou não, faz-se esta etapa até para saber se é viável ou não a elaboração do mesmo, encontrando-se uma solução no mercado, seja ela de acesso livre ou não os custos podem ser inferiores ao desenvolvimento de uma solução.
Em todas as aulas do Instituto Politécnico da Guarda é passada uma folha aonde os alunos aferem acerca da sua assiduidade, devido aos problemas com o gasto excessivo de papel e para se facilitar a análise dos dados a Instituição necessita de uma aplicação móvel web que registe e manipule os dados relativos à presença dos alunos em sala de aula.
2.2. Exemplos de Aplicações Existentes
Existem diversas aplicações no mercado de controlo de assiduidade, aplicações de software com validação por hardware, as aplicações que de momento mais interessa analisar são aplicações destinadas a serem executadas em um dispositivo móvel tendo-se então analisado as seguintes: AccuClass, School Track, APlus+Attendance, MyAttendanceTracker.
5
2.2.1. AccuClass
Plataforma web baseada na nuvem, destaca-se por ser simples de configurar e usar, tem múltiplas opções para registar a assiduidade, desde um leitor RFID, computador com ligação web, dispositivo Apple usando o dispositivo especial AccuClass, um computador como uma estação passando os alunos o seu cartão de identificação de estudante, relógio de parede.
Guarda informações acerca da assiduidade: Presente, Ausente, Chegou Tarde, Partiu Cedo e Desculpou-se.
Rapidamente se vê o mapa do semestre referente à assiduidade dos vários alunos, podem-se exportar os dados para outras aplicações, pode usar toda a instituição ou apenas um professor.
6
2.2.2. School Track
Plataforma web que se destaca por dar informações aos pais/tutores aquando alguma infração por parte do seu educando, também mostra e imprime os relatórios detalhados. Tem quatro versões, School Track Premier, School Track Complete, Light Client Edition, Scan Station Mobile.
7
2.2.3. APlus+Attendance
Plataforma destinada a institutos de ensino superior, plataforma que controla a frequência dos alunos economizando tempo e melhora a produtividade de cada professor pois destaca-se por ser uma plataforma que facilmente de cada apresenta o desempenho aluno, curso ou mesmo semestre, todos estes dados são confidenciais.
8
2.2.4. MyAttendanceTracker
Plataforma On-line, para facilitar a tarefa fastidiosa de controlar as presenças em sala de aula, gratuitamente.
Importam-se ou introduzem-se as listas de alunos, depois já na sala de aula em muito pouco tempo com um dispositivo que aceda à internet seleciona-se a turma e afere-se acerca da assiduidade de cada aluno.
Mais tarde facilmente se observam os dados recolhidos anteriormente e fazem-se consultas personalizáveis em qualquer lugar.
Pode-se registar avaliações de cada aluno e tudo isto está visível aos pais.
Esta plataforma ainda permite exportar os dados para o Exel e PDF com a profundidade que se pretender.
Figura 4 Imagem Plataforma MyAttendanceTracker
2.3 Análise Crítica do Estado de Arte
Pode-se retirar uma pequena conclusão acerca das várias ferramentas analisadas, todas elas são muito diferentes umas das outras, nenhuma corresponde às necessidades levantadas e mesmo a elaboração de uma aplicação de raiz deixa sempre a oportunidade de criar módulos diferentes, para mais tarde adaptar às necessidades que forem levantadas ao longo do tempo.
9
3.METODOLOGIA
E
RESULTADOS
ESPERADOS
3.1.Metodologia
A metodologia para desenvolver, implementar e testar a aplicação móvel, foi uma metodologia Ágil, neste caso o cliente foi o orientador deste projeto, Doutor Noel Lopes, onde a cada implementação se mostrava para saber a satisfação.
A aplicação móvel web foi desenvolvida da seguinte forma:
1. Analisaram-se os requisitos funcionais a ter em conta para a elaboração da aplicação; 2. As páginas web dinâmicas foram criadas recorrendo a tecnologia ASP.net com o Visual
Studio 2013;
3. O C# foi utilizado para criar as ações dos objetos nas páginas neste caso usou-se para criar as permissões dos vários tipos de utilizadores da aplicação;
4. A base de dados foi criada com recuso ao SQL Server da Microsoft; 5. O relatório foi elaborado no Word.
3.2. Descrição de Tarefas
Principais tarefas:
1: Análise dos requisitos funcionais; 2: Estado da Arte;
3: Análise das Tecnologias a Utilizar; 4: Criação da Base de Dados; 5: Criação da aplicação; 6: Elaboração do relatório.
10
Figura 5 Lista de Tarefas
A seguir apresenta-se o respetivo mapa de Gant:
Figura 6 Mapa de Gantt
3.3. Resultados Esperados
Prevê-se que a aplicação seja capaz de: Permitir ao Gestor:
1. Criar e ver Cursos no sistema; 2. Criar e ver Unidades Curriculares; 3. Inscrever Alunos;
4. Inscrever Docentes;
5. Inscrever e ver Alunos na Unidade curricular;
Permitir ao Docente:
11 2.Validar a presença dos vários alunos.
Permitir ao Aluno:
12
4.ANÁLISE
DOS
REQUESITOS
E
CONCEÇÃO DA APLICAÇÃO
4.1. Diagrama de Contexto
O diagrama de contexto, representa o sistema como um único processo é o diagrama de mais alto nível, dele fazem parte os fluxos de dados que mostram as interfaces entre o sistema e as entidades externas, serve para mostrar a relação do projeto com o ambiente.
Também permite identificar os limites dos processos, as áreas envolvidas com o processo e os relacionamentos com os outros processos até com elementos externos à empresa, ex: clientes e fornecedores. Mostra as caraterísticas do sistema, como as pessoas ou outros sistemas interagem com o sistema, os dados que o sistema recebe e processa, os dados que o sistema gera para o ambiente aonde está inserido e mostra a fronteira do sistema com o ambiente.
13
4.2. Atores e Respetivos Casos de Uso
A Seguir apresentam-se os vários atores do sistema com os seus respetivos casos de uso, os casos de uso referem os requisitos funcionais do sistema.
Tabela 1 Casos de uso
Ator Respetivos Casos de Uso
Aluno Marcar Presença na Aula Docente Validar Presenças
Criar a respetiva aula que vai lecionar Gestor Criar Cursos
Criar Unidades Curriculares Inscrever Alunos
Inscrever Docentes
14
4.3. Diagrama de Casos de Uso
O diagrama de casos de uso seve para descrever as funcionalidades que estão a por em causa a elaboração da aplicação, é um bom diagrama para exemplificar os requisitos funcionais do sistema, referindo qual o ator que efetua o caso de uso, se tem ou não de ter feito o login no sistema e refere a fronteira do sistema.
Em um caso de uso existe sempre um ator e o caso de uso é a funcionalidade que ele vai efetuar no sistema.
15
4.4. Descrição de Casos de Uso
Os Casos de uso servem para descrever os caminhos possíveis entre o ator e o sistema, cada caso de uso deve descrever unicamente uma funcionalidade ou um objetivo do sistema, pode acontecer um caso de uso estar ligado a outro caso de uso.
O nome indica o próprio nome do caso de uso;
A descrição diz qual o objetivo do caso de uso em questão;
Os atores envolvidos são os atores envolvidos no respetivo caso de uso;
As pré-condições referem as condições necessárias ao desenvolvimento do caso de uso, ex: Login;
A prioridade é a importância relativa ao caso de uso, ex: baixa, média ou alta; O caminho ou cenário principal é o caminho do ator principal;
Os caminhos alternativos são caminhos secundários e preciso acontecer algo de extraordinário para se darem;
Os suplementos ou adornos são as condições que são postas para que o caso de uso seja executado;
16
4.4.1. Descrição do Caso de Uso, Criar Cursos Tabela 2 Descrição do Caso de Uso, Criar Cursos
Nome
Criar CursosDescrição
O gestor cria o curso no sistema onde são lecionadas as aulas da unidade curricular.Atores Envolvidos
GestorPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Criar Curso;
2. Em seguida o sistema apresenta os vários cursos; 3. O ator carrega no botão Adicionar Novo;
4. O sistema apresenta um formulário a pedir o nome do novo curso;
5. O ator introduz o nome do novo curso e carrega no botão Inserir Curso;
6. O sistema guarda o Curso na base de dados.
Caminhos alternativos
Suplementos ou Adornos
Testar se o sistema deixa introduzir campos nulos ou
Inválidos.
Pós condições
Proceder às alterações na base de dados.
4.4.2. Descrição do Caso de Uso, Inscrever Docentes
Tabela 3 Descrição do Caso de Uso, Inscrever Docentes
Nome
Inscrever DocentesDescrição
O gestor cria um novo Docente no sistema.Atores Envolvidos
GestorPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Inscrever Docente;
2. O sistema apresenta um formulário a pedir o username, a password e o nome do novo Docente; 3. O ator introduz o username, a password e o nome
do novo Docente e clica no botão Criar Utilizador; 4. O sistema guarda os dados do novo Docente na
base de dados.
Caminhos alternativos
Suplementos ou Adornos
17
4.4.3. Descrição do Caso de Uso, Inscrever Alunos
Tabela 4 Descrição do Caso de Uso, Inscrever Alunos
Nome
Inscrever AlunosDescrição
O gestor cria um novo Aluno no sistema.Atores Envolvidos
GestorPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Inscrever Aluno;
2. O sistema apresenta um formulário a pedir o username, a password e o nome do novo Aluno; 3. O ator introduz o username, a password e o nome
do novo Aluno e clica no botão Criar Utilizador; 4. O sistema guarda os dados do novo Aluno na base
de dados.
Caminhos alternativos
Suplementos ou Adornos
Pós condições
Proceder às alterações na base de dados.
4.4.4. Descrição do Caso de Uso, Criar Unidades Curriculares
Tabela 5 Descrição do Caso de Uso, Criar Unidades Curriculares
Nome
Criar Unidades CurricularesDescrição
O gestor cria uma nova Unidade Curricular no sistema.Atores Envolvidos
GestorPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Criar Unidade Curricular;
2. O sistema apresenta um formulário a pedir o nome da Unidade Curricular, o semestre, o ano Letivo, a turma, o curso e o docente que a vai Lecionar. 3. O ator introduz o nome da Unidade Curricular, o
Semestre, o ano Letivo, a turma e seleciona da Base de dados o curso a que a UC pertence e o Docente que a vai Lecionar e carrega no botão Inserir UC; 4. O sistema introduz na base de dados os dados
relativos à UC.
Caminhos alternativos
3.A. O sistema não apresenta dados relativos ao Curso e ao Docente.18
Suplementos ou Adornos
Testar se o sistema deixa introduzir campos nulos ou
Inválidos.
Pós condições
Proceder às alterações na base de dados.
4.4.5. Descrição do Caso de Uso, Inscrever Alunos na Unidade Curricular
Tabela 6 Descrição do Caso de Uso, Inscrever Alunos na Unidade Curricular
Nome
Inscrever Alunos na Unidade CurricularDescrição
O gestor inscreve alunos nas respetivas unidades curriculares.Atores Envolvidos
GestorPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Inscrever Alunos na UC;
2. O sistema apresenta um formulário a perguntar qual o aluno e a qual a UC;
3. O ator seleciona o aluno e a UC de dados já anteriormente inseridos na base de dados e carrega no botão Inscrever Aluno;
4. O sistema introduz na base de dados os dados relativos à inscrição.
Caminhos alternativos
3.A. O sistema não apresenta dados relativos ao Aluno e/ou Unidade Curricular.Suplementos ou Adornos
Testar se foram inseridos dados duplicados.Pós condições
Proceder às alterações na base de dados.
19
4.6. Descrição do Caso de Uso, Criar Aula
Tabela 7 Descrição do Caso de Uso, Criar Aula
Nome
Criar AulaDescrição
O docente cria a aula que vai lecionar.Atores Envolvidos
DocentePré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Criar Aula;
2. O sistema apresenta um formulário onde o ator só terá de escrever a data e hora da aula e escolher a unidade curricular a que se refere;
3. O ator insere a data e hora da aula que vai lecionar e seleciona a unidade curricular a que a aula se refere e carrega no botão criar aula;
4. O sistema guarda os dados relativos à aula na base de dados.
Caminhos alternativos
3.A. O sistema não apresenta unidades curriculares.Suplementos ou Adornos
Testar se o sistema deixa introduzir campos nulos ou
Inválidos na data e hora.
20
4.4.7. Descrição do Caso de Uso, Marcar Presença
Tabela 8 Descrição do Caso de Uso, Marcar Presença
Nome
Marcar PresençaDescrição
O aluno marca presença na aula que está a assistir.Atores Envolvidos
AlunoPré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Marcar Presença na Aula;
2. Em seguida o sistema apresenta um formulário para o aluno selecionar a aula e aferir acerca da sua assiduidade.
3. O ator diz que está presente ou se chegou tarde. 4. O sistema guarda os dados na base de dados.
Caminhos alternativos
2.A. O sistema não apresenta dados acerca da aula que o aluno está a assistir.Suplementos ou Adornos
Testar se o sistema deixa introduzir campos nulos ou
Inválidos quando o aluno está a aferir acerca da sua
assiduidade.
21
4.4.2. Descrição do Caso de Uso, Validar Presença
Tabela 9 Descrição do Caso de Uso, Validar Presença
Marcar Presença na Aula Validar Presença
Descrição
O docente cria o curso no sistema onde são lecionadas aulas da unidade curricular.Atores Envolvidos
DocentePré condições
LoginPrioridade
AltaCaminho principal
ou
Cenário principal
1. O caso de uso começa quando o ator seleciona a opção Validar Presença;
2. Em seguida aparecem as unidades curriculares afetas ao docente e ele seleciona a aula aonde quer validar as presenças;
3. O docente confirma ou não a presença anteriormente aferida pelo aulo;
4. O sistema guarda os dados na base de dados.
Caminhos alternativos
Suplementos ou Adornos
Testar se o sistema deixa introduzir campos nulos ou
Inválidos quando o docente está a aferir acerca da
assiduidade dos vários alunos.
Pós condições
Proceder às alterações na base de dados.
4.5.Diagramas de Sequência
O diagrama de sequência é um diagrama UML, que representa a sequência dos processos do sistema, mensagens passadas entre os objetos. De uma forma simples e lógica representa a sequência global do comportamento dos vários módulos do sistema.
Um diagrama de sequência descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo. Ele registra o comportamento de um único caso de uso e exibe os objetos e as mensagens passadas entre esses objetos no caso de uso.
22
4.5.1.Diagrama de Sequência, Criar Curso
Este diagrama explica a forma como é criado um novo Curso no sistema.
23
4.5.2.Diagrama de Sequência, Inscrever Docente
Este diagrama explica a forma como é criado um novo Docente no sistema.
24
4.5.3.Diagrama de Sequência, Criar Unidade Curricular
Este diagrama explica a forma como é criada uma nova unidade curricular no sistema.
25
4.5.4.Diagrama de Sequência, Criar Aula
Este diagrama explica como é que o Docente cria a aula no sistema.
26
4.5.5.Diagrama de Sequência, Inscrever Aluno
Este diagrama explica como é que o Gestor inscreve um novo aluno no sistema.
27
4.5.6.Diagrama de Sequência, Inscrever Aluno na Unidade Curricular
Este diagrama explica como é que o Gestor inscreve os alunos nas Unidades Curriculares.
28
4.5.7.Diagrama de Sequência, Marcar Presença
Este diagrama explica como é que o aluno marca que está presente na aula que está a assistir.
29
4.5.8.Diagrama de Sequência, Validar Presença
Este diagrama explica como e que o Docente valida a presença anteriormente aferida pelo aluno.
30
4.6.Diagrama de Classes
Um diagrama de classes serve para representar a estrutura e relações das classes
do próprio sistema de software.
Este diagrama serve como base para a construção dos diversos diagramas de
comunicação, diagramas de sequência e diagramas de estados.
31
4.7. Semântica de Classes
A semântica de classes tem como objetivo descrever as classes utilizadas:
O nome do campo diz qual é o campo da classe;
O tipo de dados diz qual é o tipo de atributo;
A descrição é uma explicação acerca do atributo da classe;
Os valores válidos referem os valores aceitáveis;
O formato representa a forma como o atributo vai ser exposto.
As restrições dizem se o atributo e tratado pelo sistema ou pelo utilizador.
O valor por defeito indica se o campo já tem um valor antes de o utilizador inserir
algum dado.
4.7.1.Semântica e Operações da Classe, Curso
Tabela 10 Semântica da Classe, Curso
Curso Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeito IdCurso (PK) Numeração Automática Número sequencial que identifica univocamente o curso > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado - Nome do Curso String Nome Do Curso Caracteres de A a Z Até 500 caracteres Obrigatório e alterável -
Tabela 11 Operações da Classe, Curso
Operações
Nome Descrição
Criar Permite criar um novo curso no sistema 1. Sistema gera o IdCurso;
2. Introduzir o nome do novo Curso; Editar Permite editar o nome de um curso já
anteriormente inserido no sistema 1. Alterar o nome do Curso.
32
4.7.2.Semântica e Operações da Classe, Docente
Tabela 12 Semântica da Classe, Docente
Docente Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeito IdDocente (PK) Numeração Automática Número sequencial que identifica univocamente o docente > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado - Nome do Docente String Nome Do Docente Caracteres de A a Z Até 150 caracteres Obrigatório e alterável - Nome de Utilizador String Nome de Utilizador no sistema do Docente Caracteres de A a Z Até 150 caracteres Obrigatório -
Tabela 13 Operações da Classe, Docente
Operações
Nome Descrição
33
4.7.3.Semântica e Operações da Classe, Unidade Curricular
Tabela 14 Semântica da Classe, Unidade Curricular
Unidade Curricular Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeit o IdUniCurricular (PK) Numeraç ão Automát ica Número sequencial que identifica univocament e a Unidade Curricular > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado - Nome Unidade Curricular String Nome da Unidade Curricular Caractere s de A a Z Até 150 caractere s Obrigatóri o e alterável -
Semestre Char Semestre em que a unidade Curricular é Lecionada Carateres Numerico s 1 Carater Obrigatóri o e alterável -
Ano Letivo String Ano Letivo em que a Unidade Curricular vai Funcionar Carateres Até 9 caractere s Obrigatóri o e alterável -
Turma String Nome da Turma a que se destina a Unidade Curricular Carateres Até 150 caractere s Obrigatóri o e alterável - IdCurso (FK) Numeraç ão Automát ica Número sequencial que identifica univocament e o curso > 0 Até 9 dígitos Fornecido pelo sistema, pode ser alterado - IdDocente (FK) Numeraç ão Automát ica Número sequencial que identifica univocament e o docente > 0 Até 9 dígitos Fornecido pelo sistema, pode ser alterado -
34
Tabela 15 Operações da Classe, Unidade Curricular
Operações
Nome Descrição
Criar Permite criar uma nova unidade curricular no sistema:
1. Sistema gera o IdUniCurricular; 2. Introduzir o nome da nova Unidade Curricular;
3. Introduzir o semestre da nova Unidade Curricular;
4. Introduzir o ano letivo da nova Unidade Curricular;
5. Introduzir o semestre da nova Unidade Curricular;
6. Escolher o curso da nova Unidade Curricular;
7. Escolher o Docente da nova Unidade Curricular;
Editar Permite editar uma unidade curricular do sistema:
1. Editar o nome da Unidade Curricular; 2. Editar o semestre da Unidade
Curricular;
3. Editar o ano letivo da Unidade Curricular;
4. Editar o semestre da Unidade Curricular;
5. Editar o curso da Unidade Curricular; 6. Editar o Docente da Unidade
35
4.7.4.Semântica e Operações da Classe, Aula
Tabela 16 Semântica da Classe, Aula
Aula Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeit o Id Aula (PK) Numeraç ão Automáti ca Número sequencial que identifica univocament e a Aula > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado -
Data Hora Data e Hora Data e Hora em que vai ser lecionada a respetiva aula Valores Numérico s dd/mm/a aaa hh:mm:ss Obrigatóri o e alterável - IdUniCurricular (FK) Numeraç ão Automáti ca Número sequencial que identifica univocament e a Unidade Curricular > 0 Até 9 dígitos Fornecido pelo sistema, pode ser alterado -
Tabela 17 Operações da Classe, Aula
Operações
Nome Descrição
Criar Permite criar uma nova aula no sistema: 1. Sistema gera o IdAula;
2. O aluno afere acerca da sua assiduidade;
3. O professor afere acerca da assiduidade do respetivo aluno; 4. Quando o docente cria a aula insere
a data e hora a que a aula vai ser lecionada;
5. Escolher a Unidade Curricular a que a aule se refere.
36 Editar Permite editar uma aula do sistema:
1. O aluno altera o estado acerca da sua aferição acerca da sua assiduidade; 2. O professor altera o estado acerca
da sua aferição acerca da assiduidade do respetivo aluno;
3. O docente altera a data e hora a que a aula vai ser/foi lecionada;
4. Alterar a Unidade Curricular a que a aule se refere.
4.7.5.Semântica e Operações da Classe, Inscrição
Tabela 18 Semântica da Classe, Inscrição
Inscrição Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeito IdInscrição (PK) Numeração Automática Número sequencial que identifica univocamente a inscrição do aluno na unidade curricular > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado - IdAluno (FK) Numeração Automática Número sequencial que identifica univocamente o aluno > 0 Até 9 dígitos Fornecido pelo sistema, pode ser alterado - IdUniCurricular (FK) Numeração Automática Número sequencial que identifica univocamente a Unidade Curricular > 0 Até 9 dígitos Fornecido pelo sistema, pode ser alterado -
37
Tabela 19 Operações da Classe, Inscrição
Operações
Nome Descrição
Criar Permite criar uma nova Inscrição no sistema 1. Sistema gera o Id Inscrição;
2. Escolher o aluno;
3. Escolher a Unidade Curricular. Editar Permite alterar uma Inscrição no sistema
1. Escolher o aluno;
2. Escolher a Unidade Curricular.
4.7.6.Semântica e Operações da Classe, Aluno
Tabela 20 Semântica da Classe, Aluno
Aluno Nome do Campo Tipo de Dados Descrição Valores Válidos
Formato Restrições Valor por defeito IdAluno (PK) Numeração Automática Número sequencial que identifica univocamente o aluno > 0 Até 9 dígitos Gerado pelo sistema, não pode ser alterado - Nome do Aluno String Nome Do Aluno Caracteres de A a Z Até 150 caracteres Obrigatório e alterável - Nome de Utilizador String Nome de Utilizador no sistema do Aluno Caracteres de A a Z Até 150 caracteres Obrigatório - Numero aluno String Numero de Aluno Caracteres Numericos Até 8 caracteres Obrigatório e alterável -
Tabela 21 Operações da Classe, Aluno
Operações
Nome Descrição
38
5.TECNOLOGIAS UTILIZADAS
5.1.Introdução
Apresentam-se agora as tecnologias usadas no desenvolvimento deste projeto, aconteceu serem tecnologias Microsoft é um gosto pessoal e profissional, as tecnologias Microsoft facilitam o desenvolvimento na medida em que se caracterizam por dar ao programador ferramentas que o programador não precisa de estar a desenvolver código pois estas já apresentam soluções.
5.1.1.ASP.NET
Plataforma criada pela Microsoft para criar páginas web dinâmicas, o ambiente de desenvolvimento mais comum das aplicações ASP.NET é o Visual Studio.NET este já possui algumas características que facilitam o trabalho do programador, por exemplo componentes visuais para criação de formulários de páginas Web.
Notasse um ganho de desempenho com esta tecnologia visto ser compilada antes da execução.
Esta tecnologia necessita necessitam do Framework.NET e do servidor IIS para poderem ser executadas na Plataforma Windows.
Figura 18 Imagem ASP.NET Figura 19
39
5.1.2.C#
Linguagem de programação criada pela Microsoft, baseada no c++ mas inclui muitas influências de várias linguagens de programação como por exemplo o Java, compilada em bytecode e interpretada pela máquina virtual chamada CLR (Common Language Runtime).
Figura 20 Imagem C#
5.1.3.MicrosoftVisualStudio
Pacote de programas da Microsoft, para desenvolvimento de software. Usa a plataforma ASP.Net., sendo um grande produto de desenvolvimento na área web, suporta as linguagens Visual Basic (VB), C, C++, C# (C Sharp) e J# (J Sharp).
40
5.1.4.SQLServer
Sistema de gestão de base de dados, desenvolvido pela Microsoft e em parceria com a Sybase em 1988. As linguagens de consulta desta tecnologia são: T-SQL e ANSI SQL.
Figura 22SQLServer
5.1.5.MicrosoftVisio
Programa com o intuito de criar diagramas em ambiente Windows. Cria diagramas de diversos tipos como organogramas, fluxogramas, modelagem de dados (usando UML ou outra notação gráfica qualquer), diagramas de redes, plantas baixas, cartazes, etc.
41
6.IMPLEMENTAÇÃO DA SOLUÇÃO
6.1.Introdução
Todo o trabalho de análise serviu para tornar mais simples e rápido o desenvolvimento, de salientar que a base de dados não foi alterada desde o início da aplicação, como é uma aplicação para dispositivos móveis tentou-se ao máximo ir buscar dados anteriormente inseridos na base de dados visto não ser muito prático o utilizador final escrever em um smartphone ou tablet.
6.2.Registo de utilizadores
Por questões de segurança todos os docentes e alunos utilizadores da aplicação são registados pelo Gestor da aplicação.
6.3.Página Inicial e de Login na aplicação
Figura 24 Imagem Página Inicial e de Login na aplicação
42
6.4.Página para o Docente Criar a Aula
Nesta página o Docente cria a aula que vai lecionar, insere a data hora em que a aula vai ser lecionada, para mais tarde o aluno selecionar a aula aonde está presente e aferir acerca da sua assiduidade.
43
6.5. Páginas para o Gestor Ver/Criar/Editar Cursos
Nesta página o Gestor cria e edita os vários cursos no sistema para mais tarde quando estiver a criar as várias unidades curriculares referir a que curso se refere determinada unidade curricular.
Figura 26 Imagem Página para os gestor ver os cursos existentes no sistema
44
Figura 28 Imagem Página para os gestor editar os cursos existentes no sistema
6.5. Página para o Gestor Criar uma Unidade Curricular
Nesta página o Gestor cria as várias unidades curriculares para quando o docente estiver a criar a aula que vai lecionar referir a que Unidade Curricular pertence a respetiva aula.
45
6.5. Página para o Gestor inscrever os alunos nas unidades curriculares e listar ou mesmo alterar as inscrições
Nesta página o Gestor inscreve os alunos nas suas respetivas unidades curriculares torna-se importante saber o número de alunos inscritos em determinada unidade curricular para saber o número de ausências à respetiva aula não só para fins estatísticos mas sim para reduzir o número de ausências às aulas lecionadas
Figura 30 Imagem Página para o Gestor inscrever os alunos nas unidades curriculares
46
7. CONCLUSÃO E TRABALHO FUTURO
7.1. Conclusão
Um projeto académico serve para ligar os conhecimentos teóricos pondo-os em prática aprofundando-se assim a aprendizagem.
Os objetivos foram cumpridos e ao superar-se as diversas dificuldades aumentou-se então a aprendizagem da Licenciatura.
Foi um projeto enriquecedor com vista a preparação para o mercado de trabalho.
7.2. Trabalho Futuro
Todas as funcionalidades inicialmente previstas foram implementadas, ao desenvolver-se a aplicação surgiram novas ideias, deixa-desenvolver-se então aplicação à escola para que um aluno em um próximo ano Letivo possa continuar o respetivo projeto implementando então novas funcionalidades, módulos tais como, comunicação entre os vários alunos e professores.
47
REFERÊNCIAS BIBLIOGRÁFICAS
[1] “Diagrama Casos Uso” [Online]. Available: https://pt.wikipedia.org/wiki/Diagrama_de_caso_de_uso.
[Acedido em 25 11 2015].
[2] “Diagrama de Sequência” [Online]. Available: https://pt.wikipedia.org/wiki/Diagrama_de_sequ%C3%AAncia.
[Acedido em 25 11 2015].
[3] “Diagrama de Classes” [Online]. Available: https://pt.wikipedia.org/wiki/Diagrama_de_classes.
[Acedido em 25 11 2015].
[4] “Diagrama de Contexto” [Online]. Available: https://pt.wikipedia.org/wiki/Diagrama_de_contexto.
[Acedido em 25 11 2015].
48
Anexo A
Script que gera a base de dados
CREATE TABLE [dbo].[Aluno] (
[IdAluno] INT IDENTITY (1, 1) NOT NULL,
[nomeAluno] VARCHAR (100) NOT NULL,
[numeroAluno] CHAR (7) NOT NULL,
[user] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([IdAluno] ASC) );
CREATE TABLE [dbo].[Aluno_Aula] (
[IdAluno_Aula] INT IDENTITY (1, 1) NOT NULL,
[IdAluno] INT NOT NULL,
[IdAula] INT NOT NULL,
PRIMARY KEY CLUSTERED ([IdAluno_Aula] ASC),
CONSTRAINT [IdAluno2] FOREIGN KEY ([IdAluno]) REFERENCES [dbo].[Aluno]
([IdAluno]),
CONSTRAINT [IdAula] FOREIGN KEY ([IdAula]) REFERENCES [dbo].[Aula] ([IdAula]) );
CREATE TABLE [dbo].[Applications] (
[ApplicationName] NVARCHAR (235) NOT NULL,
[ApplicationId] UNIQUEIDENTIFIER NOT NULL,
[Description] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([ApplicationId] ASC) );
CREATE TABLE [dbo].[Aula] (
[IdAula] INT IDENTITY (1, 1) NOT NULL,
[presenteAluno] VARCHAR (25) NULL,
[presenteProfessor] VARCHAR (25) NULL,
[dataHora] DATETIME2 (7) NOT NULL,
[IdUnidadeCurricular] INT NOT NULL,
PRIMARY KEY CLUSTERED ([IdAula] ASC),
CONSTRAINT [IdUnidadeCurricular] FOREIGN KEY ([IdUnidadeCurricular])
REFERENCES [dbo].[UnidadeCurricular] ([IdUnidadeCurricular]) );
CREATE TABLE [dbo].[Curso] (
[Idcurso] INT IDENTITY (1, 1) NOT NULL,
[nomeCurso] VARCHAR (100) NOT NULL,
PRIMARY KEY CLUSTERED ([Idcurso] ASC) );
CREATE TABLE [dbo].[Docente] (
[IdDocente] INT IDENTITY (1, 1) NOT NULL,
[nomeDocente] VARCHAR (100) NOT NULL,
[user] NVARCHAR (50) NOT NULL,
PRIMARY KEY CLUSTERED ([IdDocente] ASC) );
CREATE TABLE [dbo].[Inscricao] (
[IdInscricao] INT IDENTITY (1, 1) NOT NULL,
[IdAluno] INT NOT NULL,
[IdUnidadeCurricular] INT NOT NULL,
PRIMARY KEY CLUSTERED ([IdInscricao] ASC),
CONSTRAINT [IdUnidadeCurricular2] FOREIGN KEY ([IdUnidadeCurricular])
49
CONSTRAINT [IdAluno] FOREIGN KEY ([IdAluno]) REFERENCES [dbo].[Aluno]
([IdAluno])
);
CREATE TABLE [dbo].[Memberships] (
[ApplicationId] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[Password] NVARCHAR (128) NOT NULL,
[PasswordFormat] INT NOT NULL,
[PasswordSalt] NVARCHAR (128) NOT NULL,
[Email] NVARCHAR (256) NULL,
[PasswordQuestion] NVARCHAR (256) NULL,
[PasswordAnswer] NVARCHAR (128) NULL,
[IsApproved] BIT NOT NULL,
[IsLockedOut] BIT NOT NULL,
[CreateDate] DATETIME NOT NULL,
[LastLoginDate] DATETIME NOT NULL,
[LastPasswordChangedDate] DATETIME NOT NULL,
[LastLockoutDate] DATETIME NOT NULL,
[FailedPasswordAttemptCount] INT NOT NULL,
[FailedPasswordAttemptWindowStart] DATETIME NOT NULL,
[FailedPasswordAnswerAttemptCount] INT NOT NULL,
[FailedPasswordAnswerAttemptWindowsStart] DATETIME NOT NULL,
[Comment] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC),
CONSTRAINT [MembershipApplication] FOREIGN KEY ([ApplicationId]) REFERENCES
[dbo].[Applications] ([ApplicationId]),
CONSTRAINT [MembershipUser] FOREIGN KEY ([UserId]) REFERENCES [dbo].[Users]
([UserId])
);
CREATE TABLE [dbo].[Profiles] (
[UserId] UNIQUEIDENTIFIER NOT NULL,
[PropertyNames] NVARCHAR (4000) NOT NULL,
[PropertyValueStrings] NVARCHAR (4000) NOT NULL,
[PropertyValueBinary] IMAGE NOT NULL,
[LastUpdatedDate] DATETIME NOT NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC),
CONSTRAINT [UserProfile] FOREIGN KEY ([UserId]) REFERENCES [dbo].[Users]
([UserId])
);
CREATE TABLE [dbo].[Roles] (
[ApplicationId] UNIQUEIDENTIFIER NOT NULL,
[RoleId] UNIQUEIDENTIFIER NOT NULL,
[RoleName] NVARCHAR (256) NOT NULL,
[Description] NVARCHAR (256) NULL,
PRIMARY KEY CLUSTERED ([RoleId] ASC),
CONSTRAINT [RoleApplication] FOREIGN KEY ([ApplicationId]) REFERENCES
[dbo].[Applications] ([ApplicationId])
);
CREATE TABLE [dbo].[UnidadeCurricular] (
[IdUnidadeCurricular] INT IDENTITY (1, 1) NOT NULL,
[nomeUniCurricular] VARCHAR (100) NOT NULL,
[semestre] CHAR (1) NOT NULL,
[anoLetivo] VARCHAR (10) NOT NULL,
[turma] VARCHAR (100) NOT NULL,
[IdDocente] INT NOT NULL,
[IdCurso] INT NOT NULL,
PRIMARY KEY CLUSTERED ([IdUnidadeCurricular] ASC),
CONSTRAINT [IdCurso] FOREIGN KEY ([IdCurso]) REFERENCES [dbo].[Curso]
50
CONSTRAINT [IdDocente] FOREIGN KEY ([IdDocente]) REFERENCES [dbo].[Docente]
([IdDocente])
);
CREATE TABLE [dbo].[Users] (
[ApplicationId] UNIQUEIDENTIFIER NOT NULL,
[UserId] UNIQUEIDENTIFIER NOT NULL,
[UserName] NVARCHAR (50) NOT NULL,
[IsAnonymous] BIT NOT NULL,
[LastActivityDate] DATETIME NOT NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC),
CONSTRAINT [UserApplication] FOREIGN KEY ([ApplicationId]) REFERENCES
[dbo].[Applications] ([ApplicationId])
);
CREATE TABLE [dbo].[UsersInRoles] (
[UserId] UNIQUEIDENTIFIER NOT NULL,
[RoleId] UNIQUEIDENTIFIER NOT NULL,
PRIMARY KEY CLUSTERED ([UserId] ASC, [RoleId] ASC),
CONSTRAINT [UsersInRoleRole] FOREIGN KEY ([RoleId]) REFERENCES [dbo].[Roles]
([RoleId]),
CONSTRAINT [UsersInRoleUser] FOREIGN KEY ([UserId]) REFERENCES [dbo].[Users]
([UserId])
51