Beruflich Dokumente
Kultur Dokumente
Projeto apresentado Universidade Estadual de Ponta Grossa como requisito parcial para aprovao da disciplina de Projeto de Sistema de Informao, do Curso de Engenharia de Computao, sob a orientao do Prof. Mrcio Augusto de Souza.
Sumrio
1. 2. DIAGNSTICO ATUAL ........................................................................................ 4 OBJETIVO DO PROJETO .................................................................................. 4 2.1 2.2 3. 4. OBJETIVO GERAL .............................................................................................. 4 OBJETIVOS ESPECFICOS.................................................................................. 5
ESCOPO ................................................................................................................. 5 PROPOSTA DE PROJETO ................................................................................. 6 4.1 BENEFCIOS .................................................................................................. 6 4.2 CUSTOS ......................................................................................................... 7 4.2.1 Custo de Software ................................................................................. 7 4.2.2 Custo de Hardware................................................................................ 8 4.2.3 Custo de Mo-de-obra .......................................................................... 8 4.2.4 Custo Total do Projeto .......................................................................... 9 4.3 RISCOS ........................................................................................................... 9 4.3.1 Riscos de projeto ................................................................................... 9 4.3.2 Riscos tcnicos ...................................................................................... 9 4.3.3 Riscos de negcio ............................................................................... 10 4.4 DESCRIO DA MODELAGEM PRELIMINAR ...................................... 10 4.4.1 Diagrama de Caso de Uso ................................................................. 11 4.4.2 Diagramas de Sequncia ................................................................... 26 4.4.3 Diagramas de Classes ........................................................................ 41 4.4.4 Diagrama entidade Relacionamento ................................................ 44 4.4.5 IDEF1X .................................................................................................. 45 4.4.6 Dicionrio de Dados ............................................................................ 46 4.4.7 Script SQL ............................................................................................. 51
5. 6.
PROTTIPO DA INTERFACE .......................................................................... 67 PLANO DE TESTE.............................................................................................. 70 6.1 6.2 6.3 6.4 6.5 EFETUAR LOGIN .............................................................................................. 70 CADASTRAR ALUNO ........................................................................................ 70 CADASTRAR PROFESSOR ............................................................................... 72 CADASTRAR FUNCIONRIO............................................................................. 73 CADASTRAR EVENTO...................................................................................... 75
7. 8. 9. 10.
TABELAS Tabela 1: Custo de Softwares ............................................................................ 7 Tabela 2: Custo de Hardware ............................................................................ 8 Tabela 3: Custo de mo-de-obra ....................................................................... 8 Tabela 4: Custo Total ......................................................................................... 9 Tabela 5: Administrativo ................................................................................... 46 Tabela 6: Aluno ................................................................................................ 46 Tabela 7: Arquivo ............................................................................................. 46 Tabela 8: Aluno_Cursa_Disciplina ................................................................... 47 Tabela 9: Aluno_esta_turma ............................................................................ 47 Tabela 10: Cidade ............................................................................................ 47 Tabela 11: Curso .............................................................................................. 47 Tabela 12: Disciplina ........................................................................................ 47 Tabela 13: Estado ............................................................................................ 48 Tabela 14: Evento ............................................................................................ 48 Tabela 15: Funcionrio .................................................................................... 48 Tabela 16: Pessoa ........................................................................................... 49 Tabela 17: Professor ........................................................................................ 49 Tabela 18: Pessoa_recebe_SMS..................................................................... 50 Tabela 19: SMS ............................................................................................... 50 Tabela 20: Telefone ......................................................................................... 50 Tabela 21: Tipo_tel .......................................................................................... 51 Tabela 22: Turma ............................................................................................. 51
FIGURAS Figura 1: Caso de Uso ................................................................................................ 11 Figura 2: Alterar Aluno ................................................................................................ 26 Figura 3: Alterar Curso ................................................................................................ 26 Figura 4: Alterar Disciplina ......................................................................................... 27 Figura 5: Alterar Evento .............................................................................................. 27 Figura 6: Alterar Funcionrio ..................................................................................... 28 Figura 7: Alterar Professor ......................................................................................... 28 Figura 8: Alterar Turma ............................................................................................... 29 Figura 9: Armazenar Arquivo ..................................................................................... 29 Figura 10: Atualizar Perfil/Trabalhos ........................................................................ 30 Figura 11: Baixar Arquivo ........................................................................................... 30 Figura 12: Cadastrar Curso ........................................................................................ 31 Figura 13: Cadastrar Disciplina ................................................................................. 31 Figura 14: Cadastrar Evento - Administrador ......................................................... 32 Figura 15: Cadastrar Evento - Funcionrio ............................................................. 32 Figura 16: Cadastrar Evento - Professor ................................................................. 33 Figura 17: Cadastrar Turma ....................................................................................... 33 Figura 18: Cadastrar Aluno ........................................................................................ 34 Figura 19: Cadastrar Funcionrio ............................................................................. 34 Figura 20: Cadastrar Professor ................................................................................. 35 Figura 21: Enviar SMS - Administrador.................................................................... 35 Figura 22: Enviar SMS - Funcionrio ....................................................................... 36 Figura 23: Enviar SMS - Professor ........................................................................... 36 Figura 24: Excluir Aluno .............................................................................................. 37 Figura 25: Excluir Curso ............................................................................................. 37 Figura 26: Excluir Disciplina ....................................................................................... 38 Figura 27: Excluir Evento ........................................................................................... 38 Figura 28: Excluir Funcionrio ................................................................................... 39 Figura 29: Excluir Professor ....................................................................................... 39 Figura 30: Excluir Turma ............................................................................................ 40 Figura 31: Solicitar Cadastro ..................................................................................... 40 Figura 32: Diagrama de Classe ................................................................................. 41 Figura 33: Diagrama de Classe - Controle .............................................................. 42 Figura 34: Diagrama de Classe Entidade ............................................................ 43 Figura 35: Diagrama de Classe Interface............................................................. 43 Figura 36: Diagrama Entidade Relacionamento .................................................... 44 Figura 37: Diagrama IDEF1X..................................................................................... 45 Figura 38: Cadastrar Evento ...................................................................................... 67 Figura 39: Cadastrar/atualizar professor ................................................................. 67 Figura 40: Baixar Arquivo ........................................................................................... 68 Figura 41: Professor armazena arquivo ................................................................... 68 Figura 42: Enviar SMS ................................................................................................ 69 Figura 43: Cronograma ............................................................................................... 76
1. DIAGNSTICO ATUAL
O Departamento de Matemtica e Estatstica (DeMat) da Universidade Estadual de Ponta Grossa tem como objetivo a investigao de conhecimentos cientficos nas reas de Matemtica Pura e Aplicada, Educao Matemtica e reas afins, buscando a integrao das atividades de Ensino, Pesquisa e Extenso. As atividades de Ensino do DeMat consistem principalmente no oferecimento de disciplinas para 19 (dezenove) cursos de graduao, dentre os quais o curso de Licenciatura em Matemtica, que demanda o maior nmero de disciplinas do departamento, e para 2 (dois) cursos de ps graduao. O atual website suporte do DeMat foi criado pela UEPG em 2005, no atende a atual demanda, bem como, carece das caractersticas bsicas que so vitais para seu sucesso. Enfim, com a globalizao e o alto nvel tecnolgico atuais, websites tem sido utilizados em grande escala na divulgao de empresas, institutos de pesquisa e vrias outras instituies. Outrossim, o DeMat adquiriu recentemente um servidor de internet para poder armazenar informaes e arquivos para seus alunos, encaminhou solicitao de criao de domnio dentro do site da UEPG, pressupondo a necessidade da criao de um website atualizado.
2. OBJETIVO DO PROJETO
2.1 Objetivo geral O projeto visa o desenvolvimento de um website atualizado, que disponibilizado ao DeMat, fomentar a investigao de conhecimentos cientficos buscando a integrao das atividades de Ensino, Pesquisa e Extenso, proporcionando uma melhor integrao entre aluno e professor orientador, bem como, para disponibilizar informaes s pessoas que tenham interesse no DeMat, dentro ou fora da UEPG.
2.2 Objetivos especficos Criar um website para o Departamento de Matemtica da UEPG. - Armazenar no website informaes relacionadas ao departamento, tais como: histrico, quadro de funcionrios, eventos (indicados por professores ou funcionrios) e contato. Armazenar no banco de dados informaes sobre os
professores/funcionrios do departamento. - Gerar uma pgina com os dados do professor no formato de um currculo online. - Armazenar no banco de dados arquivos disponibilizados pelos professores, visando um melhor aproveitamento dos estudos pelos alunos fora da sala de aula. - Disponibilizar uma pgina com os dados dos eventos, os quais podem ser realizados pelo departamento ou por outras instituies. - Permitir o envio de mensagens SMS para os alunos caso o professor necessite avis-los com urgncia, como por exemplo, um atraso.
3. ESCOPO
O projeto busca elaborar um website para o DeMat que possa facilitar o uso pelos professores, visando o auxlio na divulgao de materiais e/ou informaes para os alunos. O sistema ser composto por trs mdulos bsicos: criao da rea do professor, disponibilizao de arquivos para download e divulgao de eventos. Na rea do professor ser criada uma pgina para o professor disponibilizar suas informaes pessoais e seus trabalhos/projetos realizados, como se fosse um currculo online.
O professor tambm ser capaz de disponibilizar arquivos utilizados em sala de aula para que os alunos possam fazer o download. Alm disso, tambm ter a possibilidade de entrar no site e enviar mensagens SMS para os alunos caso precise avisar algo com certa urgncia. Fator importante no complemento do desenvolvimento acadmico, os eventos ajudam na melhora do conhecimento do aluno, e o sistema contar com uma parte especfica para eles. Os eventos podero ser cadastrados por funcionrios, professores e pelo administrador do sistema.
4. PROPOSTA DE PROJETO
A proposta deste projeto elaborar um portal de fcil utilizao pelos professores e funcionrios do departamento de matemtica visando agilidade e eficincia na divulgao de informaes e arquivos. A elaborao do portal tambm proporcionar melhor integrao entre professor e aluno devido ao fato de que o professor poder disponibilizar materiais na web buscando melhorar o aprendizado do aluno. Para a elaborao do projeto ser utilizada a linguagem de programao PHP e Postgree como sistema gerenciador do banco de dados.
4.1 BENEFCIOS Dentre os benefcios obtidos atravs da implementao do projeto esto a facilidade com que os professores podero disponibilizar arquivos para os alunos, os quais tambm tero uma maneira mais rpida e fcil de conseguir os arquivos, sem ser necessria a criao de grupos de e-mail onde raramente todos os alunos esto includos. Com isso o sistema busca melhorar a maneira com que alunos e professores se relacionam no mbito de troca de informaes acadmicas.
departamento a partir da disponibilizao de informaes para toda a sociedade, relativas ao histrico, quadro de professores, informaes sobre o curso, grade curricular, eventos que dizem respeito rea das cincias exatas, entre outros. Essas informaes relativas ao curso so extremamente importantes, pois ultimamente o nmero de desistncias no curso de Matemtica tem sido grandes, e a melhor maneira para tentar diminuir tal ocorrncia fazer com que as pessoas consigam obter informaes relacionadas ao curso para que saibam o que vo encontrar no decorrer do perodo em que estaro na faculdade.
Software
Microsoft Windows 7 Home Premium Astah Community DBDesigner 4 Postgree 8.0 Adobe CS5 Web Premium Adobe Flash Builder 4 Trial Apache for Windows 2.2.15 Custo Total de Software
*O valor do produto foi de U$ 1.799,00 que no cmbio R$1,75 (valor retirado do site http://economia.terra.com.br/ s 14:50 do dia 10/04/2010) obtivemos o valor de R$ 3.149,25.
Hardware
Processador Intel Dual Core E5200 de 2.50Ghz Memria 3GB, HD 320 GB, Gravador DVD Monitor LCD AOC F19L 18,5 Custo Total de Hardware Fonte:
2.498,00
*8 horas por semana durante 9 meses resultam em aproximadamente 290 horas Fonte: http://www.rhinfo.com.br/sal-ti.htm#p - Acessado em 10/04/2010
Descrio Software Hardware Mo-de-obra Valor Total 4.3 RISCOS 4.3.1 Riscos de projeto
- No cumprimento dos prazos estipulados pela disciplina devido ao fato dos alunos envolvidos terem outras atividades em desenvolvimento, tais como outras matrias do curso e cursos extracurriculares. Para evitar o problema um bom cronograma deve ser criado e seguido. - Desfalque na equipe de desenvolvimento.
4.3.2 Riscos tcnicos - Problemas com a empresa que gerencia o envio de SMS, desde a liberao do produto para teste at falhas no sistema desta empresa. - Dificuldade na elaborao de uma interface amigvel devido falta de experincia em desenvolvimento web da equipe. Tal problema pode ser 9
amenizado com a observao de outras interfaces disponveis na internet e com o auxlio do cliente.
4.3.3 Riscos de negcio - Mudana das funcionalidades do projeto por parte do cliente. Como preveno para este risco, foram estabelecidos previamente os termos do projeto e as modificaes do documento original ficam por conta do cliente.
1. A realizao da modelagem do projeto ser baseada na Orientao a Objetos tendo como base a linguagem UML (Unified Modeling Language) por ser uma linguagem padro com princpios conhecidos pela grande maioria das pessoas que trabalham na rea de tecnologia de informao. A Orientao a Objetos fornece uma viso especfica do funcionamento do sistema proporcionando aos desenvolvedores uma base para implementao do mesmo, sem muitas complicaes quanto ao entendimento do funcionamento do prprio.
10
11
4.4.1.1 Cenrios do diagrama de Caso de Uso Manter curso: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de cursos no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Curso. 2 - O sistema disponibiliza trs opes: Cadastrar Curso, Alterar Curso e Excluir Curso. 2.1 - O administrador escolhe Cadastrar Curso. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Curso. 3.1.1 - O sistema disponibiliza campos com os dados do curso. 3.1.2 - O administrador altera os campos desejados. 3.1.3 - O sistema altera os dados referentes ao curso. 3.1.4 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O administrador escolhe Excluir Curso. 4.1.1 - O sistema disponibiliza as opes de busca por Curso. 4.1.2 - O administrador escolhe o curso a ser excludo. 4.1.3 O sistema apaga dados referentes ao curso, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso de um curso sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.1 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 12
4.1.2.1 - Excluso incompleta: no possvel realizar a excluso de um curso sem que todos os dados obrigatrios sejam preenchidos.
Manter disciplina: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de disciplinas no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Disciplina. 2 - O sistema disponibiliza trs opes: Cadastrar Disciplina, Alterar Disciplina e Excluir Disciplina. 2.1 - O administrador escolhe Cadastrar Disciplina. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Disciplina, 3.1.1 - O sistema disponibiliza campos com os dados da disciplina. 3.1.2 - O administrador altera os campos desejados. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 O administrador escolhe a opo: Excluir Disciplina. 4.1.1 - O sistema disponibiliza as opes de busca por Disciplina. 4.1.2 - O administrador escolhe a disciplina a ser excluda. 4.1.3 O sistema apaga dados referentes a disciplina, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 13
3.1.2.1 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.1 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos. Manter turma: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de turmas no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Turma. 2 - O sistema disponibiliza trs opes: Cadastrar Turma, Alterar Turma e Excluir Turma. 2.1 - O administrador escolhe Cadastrar Turma. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Turma. 3.1.1 - O sistema disponibiliza campos com os dados da turma. 3.1.2 - O administrador altera os campos desejados. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 O administrador escolhe a opo: Excluir Turma. 4.1.1 - O sistema disponibiliza as opes de busca por Turma. 4.1.2 - O administrador escolhe a turma ser excluda. 4.1.3 O sistema apaga dados referentes disciplina, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.1 - Alterao incompleta: no possvel realizar a concluso de uma 14
alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.1 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos.
Manter aluno: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de alunos no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Aluno. 2 - O sistema disponibiliza trs opes: Cadastrar Aluno, Alterar Aluno e Excluir Aluno. 2.1 - O administrador escolhe Cadastrar Aluno. 2.1.1 O sistema verifica pendncia no cadastro de alunos. 2.1.2 - O sistema disponibiliza formulrio para preenchimento. 2.1.3 - O administrador preenche formulrio. 2.1.4 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Aluno. 3.1.1 - O sistema disponibiliza as opes de busca por Nome, Curso ou Disciplina. 3.1.2 - O administrador altera os campos desejados. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O administrador escolhe Excluir Aluno. 4.1.1 - O sistema disponibiliza as opes de busca por Nome, Curso ou Disciplina. 4.1.2 - O administrador escolhe o aluno a ser excludo. 4.1.3 O sistema apaga dados referentes ao aluno, emite uma mensagem e retorna a tela inicial. 15
Cenrio Alternativo: 2.1.2.1 No existem pendncias no cadastro de alunos. 2.1.2.2 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.1 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.1 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos.
Manter professor: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de professores no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Professor. 2 - O sistema disponibiliza trs opes: Cadastrar Professor, Alterar Professor e Excluir Professor. 2.1 - O administrador escolhe Cadastrar Professor. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio com dados do professor. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Professor. 3.1.1 - O sistema disponibiliza as opes de busca por Nome, Curso ou Disciplina. 3.1.2 - O sistema disponibiliza campos com os dados do professor. 3.1.3 - O administrador altera os campos desejados. 3.1.4 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 16
4.1 - O administrador escolhe Excluir Professor. 4.1.1 - O sistema disponibiliza as opes de busca por Nome, Curso ou Disciplina. 4.1.2 - O administrador escolhe o professor a ser excludo. 4.1.3 O sistema apaga dados referentes ao curso, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso de sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso de sem que todos os dados obrigatrios sejam preenchidos.
Manter funcionrio: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de funcionrios no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Funcionrio. 2 - O sistema disponibiliza trs opes: Cadastrar Funcionrio, Alterar Funcionrio e Excluir Funcionrio. 2.1 - O administrador escolhe Cadastrar Funcionrio. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio com dados do funcionrio. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Funcionrio. 3.1.1 - O sistema disponibiliza as opes de busca por Nome. 17
3.1.2 - O sistema disponibiliza campos com os dados do funcionrio. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O administrador escolhe Excluir Funcionrio. 4.1.1 - O sistema disponibiliza as opes de busca por Nome. 4.1.2 - O administrador escolhe o funcionrio a ser excludo. 4.1.3 O sistema apaga dados referentes ao funcionrio, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos. Manter evento - Administrador: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas manuteno e criao de eventos no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Evento. 2 - O sistema disponibiliza trs opes: Cadastrar Evento, Alterar Evento e Excluir Evento. 2.1 - O administrador escolhe Cadastrar Evento. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio com dados do evento. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Evento. 18
3.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 3.1.2 - O sistema disponibiliza campos com os dados do evento. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O administrador escolhe Excluir Evento. 4.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 4.1.2 - O administrador escolhe o evento a ser excludo. 4.1.3 O sistema apaga dados referentes ao evento, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 2.1.3.1 Cadastro incompleto: J existe um evento com prioridade alta na data assinalada. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos. Manter evento - Professor: Atores: Professor e Banco de Dados. Objetivo: Realiza operaes relacionadas a manuteno e criao de eventos no banco de dados. Cenrio Principal 1 - O professor seleciona a opo Manter Evento. 2 - O sistema disponibiliza trs opes: Cadastrar Evento, Alterar Evento e Excluir Evento. 2.1 - O professor escolhe Cadastrar Evento. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O professor preenche formulrio com dados do evento. 2.1.3 Aps a incluso dos dados, o professor escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na 19
tela e retorna a tela inicial. 3.1 - O professor escolhe Alterar Evento. 3.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 3.1.2 - O sistema disponibiliza campos com os dados do evento. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O professor escolhe Excluir Evento. 4.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 4.1.2 - O professor escolhe o evento a ser excludo. 4.1.3 O sistema apaga dados referentes ao evento, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 2.1.3.1 Cadastro incompleto: J existe um evento com prioridade alta na data assinalada. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos.
Manter evento - Funcionrio: Atores: Funcionrio e Banco de Dados. Objetivo: Realiza operaes relacionadas manuteno e criao de eventos no banco de dados. Cenrio Principal 1 - O funcionrio seleciona a opo Manter Evento. 2 - O sistema disponibiliza trs opes: Cadastrar Evento, Alterar Evento e Excluir Evento. 2.1 O funcionrio escolhe Cadastrar Evento. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 20
2.1.2 - O funcionrio preenche formulrio com dados do evento. 2.1.3 Aps a incluso dos dados, o funcionrio escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O funcionrio escolhe Alterar Evento. 3.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 3.1.2 - O sistema disponibiliza campos com os dados do evento. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O funcionrio escolhe Excluir Evento. 4.1.1 - O sistema disponibiliza as opes de busca por Nome ou Data. 4.1.2 - O funcionrio escolhe o evento a ser excludo. 4.1.3 O sistema apaga dados referentes ao evento, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 2.1.3.1 Cadastro incompleto: J existe um evento com prioridade alta na data assinalada. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos.
Manter cidade: Atores: Administrador e Banco de Dados. Objetivo: Realiza operaes relacionadas a cadastro e manuteno de cidades no banco de dados. Cenrio Principal 1 - O administrador seleciona a opo Manter Cidade. 21
2 - O sistema disponibiliza trs opes: Cadastrar Cidade, Alterar Cidade e Excluir Cidade. 2.1 - O administrador escolhe Cadastrar Cidade. 2.1.1 - O sistema disponibiliza formulrio para preenchimento. 2.1.2 - O administrador preenche formulrio com dados da cidade. 2.1.3 Aps a incluso dos dados, o administrador escolhe a opo Cadastrar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. 3.1 - O administrador escolhe Alterar Cidade. 3.1.1 - O sistema disponibiliza as opes de busca por Nome. 3.1.2 - O sistema disponibiliza campos com os dados da cidade. 3.1.3 - O sistema altera os dados cadastrados, emite uma mensagem e retorna a tela inicial. 4.1 - O administrador escolhe Excluir Cidade. 4.1.1 - O sistema disponibiliza as opes de busca por Nome. 4.1.2 - O administrador escolhe a cidade a ser excludo. 4.1.3 O sistema apaga dados referentes cidade, emite uma mensagem e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - Cadastro incompleto: no possvel realizar a incluso sem que todos os dados obrigatrios sejam preenchidos. 3.1.2.2 - Alterao incompleta: no possvel realizar a concluso de uma alterao sem que todos os dados obrigatrios sejam preenchidos. 4.1.2.2 - Excluso incompleta: no possvel realizar a excluso sem que todos os dados obrigatrios sejam preenchidos. Baixar Arquivo: Atores: Aluno e Banco de Dados. Objetivo: Baixa arquivos armazenados no Banco de Dados Cenrio Principal 1 - O aluno seleciona a opo Baixar Arquivo. 2 - O sistema disponibiliza as opes: Baixar Arquivo Privado ou Baixar 22
Arquivo Pblico. 2.1 - O sistema disponibiliza formulrio para preenchimento. 2.2 - O aluno preenche formulrio. 2.3 Aps a verificao do sistema da existncia do arquivo, o aluno escolhe a opo Baixar e o sistema disponibiliza o download. Cenrio Alternativo: 2.1.2.1 - Download incompleto: no possvel realizar download sem que todos os dados obrigatrios sejam preenchidos. 2.1.2.2 - Download incompleto: no possvel realizar download, pois no tem permisso para acessar arquivos privados.
Enviar SMS - Funcionrio: Atores: Funcionrio e Banco de Dados. Objetivo: Envia SMS para celulares cadastrados. Cenrio Principal 1 - O funcionrio seleciona a opo Enviar SMS. 2 - O sistema disponibiliza as opes: Enviar para Curso e Enviar para Disciplina. 2.1 - O sistema disponibiliza formulrio para preenchimento. 2.2 - O funcionrio preenche formulrio. 2.3 Aps a incluso dos dados, o funcionrio escolhe a op o Enviar, o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - SMS incompleto: no possvel realizar a incluso de um SMS sem que todos os dados obrigatrios sejam preenchidos.
Objetivo: Envia SMS para celulares cadastrados. Cenrio Principal 1 - O administrador seleciona a opo Enviar SMS. 2 - O sistema disponibiliza as opes: Enviar para Curso e Enviar p ara Disciplina. 2.1 - O sistema disponibiliza formulrio para preenchimento. 2.2 - O administrador preenche formulrio. 2.3 Aps a incluso dos dados, o administrador escolhe a opo Concludo e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - SMS incompleto: no possvel realizar a incluso de um SMS sem que todos os dados obrigatrios sejam preenchidos.
Enviar SMS - Professor: Atores: Professor e Banco de Dados. Objetivo: Envia SMS para celulares cadastrados. Cenrio Principal 1 - O professor seleciona a opo Enviar SMS. 2 - O sistema disponibiliza as opes: Enviar para Curso e Enviar para Disciplina. 2.1 - O sistema disponibiliza formulrio para preenchimento. 2.2 - O professor preenche formulrio. 2.3 Aps a incluso dos dados, o professor escolhe a opo Enviar e o sistema valida os dados cadastrados, emite uma mensagem na tela e retorna a tela inicial. Cenrio Alternativo: 2.1.2.1 - SMS incompleto: no possvel realizar a incluso de um SMS sem que todos os dados obrigatrios sejam preenchidos.
24
Armazenar Arquivo: Atores: Professor e Banco de Dados. Objetivo: Armazena arquivos no Banco de Dados Cenrio Principal 1 - O professor seleciona a opo Armazenar Arquivo. 2 - O sistema disponibiliza as opes: Armazenar Arquivo Privado ou Armazenar Arquivo Pblico. 2.1 - O sistema disponibiliza formulrio para preenchimento. 2.2 - O professor preenche formulrio. 2.3 Aps a incluso do arquivo, o professor escolhe a opo Armazenar, o sistema verifica o espao disponvel e armazena o arquivo no banco de dados. Cenrio Alternativo: 2.1.2.1 - Armazenamento incompleto: no possvel realizar a incluso de um SMS sem que todos os dados obrigatrios sejam preenchidos. 2.1.2.2 Armazenamento incompleto: no foi possvel armazenar o arquivo por falta de espao.
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
4.4.5 IDEF1X
45
Tabela 6: Aluno
No Nulo NN NN
Tabela 7: Arquivo
No Nulo NN NN
Restries digitos[0-9] [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,: [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,: -
Nome Data_Criacao
Varchar(20) Date
NN NN
caminho
Text
NN
46
Tabela 8: Aluno_Cursa_Disciplina
No Nulo NN NN
Tabela 9: Aluno_esta_turma
No Nulo NN NN
No Nulo NN NN
No Nulo NN NN
Restries digitos[0-9] -
Nome Cod_disc
Descrio Cdigo da disciplina Professor_Fun Cdigo do Professor da cionario_Pe Disciplina ssoa_Codig o Nome Nome da disciplina
No Nulo NN NN
Varchar(45)
NN
47
CargaHoraria
Integer
NN
Descricao
Descrio da Disciplina
Text
Nome UF
Descrio UF do Estado
Tipo Char(2)
No Nulo NN
Nome
Nome do Estado
Varchar(45)
NN
No Nulo NN NN
Restries digitos[0-9] [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,: [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,: -
Localr Prioridade
Text Integer
NN NN
Nome
Nome do Evento
Text
NN
No Nulo NN NN
Cidade_Cod_Ci d
Cdigo da Cidade
Integer
No Nulo NN NN
Restries digitos[0-9] digitos[0-9] caractere s especiais !@#$%&* ()+={}[]|?\/;,: caracteres especiais !@#$%&*()+={}[]|?\/;, : caracteres especiais !@#$%&*()+={}[]|?\/;, :
login
Varchar(10)
NN
senha
Varchar(12)
NN
Descrio Chave estrangeira de Pessoa Formao do Professor Experincia Profissional Url do lattes
No Nulo NN -
49
No Nulo NN NN
Restries digitos[0-9] [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;, [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,
Hora_Rec
Hora de recebimento
Time
NN
No Nulo NN NN
Restries digitos[0-9] [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;, [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;, [Aa-Zz] caracteres especiais !@#$%&*()+={}[]|?\/;,: -
Hora_Envio
Hora de Envio
Time
NN
Integer
NN
Varchar
NN
Nome Numero
No Nulo NN NN
Tipo_Tel_Cod _Tipo
Integer
NN
No Nulo NN NN
Restries digitos[0-9] -
No Nulo NN NN
51
DROP TABLE Arquivos CASCADE; DROP TABLE Turma CASCADE; DROP TABLE Aluno_Cursa_Disciplina CASCADE; DROP TABLE Aluno_Esta_Turma CASCADE; DROP TABLE Pessoa_Recebe_SMS CASCADE; DROP TABLE Eventos CASCADE; DROP TABLE SMS CASCADE; DROP LANGUAGE plpgsql CASCADE; CREATE LANGUAGE plpgsql; CREATE TABLE Pessoa( Codigo SERIAL NOT NULL, Nome VARCHAR(45) NOT NULL, Login VARCHAR(30) NOT NULL, Senha VARCHAR(12) NOT NULL, PRIMARY KEY(Codigo) ); CREATE $trigger_validar$ BEGIN IF(NEW.Login ~* '^[-_a-z0-9]+(\\.[-_a-z0-9]+)*\\@([-a-z0-9]+\\.)*([a-z]{2,4})$')THEN RETURN NEW; END IF; RAISE EXCEPTION 'Email Invalido!!'; END; $trigger_validar$ LANGUAGE plpgsql; CREATE TRIGGER valida_login BEFORE INSERT OR UPDATE ON Pessoa FOR EACH ROW EXECUTE PROCEDURE validar_email(); CREATE $trigger_validpes$ BEGIN IF((NEW.Nome='') OR (NEW.Login='') OR (NEW.Senha=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validpes$ LANGUAGE plpgsql; OR REPLACE FUNCTION valida_pessoa() RETURNS trigger AS OR REPLACE FUNCTION validar_email() RETURNS trigger AS
52
OR
REPLACE
FUNCTION
email_repeat()
RETURNS
trigger
AS
consulta TEXT; BEGIN SELECT Login FROM Pessoa WHERE Login=NEW.Login INTO consulta; IF(consulta<>'') THEN RAISE EXCEPTION 'Email j cadastrado!'; END IF; RETURN NEW; END; $email_repet$ LANGUAGE plpgsql; CREATE TRIGGER testa_repet BEFORE INSERT ON Pessoa FOR EACH ROW EXECUTE PROCEDURE email_repeat(); CREATE TRIGGER validar_pessoa BEFORE INSERT ON Pessoa FOR EACH ROW EXECUTE PROCEDURE valida_pessoa(); CREATE TABLE Estado( UF VARCHAR(2) NOT NULL UNIQUE, Nome_Est VARCHAR(45) NOT NULL, PRIMARY KEY(UF) ); CREATE $trigger_validest$ DECLARE ruf TEXT; BEGIN SELECT UF FROM Estado WHERE UF = NEW.UF INTO ruf; IF(ruf<>'')THEN RAISE EXCEPTION 'UF ja cadastrada!'; END IF; IF((NEW.UF='') OR (NEW.Nome_Est=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validest$ LANGUAGE plpgsql; CREATE TRIGGER validar_estado BEFORE INSERT ON Estado OR REPLACE FUNCTION valida_estado() RETURNS trigger AS
53
FOR EACH ROW EXECUTE PROCEDURE valida_estado(); CREATE TABLE Cidade( Cod_Cid INTEGER NOT NULL, Nome_Cid VARCHAR(45) NOT NULL, PRIMARY KEY(Cod_Cid), UF VARCHAR(2) REFERENCES Estado(UF) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL ); CREATE $trigger_validcid$ DECLARE ruf TEXT; BEGIN SELECT UF FROM Estado WHERE UF = NEW.UF INTO ruf; IF(ruf='')THEN RAISE EXCEPTION 'UF no cadastrada!'; END IF; IF((NEW.Nome_Cid='') OR (NEW.UF=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validcid$ LANGUAGE plpgsql; CREATE TRIGGER validar_cidade BEFORE INSERT ON Cidade FOR EACH ROW EXECUTE PROCEDURE valida_cidade(); CREATE TABLE Eventos( Cod_Ev SERIAL NOT NULL, Nome_Ev TEXT NOT NULL, Datar DATE NOT NULL, Localr TEXT NOT NULL, Descricao TEXT, Prioridade INTEGER NOT NULL CHECK(Prioridade>0), Banner TEXT, Cod_Cid INTEGER REFERENCES Cidade(Cod_Cid) ON UPDATE CASCADE ON DELETE CASCADE, PRIMARY KEY(Cod_Ev) ); OR REPLACE FUNCTION valida_cidade() RETURNS trigger AS
54
OR
REPLACE
FUNCTION
valida_evento()
RETURNS
trigger
AS
$trigger_validevento$
SELECT Cod_Cid FROM Cidade WHERE Cod_Cid = NEW.Cod_Cid INTO ruf; IF(ruf='')THEN RAISE EXCEPTION 'Cidade no cadastrada!'; END IF; IF(NEW.Prioridade<1)THEN RAISE EXCEPTION 'Prioridade deve ser maior ou igual a 1!'; END IF; IF((NEW.Nome_Ev='') OR (NEW.Localr=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validevento$ LANGUAGE plpgsql; CREATE TRIGGER validar_evento BEFORE INSERT ON Eventos FOR EACH ROW EXECUTE PROCEDURE valida_evento(); CREATE OR REPLACE FUNCTION validar_data_evento() RETURNS trigger AS $valida_data$ DECLARE BEGIN IF (NEW.Datar >= CURRENT_DATE) THEN RETURN NEW; END IF; RAISE EXCEPTION 'Data Invalida!!'; END; $valida_data$ LANGUAGE plpgsql; CREATE $valida_ev$ DECLARE cdata TEXT; cpri TEXT; BEGIN SELECT Datar FROM Eventos WHERE Datar = NEW.Datar INTO cdata; SELECT Prioridade FROM Eventos WHERE Datar = NEW.Datar AND Prioridade=1 INTO cpri; OR REPLACE FUNCTION verifica_evento() RETURNS trigger AS
55
IF(((NEW.Prioridade=1) AND(cdata<>'')) OR (cpri<>'')) THEN RAISE EXCEPTION 'Data Invalida para Cadastro de Evento'; END IF; RETURN NEW; END; $valida_ev$ LANGUAGE plpgsql; CREATE TRIGGER testa_prioridade BEFORE INSERT ON Eventos FOR EACH ROW EXECUTE PROCEDURE verifica_evento(); CREATE TRIGGER valida_dataenv BEFORE INSERT OR UPDATE ON Eventos FOR EACH ROW EXECUTE PROCEDURE validar_data_evento(); CREATE TABLE Tipo_Tel( Cod_Tipo SERIAL NOT NULL, Tipo VARCHAR(15) NOT NULL, PRIMARY KEY(Cod_Tipo) ); CREATE $trigger_validtt$ BEGIN IF((NEW.Tipo=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validtt$ LANGUAGE plpgsql; CREATE TRIGGER validar_tipotel BEFORE INSERT ON Tipo_Tel FOR EACH ROW EXECUTE PROCEDURE valida_tipotel(); CREATE TABLE Telefone( Cod_Tel SERIAL NOT NULL, Numero VARCHAR(10) NOT NULL, Cod_Tipo INTEGER REFERENCES Tipo_Tel(Cod_Tipo) ON UPDATE CASCADE ON DELETE CASCADE, Codigo INTEGER REFERENCES Pessoa(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY (Cod_Tel) ); CREATE OR REPLACE FUNCTION validar_tel() RETURNS trigger AS $validar_tel$ OR REPLACE FUNCTION valida_tipotel() RETURNS trigger AS
56
BEGIN IF(NEW.Numero ~* '^[[0-9]{10}$')THEN RETURN NEW; END IF; RAISE EXCEPTION 'Telefone Invalido!!'; END; $validar_tel$ LANGUAGE plpgsql; CREATE TRIGGER testa_tel BEFORE INSERT ON Telefone FOR EACH ROW EXECUTE PROCEDURE validar_tel(); CREATE $trigger_validtel$ DECLARE cctip TEXT; ccpes TEXT; BEGIN SELECT Cod_Tipo FROM Tipo_Tel WHERE Cod_Tipo = NEW.Cod_Tipo INTO cctip; SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(cctip='')THEN RAISE EXCEPTION 'Tipo de Telefone no cadastrado!'; END IF; IF(ccpes='')THEN RAISE EXCEPTION 'Pessoa no cadastrada!'; END IF; IF((NEW.Numero=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validtel$ LANGUAGE plpgsql; CREATE TRIGGER validar_telefone BEFORE INSERT ON Telefone FOR EACH ROW EXECUTE PROCEDURE valida_telefone(); CREATE TABLE Alunos( Pendente BOOLEAN NOT NULL, Cursando BOOLEAN NOT NULL, Codigo INTEGER REFERENCES Pessoa(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Codigo) ); OR REPLACE FUNCTION valida_telefone() RETURNS trigger AS
57
OR
REPLACE
FUNCTION
valida_aluno()
RETURNS
trigger
AS
ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Pessoa no cadastrada!'; END IF; RETURN NEW; END; $trigger_validalu$ LANGUAGE plpgsql; CREATE TRIGGER validar_aluno BEFORE INSERT ON Alunos FOR EACH ROW EXECUTE PROCEDURE valida_aluno(); CREATE TABLE Funcionarios( Endereco VARCHAR(255), Codigo INTEGER REFERENCES Pessoa(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Codigo) ); CREATE $trigger_validfunc$ DECLARE ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Pessoa no cadastrada!'; END IF; RETURN NEW; END; $trigger_validfunc$ LANGUAGE plpgsql; CREATE TRIGGER validar_func BEFORE INSERT ON Funcionarios FOR EACH ROW EXECUTE PROCEDURE valida_func(); CREATE TABLE Admnistrativo( Funcao VARCHAR(20) NOT NULL, Codigo INTEGER REFERENCES Funcionarios(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, OR REPLACE FUNCTION valida_func() RETURNS trigger AS
58
PRIMARY KEY(Codigo) ); CREATE $trigger_validad$ DECLARE ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Pessoa no cadastrada!'; END IF; IF((NEW.Funcao=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validad$ LANGUAGE plpgsql; CREATE TRIGGER validar_ad BEFORE INSERT ON Admnistrativo FOR EACH ROW EXECUTE PROCEDURE valida_ad(); OR REPLACE FUNCTION valida_ad() RETURNS trigger AS
CREATE TABLE Professor( Lattes Varchar(45), Foto TEXT, Codigo INTEGER REFERENCES Funcionarios(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Codigo) ); CREATE $trigger_validprof$ DECLARE ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Pessoa no cadastrada!'; END IF; RETURN NEW; END; $trigger_validprof$ LANGUAGE plpgsql; OR REPLACE FUNCTION valida_prof() RETURNS trigger AS
59
CREATE TRIGGER validar_prof BEFORE INSERT ON Professor FOR EACH ROW EXECUTE PROCEDURE valida_prof(); CREATE TABLE Formacao ( Cod_Forma SERIAL UNIQUE, Nome_Titulo VARCHAR(45) NOT NULL, Ano_Titulo INTEGER NOT NULL, Desc_Titulo TEXT, Codigo INTEGER REFERENCES Professor(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL ); CREATE DECLARE ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Professor no cadastrado!'; END IF; IF((NEW.Nome_Titulo=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validforma$ LANGUAGE plpgsql; CREATE TRIGGER validar_forma BEFORE INSERT ON Formacao FOR EACH ROW EXECUTE PROCEDURE valida_forma(); CREATE TABLE Publicacoes ( Cod_Pub SERIAL NOT NULL UNIQUE, Ano_Pub INTEGER NOT NULL, Nome_Pub VARCHAR(100) NOT NULL, Local_Pub VARCHAR(200), Link_Pub TEXT, Caminho_Pub TEXT, Desc_Pub TEXT, Codigo INTEGER REFERENCES Professor(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL ); OR REPLACE FUNCTION valida_forma() RETURNS trigger AS $trigger_validforma$
60
OR
REPLACE
FUNCTION
valida_pub()
RETURNS
trigger
AS
ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Professor no cadastrado!'; END IF; IF((NEW.Nome_Pub=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validpub$ LANGUAGE plpgsql; CREATE TRIGGER validar_pub BEFORE INSERT ON Publicacoes FOR EACH ROW EXECUTE PROCEDURE valida_pub(); CREATE TABLE Pesquisa ( Cod_Pesq SERIAL UNIQUE, Periodo VARCHAR(25) NOT NULL, Nome_Pesq VARCHAR(100) NOT NULL, Participantes VARCHAR(200), Financiadores VARCHAR(200), Desc_Pesq TEXT, Codigo INTEGER REFERENCES Professor(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL ); CREATE $trigger_validpesq$ DECLARE ccpes TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Professor no cadastrado!'; END IF; IF((NEW.Nome_Pesq='') OR (NEW.Periodo=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; OR REPLACE FUNCTION valida_pesq() RETURNS trigger AS
61
RETURN NEW; END; $trigger_validpesq$ LANGUAGE plpgsql; CREATE TRIGGER validar_pesq BEFORE INSERT ON Pesquisa FOR EACH ROW EXECUTE PROCEDURE valida_pesq(); CREATE TABLE Curso( Cod_Curso SERIAL UNIQUE, Nome_Curso VARCHAR(20), PRIMARY KEY(Cod_Curso) ); CREATE TABLE Disciplinas( Cod_Disc SERIAL NOT NULL, Nome_Disc VARCHAR(45) NOT NULL, CargaHoraria INTEGER NOT NULL CHECK(CargaHoraria>0), Descricao TEXT, PRIMARY KEY(Cod_Disc), Codigo INTEGER REFERENCES Professor(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, Cod_curso INTEGER REFERENCES Curso(Cod_curso) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL ); CREATE $trigger_validdisc$ DECLARE ccpes TEXT; ccurso TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; SELECT Cod_Curso FROM Curso WHERE Cod_Curso=New.Cod_Curso INTO ccurso; IF(ccpes='')THEN RAISE EXCEPTION 'Professor no cadastrado!'; END IF; IF(ccurso='')THEN RAISE EXCEPTION 'Curso no cadastrado!'; END IF; IF(NEW.CargaHoraria<1)THEN RAISE EXCEPTION 'Carga Horaria deve ser maior do q 0!'; OR REPLACE FUNCTION valida_disc() RETURNS trigger AS
62
END IF; IF((NEW.Nome_Disc=''))THEN RAISE EXCEPTION 'Por favor preencha todos campos obrigatrios!'; END IF; RETURN NEW; END; $trigger_validdisc$ LANGUAGE plpgsql; CREATE TRIGGER validar_disc BEFORE INSERT ON Disciplinas FOR EACH ROW EXECUTE PROCEDURE valida_disc(); CREATE TABLE Arquivos( Cod_Arq SERIAL NOT NULL, Nome_Arq VARCHAR(20), DataCriacao DATE CHECK(DataCriacao<=CURRENT_DATE), Caminho TEXT, PRIMARY KEY(Cod_Arq), Cod_Disc INTEGER REFERENCES Disciplinas(Cod_Disc) NOT NULL ); CREATE $trigger_validarq$ DECLARE ccpes TEXT; BEGIN SELECT Cod_Disc FROM Disciplinas WHERE Cod_Disc=New.Cod_Disc INTO ccpes; IF(ccpes='')THEN RAISE EXCEPTION 'Disciplina no cadastrada!'; END IF; IF(NEW.DataCriacao>CURRENT_DATE)THEN RAISE EXCEPTION 'Data deve ser maior que a atual'; END IF; RETURN NEW; END; $trigger_validarq$ LANGUAGE plpgsql; CREATE TRIGGER validar_arq BEFORE INSERT ON Arquivos FOR EACH ROW EXECUTE PROCEDURE valida_arq(); CREATE TABLE Turma( Cod_Turma SERIAL NOT NULL UNIQUE, Ano INTEGER, PRIMARY KEY(Cod_Turma) OR REPLACE FUNCTION valida_arq() RETURNS trigger AS
63
); CREATE OR REPLACE FUNCTION validar_ano() RETURNS trigger AS $valida_ano$ BEGIN IF(NEW.Ano<=date_part('year',CURRENT_TIMESTAMP)) THEN RETURN NEW; END IF; RAISE EXCEPTION 'Ano Invalido!!'; END; $valida_ano$ LANGUAGE plpgsql; CREATE TRIGGER valida_ano BEFORE INSERT OR UPDATE ON Turma FOR EACH ROW EXECUTE PROCEDURE validar_ano(); CREATE TABLE Aluno_Cursa_Disciplina( Cod_Disc INTEGER REFERENCES Disciplinas(Cod_Disc)ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, Codigo INTEGER REFERENCES Alunos(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Cod_Disc,Codigo) ); CREATE $trigger_validadisc$ DECLARE ccpes TEXT; cdisc TEXT; verif TEXT; BEGIN SELECT Codigo FROM Pessoa WHERE Codigo=New.Codigo INTO ccpes; SELECT Cod_Disc FROM Disciplinas WHERE Cod_Disc=New.Cod_Disc INTO cdisc; SELECT * FROM Aluno_Cursa_Disciplina WHERE Cod_Disc=New.Cod_Disc AND Codigo=NEW.Codigo INTO verif; IF(verif<>'')THEN RAISE EXCEPTION 'Disciplina ja cadastrada para esse aluno!'; END IF; IF(ccpes='')THEN RAISE EXCEPTION 'Aluno no cadastrado!'; END IF; IF(cdisc='')THEN RAISE EXCEPTION 'Disciplina no cadastrado!'; OR REPLACE FUNCTION valida_adisc() RETURNS trigger AS
64
END IF; RETURN NEW; END; $trigger_validadisc$ LANGUAGE plpgsql; CREATE TRIGGER validar_adisc BEFORE INSERT ON Aluno_Cursa_Disciplina FOR EACH ROW EXECUTE PROCEDURE valida_adisc(); CREATE TABLE Aluno_Esta_Turma( Codigo INTEGER REFERENCES Alunos(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, Cod_Turma INTEGER REFERENCES Turma(Cod_Turma) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Codigo,Cod_Turma) ); CREATE TABLE SMS( Cod_SMS INTEGER NOT NULL, Texto TEXT, Data_Envio DATE NOT NULL, Hora_Envio TIME NOT NULL, PRIMARY KEY(Cod_SMS) ); CREATE OR REPLACE FUNCTION validar_data_SMS() RETURNS trigger AS $valida_data$ BEGIN IF (NEW.Data_Envio>=CURRENT_DATE) THEN RETURN NEW; END IF; RAISE EXCEPTION 'Data Invalida!!'; END; $valida_data$ LANGUAGE plpgsql; CREATE TRIGGER valida_dataenv BEFORE INSERT OR UPDATE ON SMS FOR EACH ROW EXECUTE PROCEDURE validar_data_SMS();
65
Codigo INTEGER REFERENCES Pessoa(Codigo) ON UPDATE CASCADE ON DELETE CASCADE NOT NULL, PRIMARY KEY(Codigo,Cod_SMS) ); CREATE OR REPLACE VIEW telefones AS SELECT Pessoa,Telefone,Tipo_Tel WHERE Pessoa.Codigo=Telefone.Codigo; INSERT INTO tipo_tel(Tipo) VALUES('Celular'); INSERT INTO tipo_tel(Tipo) VALUES('Residencial'); INSERT INTO tipo_tel(Tipo) VALUES('Comercial'); INSERT INTO Estado(nome_est,uf) VALUES ('PARANA','PR'); INSERT INTO Estado(nome_est,uf) VALUES ('SANTA CATARINA','SC'); INSERT INTO Estado(nome_est,uf) VALUES ('RIO GRANDE DO SUL','RS'); INSERT INTO Estado(nome_est,uf) VALUES ('SAO PAULO','SP'); INSERT INTO Estado(nome_est,uf) VALUES ('RIO DE JANEIRO','RJ'); INSERT INTO Estado(nome_est,uf) VALUES ('MINAS GERAIS','MG'); INSERT INTO Estado(nome_est,uf) VALUES ('ESPIRITO SANTO','ES'); INSERT INTO Estado(nome_est,uf) VALUES ('MATO GROSSO DO SUL','MS'); INSERT INTO Estado(nome_est,uf) VALUES ('MATO GROSSO','MT'); INSERT INTO Estado(nome_est,uf) VALUES ('DISTRITO FEDERAL','DF'); INSERT INTO Estado(nome_est,uf) VALUES ('GOIAS','GO'); INSERT INTO Estado(nome_est,uf) VALUES ('TOCANTINS','TO'); INSERT INTO Estado(nome_est,uf) VALUES ('PARA','PA'); INSERT INTO Estado(nome_est,uf) VALUES ('AMAPA','AP'); INSERT INTO Estado(nome_est,uf) VALUES ('RORAIMA','RR'); INSERT INTO Estado(nome_est,uf) VALUES ('AMAZONAS','AM'); INSERT INTO Estado(nome_est,uf) VALUES ('ACRE','AC'); INSERT INTO Estado(nome_est,uf) VALUES ('RONDONIA','RO'); INSERT INTO Estado(nome_est,uf) VALUES ('BAHIA','BA'); INSERT INTO Estado(nome_est,uf) VALUES ('SERGIPE','SE'); INSERT INTO Estado(nome_est,uf) VALUES ('ALAGOAS','AL'); INSERT INTO Estado(nome_est,uf) VALUES ('PERNAMBUCO','PE'); INSERT INTO Estado(nome_est,uf) VALUES ('PIAUI','PI'); INSERT INTO Estado(nome_est,uf) VALUES ('MARANHAO','MA'); INSERT INTO Estado(nome_est,uf) VALUES ('CEARA','CE'); INSERT INTO Estado(nome_est,uf) VALUES ('RIO GRANDE DO NORTE','RN'); INSERT INTO Estado(nome_est,uf) VALUES ('PARAIBA','PB'); Pessoa.Nome,Telefone.Numero,Tipo_Tel.Tipo from
66
5. PROTTIPO DA INTERFACE
Os prottipos da interface de desenvolvidos esto relacionados abaixo:
67
68
69
6. PLANO DE TESTE
6.1 Efetuar Login
Teste 1 Campo Login - Invlido Entrada 1 Sada 1 - ERRO: Informe E-mail Teste 2 Campo Login - Invlido Entrada 2 Jos Sada 2 - ERRO: E-mail Invlido Teste 3 Campo Login - Invlido Entrada 3 Josantonio Sada 3 - ERRO: E-mail Invlido Teste 4 Campo Login - Invlido Entrada 4 joseantonio@ig Sada 4 - ERRO: E-mail Invlido Teste 5 Campo Login - Vlido Entrada 5 joseantonio@ig.com.br Sada 5 Opo Vlida Teste 6 Campo Senha - Invlido Entrada 6 jose Sada 6 ERRO: Campo Senha de no mnimo 6 e mximo 11 caracteres Teste 7 Campo Senha - Invlido Entrada 7 joseantonio12 Sada 7 ERRO: Campo Senha de no mnimo 6 e mximo 11 caracteres Teste 8 Campo Senha - Invlido Entrada 8 Sada 8 ERRO:"Informe sua senha" Teste 9 Campo Senha - Vlido Entrada 9 jose1234 Sada 9 Opo Vlida
70
Teste 3 Campo "Nome Completo - Invlido Entrada 3 Sada 3 - ERRO: Informe seu Nome Completo Teste 4 Campo "Nome Completo - Vlido Entrada 4 Jos Antonio de Souza Sada 4 - Opo Vlida Teste 5 Campo Email Invlido Entrada 5 Jos Sada 5 ERRO: "Email Invlido" Teste 9 Campo Email Invlido Entrada 9 jose@.com Sada 9 ERRO: "Email Invlido" Teste 10 Campo Email Vlido Entrada 10 joseantonio@ig.com.br Sada 10 Opo Vlida Teste 11 Campo Senha Invlido Entrada 11 Sada 11 ERRO: Informe sua senha" Teste 12 Campo Senha Vlido Entrada 12 jose1234 Sada 12 Opo Vlida Teste 13 Campo Confirmar Senha Invlido Entrada 13 jose123 Sada 13 ERRO: Senha no confere" Teste 14 Campo Confirmar Senha Vlido Entrada 14 jose1234 Sada 14 Opo Vlida Teste 15 Campo Curso Invlido Entrada 15 Sada 15 ERRO: "Caracteres Invlidos" Teste 16 Campo Curso Vlido Entrada 16 Engenharia de Computao Sada 16 Opo Vlida Teste 17 Campo Srie Invlido Entrada 17 Sada 17 ERRO: "Caracteres Invlidos"
71
72
Teste 15 Campo DDD Invlido Entrada 15 a% Sada 15 ERRO: "Caracteres Invlidos" Teste 16 Campo DDD Vlido Entrada 16 42 Sada 16 Opo Vlida Teste 17 Campo Telefone Invlido Entrada 17 3027-1111 Sada 17 ERRO: "Caracteres Invlidos Teste 18 Campo Telefone Vlido Entrada 18 30271111 Sada 18 Opo Vlida
73
Sada 8 ERRO: Nome Invlido. Caracteres Invlidos Teste 9 Campo Nmero Invlido Entrada 9 Sada 9 ERRO: Campo Obrigatrio Teste 10 Campo Nmero Vlido Entrada 10 1230 Sada 10 Opo Vlida Teste 11 Campo Bairro Invlido Entrada 11 \Centro Sada 11 ERRO: Nome Invlido. Caracteres Vlidos (A a B b C c ... Z z) Teste 12 Campo Bairro Invlido Entrada 12 Sada 12 ERRO "Informe um Bairro" Teste 13 Campo Bairro Vlido Entrada 13 Centro Sada 13 ERRO "Informe um Bairro" Teste 14 Campo CEP Invlido Entrada 14 840i0444 Sada 14 ERRO: "CEP Invlido ou no existente" Teste 15 Campo CEP Invlido Entrada 15 84010 Sada 15 ERRO: "CEP Invlido ou no existente" Teste 16 Campo CEP Vlido Entrada 16 84010444 Sada 16 Opo Vlida Teste 17 Campo Complemento Invlido Entrada 17 @#$ Sada 17 Erro: Caracteres Invlidos Teste 18 Campo Complemento Vlido Entrada 18 Apartamento 20 Sada 18 Opo Vlida Teste 19 Campo Cidade - Invlido Entrada 19 Pont@ Gr0ssa Sada 19 ERRO: Caracteres <>\ /@ ! # $ % & _ * ( ) + = [ ] { } ? : ; invlidos Teste 20 Campo Cidade - Vlido Entrada 20 Ponta Grossa Sada 20 Opo Vlida Teste 21 Campo Estado - Invlido Entrada 21 P%
74
Sada 21 ERRO: Caracteres <>\ /@ ! # $ % & _ * ( ) + = [ ] { } ? : ; invlidos Teste 22 Campo Estado - Vlido Entrada 22 PR Sada 22 Opo Vlida Teste 23 Campo DDD Invlido Entrada 23 a% Sada 23 ERRO: "Caracteres Invlidos" Teste 24 Campo DDD Vlido Entrada 24 42 Sada 24 Opo Vlida Teste 25 Campo Telefone Invlido Entrada 25 3027-1111 Sada 25 ERRO: "Caracteres Invlidos Teste 26 Campo Telefone Vlido Entrada 26 30271111 Sada 26 Opo Vlida
75
7. CRONOGRAMA
76
8. CONCLUSO
Atravs da elaborao do anteprojeto, anlise dos riscos, custos e benefcios, pode-se perceber que o projeto tem implementao vivel tanto pelo seu escopo quanto pela necessidade do Departamento de Matemtica em ter um meio online de divulgao das informaes referentes aos seus professores no que diz respeito dados pessoais, trabalhos realizados, divulgao de material complementar ao estudo por parte dos acadmicos. Tais informaes so fundamentais na divulgao do departamento e suas produes, como uma forma de atrair novos alunos e professores interessados nas reas de pesquisa da matemtica proporcionando o crescimento do departamento dentro e fora da Universidade.
77
9. REFERNCIAS BIBLIOGRFICAS
E.C. Silva, K. M. Mattos WEBVET: Sistema WEB para Clnica Veterinria. Disponvel em <http://pacheco.w3.ind.br/projeto/projetoteca/Projeto%20WEBVET3%c2%baBI M.pdf> Acessado em 10/06/2010. Introduo UML. Disponvel em <www.scribd.com/doc/137108/IntroducaoUML> Acessado em 08/04/2010. Frum PHP. Disponvel em <www.php.net> Acessado em 20/08/2010. Fowler, Martin. UML Essencial. Porto Alegre: Bookman, 2000. Furlan , Jos Davi. Modelagem de Objetos atravs da UML. So Paulo: Makron Books, 1998. Pressman, Roger S. Engenharia de Software. 5a. Edio, McGraw-Hill, Rio de Janeiro, 2002. Silberschatz A., Sistema de Banco de Dados. So Paulo, 1999. Silva, Douglas Marcos da. Guia de Consulta Rpida UML. So Paulo: Novatec Editora Ltda, 2001.
78
10. RESPONSABILIDADES
Assinaturas:
_______________________________
Eliel Rosa Filho - Integrante
_______________________________
Henrique Zanetti Souza - Integrante
_______________________________
Mrcio Augusto de Souza - Orientador
_______________________________
Jorim Sousa das Virgens Filho - Cliente
79