267
UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO Luciana Graever de Medeiros Sabrina Schürhaus SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação Prof. Dr. Vitório Bruno Mazzola Orientador Profa. Dra. Lúcia Helena Martins Pacheco Co-Orientadora Florianópolis – SC 2005/1

SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

Embed Size (px)

Citation preview

Page 1: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

UNIVERSIDADE FEDERAL DE SANTA CATARINA DEPARTAMENTO DE INFORMÁTICA E ESTATÍSTICA

BACHARELADO EM CIÊNCIAS DA COMPUTAÇÃO

Luciana Graever de Medeiros

Sabrina Schürhaus

SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES

Trabalho de conclusão de curso apresentado como parte dos requisitos para obtenção do grau de Bacharel em Ciências da Computação

Prof. Dr. Vitório Bruno Mazzola Orientador

Profa. Dra. Lúcia Helena Martins Pacheco Co-Orientadora

Florianópolis – SC 2005/1

Page 2: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES

Luciana Graever de Medeiros

Sabrina Schürhaus

________________________________ Prof. Dr. José Mazzucco Júnior

Coordenador do Curso

Banca Examinadora:

________________________________ Prof. Dr. Vitório Bruno Mazzola

Orientador

________________________________ Profa. Dra. Lúcia H. Martins Pacheco

Co-Orientadora

________________________________ Prof. Dr. Roberto Willrich

________________________________ Gisele F. Pellegrini

Page 3: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

DEDICATÓRIA

Luciana

D edico este trabalho aos m eus queridos pais H elena e F rancisco e ao m eu filho F elipe.

Sabrina

È com m uita gratidão que dedico este trabalho aos m eus pais, H aroldo e C ida. E les que antes da form ação acadêm ica m e ofereceram a base para que eu pudesse chegar até aqui. F oram eles que m e deram a form ação com o ser hum ano. Tam bém não poderia deixar de dedicar este trabalho a m inha avó, M atilde, carinhosam ente cham ada de T ila. E la que na sua sim plicidade e hum ildade sem pre m e deu força e sabedoria para que eu continuasse apesar das d ificuldades. E la é, sem duvidas, o m eu m aior exem plo de ser hum ano, a quem eu sem pre vou procurar tom ar por m odelo.

Page 4: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

AGRADECIMENTOS

Luciana

A gradeço ao m eu filho, pela com preensão nos m uitos d ias em que eu estive ausente estudando e desenvolvendo este trabalho, e não pude lhe dar atenção.

A os m eus pais, por tornarem possível m eus estudos e m inha form atura.

A o D aniel, por toda a ajuda durante o período de estudos e pelo desenvolvim ento do layout das telas do SG A .

À Professora L úcia e ao P rofessor V itório pela ajuda e pelo incentivo neste projeto.

À m inha parceira Sabrina , pelo com panheirism o durante a faculdade e na realização deste trabalho.

Sabrina

A gradeço ao m eu com panheiro, Carlos pela sua paciência. A os m eus pais e m eus irm ãos pela com preensão nos m om entos de stress. A gradeço ao D aniel pelo seu apoio técnico na construção do layout das páginas. A L úcia pelo auxilio na teoria de A valiações e ao nosso O rientador, V itório.

A gradeço ainda a m inha colega L uciana, pela com preensão nos m om entos de aflição que antecederam a entrega do TCC e pela sua parceria no desenvolvim ento deste trabalho.

Page 5: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

SUMÁRIO

LISTA DE ABREVIATURAS............................................................................. 8

LISTA DE FIGURAS ........................................................................................ 9

LISTA DE TABELAS ...................................................................................... 10

RESUMO ....................................................................................................... 11

ABSTRACT .................................................................................................... 12

INTRODUÇÃO ............................................................................................... 13

1. APRESENTAÇÃO .................................................................................. 15

1.1. Objetivos.......................................................................................... 15

1.2. Justificativa ...................................................................................... 15

1.3. Organização do Trabalho ................................................................ 16

2. TEORIA SOBRE AVALIAÇÕES ............................................................. 18

2.1. Currículo, Instrução e Avaliação ...................................................... 18

2.2. Objetivos da Avaliação .................................................................... 19

2.3. Aspectos para o Desenvolvimento de Avaliações ........................... 20

2.4. Avaliações Eletrônicas..................................................................... 21

2.4.1. Informatização das Instituições de Ensino.................................. 21

2.4.2. Problemas Relacionados............................................................ 22

3. PROGRAMANDO EM AMBIENTE WEB ................................................ 23

3.1. Falhas do HTML .............................................................................. 23

3.1.1. Páginas HTML............................................................................ 23

3.1.2. Páginas PHP .............................................................................. 24

3.2. Tecnologias Dinâmicas com Execução no Lado do Cliente ............ 26

3.1.1 Controles ActiveX ........................................................................ 26

3.1.1 Java Applets ................................................................................ 26

3.1.1 Script do Lado Cliente e HTML Dinâmica (DHTML) .................... 27

3.3. Tecnologias Dinâmicas com Execução do Lado do Servidor .......... 27

3.3.1. Common Gateway Interface – CGI............................................. 27

3.3.2. APIs Proprietárias de Servidores Web (ISAPI, NSAPI) .............. 28

3.3.3. Active Server Page – ASP.......................................................... 28

3.3.4. JavaScript que se Execute no Lado do Servidor (SSJS)............ 29

Page 6: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

3.3.5. Java Servlets e JSP.................................................................... 29

3.3.6. Hypertext Preprocessor – PHP................................................... 30

3.4. Vantagens das Tecnologias Dinâmicas com Execução do Lado do

Servidor 30

4. PHP HIPERTEXT PREPROCESSOR .................................................... 31

4.1. A História do PHP............................................................................ 32

4.1.1. PHP/FI ........................................................................................ 32

4.1.2. PHP 3 ......................................................................................... 33

4.1.3. PHP 4 ......................................................................................... 34

4.1.4. PHP 5 ......................................................................................... 34

4.2. Estimativas de Uso do PHP............................................................. 35

4.3. Introdução à Linguagem PHP.......................................................... 35

4.3.1. Valores Literais Numéricos e Alfanuméricos .............................. 38

4.3.2. Constantes PHP ......................................................................... 39

4.3.3. Variáveis PHP ............................................................................ 42

4.3.4. Estruturas de Controle................................................................ 43

4.3.5. Funções...................................................................................... 44

4.3.6. Classes....................................................................................... 45

4.4. O PHPTriad ..................................................................................... 46

4.4.1. Apache ....................................................................................... 47

4.4.2. MySQL........................................................................................ 47

4.4.3. PHP ............................................................................................ 48

5. DESENVOLVIMENTO DO SISTEMA DE GERENCIAMENTO DE

AVALIAÇÕES........................................................................................................... 49

5.1. Visão do Sistema............................................................................. 49

5.2. Metodologia de Desenvolvimento.................................................... 52

5.3. Levantamento de Requisitos ........................................................... 55

5.4. Requisitos Funcionais...................................................................... 55

5.5. Requisitos Não-Funcionais .............................................................. 79

5.6. Diagrama das Páginas do Sistema.................................................. 80

5.7. Projeto do Banco de Dados do SGA ............................................... 81

5.7.1. Conceitos Básicos ...................................................................... 81

5.7.2. Construindo o Modelo ER........................................................... 82

5.7.3. Construindo o Modelo Lógico ..................................................... 86

Page 7: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

5.7.4. Implementação Inicial de Entidades ........................................... 87

5.7.5. Implementação de Generalização/Especialização ..................... 88

5.7.6. Implementação de Relacionamentos ......................................... 89

5.7.7. Criação da Tabela de Usuários do Sistema ............................... 90

5.8. Implementação de um Protótipo do SGA......................................... 92

CONCLUSÃO............................................................................................... 103

TRABALHOS FUTUROS ............................................................................. 105

REFERÊNCIAS BIBLIOGRÁFICAS............................................................. 106

ANEXO 1 – CASOS DE USO DO ADMINISTRADOR ................................. 108

ANEXO 2 – DIAGRAMA ENTIDADE/RELACIONAMENTO ......................... 127

ANEXO 3 – MODELAGEM LÓGICA DO BANCO DE DADOS .................... 128

ANEXO 4 – SCRIPTS DO BANCO DE DADOS .......................................... 134

ANEXO 5 – CÓDIGO FONTE DO SGA ....................................................... 183

ANEXO 6 – ARTIGO.................................................................................... 262

Page 8: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

LISTA DE ABREVIATURAS

API Applications Programming Interface

ASP Active Server Page

BD Banco de Dados

CASE Computer Aided Software Engineering

CGI Common Gateway Interface

EJB Enterprise Java Beans

HTML Learning Hypertext Markup Language

HTTP HyperText Transfer Protocol

IIS Internet Information Server

ISAPI Internet Server API

JSP Java Server Page

JVM Java Virtual Machine

NSAPI Netscape Server API

PHP Hypertext Preprocessor

PWS Personal Web Server

RUP Rational Unified Process

SGA Sistema de Gerenciamento de Avaliações

SGBD Sistema de Gerenciamento de Banco de Dados

UML Unified Modeling Language

Page 9: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

LISTA DE FIGURAS

Figura 1 – Servidor Web ........................................................................................... 24

Figura 2 – Servidor PHP........................................................................................... 25

Figura 3 - Gráfico do Uso de PHP ............................................................................ 35

Figura 4 – Página Resultante da Execução do Script PHP ...................................... 37

Figura 5 – Exibição da Data e Hora em uma Página HTML ..................................... 38

Figura 6 – Casos de Uso do Professor..................................................................... 58

Figura 7 – Casos de Uso do Aluno ........................................................................... 76

Figura 8 – Árvore Resumida das Páginas do SGA................................................... 80

Figura 9 – Página Inicial do SGA.............................................................................. 93

Figura 10 – Página Principal do Professor................................................................ 94

Figura 11 – Cadastro de Questões........................................................................... 95

Figura 12 – Cadastro de Questões Objetivas ........................................................... 96

Figura 13 – Cadastro de Questões Discursivas........................................................ 97

Figura 14 – Seleção de Disciplina da Avaliação ....................................................... 98

Figura 15 - Entrada de Dados da Avaliação ............................................................. 99

Figura 16 - Elaborando Avaliação Automaticamente.............................................. 100

Figura 17- Elaborando Avaliação Manualmente ..................................................... 101

Figura 18 - Página Principal do Aluno .................................................................... 102

Figura 19 - Casos de Uso do Administrador ........................................................... 108

Page 10: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

LISTA DE TABELAS

Tabela 1 – Constantes PHP ..................................................................................... 40

Tabela 2 – Operadores Aritméticos do PHP............................................................. 40

Tabela 3 – Operadores de Atribuição do PHP.......................................................... 41

Tabela 4 – Operadores Binários do PHP.................................................................. 41

Tabela 5 – Operadores Lógicos do PHP .................................................................. 41

Tabela 6 – Operadores de Comparação do PHP ..................................................... 41

Tabela 7 – Atores e seus Casos de Uso................................................................... 57

Page 11: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

RESUMO

O processo de avaliações atualmente conta com a disponibilidade de

recursos computacionais que permitem automatizá-los. Esta automatização, além de

agilizar a submissão das avaliações por quem é avaliado e a correção pelo

avaliador, também facilita o processamento dos dados para a realização de análise

do processo de avaliação numa visão mais ampla.

Neste trabalho, apresentamos uma proposta de sistema para gerenciamento

de avaliações, o SGA, que automatiza o processo de avaliação no sistema

acadêmico. O SGA foi desenvolvido usando tecnologias para programação web,

mais especificamente em linguagem PHP e banco de dados MySQL.

No processo de desenvolvimento do SGA, procuramos utilizar todos os

conceitos aprendidos no curso para o desenvolvimento de sistemas computacionais.

Por exemplo, a explorações das técnicas para levantamento de requisitos, como a

descrição dos casos de uso para compreender e descrever os requisitos do sistema,

o projeto e modelagem do banco de dados usando diagrama entidade/

relacionamento e técnicas de normalizações para evitar redundâncias, entre outros

conceitos.

Page 12: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

ABSTRACT

The process of evaluations currently counts on the availability of

computational resources to automatize them. This automatization, besides speeding

the submission of the evaluations for who is evaluated and the correction for the

appraiser, also facilitates the data processing for the accomplishment of analysis of

the process of evaluation in a broad vision.

In this work, we present a proposal of system for management of assesment,

the SGA, that automatizes the evaluation process. The SGA was developed using

technologies for web programming, more specifically the language PHP and MySQL

database.

In the process of development of the SGA, we look for to use all the concepts

learned in the course for the development of computational systems. For example,

the explorations of the techniques for survey of requirements, as the description of

the use cases to understand and to describe the requirements of the system, the

project and modeling of the database using entity relationship diagram and

techniques of normalization to prevent redundancies, among others concepts.

Page 13: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

INTRODUÇÃO

O conceito de avaliação sempre esteve presente no cotidiano acadêmico e,

atualmente, com a expansão dos sistemas de informação e da Internet, em várias

outras situações, além da tradicional existência no meio acadêmico. Por exemplo,

avaliações estão presentes na prestação de testes de seleção de estagiários e

trainees em empresas multinacionais por meio de avaliações eletrônicas e também

em sistemas de ensino a distância.

Desta forma, vê-se a necessidade de que as ferramentas de avaliação

acompanhem o advento tecnológico atual, possibilitando a sua automatização, sem

que se perca a sua confiabilidade e eficiência na mensuração do conhecimento. No

entanto, surge aí um grande desafio.

Avaliação é a inferência e a mensuração do conhecimento de um

determinado conteúdo adquirido por um indivíduo [Pellegrino, 2002]. Sendo assim, o

desafio está em automatizar este processo inerentemente abstrato sem que a

avaliação perca sua qualidade e sua confiabilidade.

Neste trabalho apresentamos a proposta de um sistema automatizado de

avaliações, chamado de Sistema de Gerenciamento de Avaliações – SGA. O SGA

foi construído sobre as tecnologias para programação na web, mais especificamente

utilizando a linguagem de programação para web PHP, e utilizando o sistema de

gerenciamento de banco de dados MySQL. O desenvolvimento deste trabalho nos

permitiu utilizar na prática os conhecimentos adquiridos durante o curso para o

processo de desenvolvimento de sistemas computacionais.

Page 14: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento
Page 15: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

15

1. APRESENTAÇÃO

1.1. Objetivos

O objetivo do trabalho é projetar uma ferramenta de gerenciamento e

submissão de avaliações que automatize a tarefa de verificação do domínio de

conteúdos por parte dos alunos e também a correção das avaliações por parte dos

professores. A ferramenta deve possibilitar resultados imediatos e facilitar a análise

destes. Ela poderá ser usada no ensino regular, bem como em sistemas de ensino a

distância ou em qualquer outro sistema que necessite integrar o emprego de

avaliações. Apresentaremos um protótipo do SGA com as principais funcionalidades

implementadas.

O objetivo principal do trabalho consiste na utilização prática dos conceitos

absorvidos ao longo do curso de graduação em Ciências da Computação na

elaboração do projeto. Nosso foco é a busca pelo desenvolvimento de software com

qualidade, independente da sua complexidade, e para isto recorremos a todos os

subsídios e recursos que nos foram oferecidos durante o curso.

1.2. Justificativa

As avaliações no sistema de ensino fundamental, médio e superior deveriam

ter a finalidade de verificação do domínio de conteúdos pelo aluno. No entanto, esta

finalidade acaba sendo distorcida e adquire um sentido pejorativo. Isto porque os

alunos colocam mais ênfase em tirar um alto conceito na avaliação do que na

preocupação com evolução do seu conhecimento. A avaliação deveria ser uma

forma de autoverificação do conhecimento pelo aluno sobre o conteúdo que está

sendo explorado. Desta forma, ele poderia analisar suas falhas, identificar como está

Page 16: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

16

a sua evolução e em quais pontos ele precisa melhorar. Já para os professores, a

correção do resultado das avaliações é uma tarefa maçante, demorada e monótona.

Esta energia poderia ser usada em tarefas produtivas, como, por exemplo, a análise

da avaliação em si, a obtenção do desempenho geral da turma, mudança na forma

do trabalho em função dos resultados obtidos, orientação aos alunos etc.

Neste sentido, a ferramenta a qual nos propomos especificar visa satisfazer

estas necessidades, buscando facilitar a aplicação de avaliações, de modo geral no

ensino regular, e também em sistemas de ensino a distância.

As primeiras idéias de avaliação da aprendizagem estavam vinculadas ao

conceito de medidas [PELLEGRINO, 2002]. No entanto, hoje, sabe-se que nem

sempre esta forma de avaliação do conhecimento é a melhor. Tanto que já existem

muitas instituições de ensino no exterior, e até mesmo aqui no Brasil, por exemplo, o

CEFET-UnED/São José – SC, que implantaram o sistema de avaliações por

habilidades e competências. Neste tipo de sistema, não existe a avaliação por

atributos numéricos que expressam os resultados numa escala de graus de 0 a 10,

mas sim a verificação do conhecimento por análise da aptidão de competências pré-

estabelecidas para cada disciplina.

Porém, mesmo nas medidas educacionais tradicionais existe a necessidade

de refinamento das técnicas utilizadas [PELLEGRINO, 2002].

1.3. Organização do Trabalho

Este trabalho está organizado e subdividido da seguinte forma:

O Capítulo 2 trata dos conceitos relacionados às avaliações, como seu papel

no sistema educacional, seus objetivos e resultados de interesse tanto dos

professores quanto dos alunos e as principais características a serem seguidas

quando são desenvolvidas. Neste capitulo também são apresentadas algumas

questões relacionadas às avaliações eletrônicas, seu uso atual, seus problemas e

seus desafios.

Page 17: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

17

O Capítulo 3 apresenta as tecnologias de aplicações web mais utilizadas

atualmente, descrevendo suas características, vantagens e desvantagens,

disponibilidades e outros.

O Capítulo 4 consiste em uma introdução à linguagem PHP, contendo suas

características, sua história e uma breve introdução aos conceitos da linguagem.

No Capítulo 5 são apresentadas as características do sistema proposto. É

mostrado com uma visão geral do sistema, e em seguida a descrição do processo e

a metodologia de desenvolvimento que foi utilizada e as etapas que foram seguidas.

Page 18: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

18

2. TEORIA SOBRE AVALIAÇÕES

2.1. Currículo, Instrução e Avaliação

Segundo [Pellegrino,2002], três aspectos são centrais no sistema

educacional: currículo, instrução e avaliação. Estes três elementos estão

conectados, apesar da natureza da sua ligação e influência recíproca serem

geralmente menos explícitas do que deveriam ser.

Currículo consiste no conhecimento e habilidades na matéria em questão que

os professores ensinam e os alunos supostamente aprendem. O currículo

normalmente consiste de certa quantidade de assuntos em uma área estabelecida e

uma seqüência de aprendizado.

Instrução refere-se aos métodos de ensinamento e as atividades de

aprendizado utilizadas para ajudar os estudantes a dominar o conteúdo e os

objetivos especificados no currículo. A instrução abrange tanto as atividades dos

professores quanto à dos alunos. Ela pode ser realizada por vários métodos e

seqüências de atividades.

Avaliação é o meio utilizado para medir os resultados da educação e o

conhecimento dos estudantes considerando as competências importantes. As

avaliações podem incluir métodos formais, como as tradicionais provas, ou menos

formais, tais como testes, projetos e perguntas do professor.

A prática educacional necessita do alinhamento entre currículo, instrução e

avaliação. Alinhamento, neste sentido, significa os três aspectos estarem

direcionados aos mesmos fins e reforçando uns aos outros ao invés de trabalharem

com objetivos diferentes. Idealmente, uma avaliação deveria medir o que os

estudantes estão realmente sendo ensinados, e o que está sendo ensinado deve

Page 19: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

19

coincidir com o currículo que os alunos devem dominar. Se qualquer dos elementos

estiver distorcido, isto irá desbalancear o processo educacional. Os resultados das

avaliações serão inúteis, ou a instrução será ineficiente. Porém, este alinhamento é

difícil de ser obtido [Pellegrino,2002].

2.2. Objetivos da Avaliação

Professores avaliam os alunos para descobrir o que eles sabem e podem

fazer, mas avaliações não oferecem um caminho para a mente do estudante. Os

resultados educacionais das avaliações não são diretos como medir peso ou altura:

os atributos a serem medidos são representações mentais e processos que não

podem ser vistos externamente. Assim, uma avaliação é uma ferramenta projetada

para observar o comportamento dos estudantes e produzir dados que poderão ser

utilizados para extrair inferências razoáveis sobre o que os estudantes sabem

[Pellegrino,2002]. Decidir o que avaliar não é tão simples quanto parece.

O papel da avaliação deve ser expandido para além do tradicional conceito de

testar. Ambientes de aprendizado eficazes são centrados nas avaliações, pois a

aplicação de freqüentes avaliações de formação faz com que os estudantes pensem

claramente. Isto permite que o professor e o estudante monitorem o progresso.

As avaliações devem testar o entendimento profundo do domínio e não

somente o conhecimento supérfluo. O entendimento profundo do domínio

caracteriza-se por evidências de um entendimento da organização conceitual e

relacionamentos conceituais assim como a habilidade de aplicar o conhecimento de

um determinado assunto, ao invés de conhecimento supérfluo de conhecimento

desconectado baseado na memorização de um assunto [Pellegrino,2002].

É fundamental distinguir-se avaliação de nota. A nota obtida em uma

avaliação consiste de um número, conceito ou menção e tem como objetivo atender

a exigências formais do sistema educacional. Já avaliação é a verificação do

domínio de um determinado assunto por meio de evidências [Pellegrino,2002].

Page 20: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

20

2.3. Aspectos para o Desenvolvimento de Avaliações

As principais características que o desenvolvimento de um método de

avaliação exige estão descritas a seguir [Pellegrino, 2002].

Abrangência

Determina o nível de cobertura dos assuntos relacionados no currículo.

Avaliações podem ter diferentes níveis de abrangência, dependendo do seu objetivo.

Clareza

A clareza de um método de avaliação corresponde ao modo como as

questões são descritas, e está relacionado ao entendimento e interpretação que o

aluno terá quando da realização da avaliação. É importante formular as questões e

atividades com grande clareza para evitar possíveis ambigüidades e interpretação

equivocada do objetivo da questão.

Mensuração

A mensuração consiste na definição de um resultado quantitativo da

avaliação, seja por meio de notas ou conceitos. A mensuração é fundamental no

processo educacional, pois é a partir dela que será estabelecida a aprovação ou

reprovação do aluno na disciplina em questão.

Ponderação

A ponderação determina a atribuição de diferentes pesos às questões e

atividades de uma avaliação, e é estabelecida pelo professor de acordo com a

complexidade e importância do assunto a ser avaliado.

Page 21: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

21

Precisão Lógica

A precisão lógica corresponde à consistência do método de avaliação. Os

objetivos educacionais devem ser plenamente atendidos e a avaliação deve se ater

a estes objetivos.

Precisão Temporal

A precisão temporal consiste na atribuição temporal de limites para a

realização das questões e atividades propostas na avaliação. Deve ser bem

elaborada para permitir a adequada realização das tarefas pelos alunos.

2.4. Avaliações Eletrônicas

2.4.1. Informatização das Instituições de Ensino

A informática e seus recursos são um novo paradigma para o sistema

educacional e sua potencialidade é grande. O uso do computador está

transformando a vida dos estudantes e professores nas instituições de ensino de

todo o mundo. Os computadores, a Internet e as inovações digitais auxiliam a

criatividade e ampliam as atividades e currículo de muitas disciplinas, tornando-as

mais dinâmicas e interessantes e menos monótonas. Softwares educativos

propiciam um aumento na motivação do aluno e permitem a realização de atividades

que seriam impossíveis de serem realizadas sem o computador.

Com a tecnologia digital sendo cada vez mais utilizada nas instituições de

ensino, pode-se pensar em avaliações eletrônica em detrimento às tradicionais

avaliações manuscritas e nos computadores como ferramentas de suporte ao

professor na elaboração, correção e verificação da evolução dos alunos.

Page 22: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

22

2.4.2. Problemas Relacionados

Os principais problemas relacionados à avaliação eletrônica são causados

quando a realização da avaliação é não-presencial, necessitando de segurança para

garantir sua idoneidade.

É fundamental garantir a autenticação da avaliação, tanto do aluno que está

realizando a avaliação quanto do professor que a está aplicando. Isto evita possíveis

fraudes. Além disso, deve-se garantir a integridade dos dados, para impedir que a

avaliação seja alterada antes ou depois da sua realização. O não-repúdio garante

que o estudante que fez a avaliação não possa negar sua realização, e a instituição

não negue sua aplicação. A justiça garante que todos os estudantes sejam avaliados

sobre o mesmo conteúdo e com o mesmo nível de dificuldade, seja com avaliações

idênticas ou com questões e tarefas diferenciadas. Finalmente, a privacidade

garante que o conteúdo da avaliação seja sigiloso até o momento de sua aplicação.

Page 23: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

23

3. PROGRAMANDO EM AMBIENTE WEB

3.1. Falhas do HTML

Muitas páginas web possuem conteúdo estático, como artigos acadêmicos,

livros etc. As páginas destes sites são documentos constituídos de texto simples,

imagens e hyperlinks para outros documentos. Para este tipo de web sites, simples

tecnologias no lado do cliente geralmente são suficientes. HTML e o estilo cascata

de páginas oferecem os mecanismos suficientes para estruturar e apresentar o

conteúdo das páginas.

No entanto, a Internet e as Intranets são usadas para aplicações, e muitas

destas incorporam o uso de bancos de dados. Estes sites e estas aplicações são

dinâmicos, porque o conteúdo varia de acordo com os dados envolvidos e as ações

do usuário. O PHP, assim como outras tecnologias, permitem criar aplicações

potentes que interajam com banco de dados e criem conteúdo dinamicamente

[CASTAGNETTO, 1999].

3.1.1. Páginas HTML

Quando uma requisição para uma página é iniciada pelo navegador, o

servidor web executa três passos:

1. Lê a requisição vinda do navegador (HTTP Request).

2. Localiza a página no servidor.

3. Envia a página pela Internet (ou intranet) para o navegador (HTTP

Response).

Page 24: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

24

A Figura 1 ilustra este procedimento.

Figura 1 – Servidor Web

3.1.2. Páginas PHP

O uso da linguagem de scripting PHP embutida em HTML adiciona um

passo. Ao invés de simplesmente enviar uma página HTML estática para o usuário,

o servidor deve realizar algumas ações de acordo com o código PHP: o PHP deve

tomar algumas decisões e criar uma página apropriada para a respectiva situação. A

Error! Reference source not found. ilustra este processo.

As ações do servidor PHP são as seguintes:

1. Lê a requisição vinda do navegador (HTTP Request).

2. Localiza a página no servidor.

3. Executa algumas instruções PHP para modificar esta página.

4. Envia a página pela Internet (ou intranet) para o navegador (HTTP

Response).

Page 25: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

25

Figura 2 – Servidor PHP

A principal diferença entre o HTML puro e PHP é que o HTML é simplesmente

interpretado pelo navegador, e não é executado no servidor.

O PHP é apenas uma das diversas tecnologias usadas para criar páginas

web dinâmicas e interativas. A seguir um breve histórico da sua evolução na web:

� Publicação estática – primeira geração, com páginas simplesmente com

HTML, figuras estáticas, textos que podiam ser posicionados precisamente

nos termos das coordenadas x e y.

• Sites web ativos - permitem o envio ao usuário de páginas personalizadas. As

páginas são construídas pela combinação de linguagens e tecnologias. Estas

tecnologias são divididas em dois grupos: tecnologias com execução no lado

do cliente e tecnologias com execução no lado do servidor.

Page 26: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

26

3.2. Tecnologias Dinâmicas com Execução no Lado do Cliente

Aqui não existe controle sobre o software usado para visualizar a página no

lado do cliente. Isto é uma desvantagem, principalmente, porque estas tecnologias

são inovações recentes e só são suportadas pelas versões mais recentes de

navegadores. Alguns exemplos destas tecnologias são: Controles ActiveX - criados

pelo Visual C++ ou Visual Basic; Java Applets; Script do lado do cliente e HTML

Dinâmico. As tecnologias com execução do lado do servidor são: CGI (Common

Gateway Interface); APIs proprietárias de servidores web como ISAPI e NSAPI; ASP

(Active Serves Page); Páginas JavaServers e Java Servlets; JavaScript Server-Side;

PHP [CASTAGNETTO, 1999]. A seguir estas tecnologias serão detalhadas.

3.1.1 Controles ActiveX

São programas autocontidos, também conhecidos por componentes que são

escritos em linguagens, tal como C++ ou Visual Basic. Quando adicionados a

páginas web, eles oferecem uma parte especifica da funcionalidade, tais como:

gráficos, temporizadores, autenticação de clientes, e acesso a bancos de dados.

Controles ActiveX podem ser executados pelo navegador ou servidor quando eles

são embutidos nas páginas web. Estes são adicionados às páginas HTML pela tag

<OBJECT>. Uma desvantagem desta tecnologia é o fato de ser proprietária da

Microsoft, sendo suportada, em princípio, apenas pelo navegador Internet Explorer.

Atualmente, por meio de plug-in, o navegador Netscape também é compatível

[CASTAGNETTO, 1999].

3.1.1 Java Applets

Applets são programas escritos na linguagem de programação Java que

podem ser incluídos nas páginas HTML da mesma forma que imagens podem ser

incluídas. Para o uso de applets é preciso que o navegador esteja habilitado para

Page 27: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

27

visualizar uma página que os contenham. Desta forma, o código applet é transferido

para o seu sistema e executado pelo navegador. O fato de ser escrito em Java faz

com que applets adquiram todas as vantagens da linguagem principalmente a de ser

multiplataforma [CASTAGNETTO, 1999].

3.1.1 Script do Lado Cliente e HTML Dinâmica (DHTML )

Linguagens de script funcionam pela adição de instruções script no código

HTML. Desta forma, quando o navegador encontra uma instrução script, ele a traduz

em HTML puro, isto assumindo que o navegador “entende” a respectiva linguagem

de script. JavaScript é o exemplo mais conhecido deste tipo de linguagem, além

desta existe o VBScript, proprietário da Microsoft e compreendido apenas pelo

Internet Explorer. HTML dinâmica funciona da mesma forma que linguagens de

script, diferindo apenas pelo fato de permitir acesso a características extras como

habilidade para páginas animadas e posicionamento de gráficos e textos em

posições absolutas [CASTAGNETTO, 1999].

3.3. Tecnologias Dinâmicas com Execução do Lado do Servidor

A seguir são detalhadas as principais tecnologias para páginas dinâmicas no

lado do servidor.

3.3.1. Common Gateway Interface – CGI

É a tecnologia dinâmica com execução no servidor mais comum e, por isso,

todo servidor web possui suporte a programas CGI. Um programa CGI pode ser

escrito em qualquer linguagem, sendo a linguagem Perl a mais usada para isso.

Servidores web implementam ações CGI como uma entrada entre a requisição do

usuário e os dados requeridos. A cada requisição recebida pelo servidor web é

criado um novo processo. A principal desvantagem do CGI é escalonamento destes

Page 28: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

28

processos, principalmente quando o número de requisições recebidas pelo servidor

web for alto. Algumas alternativas que tentam amenizar estes problemas são as

tecnologias FastCGI e Apache mod_perl [CASTAGNETTO, 1999].

3.3.2. APIs Proprietárias de Servidores Web (ISAPI, NSAPI)

Numa tentativa de resolver a ineficiência do CGI, Microsoft e Netscape

desenvolveram cada uma suas próprias APIs. Assim, foram criadas bibliotecas

compartilhadas por desenvolvedores para escrever suas aplicações. Estas

bibliotecas foram projetadas para serem carregadas em um mesmo processo no

servidor web e foram habilitadas para o servidor múltiplas requisições sem criar um

novo processo. Elas podem ser carregadas quando o servidor web se inicia, ou

quando for necessário.

No entanto, mesmo que estas bibliotecas ofereçam uma extensão eficiente

aos servidores web, elas ainda possuem alguns problemas. São específicas para

plataformas proprietárias, e o fato destas bibliotecas serem acessadas por diversos

usuários simultaneamente faz com que elas precisem ser thread-safe. Isto implica

em acesso global e variáveis estáticas. Além disso, se um programa servidor causa

uma violação de acesso, ele pode potencialmente interromper a execução de todo o

servidor web [CASTAGNETTO, 1999].

3.3.3. Active Server Page – ASP

ASP é similar ao PHP, já que combina HTML, scripting e componentes

executáveis no servidor em um arquivo chamado Active Server Page. Quando o

servidor web recebe uma requisição para um arquivo ASP, ele primeiro verifica se a

página já está compilada e então a executa. Se a página ainda não foi compilada,

então o servidor realiza a compilação e a executa. O resultado de um arquivo ASP é

uma página web finalizada e retornada ao navegador.

Page 29: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

29

Uma página ASP pode ser escrita usando HTML, JScript (variação Microsoft

para o JavaScript), e VBScript. Através de scripting, a página ASP pode acessar

componentes executando no servidor. Estes componentes podem ser escritos em

qualquer linguagem desde que tenham presente uma interface COM (especificação

de componente Microsoft). A desvantagem de ASP é que só se executa com

servidores web Microsoft (IIS – Internet Information Server, PWS – Personal Web

Server) em sistemas operacionais da Microsoft (WinXX, WinNT) [CASTAGNETTO,

1999].

3.3.4. JavaScript que se Execute no Lado do Servido r

(SSJS)

SSJS é uma solução Netscape em resposta ao ASP. Tal como o ASP,

páginas SSJS consistem de código HTML com seções de script executadas no

servidor embutidas. O código destas seções de script é executado pelo servidor e

produz páginas web de texto HTML enviado ao navegador.

3.3.5. Java Servlets e JSP

Java Servlets e JSP são tecnologias que executam no lado do servidor e

usam a linguagem de programação Java. A API Java Servlet, criada pela Sun, é

uma extensão da plataforma Java que oferece facilidades na criação de conteúdos

dinâmicos e extensão de funcionalidades do servidor web.

Java Servlets é muito similar ao CGI no que diz respeito ao fato de que Java

Servlet é um programa no lado do servidor que serve requisições http e retorna o

resultado como uma resposta http. Mas as semelhanças acabam aqui.

Uma boa analogia para servlets é com um applet não visual que roda no

servidor web. O seu ciclo de vida é muito similar ao de um applet e também se

executa sobre a Máquina Virtual Java (JVM).

Page 30: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

30

JavaServerPages (JSP) são similares ao ASP da Microsoft, pois contem

HTML, código Java, e componentes JavaBeans. JSP oferece uma alternativa para

embutir componentes nas páginas, e ter como sua própria tarefa gerar a página que

é finalmente enviada ao cliente. Quando o usuário requer um arquivo JSP, o servidor

web vai primeiramente gerar um servlet correspondente, a menos que este já exista.

Então o servidor web vai invocar o servlets e retornar o conteúdo resultante para o

navegador.

3.3.6. Hypertext Preprocessor – PHP

PHP trabalha de modo similar ao ASP: seções de script são delimitadas pela

tag <?php e ?> e embutidas nas páginas HTML. Estes scripts são executados no

servidor antes que a página seja enviada ao navegador, então não é preciso um

suporte PHP pelo navegador. A diferença em relação ao ASP é a independência de

plataforma e o fato de ser código aberto.

3.4. Vantagens das Tecnologias Dinâmicas com Execuç ão do

Lado do Servidor

Dentre as vantagens das tecnologias dinâmicas com execução do lado do

servidor em relação àquelas com execução no cliente estão: a minimização do

tráfego na rede; a resposta chega mais rapidamente ao cliente; evita problemas de

incompatibilidades de navegadores; pode oferecer dados ao cliente que não residam

no próprio cliente; oferece mais segurança, já que alguns códigos não podem ser

visualizados no navegador [CASTAGNETTO, 1999].

Page 31: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

31

4. PHP HIPERTEXT PREPROCESSOR

PHP é uma linguagem de código aberto que utiliza scripts embutidos em

HTML usada na programação de aplicações na web. Seu ambiente de

desenvolvimento foi escrito na linguagem Perl.

Sua vantagem em relações a outras tecnologias como ASP, ColdFusion, Perl,

Java, Python etc, está na simplicidade e portabilidade, já que existem versões para

diversas plataformas com sistema operacional Unix, Linux, Windows NT,

Windows95/98 e facilidade no uso de banco de dados, principalmente com o

MySQL, que também é código aberto, formando um casamento perfeito. Outra

vantagem do PHP é a independência de plataformas e o fato de ser uma tecnologia

de execução no lado do servidor.

PHP é diferente de scripts CGI escritos em outras linguagens como Perl ou C

porque, ao invés de escrever um programa com muitos comandos para imprimir

HTML, deve-se escrever um arquivo HTML com algum código inserido para fazer

alguma ação. O que distingui o PHP de JavaScript no lado do cliente é que o código

é executado no servidor. Se houver um script no servidor, o cliente recebe os

resultados da execução desse script sem nenhum modo de determinar como é o

código fonte. É possível ainda configurar o servidor para processar todos os arquivos

HTML como PHP, então não haverá modo de os usuários descobrirem se você

utiliza esta linguagem ou não.

Page 32: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

32

4.1. A História do PHP

4.1.1. PHP/FI

O PHP sucede de um produto mais antigo, chamado PHP/FI. PHP/FI foi

criado por Rasmus Lerdorf em 1995, inicialmente como simples scripts Perl como

estatísticas de acesso para seu currículo on-line. Ele nomeou esta série de script de

Personal Home Page Tools. Como mais funcionalidades foram requeridas, Rasmus

escreveu uma implementação em C muito maior, que era capaz de comunicar-se

com base de dados e possibilitava aos usuários desenvolver simples aplicativos

dinâmicos para web. Rasmus resolveu disponibilizar o código fonte do PHP/FI para

que todos pudessem ver, usar, e também consertar bugs e melhorar o código.

PHP/FI, que significa Personal Home Page/Forms Interpreter, incluía algumas

funcionalidades básicas do PHP que nós conhecemos hoje. Ele usava variáveis no

estilo Perl, interpretação automática de variáveis vindas de formulário e sintaxe

embutida no HTML. A sua própria sintaxe era similar a do Perl, porém muito mais

limitada, simples, e um pouco inconsistente.

Em 1997, PHP/FI 2.0, a segunda versão da implementação C, obteve

milhares de usuários ao redor do mundo, com aproximadamente cinqüenta mil

domínios reportando que possuíam PHP/FI 2.0 instalado, abrangendo 1% dos

domínios da Internet. Enquanto isto havia milhares de pessoas contribuindo com

pequenos códigos para o projeto.

O PHP/FI 2.0 foi oficialmente lançado somente em novembro de 1997, após

perder a maior parte de sua vida em versões beta. Ele foi rapidamente substituído

pelas versões alpha do PHP 3.0.

Page 33: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

33

4.1.2. PHP 3

O PHP 3.0 foi a primeira versão que se assemelha ao PHP que nós

conhecemos hoje. Ela foi criada por Andi Gutmans e Zeev Suraski em 1997 e foi

totalmente reescrito, após eles descobrirem que o PHP/FI 2.0 poderia ajudá-los a

desenvolver suas próprias aplicações de comércio eletrônico de um projeto de

universidade. No esforço cooperativo, a iniciativa de começar o PHP/FI a partir da

base-usuário existente, Andi, Rasmus e Zeev decidiram cooperar e anunciar o PHP

3.0 como uma versão oficial de seu sucessor, o PHP/FI 2.0, e o desenvolvimento do

PHP/FI 2.0 foi descontinuado.

Uma das maiores características do PHP 3.0 é sua grande capacidade de

extensibilidade. Além de oferecer aos usuários finais uma infra-estrutura sólida para

diversos bancos de dados, protocolos e APIs, a extensibilidade do PHP 3.0 atrai

dezenas de desenvolvedores a se juntarem e submeterem novos módulos. Esta é a

chave do tremendo sucesso do PHP 3.0. Outras características importantes

introduzidas no PHP 3.0 foram o suporte à orientação a objetos e uma sintaxe muito

mais poderosa e consistente.

Toda a nova versão da linguagem foi realizada sob um novo nome, que

removeu a impressão do limitado uso pessoal que o PHP/FI 2.0 prendeu. Ela foi

nomeada simplesmente PHP, com o significado que é um acrônimo - PHP:

Hypertext Preprocessor.

No final de 1998, o PHP obteve uma base de dezenas de milhares de

usuários e centenas de milhares de páginas web relatando que o tinham instalado.

Em seu pico, o PHP 3.0 foi instalado em aproximadamente 10% dos servidores web

da Internet.

O PHP 3.0 foi oficialmente lançado em junho de 1998, depois de ter passado

aproximadamente nove meses em testes públicos.

Page 34: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

34

4.1.3. PHP 4

Os objetivos do projeto do PHP 4.0 eram melhorar a performance de

aplicações complexas, e melhorar a modularidade do código base do PHP. Tais

aplicações foram possíveis por causa das novas características do PHP 3.0 e o

suporte a uma variedade de banco de dados de terceiros e APIs, mas o PHP 3.0

não foi projetado para trabalhar com aplicações muito complexas eficientemente.

A nova engine, a Zend Engine (formada pela junção de Zeev e Andi), fez

deste objetivo um sucesso, e foi introduzida em meados de 1999. PHP 4.0, baseado

nesta engine, e acompanhado de uma série de novas características, foi oficialmente

lançada em maio de 2000, quase dois anos após o seu predecessor, o PHP 3.0.

Além do melhoramento da performance desta versão, o PHP 4.0 incluiu outras

características chave como o suporte para muitos servidores web, sessões http,

buffer de saída, maneiras mais seguras de manipular entradas de usuários e muitas

construções novas na linguagem.

PHP 4 é a última versão lançada do PHP. O trabalho já começou na

modificação e melhoramento da Zend Engine para integrar novas características que

foram designadas para o PHP 5.0.

Hoje, o PHP está começando a ser usado por centenas de milhares de

desenvolvedores, e muitos milhões de sites reportam que têm o PHP instalado, o

que explica os 20% de domínios da Internet.

4.1.4. PHP 5

O futuro do PHP é dirigido principalmente pelo seu núcleo, a Zend Engine.

PHP 5 irá incluir a nova Zend Engine 2.0.

Page 35: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

35

4.2. Estimativas de Uso do PHP

O uso de PHP como solução para sites web dinâmicos vem crescendo em

ritmo acelerado e se tornando cada vez mais popular como poder observado no

gráfico da Figura 3. De acordo com o site oficial do PHP - www.php.net, estima-se

que em agosto de 2004 o número de domínios usando PHP no mundo era de

16.946.328 e 1.348.793 endereços IP. O gráfico a seguir mostra a curva de

crescimento do uso de PHP desde janeiro de 2000 até julho de 2004.

Figura 3 - Gráfico do Uso de PHP

4.3. Introdução à Linguagem PHP

Para que se possa desenvolver aplicações web utilizando PHP, é necessário

obter e instalar alguns elementos essenciais. O primeiro deles é um servidor web

que suporte ou seja suportado por PHP. Um dos servidores suportados são o

Apache (http://www.apache.com) e o Sambar (http://www.sambar.com) [MAZZOLA,

2004].

Page 36: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

36

O segundo elemento fundamental é o ambiente PHP. O PHP deve ser

baixado e instalado seguindo as regras de instalação para o ambiente considerado.

Finalmente, se as pretensões do programador incluem o desenvolvimento de

aplicações envolvendo acesso a bases de dados, a obtenção de um gerenciador de

bases de dados é outra etapa importante neste processo. As opções são muitas,

desde opções baseadas em plataformas Wintel, como o Microsoft Access (via

interface ODBC) ou soluções abertas como no caso de MySQL, entre muitas outras

opções disponíveis.

A integração de scripts PHP com código escrito em HTML é feita de forma

bastante confortável. A inclusão é feita a partir da tag <?php, sendo que a tag ?> é

utilizada para encerrar a inclusão.

Mesmo que contenham código HTML em sua maioria, os arquivos que

contiverem código PHP embutido deverão ter as extensões que indiquem esta

propriedade. A extensão a ser dada depende de como foi configurado o ambiente

PHP no servidor, mas, usualmente elas apresentam o formato .php, .php3 ou .php4.

A listagem a seguir apresenta um primeiro exemplo de código PHP, que vai

gerar uma página contendo a impressão de um texto centrado na mesma. A página

resultante deste primeiro programa pode ser visualizada na Figura 4.

Page 37: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

37

<?php // Meu primeiro programa em PHP echo “<p align=’center’>Este é meu primeiro progra ma em PHP!!!</p>”; ?>

Figura 4 – Página Resultante da Execução do Script PHP

Um programa PHP funde comandos HTML e comandos PHP. Os comandos

HTML que deverão ser interpretados diretamente pelo navegador são incluídos de

forma similar à construção de qualquer página HTML.

Código PHP sempre pode ser mesclado com código HTML, desde que sejam

delimitados pelos tags mencionados anteriormente. Os comandos PHP devem

sempre finalizar com ;.

Na listagem apresentada a seguir, observa-se um exemplo mais típico que

funde HTML e PHP. Seu resultado é visto na Figura 5 – Exibição da Data e Hora em

uma Página HTML.

Page 38: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

38

<HTML> <HEAD><TITLE>Exemplo 2 de PHP – Data e Hora</TITLE> </HEAD> <BODY> <?php $data = date(“d/m/Y”,time()); $hora = date(“h:i”,time()); ?> <p align=”center”><strong><font color=”#0000FF”>Hoj e é dia</font>&nbsp; <?php echo $data; ?><font color=”#0000FF”>&nbsp;e a gora são</font>&nbsp; <?php echo $hora; ?></p> </BODY> </HTML>

Figura 5 – Exibição da Data e Hora em uma Página HT ML

4.3.1. Valores Literais Numéricos e Alfanuméricos

Literais são todos os dados enviados diretamente ao PHP. Podem ser de

texto e numéricos. Os literais numéricos são utilizados em scripts que envolvam

cálculos aritméticos diversos ou mesmo aqueles que envolvam valores monetários

ou de hora e data. Literais numéricos podem ser expressos em decimal, o que é feito

mais comumente, mas outras bases numéricas podem ser consideradas, como a

base octal ou hexadecimal. É possível ainda utilizar notação científica para

expressar os valores.

Os literais alfanuméricos são utilizados normalmente para a exibição de texto

resultante do processamento de um script PHP. Os literais alfanuméricos devem ser

expressos utilizando delimitadores, os quais podem ser de três tipos:

Page 39: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

39

• Aspas simples (‘), que é o modo mais comum de apresentar textos

em geral; entretanto, o uso de aspas simples oferece algumas

complicações na construção de determinadas frases (por exemplo, se

a própria frase contém aspas simples);

• Aspas duplas (“), que permite apresentar textos simples, mas são

úteis principalmente quando se quer introduzir caracteres de controle

no meio do texto, como tabulação, saltos de linha etc.

• Aspas invertidas (`), que servem para incluir comandos do sistema

operacional no interior de scripts PHP.

4.3.2. Constantes PHP

PHP permite a definição de constantes de ambiente e do próprio sistema. A

Tabela 1 mostrada a seguir indica as constantes PHP que podem ser definidas pelo

programador. O programador pode ainda definir as suas próprias constantes,

utilizando o comando define, cuja sintaxe é:

define(<nome_constante>,<valor>);

Page 40: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

40

Descrição

_FILE_ Nome do script em execução.

_LINE_ Número da linha do script sendo executada.

PHP_VERSION Versão corrente do PHP.

PHP_OS Sistema operacional no qual o PHP está executando.

TRUE Verdadeiro. Utilizado em comparações.

FALSE Falso. Utilizado em comparações.

E_ERROR Exibe erro irrecuperável de um script.

E_WARNING Exibe mensagem de aviso do PHP (execução continua).

E_PARSE Exibe um erro de sintaxe do PHP.

E_NOTICE Indica alguma ocorrência (erro ou não).

Tabela 1 – Constantes PHP

PHP suporta os operadores clássicos, que estão distribuídos em cinco

categorias: operadores aritméticos, de atribuição, binários, lógicos e de comparação.

As cinco categorias estão apresentadas nas tabelas a seguir:

Operadores Aritméticos

Descrição

Adição + Adiciona dois valores.

Subtração - Subtrai um valor de outro.

Multiplicação * Multiplica dois valores.

Divisão / Divide um valor por outro.

Módulo % Resto de uma divisão inteira.

Tabela 2 – Operadores Aritméticos do PHP

Operadores de Atribuição

Descrição

Igualdade = oper1 = oper2

Adição += oper1 = oper1 + oper2

Subtração -= oper1 = oper1 - oper2

Multiplicação *= oper1 = oper1*oper2

Divisão /= oper1 = oper1/oper2

Módulo %= oper1 = oper1 % oper2

Page 41: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

41

Concatenação .= oper1 = oper1.oper2

AND &= oper1 = oper1 & oper2

OR |= oper1 = oper1 | oper2

OR Exclusivo ^= oper1 = oper1 ^ oper2

Desloca Direita >>= oper1 = oper1 >> oper2

Desloca Esquerda <<= oper1 = oper1 << oper2

Tabela 3 – Operadores de Atribuição do PHP

Operadores Binários

Descrição

AND & AND lógico.

OR | OR lógico.

OR Exclusivo ^ OR exclusivo de dois valores.

Desloca à Direita >> Desloca n bits para a direita.

Desloca à Esquerda << Desloca n bits para a esquerda.

Tabela 4 – Operadores Binários do PHP

Operadores Lógicos

Descrição

AND AND ou && AND lógico.

OR OR ou || OR lógico.

OR Exclusivo XOR OR exclusivo de dois valores.

Complemento ! Negação do operando.

Tabela 5 – Operadores Lógicos do PHP

Operadores de Comparação

Descrição

Igualdade == Testa igualdade dos operandos.

Desigualdade != ou <> Testa desigualdade dos operandos.

Maior > Testa superioridade.

Maior ou Igual >= Testa superioridade ou igualdade.

Menor < Testa inferioridade.

Menor ou Igual <= Testa inferioridade ou igualdade.

Tabela 6 – Operadores de Comparação do PHP

Page 42: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

42

PHP define ainda um operador ternário, que permite atribuir um entre dois

possíveis valores com base na avaliação de uma expressão booleana. O efeito

deste operador é similar ao de uma estrutura do tipo if, mas sua sintaxe é mais

compacta. A forma geral deste operador é:

<condição> ? <expressão1> : <expressão2>

O operador deve ser interpretado da seguinte maneira: se a <condição> for

avaliada como verdadeira, o valor atribuído será o resultado do processamento da

<expressão1>; caso contrário, o valor atribuído será o resultado do processamento

da <expressão2>.

4.3.3. Variáveis PHP

No PHP, os identificadores das variáveis PHP iniciam sempre pelo símbolo

“$”. Não há necessidade de declaração da variável e associação de um tipo nesta

declaração. Sendo uma variável escalar, o tipo a ser atribuído depende do valor

associado.

Para as variáveis estruturadas, no caso os vetores, existe a necessidade de

identificação dos componentes por meio de um índice, como ocorre com as

linguagens de programação clássicas. Exemplos de uso de arrays PHP são

mostrados na listagem a seguir:

$a[1] = 100; $b[4] = “Juca”; $c[] = 5;

Pode-se observar que, na última instrução de atribuição, não foi definido um

índice para identificar o componente do vetor. Quando isto ocorre, o valor do último

índice utilizado para o vetor é incrementado de uma unidade e utilizado para fins de

atribuição do valor.

Page 43: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

43

Outra categoria de variáveis são os objetos. Variáveis objeto instanciam

classes do PHP, permitindo a ativação de métodos ou funções em tempo de

execução.

4.3.4. Estruturas de Controle

PHP suporta as estruturas de controle padrão de testes a malhas de

repetição. As estruturas são descritas a seguir.

Estrutura IF if (condição1) { comandos1 } elseif (condição2) { comandos2 } else { comandos3 }

Estrutura SWITCH switch (critério) { case <valor1>: comandos1; break; case <valor2>: comandos2; break; ... case <valorN>: comandosN; break; default comandos_default; break; }

Page 44: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

44

Estrutura WHILE while (condição) { comandos }

Ou

while (condição) { comandos } endwhile;

4.3.5. Funções

PHP suporta também a criação de funções para simplificar o trabalho de

programação do usuário e também para melhor organizar o código. A forma geral da

declaração de funções é:

function <nome_func> (arg1,arg2,arg3,... argN) { comandos [return <expressão>] }

A exemplo do que ocorre nas linguagens de programação clássicas, as

funções são trechos de código encarregados da execução de tarefas que sejam

repetitivas ou que desempenhem um papel importante no contexto de um programa.

Funções podem ser utilizadas para organizar o programa em desenvolvimento.

A listagem a seguir ilustra a declaração e uso de uma função em PHP.

<?php function escreve ($texto,$vezes =1) { for ($i=0;$i<$vezes;$i++) echo $texto; } escreve(“Este é um exemplo de função<br>”); escreve(“O texto será impresso duas vezes”,2); ?>

Page 45: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

45

No exemplo anterior, a função apenas executa uma tarefa específica (no

caso, a impressão de um texto por um número repetido de vezes), mas não é

responsável pelo retorno de nenhum valor resultante de um processamento. Este

tipo de uso de uma função é também típico na programação tradicional, ou seja,

funções são utilizadas para processar parâmetros e retornar resultados deste

processamento. Isto é ilustrado no exemplo a seguir.

<?php function dobra ($base) { $dobra = $base*2; return $dobra; } $valor = 32; echo “O dobro de $valor é “ . dobro($valor); ?>

4.3.6. Classes

Classes correspondem a agrupamentos de funções e variáveis. As classes

correspondem ao conceito de classes da programação orientada a objetos, incluindo

os dados (atributos) e o comportamento (métodos). O uso de classes é propiciado

pela ativação de instâncias destas, às quais se dá o nome de objetos. Por esta

razão, PHP suporta as chamadas variáveis objeto.

A definição de classes em PHP é bastante semelhante à de outras linguagens

de programação que suportam o conceito de orientação a objetos. A sintaxe de

definição de uma classe é a seguinte:

class nome_classe { <procedimentos> }

Page 46: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

46

Quando uma classe é declarada, as variáveis utilizadas localmente devem ser

igualmente declaradas, o que é feito com o auxílio da cláusula VAR do PHP,

segundo é mostrado abaixo:

class autor { var $nome; function autor() { $this->nome[‘prim_nome’] = “Caetano”; $this->nome[‘sobrenome’] = “Veloso”; } }

A variável this, utilizada no exemplo, é uma variável padrão do PHP que

referencia o objeto atual relacionado com a classe. Por esta razão, ela não foi

declarada no exemplo.

4.4. O PHPTriad

O PHPTriad oferece um ambiente para desenvolvimento de aplicações PHP

que rode sobre a plataforma Wintel, PC com sistema operacional Windows. O

PHPTriad instala o Apache, o banco de dados MySQL e o servidor PHP em

máquinas Windows. Sua utilização é muito simples, o que facilitou bastante o

desenvolvimento do trabalho. A versão que usamos no desenvolvimento do SGA foi

o PHPTriad versão 2.2.

O PHPTriad é adequado apenas para o desenvolvimento de aplicações PHP

e não para a implantação destas aplicações, a não ser que este esteja em um host

web num ambiente seguro com mecanismos de firewall. [PHPTriadHelp].

O Apache e o MySQL rodam como serviços, ou seja, eles rodam em

background aguardando por requisições. Pelo painel de controle do PHPTriad pode-

se iniciar e parar a execução dos serviços do Apache e do MySQL. O procedimento

Page 47: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

47

básico para colocar o Apache e o MySQL como serviços do sistema operacional

Windows é o seguinte:

1. Lançar o painel de controle do PHPTriad pelo menu Iniciar do Windows.

2. Clicar em "Install Apache Service".

3. Clicar "Start Apache".

4. Clicar "Start MySQL". Escolher o link apropriado baseado na sua versão do

Windows.

5. Clicar "Open site w/default browser".

6. Editar o site alterando ou sobrepondo os arquivos em c:/apache/htdocs. Isto

pode ser facilmente obtido clicando em "Edit Site" também no painel de

controle do PHPTriad.

7. Finalmente, para testar o site com a aplicação PHP, basta chamar pelo seu

navegador com o endereço http://localhost.

4.4.1. Apache

O Apache já vem configurado para responder às requisições na porta 80. O

seu arquivo de configurações fica localizado no diretório C:/apache/conf/httpd.conf.

4.4.2. MySQL

O MySQL possui simplesmente um usuário root que não possui senha. Uma

senha pode ser atribuída para este usuário, bem como um novo usuário pode ser

criado.

Page 48: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

48

Para adicionar uma senha ao root, basta executar o seguinte comando:

C:\apache\mysql\bin\mysql -u root mysql

mysql> SET PASSWORD FOR root@localhost=PASSWORD('new_password');

4.4.3. PHP

Para a versão 2.2 do PHPTriad, a versão do PHP instalada é a 4.1.1. O PHP

é configurado em modo CGI.

Page 49: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

49

5. DESENVOLVIMENTO DO SISTEMA DE GERENCIAMENTO DE

AVALIAÇÕES

5.1. Visão do Sistema

O Sistema de Gerenciamento de Avaliações – SGA tem como objetivo

principal proporcionar, como o nome sugere, a gerência de avaliações estudantis de

maneira eletrônica. O sistema é dividido em dois módulos principais: a interação com

o professor e a interação com o aluno.

Em relação ao professor, o SGA auxilia na elaboração e correção de

avaliações e no monitoramento dos resultados por meio de estatísticas de

desempenho.

Para permitir a elaboração das avaliações, o sistema permite o cadastro de

avaliações objetivas e discursivas, assim como posterior alteração e exclusão. Além

disso, pode-se gerar avaliações escolhendo as questões manualmente ou através

do sistema. Neste caso, o professor informa a quantidade de questões desejadas de

acordo com três níveis de dificuldade – fácil, médio e difícil – e o sistema escolhe

aleatoriamente dentre as questões armazenadas no banco de dados. As questões

objetivas são corrigidas automaticamente pelo sistema no momento do

armazenamento da avaliação, e as questões discursivas devem ser corrigidas pelo

professor posteriormente.

É possível temporizar a avaliação, ou seja, estabelecer um tempo máximo

para sua execução. Também pode-se elaborar a avaliação e não torná-la pública no

momento de sua criação, não deixando, com isso, a avaliação disponível para

realização pelos alunos. O professor deve então, posteriormente, torná-la pública, ou

tem a opção de excluí-la.

Page 50: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

50

O resultado das avaliações é fornecido juntamente com gráficos estatísticos

de desempenho na turma e entre turmas, quando for o caso. O resultado pode ser

específico para um aluno ou para toda a turma. Se for para um único aluno, as

respostas para cada questão são exibidas, a nota, o tempo de resposta de cada

questão e de toda a prova (quando a prova for temporizada), gráficos estatísticos

comparando seu desempenho com a turma.

Em relação ao aluno, o SGA permite a realização de avaliações pela web, a

verificação das provas que estão disponíveis para realização, e a visualização de

resultados. No resultado, o aluno observa suas respostas para cada questão,

juntamente com o gabarito, gráficos estatísticos comparando seu desempenho com

o da turma, o percentual de acertos.

O SGA consiste em duas partes principais. Primeiramente, um banco de

dados que armazena e organiza as informações sobre as principais entidades do

sistema e seus relacionamentos:

• Cursos

• Disciplinas

• Turmas

• Professores

• Tópicos

• Alunos

• Avaliações

• Respostas

• Questões

• Matrículas

Questões estão relacionadas a somente um tópico, e são classificadas de

acordo com o nível de dificuldade – fácil, médio ou difícil. A cada tópico, que pode

estar relacionado a várias disciplinas, está associado um conjunto de questões

Page 51: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

51

cadastradas pelo professor. O sistema pode selecionar as questões para a avaliação

automaticamente, de acordo com os seguintes dados fornecidos pelo professor:

disciplina, tópicos relacionados e número de questões dos três níveis de dificuldade.

Neste caso, o sistema sorteia as questões que estão armazenadas no banco de

dados de acordo com os parâmetros fornecidos. A avaliação pode também ser

totalmente elaborada pelo professor, com a escolha específica das questões.

As respostas às questões poderão ser temporizadas ou não. As datas de

início e fim da avaliação também serão registradas no sistema. Ao término da

avaliação o aluno tem o seu resultado imediato na tela e poderá compará-lo com o

resultado dos demais alunos, enquanto que o professor poderá gerar relatórios da

avaliação em aspectos quantitativos e qualitativos, facilitando a análise dos

resultados.

O professor poderá determinar a data de início e fim de um processo de

avaliação. Alterações ou exclusões das questões somente serão permitidas caso

nenhum aluno ainda tenha realizado uma avaliação.

As questões poderão ser objetivas, subjetivas, de somatório, de associação

de colunas, entre outras formas. Para as questões subjetivas poderá ser usada a

técnica de aproximação de conteúdo. Nesta técnica o professor cadastra a questão

e as palavras chave desejadas na resposta do aluno. Desta forma, um agente valida

a resposta cruzando-a com as palavras chaves cadastradas e seus sinônimos.

Além disso, o SGA possui interfaces com o professor e com o aluno, nas quais

são apresentadas as opções relativas a cada tipo de usuário. O login na página

inicial, que é comum aos dois usuários, é realizado e, de acordo com o tipo da

matrícula – aluno ou professor – e o usuário é redirecionado à página principal de

cada um.

Page 52: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

52

5.2. Metodologia de Desenvolvimento

O desenvolvimento de aplicações em PHP e MySQL deve ser realizado de

modo que o código fique organizado, documentado e principalmente de forma que

os blocos de código ou funções possam ser reutilizados. Além disso, deve tratar

todas as possibilidades do sistema com robustez e coerência. Para esta tarefa nos

baseamos no processo de desenvolvimento de aplicações web com PHP e MySQL

exemplificados em [GREENSPAN, 2001].

Mais importante que a codificação da aplicação é o seu planejamento. De

fato, foi uma das etapas mais longas do projeto. As etapas, sobre um olhar mais

abrangente do desenvolvimento da aplicação, foram [GREESPAN, 2001]:

Determinar o Escopo e os Objetivos da Aplicação

Esta etapa foi vital para o desenvolvimento. Nela foi realizado o levantamento

dos requisitos pela discussão com potenciais usuários do sistema, da pesquisa e

análise de sistemas semelhantes existentes e da descrição dos casos de uso.

Determinar as Páginas Necessárias

Após a etapa de determinação do escopo e objetivos da aplicação, já foi

possível construir uma árvore preliminar das principais páginas da aplicação.

É interessante montar um protótipo do layout das páginas com ênfase na

semântica das informações que devem estar contidas nestas páginas, ou seja, sem

se preocupar com a estética e usabilidade das páginas, e sim com as informações

que são relevantes e que devem ser mostradas, quais dados precisam entrar no

sistema, como deve ser a dinâmica destas páginas etc.

Page 53: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

53

Prever Exceções

Uma etapa importante é a prevenção de exceções no sistema, principalmente

quando a aplicação possui entrada de dados pelo usuário. É importante observar a

entrada de dados errôneos ou inconsistentes e estabelecer formas de como tratá-

los. Também é importante realizar a validação dos dados de entrada.

Projetar o Banco de Dados

Em nosso projeto esta etapa tomou um tempo considerável, já que o volume

de informações do SGA que precisam ser persistentes é relativamente grande.

Procuramos modelar a base de dados aplicando todas as normas de modelagem

disponíveis. Como por exemplo, a construção do modelo entidade-relacionamento

como deve ser, ou seja, sem ambigüidades, completo, correto e refletindo o aspecto

temporal [HEUSER, 2001].

Para esta etapa, utilizamos a ferramenta DIA, que é uma ferramenta

especificamente voltada para a construção de diagramas E/R. No entanto, devido a

sua falta de flexibilidade e dificuldade de diagramação, concluímos o modelo na

ferramenta de diagramação CorelDraw.

A modelagem partiu da listagem das possíveis entidades existentes de acordo

com a documentação dos casos de uso e levantamento dos requisitos. Em seguida,

foi sendo realizada a identificação dos atributos (simples, opcionais, multivalorados

etc.) das entidades, a necessidade do uso de especialização/generalização e

também a identificação de relacionamentos entre as entidades, bem como da

cardinalidade entre as entidades e relacionamentos. O modelo foi sendo atualizado

na medida em que o amadurecimento da aplicação ia ocorrendo.

Uma vez obtido o modelo entidade-relacionamento, este foi convertido para o

modelo lógico. Esta transformação ocorreu sistematicamente, através dos seguintes

procedimentos:

• Aplicação das regras de normalização (1ª, 2ª e 3ª formas normais);

Page 54: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

54

• Identificação das chaves candidatas, primárias e secundárias;

• Identificação dos tipos dos dados, com seus domínios, restrições de

integridade, valores default;

• Implementação dos relacionamentos etc.

Geração dos Scripts

Se as etapas anteriores a esta estiverem completas e bem documentadas,

esta etapa é a mais simples do desenvolvimento. A única dificuldade encontrada foi

a falta de domínio inicial nas tecnologias utilizadas.

Refatorar o Código

Modificar o código com o intuito de melhorar a sua clareza, obter pontos onde

o código pode ser reusado sem que se altere a sua funcionalidade e a semântica da

aplicação e também sem acrescentar erros.

Melhorar a Usabilidade das Páginas

Uma aplicação com um layout voltado para a usabilidade da aplicação, que

forneça facilidade de uso, que seja intuitivo, livre de inconsistências, erros e

situações que promovam confusão no uso da aplicação é tão importante quanto a

robustez desta, principalmente quando a aplicação possui bastante interatividade,

como é o caso do SGA. Para esta etapa, recorremos ao auxílio de um profissional

habilitado para esta tarefa, um “designer” gráfico.

Melhorar Aspectos de Segurança

Nesta etapa existe a preocupação com os aspectos de segurança da

aplicação como autenticação, integridade, consistência, confidencialidade. O grau de

segurança pode variar de acordo com a necessidade da aplicação.

Page 55: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

55

Testar Verificar e Validar a Aplicação

Finalmente, conferir se aplicação atende aos requisitos iniciais, testar a

aplicação para identificar falhas e bugs etc.

5.3. Levantamento de Requisitos

Existem várias definições para requisitos, escolhemos a seguinte para citar:

“Requisito é (a) uma condição ou capacitação necessária a um usuário para solucionar um problema ou encontrar um objetivo (b) uma condição ou capacitação que um sistema ou componente do sistema precisa para atender ou ter para satisfazer um contrato padrão, especificação, ou outro documento formalmente estabelecido. O conjunto de todos os requisitos forma a base para o posterior desenvolvimento do sistema ou componente do sistema.” [FIORINI, 1998, pág. 65 e 66]

Os requisitos são descrições do modo como o sistema deverá se comportar,

informações sobre o domínio do problema, restrições da operação do sistema ou

especificações de uma propriedade do sistema. Segundo [LARMAN, 2004] casos de

uso são histórias de uso do sistema, e é uma excelente técnica para compreender e

descrever requisitos. Casos de uso são documentos texto, no entanto a UML define

diagramas de casos de uso para ilustrar os nomes dos casos de uso e atores, e

seus relacionamentos.

5.4. Requisitos Funcionais

Para o SGA em questão, os requisitos funcionais foram definidos através de

casos de uso. Os atores e suas respectivas tarefas foram identificados e definidos

segundo a tabela abaixo:

Page 56: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

56

Ator Tarefa

Cadastrar Curso

Cadastrar Professor

Cadastrar Aluno

Cadastrar Disciplina

Cadastrar Tópico

Cadastrar Turma

Associar Professor a Turma

Desassociar Professor de Turma

Incluir Aluno em Turma

Excluir Aluno de Turma

Associar Tópico a Disciplina

Desassociar Tópico de Disciplina

Atualizar Curso

Atualizar Professor

Atualizar Aluno

Atualizar Disciplina

Atualizar Tópico

Atualizar Turma

Excluir Curso

Excluir Professor

Excluir Aluno

Excluir Disciplina

Excluir Tópico

Administrador

Excluir Turma

Cadastrar Questão Objetiva

Cadastrar Questão Discursiva

Alterar Questão Objetiva

Alterar Questão Discursiva

Excluir Questão

Gerar Avaliação Manualmente

Gerar Avaliação pelo Sistema

Professor

Alterar Avaliação

Page 57: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

57

Excluir Avaliação

Publicar Avaliação

Corrigir Questão Discursiva

Verificar Resultado de Avaliação

Verificar Avaliações Públicas

Realizar Avaliação

Aluno

Verificar Resultado de Avaliação

Tabela 7 – Atores e seus Casos de Uso

Os casos de uso do ator Administrador descrevem a configuração e a

manutenção do sistema acadêmico. Estes casos de uso não são de grande

relevância para o SGA, já que fazem parte da construção do sistema acadêmico.

Portanto, estão apresentados somente na documentação em anexo.

A seguir, apresenta-se a descrição dos casos de uso dos atores Aluno e

Professor.

Page 58: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

58

Casos de Uso do Professor

Figura 6 – Casos de Uso do Professor

Page 59: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

59

Caso de Uso: Cadastrar Questão Objetiva

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A questão deverá estar corretamente cadastrada.

Fluxo Principal 1. O professor seleciona a opção Cadastrar Questão.

2. O sistema exibe a tela para entrada dos dados da questão.

3. O professor seleciona os tópicos aos quais a questão está

relacionada e digita o tipo (objetiva), a dificuldade e o enunciado

da questão e confirma.

4. O sistema exibe a tela para entrada das alternativas da questão

objetiva.

5. O professor insere as alternativas, seleciona aquelas que estão

corretas e confirma.

6. O sistema insere a questão.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 Os tópicos relacionados, o tipo, a dificuldade ou o enunciado

estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página para entrada dos dados da

questão.

4.2 Alguma das alternativas está em branco.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página para entrada das alternativas da

questão.

Page 60: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

60

Protótipos das

Telas

Page 61: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

61

Caso de Uso: Cadastrar Questão Discursiva

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A questão deverá estar corretamente cadastrada.

Fluxo Principal 1. O professor seleciona a opção Cadastrar Questão.

2. O sistema exibe a tela para entrada dos dados da questão.

3. O professor seleciona os tópicos aos quais a questão está

relacionada e digita o tipo (discursiva), a dificuldade, o enunciado

e o gabarito da questão e confirma.

4. O sistema insere a questão.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 Os tópicos relacionados, o tipo, a dificuldade, o enunciado ou o

gabarito estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página para entrada dos dados da

questão.

Protótipos das

Telas

Page 62: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

62

Caso de Uso: Alterar Questão Objetiva

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A questão deverá ser alterada corretamente.

Fluxo Principal 1. O professor seleciona a opção Alterar Questão.

2. O sistema exibe as questões cadastradas para as disciplinas que

o professor ministra.

3. O professor seleciona a questão objetiva que ele deseja alterar e

confirma.

4. O sistema exibe o enunciado, a dificuldade e as alternativas

relacionadas à questão que estão cadastradas.

5. O professor altera o enunciado, a dificuldade ou as alternativas e

confirma.

6. O sistema altera a questão.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 Não há questões cadastradas nas disciplinas que o professor

ministra.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma questão foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página para seleção da questão.

6.1 O enunciado, a dificuldade ou alguma das alternativas estão em

branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela de alteração dos dados da questão.

Page 63: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

63

Caso de Uso: Alterar Questão Discursiva

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A questão deverá ser alterada corretamente.

Fluxo Principal 5 O professor seleciona a opção Alterar Questão.

5 O sistema exibe as questões cadastradas para as disciplinas que

o professor ministra.

5 O professor seleciona a questão discursiva que ele deseja alterar

e confirma.

5 O sistema exibe o enunciado, a dificuldade e o gabarito que estão

cadastradas.

5 O professor altera o enunciado, a dificuldade ou o gabarito e

confirma.

5 O sistema altera a questão.

5 O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 Não há questões cadastradas nas disciplinas que o professor

ministra.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma questão foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página para seleção da questão.

6.1 O enunciado ou a dificuldade estão em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela de alteração dos dados da questão.

Page 64: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

64

Caso de Uso: Excluir Questão

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A questão deverá ser excluída corretamente.

Fluxo Principal 1 O professor seleciona a opção Excluir Questão.

2 O sistema exibe as questões que já foram incluídas pelo

professor.

3 O professor seleciona a questão que ele deseja excluir e

confirma.

4 O sistema exibe os dados da questão selecionada para

confirmação do professor.

5 O professor confirma a exclusão.

6 O sistema exclui a questão.

7 O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

2.1 O professor não confirma a exclusão.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

2.1 Nenhuma questão foi cadastrada pelo professor.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma questão foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

6.1 A questão está associada a uma avaliação.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página principal do professor.

Page 65: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

65

Caso de Uso: Gerar Avaliação Manualmente

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A avaliação deverá ser gerada corretamente.

Fluxo Principal 1. O professor seleciona a opção Gerar Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe os tópicos relacionados à disciplina escolhida.

5. O professor seleciona os tópicos que serão abordados na

avaliação.

6. O sistema exibe a página para entrada dos dados da avaliação:

cabeçalho, modo de escolha das questões (manualmente), se

estará pública logo após sua criação, se é temporizada, e neste

caso, o tempo máximo para realização.

7. O sistema exibe as questões que estão armazenadas nos tópicos

selecionados.

8. O professor seleciona as questões desejadas e confirma.

9. O sistema cadastra a avaliação.

10. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há tópicos relacionados à disciplina.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

6.1 Nenhum tópico foi selecionado.

6.1.a O sistema exibe um aviso.

Page 66: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

66

6.1.b O sistema retorna à página para seleção de tópicos.

7.1 As informações sobre a temporização e a publicidade da

avaliação não foram informadas.

7.1.a O sistema exibe um aviso.

7.1.b O sistema retorna à página para entrada de dados da

avaliação.

9.1 Nenhuma questão é selecionada.

9.1.a O sistema exibe um aviso.

9.1.b O sistema retorna à página para seleção de questões.

Protótipos das

Telas

Page 67: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

67

Caso de Uso: Gerar Avaliação pelo Sistema

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A avaliação deverá ser gerada corretamente.

Fluxo Principal 1. O professor seleciona a opção Gerar Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe os tópicos relacionados à disciplina escolhida.

5. O professor seleciona os tópicos que serão abordados na

avaliação.

6. O sistema exibe a página para entrada dos dados da avaliação:

cabeçalho, se as questões serão selecionadas manualmente ou

automaticamente (pelo sistema), se estará pública logo após sua

criação, se é temporizada, e neste caso, o tempo máximo para

realização.

7. O sistema exibe a página para entrada do número de questões de

acordo com a dificuldade.

8. O professor informa o número de questões desejadas para cada

nível de dificuldade: fácil, médio e difícil e confirma.

9. O sistema exibe uma tela de confirmação.

Page 68: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

68

Fluxos

Alternativos

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há tópicos relacionados à disciplina.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

6.1 Nenhum tópico foi selecionado.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página para seleção de tópicos.

7.1 As informações sobre a temporização e a publicidade da

avaliação não foram informadas.

7.1.a O sistema exibe um aviso.

7.1.b O sistema retorna à página para entrada de dados da

avaliação.

9.1 O número de questões para algum dos níveis de dificuldade está

em branco.

9.1.a O sistema exibe um aviso.

9.1.b O sistema retorna à página para entrada de dados do número

de questões para cada nível de dificuldade.

Fluxos de

Exceções

Não há.

Page 69: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

69

Protótipos das

Telas

Caso de Uso: Alterar Avaliação

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A avaliação deverá ser alterada corretamente.

Fluxo Principal 1. O professor seleciona a opção Alterar Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe as avaliações cadastradas para a disciplina

escolhida que ainda não foram publicadas.

5. O professor seleciona a avaliação.

6. O sistema exibe o cabeçalho e se é temporizada, e neste caso o

tempo máximo para realização.

Page 70: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

70

7. O professor altera o cabeçalho ou a temporização e confirma.

Caso a avaliação seja modificada para temporizada, o professor

informa também o tempo máximo para realização da mesma.

8. O sistema altera a avaliação.

9. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há avaliações cadastradas que não foram publicadas.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

6.1 Nenhuma avaliação foi selecionada.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página principal do professor.

8.1 A temporização ou a publicidade da avaliação estão em branco.

8.1.a O sistema exibe um aviso.

8.1.b O sistema retorna à página para alteração dos dados da

avaliação.

Caso de Uso: Excluir Avaliação

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A avaliação deverá ser excluída corretamente.

Fluxo Principal 1. O professor seleciona a opção Excluir Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe as avaliações cadastradas para a disciplina

Page 71: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

71

escolhida que ainda não foram publicadas.

5. O professor seleciona a avaliação.

6. O sistema exibe as informações da avaliação para confirmação

do professor.

7. O professor confirma a exclusão.

8. O sistema exclui a avaliação.

9. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

7.1 O professor não confirma a exclusão.

7.1.a O sistema exibe um aviso.

7.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há avaliações cadastradas que não foram publicadas.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Caso de Uso: Publicar Avaliação

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A avaliação deverá ser publicada corretamente.

Fluxo Principal 1. O professor seleciona a opção Publicar Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe as avaliações cadastradas para a disciplina

escolhida que ainda não foram publicadas.

5. O professor seleciona a avaliação e confirma.

6. O sistema publica a avaliação.

7. O sistema exibe uma tela de confirmação.

Page 72: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

72

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há avaliações cadastradas que não foram publicadas.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Caso de Uso: Corrigir Questão Discursiva

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição A correção deverá ser armazenada corretamente.

Fluxo Principal 1. O professor seleciona a opção Corrigir Questão Discursiva.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe as avaliações cadastradas para a disciplina

escolhida que já foram publicadas e possuem questões

discursivas que ainda não foram corrigidas.

5. O professor seleciona a avaliação desejada.

6. O sistema exibe as questões discursivas presentes na avaliação

que ainda não foram corrigidas.

7. O professor escolhe a questão.

8. O sistema exibe a resposta de cada aluno para a questão.

9. O professor digita a nota para a questão e confirma.

10. O sistema armazena a correção.

Os passos 8 a 10 são repetidos até que as respostas de todos os

alunos sejam corrigidas.

Page 73: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

73

11. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 O professor não possui disciplinas associadas.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do professor.

4.1 Nenhuma disciplina foi selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do professor.

5.1 Não há avaliações cadastradas que foram publicadas e possuem

questões discursivas sem correção.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

6.1 Nenhuma avaliação foi selecionada.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página principal do professor.

8.1 Nenhuma questão foi selecionada.

8.1.a O sistema exibe um aviso.

8.1.b O sistema retorna à página principal do professor.

9.1 A nota está em branco.

9.1.a O sistema exibe um aviso.

9.1.b O sistema retorna à página para entrada da nota.

Caso de Uso: Verificar Resultado de Avaliação

Ator Professor

Pré-condição O sistema deve estar na página de domínio do professor.

Pós-condição Não há.

Fluxo Principal 1. O professor solicita a opção Verificar Resultado de Avaliação.

2. O sistema exibe as disciplinas que o professor ministra.

3. O professor seleciona a disciplina.

4. O sistema exibe as avaliações que já foram realizadas e com todas

Page 74: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

74

as questões discursivas corrigidas, se existirem.

5. O professor seleciona a avaliação.

6. O sistema exibe as estatísticas de notas obtidas em cada turma e

uma comparação entre as turmas.

Fluxos

Alternativos

7. O professor seleciona a opção Verificar Resultado de Aluno.

8. O sistema exibe uma lista de todos os alunos que realizaram a

avaliação.

9. O professor seleciona o aluno e confirma.

10. O sistema exibe todas as questões e as respostas submetidas pelo

aluno, a nota do aluno, sua nota comparada à turma a qual ele

pertence, seu percentual de acertos.

Fluxos de

Exceções

2.1 Não há disciplinas associadas ao professor.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do aluno.

4.1 Nenhuma disciplina é selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página para seleção da disciplina.

4.1 Nenhuma avaliação possui resultado disponível para a disciplina

selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do aluno.

6.1 Nenhuma avaliação foi selecionada.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página para seleção da avaliação.

10. Nenhum aluno foi selecionado.

10.1.a O sistema exibe um aviso.

10.1.b O sistema retorna à página para seleção do aluno.

Page 75: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

75

Protótipos das

Telas

Page 76: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

76

Casos de Uso do Aluno

Figura 7 – Casos de Uso do Aluno

Page 77: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

77

Caso de Uso: Verificar Avaliações Públicas

Ator Aluno

Pré-condição O sistema deve estar na página de domínio do aluno.

Pós-condição Não há.

Fluxo Principal 1. O aluno seleciona a opção Verificar Avaliações Públicas.

2. O sistema exibe as avaliações que estão publicas e ainda não

foram realizadas pelo aluno nas disciplinas que ele está

matriculado.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

2.1 O aluno não está matriculado em nenhuma disciplina.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à tela principal do aluno.

Caso de Uso: Realizar Avaliação

Ator Aluno

Pré-condição O sistema deve estar na página de domínio do aluno.

Pós-condição A avaliação deverá ser armazenada corretamente.

Fluxo Principal 1. O aluno seleciona a opção Realizar Avaliação.

2. O sistema exibe as avaliações que estão publicas e ainda não

foram realizadas pelo aluno nas disciplinas que ele está

matriculado.

3. O aluno seleciona a avaliação desejada e confirma.

4. O sistema exibe o cabeçalho da avaliação.

5. O sistema exibe uma questão da avaliação.

6. O aluno submete a resposta desejada.

Os passos 6 e 7 são repetidos conforme o número de questões da

avaliação.

7. O sistema anuncia o fim da avaliação.

Fluxos 7.1 A prova é temporizada.

Page 78: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

78

Alternativos 7.1.a O sistema armazena o tempo de submissão da resposta para

cada questão.

Fluxos de

Exceções

2.1 O aluno não está matriculado em nenhuma disciplina.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à tela principal do aluno.

2.2 Não há avaliações públicas disponíveis para realização.

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à tela principal do aluno.

4.1 Nenhuma avaliação é selecionada.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela principal do aluno.

6.1 O aluno submete uma resposta em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à página contendo a questão anterior.

Caso de Uso: Verificar Resultado de Avaliação

Ator Aluno

Pré-condição O sistema deve estar na página de domínio do aluno.

Pós-condição Não há.

Fluxo Principal 1. O aluno seleciona a opção Verificar Resultado de Avaliação.

2. O sistema exibe todas as avaliações realizadas pelo aluno cujo

resultado está disponível (no caso de possuírem questões

discursivas, estas devem ter sido corrigidas pelo professor).

3. O aluno seleciona a avaliação desejada.

4. O sistema exibe: o cabeçalho da prova, todas as questões com as

respostas submetidas pelo aluno, as respostas corretas para cada

questão, o percentual de acerto, um gráfico de notas obtidas pela

turma, o resultado do aluno comparado ao desempenho da turma.

Fluxos

Alternativos

Não há.

Fluxos de 2.1 Não há avaliações com resultado disponível.

Page 79: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

79

Exceções

2.1.a O sistema exibe um aviso.

2.1.b O sistema retorna à página principal do aluno.

5.5. Requisitos Não-Funcionais

Caracterizam-se por restrições sobre os serviços oferecidos pelo sistema,

podendo ser, por exemplo, restrições temporais, restrições sobre o processo de

desenvolvimento a ser utilizado etc.

Os requisitos não funcionais definidos para o sistema são: usar para o

desenvolvimento do sistema as tecnologias PHP e o sistema de gerenciamento de

banco de dados – SGBD MySQL. A ferramenta de desenvolvimento será o pacote

PHPTriad.

Page 80: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

80

5.6. Diagrama das Páginas do Sistema

Figura 8 – Árvore Resumida das Páginas do SGA

Página Inicial

Página

Principal do

Aluno

Página

Principal do

Professor

Cadastro

de

Questões

Elaboração

de

Avaliações

Realização

de

Avaliação

Verificação

de

Resultado

Verificação

de

Resultados

Correção de

Questão

Discursiva

Page 81: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

81

5.7. Projeto do Banco de Dados do SGA

5.7.1. Conceitos Básicos

A primeira etapa do projeto de um banco de dados é realizar a sua

modelagem conceitual, cujo objetivo é obter uma descrição abstrata dos dados que

serão armazenados no banco de dados, sem levar em consideração a posterior

implementação.

A técnica de modelagem de dados que utilizamos neste trabalho foi à técnica

com a abordagem entidade-relacionamento, por ser considerada um padrão para a

modelagem conceitual. Esta abordagem considera o modelo de dados através de

um modelo entidade-relacionamento. O modelo entidade-relacionamento é

representado graficamente, através de um diagrama entidade-relacionamento. A

notação gráfica que será utilizada será a sugerida por Peter Chen, criador da

abordagem ER em 1976 [HEUSER, 2001].

O conceito fundamental da abordagem ER é o conceito de entidade. Uma

entidade representa um conjunto de objetos da realidade modelada. O objetivo de

um modelo ER é modelar de forma abstrata um BD. Uma entidade pode representar

tanto objetos concretos quanto abstratos. Cada entidade representa um conjunto de

objetos sobre os quais deseja-se guardar informações.

O modelo ER deve permitir a especificação das propriedades dos objetos que

serão armazenados no BD. Uma das propriedades sobre as quais pode ser

desejável manter informações é a associação entre objetos.

O modelo ER permite a especificação de propriedades de entidades. Uma

propriedade é participar de um relacionamento. Outra propriedade é ter um atributo.

O conceito de atributo serve para associar informações a ocorrências de entidades

Page 82: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

82

ou relacionamentos. Assim como entidades, relacionamentos também podem

possuir atributos.

Cada entidade deve possuir um identificador. Um identificador é um conjunto

de atributos e possivelmente relacionamentos cujos valores servem para distinguir

uma ocorrência da entidade das demais ocorrências da mesma entidade. O

identificador deve ser mínimo e único. Nos casos em que entre as mesmas

ocorrências de entidade podem existir diversas ocorrências de relacionamento,

deve-se utilizar atributos identificadores de relacionamento. Um relacionamento é

identificado pelas entidades dele participantes, bem como pelos atributos

identificadores eventualmente definidos.

Um relacionamento é uma associação entre entidades. Uma entidade

associativa é a redefinição de um relacionamento, que passa a ser tratado como se

fosse também uma entidade.

A descrição de um modelo é chamada de esquema de banco de dados.

Esquemas de bancos de dados podem ser representados na forma gráfica ou

textual. Adotamos a representação gráfica. Entidades, relacionamentos, hierarquias

de generalização/especialização e também atributos de entidades e relacionamentos

serão representadas na forma de grafos, devido ao fato de ser gráfico e intuitivo.

5.7.2. Construindo o Modelo ER

Um modelo ER é um modelo formal, preciso e não-ambíguo. Em um modelo

ER, são apresentadas apenas algumas propriedades de um banco de dados. O

objetivo da construção de um modelo ER é projetar um banco de dados. Neste

contexto, o modelo ER nada mais é do que uma descrição abstrata das estruturas

do banco de dados (das tabelas, no caso do banco de dados relacional). O objetivo

do modelo não é o de especificar todas as restrições de integridade. Assim, somente

são incluídas construções em um modelo ER quando estas possuem uma

correspondência no banco de dados a ser implementado.

Page 83: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

83

A determinação de que construção da abordagem ER (entidade,

relacionamento, atributos) será usada para modelar um objeto de uma realidade

considerada não pode ser feita através da observação do objeto isoladamente. É

necessário conhecer o contexto, isto é, o modelo dentro do qual o objeto aparece.

Uma vez construído, um modelo ER deve ser validado e verificado. A

verificação é o controle de qualidade que procura garantir que o modelo usado para

a construção do banco de dados gerará um bom produto.

Um modelo, para ser considerado bom, deve preencher uma série de

requisitos, como ser completo, ser correto e não conter redundâncias. Um modelo

está correto quando não contém erros de modelagem, isto é, quando os conceitos

de modelagem ER são corretamente empregados para modelar a realidade em

questão. As regras de normalização de bases de dados relacionais servem também

para verificar a correção de modelos ER.

Um modelo completo deve fixar todas as propriedades desejáveis do banco

de dados. Uma boa forma de verificar se o modelo é completo é verificar se todos os

dados que devem ser obtidos do banco de dados estão presentes e se todas as

transações de modificação do banco de dados podem ser executadas sobre o

modelo.

Um modelo deve ser mínimo, isto é, não deve conter conceitos redundantes

indesejáveis.

A criação de um diagrama ER deve ser realizada com o auxílio de uma

ferramenta em computador para apoio à modelagem. Existem duas alternativas:

usar ferramentas CASE (Computer Aided Software Engineering) ou programas de

propósito geral. Decidimos pela utilização de um programa de propósito geral, por

não encontrarmos uma ferramenta CASE que utilizasse a notação vista durante o

curso.

Uma estratégia de modelagem ER é uma seqüência de passos de

transformações de modelos. A estratégia de modelagem utilizada neste sistema é

aquela baseada no conhecimento que pessoas possuem sobre o sistema que está

Page 84: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

84

sendo modelado. Este é o caso quando novos sistemas, para os quais não existem

descrições de dados, estão sendo concebidos. Para este caso, podem ser aplicadas

duas estratégias, a top-down e a inside-out. A estratégia top-down foi escolhida para

construir o modelo ER. Esta estratégia consiste de partir de conceitos mais abstratos

(“de cima”) e ir gradativamente refinando estes conceitos em conceitos mais

detalhados. O processo de modelagem inicia com a identificação de entidades de

entidades genéricas (conceitos mais abstratos). A partir daí, são definidos os

atributos das entidades, seus relacionamentos, os atributos dos relacionamentos e

as especializações das entidades.

A seqüência de passos para obter um modelo utilizando a estratégia top-down

é a seguinte:

1. Modelagem superficial – Nesta primeira etapa, é construído um diagrama

ER pouco detalhado (faltando domínios dos atributos e cardinalidade mínima de

relacionamentos) na seguinte seqüência:

a) Enumeração das entidades.

b)Identificação dos relacionamentos e hierarquias de

generalização/especialização entre entidades. Para cada relacionamento identifica-

se a cardinalidade máxima.

c) Determinação dos atributos de entidades e relacionamentos.

d) Determinação dos identificadores de entidades e relacionamentos.

e) O banco de dados é verificado quanto ao aspecto temporal.

2. Modelagem detalhada – Nesta etapa, completa-se o modelo com os

domínios dos atributos e cardinalidade mínima dos relacionamentos:

a) Adicionam-se os domínios dos atributos.

Page 85: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

85

b) Definem-se as cardinalidade mínimas dos relacionamentos. É preferível

deixar estas cardinalidades por último, já que exigem conhecimento bem mais

detalhado sobre o sistema, inclusive as transações.

c) Definem-se as demais restrições de integridade que não podem ser

representadas pelo diagrama ER.

3. Validação do modelo.

a) Procuram-se construções redundantes ou deriváveis a partir de outras no

modelo.

b) Valida-se o modelo com o usuário.

Em qualquer destes passos, é possível retornar a passos anteriores.

No Anexo 2 é apresentado o diagrama entidade-relacionamento final do SGA.

Page 86: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

86

5.7.3. Construindo o Modelo Lógico

O projeto lógico de um BD relacional é a transformação de um modelo ER em

um modelo lógico, que implementa os dados representados no modelo ER.

Implementação significa que ocorre a transformação de um modelo mais abstrato

para um modelo que contém mais detalhes de implementação.

Um determinado modelo ER pode ser implementado por meio de diversos

modelos relacionais, que contém as informações especificadas pelo diagrama ER.

Cada um destes modelos relacionais pode ser considerado uma implementação

correta do modelo ER considerado, porém com diferentes performances e

dificuldades de desenvolvimento e manutenção do sistema.

Utilizamos as regras sugeridas por [HEUSER, 2001] para realizar

adequadamente a transformação de um modelo ER em um modelo relacional. As

regras foram definidas tendo em vista dois objetivos principais:

Obter um banco de dados que permita boa performance de instruções de

consulta e alteração do banco de dados. Obter boa performance significa

basicamente diminuir o número de acessos a disco, já que estes consomem o maior

tempo na execução de uma instrução de banco de dados.

Obter um banco de dados que simplifique o desenvolvimento e a manutenção

de aplicações.

Obter um banco de dados que ocupe pouco espaço em disco.

As regras de tradução foram definidas tendo como base, entre outros, os

seguintes princípios:

• Evitar junções – ter dados desnecessários a uma consulta em uma única

linha.

• Diminuir o número de chaves.

Page 87: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

87

• Evitar campos opcionais.

Seguindo os princípios acima, a transformação de um modelo ER em um

modelo relacional dá-se nos seguintes passos:

1. Tradução inicial de entidades e respectivos atributos.

2. Tradução de relacionamentos e respectivos atributos.

3. Tradução de generalizações/especializações.

5.7.4. Implementação Inicial de Entidades

Inicialmente, cada entidade é traduzida para uma tabela. Neste processo,

cada atributo da entidade define uma coluna da tabela. Os atributos identificadores

da entidade correspondem às colunas que compõe a chave primária da tabela.

Trata-se de uma tradução inicial. Pelas regras que serão expostas nas seções

seguintes. As tabelas definidas nesta etapa ainda poderão ser modificadas.

Quando uma entidade possui um relacionamento identificador, a tradução de

uma entidade para uma tabela não é tão simples. Na composição da chave primária

de uma tabela que possui um identificador externo, pode ser necessário colecionar

atributos de diferentes entidades.

Esta etapa teve como resultado as seguintes tabelas:

Cursos (CodCurso, Nome)

Disciplinas (CodDisciplina, Nome, Tipo, NumHorasAula, Fase)

Turmas (CodTurma, CodDisciplina, Horario, Sala, NumVagas)

CodDisciplina referencia Disciplinas

Page 88: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

88

Professores (MatrProfessor, Nome, Departamento)

Topicos (CodTopico, Nome)

Alunos (MatrAluno, Nome)

Questoes (CodQuestao, Dificuldade, Enunciado)

Avaliacoes (CodAvaliacao, CodDisciplina, Cabecalho, Publica, Temporizada, TempoMax,

DataCriacao, HoraCriacao)

CodDisciplina referencia Disciplinas

Respostas (MatrAluno, CodAvaliacao, CodQuestao, TempResp)

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

CodQuestao referencia Questoes

Alternativas (CodAlternativa, CodQuestao, Texto, Correta)

CodQuestao referencia QuestoesObjetivas

5.7.5. Implementação de Generalização/Especializaçã o

Para a implementação de hierarquias de generalização/especialização, há

duas alternativas a considerar: uso de uma tabela para cada entidade ou uso de

uma única tabela para toda a hierarquia de generalização/especialização. Os prós e

contras de ambas as soluções devem-se ser ponderados e então, optar por aquela

que seja mais adequada ao problema em questão.

Foi decidido, para o banco de dados do SGA, que a entidade especializada

AvaliacoesSistema deverá possuir uma tabela própria, e as entidades especializadas

QuestoesDiscursivas e QuestoesObjetivas deverão possuir uma tabela única.

As tabelas AvaliacoesSistema e Questoes são, portanto, criada e alterada,

respectivamente, conforme mostrado abaixo:

AvaliacoesSistema (CodAvaliacao, NumFacil, NumMedio, NumDificil)

CodAvaliacao referencia Avaliacoes

Questoes (CodQuestao, Tipo , Dificuldade, Enunciado, Gabarito )

Page 89: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

89

5.7.6. Implementação de Relacionamentos

A tradução de relacionamentos para o modelo lógico é baseada na

cardinalidade mínima e máxima das entidades que participam do relacionamento.

Relacionamentos 1:N

No caso de relacionamentos 1:N, a alternativa preferida, dentre: tabela

própria, colunas adicionais dentro da tabela da entidade ou fusão de tabelas de

entidades, é a adição de colunas. Neste caso, algumas tabelas sofreriam as

seguintes modificações:

Questoes (CodQuestao, MatrProfessor , Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao ,

HoraCriacao )

MatrProf referencia Professores

Respostas (MatrAluno, CodAval, CodQuestão, Texto , TempoResp)

MatrAluno referencia Alunos

CodAval referencia Avaliações

CodQuestao referencia Questoes

Relacionamentos N:N

Relacionamentos N:N são sempre implementados por uma tabela própria,

independentemente da cardinalidade mínima. Tabelas criadas:

Curriculos (CodCurso, CodDisciplina)

CodCurso referencia Cursos

CodDisciplina referencia Disciplinas

Matriculas (MatrAluno, CodDisciplina, CodTurma, Semestre, Ano)

MatrAluno referencia Alunos

CodDisciplina referencia Disciplinas

CodTurma referencia Turmas

AvaliacoesRealizadas (MatrAluno, CodAvaliacao, DataRealizacao, HoraRealizacao, Nota)

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

AlternativaResposta (MatrAluno, CodAvaliacao, CodQuestao, CodAlternativa)

Page 90: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

90

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

CodQuestao referencia Questoes

CodAlternativa referencia Alternativas

TopicoDisciplina (CodTopico, CodDisciplina)

CodTopico referencia Topicos

CodDisciplina referencia Disciplinas

QuestaoTopico (CodQuestao, CodTopico)

CodQuestao referencia Questoes

CodTopicos referencia Topicos

QuestaoAvaliacao (CodAvaliacao, CodQuestao)

CodAvaliacao referencia Avaliacoess

CodQuestao referencia Questoes

TurmaProfessor (CodDisciplina, CodTurma, MatrProfessor)

CodDisciplina referencia Disciplinas

CodTurma referencia Turmas

MatrProfessor referencia Professores

TopicoAvaliacao (CodAvaliacao, CodTopico)

CodAvaliacao referencia Avaliações

CodTopico referencia Topicos

5.7.7. Criação da Tabela de Usuários do Sistema

A fim de controlar o acesso ao sistema, é necessário criar uma tabela

adicional que armazene a matrícula e a senha dos usuários. Esta tabela chama-se

Usuarios. Após sua criação, temos o modelo lógico definitivo do banco de dados do

SGA:

Cursos (CodCurso, Nome)

Disciplinas (CodDisciplina, Nome, Tipo, NumHorasAula, Fase)

Turmas (CodTurma, CodDisciplina, Horario, Sala, NumVagas)

CodDisciplina referencia Disciplinas

Professores (MatrProfessor, Nome, Departamento)

Topicos (CodTopico, Nome)

Alunos (MatrAluno, Nome)

Avaliacoes (CodAvaliacao, CodDisciplina, Cabecalho, Publica, Temporizada, TempoMax,

DataCriacao, HoraCriacao)

Page 91: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

91

CodDisciplina referencia Disciplinas

AvaliacoesSistema (CodAvaliacao, NumFacil, NumMedio, NumDificil)

CodAvaliacao referencia Avaliacoes

Respostas (MatrAluno, CodAvaliacao, CodQuestao, Texto, TempResp)

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

CodQuestao referencia Questoes

Alternativas (CodAlternativa, CodQuestao, Texto, Correta)

CodQuestao referencia QuestoesObjetivas

Questoes (CodQuestao, MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao,

HoraCriacao)

MatrProf referencia Professores

Curriculos (CodCurso, CodDisciplina)

CodCurso referencia Cursos

CodDisciplina referencia Disciplinas

Matriculas (MatrAluno, CodDisciplina, CodTurma, Semestre, Ano)

MatrAluno referencia Alunos

CodDisciplina referencia Disciplinas

CodTurma referencia Turmas

AvaliacoesRealizadas (MatrAluno, CodAvaliacao, DataRealizacao, HoraRealizacao, Nota)

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

AlternativaResposta (MatrAluno, CodAvaliacao, CodQuestao, CodAlternativa)

MatrAluno referencia Alunos

CodAvaliacao referencia Avaliacoes

CodQuestao referencia Questoes

CodAlternativa referencia Alternativas

TopicoDisciplina (CodTopico, CodDisciplina)

CodTopico referencia Topicos

CodDisciplina referencia Disciplinas

QuestaoTopico (CodQuestao, CodTopico)

CodQuestao referencia Questoes

CodTopicos referencia Topicos

QuestaoAvaliacao (CodAvaliacao, CodQuestao)

CodAvaliacao referencia Avaliacoess

CodQuestao referencia Questoes

TurmaProfessor (CodDisciplina, CodTurma, MatrProfessor)

CodDisciplina referencia Disciplinas

CodTurma referencia Turmas

MatrProfessor referencia Professores

Page 92: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

92

TopicoAvaliacao (CodAvaliacao, CodTopico)

CodAvaliacao referencia Avaliações

CodTopico referencia Topicos

Usuarios (Matricula , Senha, Tipo)

5.8. Implementação de um Protótipo do SGA

O desenvolvimento do SGA ocorreu após a instalação do ambiente de

desenvolvimento de aplicações PHP com banco de dados MySQL chamado

PHPTriad 2.2.

Uma das etapas finais ao trabalho de desenvolvimento do SGA foi a

codificação dos scripts PHP em um simples editor de texto, e posteriormente, para

facilitar o desenvolvimento da interface gráfica, utilizamos o Macromedia

DreamWeaver.

Para dar inicio ao desenvolvimento da aplicação, inicialmente implementamos

scripts PHP que montam a base de dados do SGA no MySQL e também insere

alguns dados para poder dar inicio aos testes do Sistema. Estes scripts encontram-

se no Anexo 4.

Para a construção do layout das páginas, buscamos a orientação de um

profissional da área de design gráfico.

O protótipo implementado cobre somente as principais funcionalidades do

SGA. Entretanto, todas as funcionalidades implementadas estão bem estruturadas,

documentadas e protegidas contra entradas indevidas de dados dos usuários. Esta

foi uma preocupação grande durante a implementação, manter a corretude e

robustez do SGA.

Page 93: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

93

Figura 9 – Página Inicial do SGA

No protótipo do SGA implementado, há uma página principal que é exibida

quando o sistema é acessado. Esta página é única e é visualizada tanto por alunos

quanto por professores.

Nesta página é solicitada a identificação do usuário – matrícula e senha. A

partir daí, o script PHP “autenticalogin.php” se encarrega de realizar a autenticação

do usuário e mostrar a página principal de acordo com a categoria que o usuário se

enquadra, isto é, se é um aluno ou um professor chamando respectivamente os

scripts PHP “professor.php" e “aluno.php".

Page 94: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

94

Figura 10 – Página Principal do Professor

A partir da página principal do professor, ele poderá consultar, incluir, alterar

ou excluir questões, elaborar, consultar, alterar, publicar e excluir avaliações, além

de corrigir questões discursivas e visualizar o resultado das avaliações já realizadas.

Page 95: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

95

Figura 11 – Cadastro de Questões

Na página de cadastro das questões, o professor inicialmente seleciona o tipo

da questão, ou seja, se é uma questão discursiva ou subjetiva.

Page 96: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

96

Figura 12 – Cadastro de Questões Objetivas

Caso a questão seja objetiva, o professor informa o enunciado da questão,

seleciona um ou mais tópicos nos quais a questão está relacionada, entra com as

alternativas da questão e informa se estão corretas ou não.

Page 97: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

97

Figura 13 – Cadastro de Questões Discursivas

No caso de questão discursiva, o professor também informa o enunciado e os

tópicos relacionados, além do gabarito da questão para armazenamento no banco

de dados.

Page 98: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

98

Figura 14 – Seleção de Disciplina da Avaliação

O professor tem a opção de elaborar avaliações através do sistema. Neste

caso, inicialmente, deve ser selecionada a disciplina para a qual a avaliação será

realizada.

Page 99: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

99

Figura 15 - Entrada de Dados da Avaliação

Então, o professor seleciona os tópicos abordados na avaliação, entra com o

cabeçalho, informa se a avaliação é temporizada ou não, e se for, informa também o

tempo máximo de realização em minutos. Além disso, informa se a avaliação será

disponibilizada logo após sua criação ou não, e como as questões serão

selecionadas – automaticamente ou manualmente.

Page 100: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

100

Figura 16 - Elaborando Avaliação Automaticamente

Nas avaliações em que as questões serão selecionadas automaticamente, ou

seja, através do sistema, o professor informa quantas questões deverão existir de

acordo com os três níveis de dificuldade: fácil, médio e difícil.

Page 101: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

101

Figura 17- Elaborando Avaliação Manualmente

Nas avaliações geradas manualmente, o sistema exibe as questões que

estão armazenadas no banco de dados e estão relacionadas aos tópicos definidos

pelo professor. Então, devem ser selecionadas as questões que farão parte da

avaliação.

Page 102: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

102

Figura 18 - Página Principal do Aluno

Os scripts PHP do protótipo do SGA estão no Anexo 5, com algumas

explicações sobre suas funcionalidades.

Page 103: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

103

CONCLUSÃO

Construir uma ferramenta de avaliação eletrônica que seja eficiente, fácil de

ser usada, que proporcione ir além da tradicional avaliação no papel pela

disponibilidade dos recursos computacionais e dos sistemas de informação, e que

ainda mantenha sua credibilidade foi um desafio.

Administrar as diversas possibilidades de aprimoramento da ferramenta de

avaliação eletrônica SGA, o que implica em aumentar o grau de complexidade da

aplicação, permitiu verificar na prática a importância do planejamento e projeto da

aplicação antes do início da sua implementação.

A aplicação inicialmente era simples, mas ao longo do seu desenvolvimento

fomos percebendo novos requisitos que poderiam deixar a aplicação mais completa

e também mais complexa. A seguir apresentamos alguns dos requisitos que

surgiram ao longo do desenvolvimento do SGA:

• Possibilidade de classificar as questões de acordo com o grau de

dificuldades;

• Associar questões a mais de um tópico de diferentes disciplinas;

• Gerar questões e avaliações temporizadas;

• Oferecer a opção de outros tipos de questões como, por exemplo,

questões discursivas, de associação de tabelas entre outras.

• A necessidade de manter um histórico das avaliações realizadas.

• Como controlar a consistência na alteração de questões de uma

avaliação que já foi realizada.

• Determinar quais dados e quais análises estatísticas destes dados é

relevante de serem apresentadas.

• Qual a melhor forma de apresentar os dados obtidos? Relatórios

gráficos tabelas etc.

Page 104: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

104

• A necessidade de incluir segurança no armazenamento das

informações e nas transações entre os usuários e o sistema.

Além dos requisitos citados acima outros tantos foram surgindo ao longo do

trabalho o que permitiu visualizarmos a necessidade de mudança dos requisitos ao

longo do desenvolvimento e principalmente como é fundamental que o trabalho

esteja bem planejado e bem documentado para que a mudança dos requisitos

ocorra de forma “natural” sem grandes impactos.

Outro aspecto importante que notamos foi à complexidade presente no banco

de dados da aplicação. Sendo que, a fase de modelagem e especificação do banco

de dados da aplicação foi uma das etapas que mais tomou tempo do projeto.

Page 105: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

105

TRABALHOS FUTUROS

O aumento da complexidade da aplicação faz surgir à necessidade de

recursos computacionais mais elaborados, o que pode implicar a migração da

aplicação da tecnologia PHP para a tecnologia Java. A tecnologia de componentes

distribuídos oferecida pela tecnologia Java através da arquitetura de componentes

“Enterprise Java Beans” – EJB pode vir a resolver alguns problemas intrínsecos à

aplicação além de permitir maior flexibilidade no seu desenvolvimento.

A apresentação dos dados seria oferecida pelo “Java Server Page” – JSP.

O EJB encapsula em seu framework toda a complexidade no uso de threads,

controle de deadlocks, administração de sessões dos clientes, controle de

transações, mapeamento direto no acesso ao banco de dados, prove baixo

acoplamento, em fim entre outras vantagens no seu uso. Desta forma a adoção da

tecnologia EJB vai agregar o uso de recursos tecnológicos que vão tornar a

aplicação mais robusta, e permitir tranqüilamente o aumento da sua complexidade,

principalmente no processamento das análises estatísticas e monitoramento em

tempo real da execução das avaliações.

O trabalho de especificação do projeto poderia facilmente ser adaptado para a

nova tecnologia, todo levantamento de requisitos e a análise do sistema podem ser

reaproveitados e facilmente complementados.

Outra parte do trabalho que poderia ser explorada futuramente é a

possibilidade de integração do SGA a sistemas acadêmicos já criados e

implantados.

Aspectos de segurança como criptografia para proteção e garantia de

integridade dos dados, autenticação dos usuários e não repúdio precisam ser

integrados ao sistema.

Page 106: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

106

REFERÊNCIAS BIBLIOGRÁFICAS

[ANSELMO, 2002] ANSELMO, Fernando. PHP e MySQL: Maior, Melhor e

Totalmente Sem Cortes .Florianópolis: Visual Books,

2002.

[CASTAGNETTO,1999] CASTAGNETTO, J., et al. Professional PHP Programming . EUA: Wrox Press, 1999.

[FIORINI, 1998] FIORINI, Sueli T.; VON STAA, Arndt; BATISTA, Renan

Martins. Engenharia de Software com CMM . Rio de

Janeiro: Brasport, 1998.

[FUGANTI, 2004] FUGANTI, L. K.; FUGANTI, A. P. K. Sistema de Criação de Provas Online . In: WORLD CONGRESS ON ENGENEERING AND TECHNOLOGY EDUCATION. São Paulo, 2004.

[GREENSPAN, 2001] GREENSPAN, Jay; BULGER Brad. MySQL/PHP

Database Applications. Nova York, EUA: M&T Books,

2001.

[HEUSER, 2001] HEUSER, Carlos Alberto. Projeto de Banco de Dados . 4ª

edição. Instituto de Informática da UFRGS Ed. Sagra,

2001.

[LARMAN, 2004] LARMAN, C. Utilizando UML e padrões: Uma Introdução à Análise e ao Projeto Orientado a Objet os e ao Processo Unificado . 2a ed. Porto Alegre: Bookman, 2004.

[MAZZOLA, 2004] MAZZOLA, Vitório Bruno. Apostila de PHP .

[MOURA] MOURA, Z., et al. Sistema de Gerenciamento de Instrumentos para Avaliações via WEB . Universidade Norte do Paraná, Londrina, PR. Disponível em: http://www.unopar.br/portal/aol2/

[PELLEGRINO, 2002] PELLEGRINO, J.W. Understanding How Students

Learn and Inferring What They Know: implications for

the design of curriculum, instructions and assessment. In:

NSF Instructional Materials Development Conference,

EUA, 2002.

[PHP, 2004] PHP. Página oficial do PHP. Disponível em: www.php.net.

Acesso em: 07/10/2004.

Page 107: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

107

[PHPTriad Help] PHPTriad ControlPanel. Help do PHPTriad .

http://localhost:1005/help/index.html

[ROCHA, 2003] ROCHA, Celi Antônio da. Desenvolvendo Web Sites

Dinâmicos . Ed. Campus 2003.

[WINCKLER, 2003] WINCKLER, R. B. Avaliações Gráficas e Dinâmicas

Aplicadas a Ambientes Virtuais de Aprendizagem .

2003. 60f. Dissertação Mestrado – Engenharia de

Produção, Universidade Federal de Santa Catarina,

Florianópolis, 2003.

[SILVA, 1998] SILVA, Osmar J. Programando com PHP4: Conceitos e

Aplicações . São Paulo: Érica, 2002.

[SILVA, 2004] SILVA, Ricardo Pereira e. Apostila da Disciplina de

Engenharia de Software . UFSC, Santa Catarina, 2004.

Page 108: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

108

ANEXO 1 – CASOS DE USO DO ADMINISTRADOR

Figura 19 - Casos de Uso do Administrador

Page 109: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

109

Caso de Uso: Cadastrar Curso

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O curso deverá estar corretamente cadastrado.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Curso.

2. O sistema exibe a tela para entrada dos dados do curso (código e

nome).

3. O administrador informa os dados e confirma.

4. O sistema cadastra o curso.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código ou o nome estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de entrada dos dados do curso.

4.2 O código ou o nome do curso já estão cadastrados.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Cadastrar Professor

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O professor deverá estar corretamente cadastrado.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Professor.

2. O sistema exibe a tela para entrada de dados do professor

(matrícula, nome e departamento).

3. O administrador informa os dados e confirma.

4. O sistema cadastra o professor.

5. O sistema exibe uma tela de confirmação.

Fluxos Não há.

Page 110: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

110

Alternativos

Fluxos de

Exceções

4.1 A matrícula ou o nome estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela da entrada dos dados do professor.

4.2 A matrícula já está cadastrada.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Cadastrar Aluno

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O aluno deverá estar corretamente cadastrado.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Aluno.

2. O sistema exibe a tela para entrada de dados do aluno (matrícula

e nome).

3. O administrador informa os dados e confirma.

4. O sistema cadastra o aluno.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula ou o nome estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela da entrada dos dados do aluno.

4.2 A matrícula já está cadastrada.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Page 111: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

111

Caso de Uso: Cadastrar Disciplina

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A disciplina deverá estar corretamente cadastrada.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Disciplina.

2. O sistema exibe a tela para entrada de dados da disciplina

(código, nome, tipo, número de horas-aula e fase).

3. O administrador informa os dados e confirma.

4. O sistema cadastra a disciplina.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código ou o nome estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela da entrada dos dados da disciplina.

4.2 O código já está cadastrado.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Cadastrar Tópico

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O tópico deverá estar corretamente cadastrado.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Tópico.

2. O sistema exibe a tela para entrada de dados do tópico (nome).

3. O administrador informa os dados e confirma.

4. O sistema cadastra o tópico.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Page 112: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

112

Fluxos de

Exceções

4.1 O nome está em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela da entrada dos dados do tópico.

4.2 O nome já está cadastrado.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Cadastrar Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A turma deverá estar corretamente cadastrada.

Fluxo Principal 1. O administrador seleciona a opção Cadastrar Turma.

2. O sistema exibe a tela para entrada de dados da turma (código da

turma, código da disciplina, horário, sala e número de vagas).

3. O administrador informa os dados e confirma.

4. O sistema cadastra a turma.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código da turma ou o código da disciplina estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela da entrada dos dados da turma.

4.2 O código para a turma relacionada ao código da disciplina já está

cadastrada.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

4.3 O código da disciplina não está cadastrado.

4.3.a O sistema exibe um aviso.

4.3.b O sistema retorna à página principal do administrador.

Page 113: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

113

Caso de Uso: Associar Professor a Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O professor deverá estar corretamente associado à turma.

Fluxo Principal 1. O administrador seleciona a opção Associar Professor à Turma.

2. O sistema exibe a tela para entrada dos dados da associação de

professores às turmas.

3. O administrador informa a matrícula do professor, o código da

disciplina e o código da turma à qual ele será associado e

confirma.

4. O sistema associa o professor à turma.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula do professor, o código da disciplina ou o código da

turma estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de associação do professor à turma.

4.2 A matrícula do professor, o código da turma ou o código da

disciplina não estão cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Desassociar Professor de Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O professor deverá estar corretamente desassociado da turma.

Fluxo Principal 1. O administrador seleciona a opção Desassociar Professor de

Turma.

2. O sistema exibe a tela para entrada dos dados da desassociação

Page 114: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

114

do professor da turma.

3. O administrador informa a matrícula do professor, o código da

disciplina e o código da turma da qual ele será desassociado e

confirma.

4. O sistema desassocia o professor da turma.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula do professor, o código da disciplina ou o código da

turma estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de desassociação do professor à

turma.

4.2 A matrícula do professor, o código da turma ou o código da

disciplina não estão cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Incluir Aluno em Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O aluno deverá ser incluído corretamente na turma.

Fluxo Principal 1. O administrador seleciona a opção Incluir Aluno na Turma.

2. O sistema exibe a tela para inclusão do aluno na turma.

3. O administrador informa a matrícula do aluno, o código da

disciplina e o código da turma na qual ele será incluído e

confirma.

4. O sistema inclui o aluno na turma.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Page 115: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

115

Fluxos de

Exceções

4.1 A matrícula do aluno, o código da disciplina ou o código da turma

estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de inclusão do aluno na turma.

4.2 A matrícula do aluno, o código da turma ou o código da disciplina

não estão cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Excluir Aluno de Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O aluno deve ser excluído corretamente da turma.

Fluxo Principal 1. O administrador seleciona a opção Excluir Aluno de Turma.

2. O sistema exibe a tela para entrada dos dados da exclusão de um

aluno de uma turma.

3. O administrador informa a matrícula do aluno, o código da

disciplina e o código da turma da qual ele será excluído e

confirma a exclusão.

4. O sistema exclui o aluno da turma.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula do aluno, o código da disciplina ou o código da turma

estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de exclusão do aluno da turma.

4.2 A matrícula do aluno, o código da turma ou o código da disciplina

não estão cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Page 116: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

116

Caso de Uso: Associar Tópico a Disciplina

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O tópico deve estar corretamente associado à disciplina.

Fluxo Principal 1. O administrador seleciona a opção Associar Tópico a Disciplina.

2. O sistema exibe a tela para entrada dos dados da associação do

tópico à disciplina.

3. O administrador informa o código do tópico e o código da

disciplina à qual ele será associado.

4. O sistema associa o tópico à disciplina.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código do tópico ou o código da disciplina estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de associação do tópico à disciplina.

4.2 O código do tópico ou o código da disciplina não estão

cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Desassociar Tópico de Disciplina

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O tópico deve estar corretamente desassociado à disciplina.

Fluxo Principal 1. O administrador seleciona a opção Desassociar Tópico de

Disciplina.

2. O sistema exibe a tela para entrada dos dados da desassociação

do tópico da disciplina.

3. O administrador informa o código do tópico e o código da

Page 117: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

117

disciplina à qual ele será desassociado.

4. O sistema desassocia o tópico à disciplina.

5. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código do tópico ou o código da disciplina estão em branco.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à tela de desassociação do tópico à

disciplina.

4.2 O código do tópico ou o código da disciplina não estão

cadastrados no sistema.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Atualizar Curso

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O curso deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador seleciona a opção Atualizar Curso.

2. O sistema exibe a tela para entrada dos dados de atualização dos

dados do curso.

3. O administrador informa o código do curso.

4. O sistema exibe o código e o nome do curso que estão

cadastrados.

5. O administrador altera o código e/ou o nome e confirma a

atualização.

6. O sistema atualiza os dados do curso.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de 4.1 O código do curso não está cadastrado no sistema.

Page 118: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

118

Exceções 4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

6.1 O código ou o nome estão em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela de atualização dos dados do curso.

6.2 O código ou o nome já estão cadastrados.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Atualizar Professor

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O professor deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador escolhe a opção Atualizar Professor.

2. O sistema exibe a tela para atualização dos dados do professor.

3. O administrador informa a matrícula do professor.

4. O sistema exibe a matrícula, o nome e o departamento do

professor que estão cadastrados.

5. O administrador altera a matrícula, o nome e/ou o departamento e

confirma a atualização.

6. O sistema atualiza os dados do professor.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula do professor não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

6.1 A matrícula ou o nome estão em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela de atualização dos dados do

professor.

Page 119: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

119

6.2 A matrícula já está cadastrada.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Caso de Uso : Atualizar Aluno

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O aluno deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador escolhe a opção Atualizar Aluno.

2. O sistema exibe a tela para atualização dos dados do aluno.

3. O administrador informa a matrícula do aluno.

4. O sistema exibe a matrícula e o nome do aluno que estão

cadastrados.

5. O administrador altera a matrícula e/ou o nome e confirma a

atualização.

6. O sistema atualiza o banco de dados.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 A matrícula do aluno não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

6.1 A matrícula ou o nome estão em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela de atualização dos dados do aluno.

6.2 A matrícula já está cadastrada.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Page 120: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

120

Caso de Uso: Atualizar Disciplina

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A disciplina deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador escolhe a opção Atualizar Disciplina.

2. O sistema exibe a tela para atualização dos dados da disciplina.

3. O administrador informa o código da disciplina.

4. O sistema exibe o código da disciplina, o nome, o tipo, o número

de horas-aula e a fase que estão cadastrados.

5. O administrador altera o código da disciplina, o nome, o tipo e/ou

o número de horas-aula e confirma a atualização.

6. O sistema atualiza os dados da disciplina.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código da disciplina não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

6.1 O código ou o nome estão em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela atualização da disciplina.

6.2 O código ou nome já estão cadastrados.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Page 121: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

121

Caso de Uso: Atualizar Tópico

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O tópico deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador escolhe a opção Atualizar Tópico.

2. O sistema exibe a tela para atualização dos dados do tópico.

3. O administrador informa o nome do tópico.

4. O sistema exibe o nome do tópico.

5. O administrador altera o nome do tópico e confirma a atualização.

6. O sistema atualiza os dados da tópico.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O nome do tópico não está cadastrado no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

4.1 O nome está em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela atualização da disciplina.

6.2 O nome já está cadastrado.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Atualizar Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A turma deverá ter seus dados alterados corretamente.

Fluxo Principal 1. O administrador escolhe a opção Atualizar Turma.

2. O sistema exibe a tela para atualização dos dados da turma.

3. O administrador informa o código da disciplina e o código da

Page 122: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

122

turma.

4. O sistema exibe o código da disciplina, o código da turma, o

horário, a sala e o número de vagas que estão cadastrados.

5. O administrador altera o código da turma, o horário, a sala ou o

número de vagas e confirma.

6. O sistema atualiza os dados da turma.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

Não há.

Fluxos de

Exceções

4.1 O código da disciplina ou o código da turma não estão

cadastrados no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

4.2 A turma não está associada à disciplina.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

6.1 O código da turma está em branco.

6.1.a O sistema exibe um aviso.

6.1.b O sistema retorna à tela atualização da disciplina.

6.2 O código já está estão cadastrados.

6.2.a O sistema exibe um aviso.

6.2.b O sistema retorna à página principal do administrador.

Caso de Uso: Excluir Curso

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O curso deverá ser corretamente excluído.

Fluxo Principal 1. O administrador seleciona a opção Excluir Curso.

2. O sistema exibe a tela para entrada do código do curso.

3. O administrador informa o código e confirma.

4. O sistema exibe as informações do curso que estão cadastradas

Page 123: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

123

para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui o curso.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

5.1 O administrador não confirma a exclusão.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 O código do curso não está cadastrado no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

Caso de Uso: Excluir Professor

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O professor deverá ser corretamente excluído.

Fluxo Principal 1. O administrador seleciona a opção Excluir Professor.

2. O sistema exibe a tela para entrada da matrícula do professor.

3. O administrador informa a matrícula do professor e confirma.

4. O sistema exibe as informações do professor que estão

cadastradas para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui o professor.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

5.1 O administrador não confirma a exclusão.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 A matrícula do professor não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

Page 124: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

124

Caso de Uso: Excluir Aluno

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O aluno deverá ser corretamente excluído.

Fluxo Principal 1. O administrador seleciona a opção Excluir Aluno.

2. O sistema exibe a tela para entrada da matrícula do aluno.

3. O administrador informa a matrícula do aluno e confirma.

4. O sistema exibe as informações do aluno que estão cadastradas

para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui o aluno.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

5.1 O administrador não confirma a exclusão.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 A matrícula do aluno não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

Caso de Uso: Excluir Disciplina

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A disciplina deverá ser corretamente excluída.

Fluxo Principal 1. O administrador seleciona a opção Excluir Disciplina.

2. O sistema exibe a tela para entrada do código da disciplina.

3. O administrador informa o código da disciplina e confirma.

4. O sistema exibe as informações da disciplina que estão

cadastradas para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui a disciplina.

Page 125: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

125

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

5.1 O administrador não confirma a exclusão.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 O código da disciplina não está cadastrada no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

Caso de Uso: Excluir Tópico

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição O tópico deverá ser corretamente excluído.

Fluxo Principal 1. O administrador seleciona a opção Excluir Tópico.

2. O sistema exibe a tela para entrada do nome do tópico.

3. O administrador informa o nome do tópico e confirma.

4. O sistema exibe as informações do tópico que estão cadastradas

para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui o tópico.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

5.1 O administrador não confirma a exclusão.

5.1.a O sistema exibe um aviso.

5.1.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 O nome do tópico não está cadastrado no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

Page 126: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

126

Caso de Uso: Excluir Turma

Ator Administrador

Pré-condição O sistema deve estar na página de domínio do administrador.

Pós-condição A turma deverá ser corretamente excluída.

Fluxo Principal 1. O administrador seleciona a opção Excluir Turma.

2. O sistema exibe a tela para entrada do código da disciplina e do

código da turma.

3. O administrador informa o código da disciplina e o código da

turma e confirma.

4. O sistema exibe as informações da turma que estão cadastradas

para confirmação do administrador.

5. O administrador confirma a exclusão.

6. O sistema exclui a turma.

7. O sistema exibe uma tela de confirmação.

Fluxos

Alternativos

2.2 O administrador não confirma a exclusão.

2.2.a O sistema exibe um aviso.

2.2.b O sistema retorna à página principal do professor.

Fluxos de

Exceções

4.1 O código da disciplina ou o código da turma não estão

cadastrados no sistema.

4.1.a O sistema exibe um aviso.

4.1.b O sistema retorna à página principal do administrador.

4.2 A turma não está associada à disciplina.

4.2.a O sistema exibe um aviso.

4.2.b O sistema retorna à página principal do administrador.

Page 127: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

127

ANEXO 2 – DIAGRAMA ENTIDADE/RELACIONAMENTO

Page 128: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

128

ANEXO 3 – MODELAGEM LÓGICA DO BANCO DE DADOS

CREATE DATABASE SGA

USE SGA

CREATE TABLE Cursos (

CodCurso SMALLINT NOT NULL,

Nome VARCHAR (50) NOT NULL UNIQUE,

PRIMARY KEY (CodCurso))

CREATE TABLE Disciplinas (

CodDisciplina VARCHAR (10) NOT NULL ,

Nome VARCHAR (50) NOT NULL UNIQUE,

Tipo VARCHAR(20) ,

NumHorasAula TINYINT,

Fase TINYINT,

PRIMARY KEY (CodDisciplina))

CREATE TABLE Turmas (

CodTurma VARCHAR (10) NOT NULL ,

CodDisciplina VARCHAR (10) NOT NULL,

Horario VARCHAR (50),

Sala VARCHAR (10),

NumVagas TINYINT,

PRIMARY KEY (CodTurma, CodDisciplina),

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina))

CREATE TABLE Professores (

MatrProfessor VARCHAR (50), NOT NULL

Nome VARCHAR(50) NOT NULL,

Page 129: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

129

Departamento VARCHAR(50),

PRIMARY KEY (MatrProfessor))

CREATE TABLE Topicos (

CodTopico INTEGER NOT NULL AUTO_INCREMENT,

Nome VARCHAR(255) NOT NULL UNIQUE,

PRIMARY KEY (CodTopico))

CREATE TABLE Alunos (

MatrAluno VARCHAR(50) NOT NULL ,

Nome VARCHAR(50) NOT NULL ,

PRIMARY KEY (MatrAluno))

CREATE TABLE Avaliacoes (

CodAvaliacao INTEGER NOT NULL AUTO_INCREMENT ,

CodDisciplina VARCHAR(10) NOT NULL,

Tipo VARCHAR(40),

Cabecalho VARCHAR(255),

Publica BOOL NOT NULL ,

Temporizada BOOL NOT NULL,

TempoMax SMALLINT ,

DataCriacao DATE NOT NULL ,

HoraCriacao TIME NOT NULL ,

PRIMARY KEY (CodAvaliacao, CodDisciplina),

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina))

CREATE TABLE AvaliacoesSistema (

CodAvaliacao INTEGER NOT NULL ,

NumFacil TINYINT NOT NULL ,

NumMedio TINYINT NOT NULL ,

NumDificil TINYINT NOT NULL ,

PRIMARY KEY (CodAvaliacao),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao))

Page 130: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

130

CREATE TABLE Respostas (

MatrAluno VARCHAR(50) NOT NULL,

CodAvaliacao INTEGER NOT NULL ,

CodQuestao INTEGER NOT NULL ,

Texto TEXT,

Nota NUMERIC(2,2),

TempoResp TIME,

PRIMARY KEY (MatrAluno, CodAvaliacao, CodQuestao),

FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao),

FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))

CREATE TABLE Alternativas (

CodAlternativa INTEGER NOT NULL AUTO_INCREMENT ,

CodQuestao INTEGER NOT NULL,

Texto TEXT NOT NULL,

Correta BOOL NOT NULL,

PRIMARY KEY (CodAlternativa, CodQuestao),

FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))

CREATE TABLE Questoes (

CodQuestao INTEGER NOT NULL AUTO_INCREMENT ,

MatrProfessor VARCHAR(40) NOT NULL,

Tipo VARCHAR(10) NOT NULL ,

Dificuldade VARCHAR(7) NOT NULL ,

Enunciado VARCHAR(255) NOT NULL,

Gabarito TEXT,

DataCriacao DATE NOT NULL ,

HoraCriacao TIME NOT NULL ,

PRIMARY KEY (CodQuestao),

FOREIGN KEY (MatrProfessor) REFERENCES Professores (MatrProfessor))

CREATE TABLE Curriculos (

Page 131: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

131

CodCurso SMALLINT NOT NULL ,

CodDisciplina VARCHAR(10) NOT NULL ,

PRIMARY KEY (CodCurso, CodDisciplina),

FOREIGN KEY (CodCurso) REFERENCES Cursos (CodCurso) ON DELETE

CASCADE,

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina)

ON DELETE CASCADE )

CREATE TABLE Matriculas (

MatrAluno VARCHAR(50) NOT NULL ,

CodDisciplina VARCHAR(10) NOT NULL ,

CodTurma VARCHAR(10) NOT NULL ,

Semestre TINYINT NOT NULL ,

Ano YEAR NOT NULL ,

PRIMARY KEY (MatrAluno, CodDisciplina, CodTurma, Semestre, Ano),

FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno),

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina),

FOREIGN KEY (CodTurma) REFERENCES Turmas (CodTurma))

CREATE TABLE AvaliacoesRealizadas (

MatrAluno VARCHAR(50) NOT NULL,

CodAvaliacao INTEGER NOT NULL ,

DataRealizacao DATE NOT NULL ,

HoraRealizacao TIME NOT NULL ,

Nota NUMERIC(2,2),

PRIMARY KEY (MatrAluno, CodAvaliacao),

FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao))

CREATE TABLE AlternativaResposta (

MatrAluno VARCHAR(50) NOT NULL,

CodAvaliacao INTEGER NOT NULL ,

CodQuestao INTEGER NOT NULL ,

CodAlternativa INTEGER NOT NULL ,

Page 132: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

132

NumTrocas TINYINT,

PRIMARY KEY (MatrAluno, CodAvaliacao, CodQuestao, CodAlternativa),

FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao),

FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao),

FOREIGN KEY (CodAlternativa) REFERENCES Alternativas (CodAlternativa))

CREATE TABLE TopicoDisciplina (

CodTopico INTEGER NOT NULL ,

CodDisciplina VARCHAR(10) NOT NULL ,

PRIMARY KEY (CodTopico, CodDisciplina),

FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico) ON

DELETE CASCADE,

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina)

ON DELETE CASCADE )

CREATE TABLE QuestaoTopico (

CodQuestao INTEGER NOT NULL,

CodTopico INTEGER NOT NULL,

PRIMARY KEY (CodQuestao, CodTopico),

FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao),

FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico) ON

DELETE CASCADE )

CREATE TABLE QuestaoAvaliacao (

CodAvaliacao INTEGER NOT NULL,

CodQuestao INTEGER NOT NULL,

PRIMARY KEY (CodAvaliacao, CodQuestao),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao),

FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))

CREATE TABLE TurmaProfessor (

CodDisciplina VARCHAR(10) NOT NULL ,

CodTurma VARCHAR(10) NOT NULL ,

Page 133: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

133

MatrProfessor VARCHAR(50) NOT NULL ,

PRIMARY KEY (CodDisciplina, CodTurma, MatrProfessor),

FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina),

FOREIGN KEY (CodTurma) REFERENCES Turmas (CodTurma),

FOREIGN KEY (MatrProfessor) REFERENCES Professores (MatrProfessor))

CREATE TABLE TopicoAvaliacao (

CodAvaliacao INTEGER NOT NULL ,

CodTopico INTEGER NOT NULL,

PRIMARY KEY (CodAvaliacao, CodTopico),

FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes(CodAvaliacao),

FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico))

CREATE TABLE Usuarios (

Matricula VARCHAR(50) NOT NULL ,

Senha VARCHAR(20) NOT NULL ,

Tipo VARCHAR(10) NOT NULL ,

PRIMARY KEY (Matricula))

Page 134: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

134

ANEXO 4 – SCRIPTS DO BANCO DE DADOS

Os scripts que criam e povoam as tabelas do banco de dados do SGA estão

divididos em três partes: montabd1.php , montabd2.php e montabd3.php .

O script montabd1.php cria o banco de dados e suas tabelas. Este script não

insere nenhuma tupla no banco de dados, deixando-o inicialmente vazio.

O script montabd2.php coloca no BD os dados que seriam inseridos pelo

administrador. Levamos em consideração que estes dados já existem no banco de

dados da universidade onde o SGA seria utilizado, então são inseridas tuplas

relativas aos dados da Universidade Federal de Santa Catarina que tornam possível

a utilização do SGA.

O montabd3.php insere dados nas tabelas Questões e suas respectivas

relações com a tabela QuestaoTopico para facilitar a simulação da elaboração de

avaliações, tanto para testes quanto para demonstração.

Estes scripts estão relacionados abaixo.

Page 135: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

135

montabd1.php <?php echo ("<center><p><b>Criação do Banco de Dados do SGA - Sistema de Gerenciamento de Avaliações</b></p></center>"); // Estabelecendo conexão com o BD $con = mysql_connect() or die ("Erro ao conectar com BD: ".mysql_error()); //Criando e preenchendo as tabelas do BD $sql = "CREATE DATABASE SGA"; $res = mysql_query($sql) or die ("Erro ao criar BD SGA: ".mysql_error()); $sql = "USE SGA"; $res = mysql_query($sql) or die ("Erro ao selecionar BD SGA: ".mysql_error()); $sql = "CREATE TABLE Cursos (CodCurso SMALLINT NOT NULL, Nome VARCHAR(50) NOT NULL UNIQUE, PRIMARY KEY (CodCurso))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Cursos</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Cursos</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Disciplinas (CodDisciplina VARCHAR(10) NOT NULL, Nome VARCHAR(50) NOT NULL UNIQUE, Tipo VARCHAR(20), NumHorasAula TINYINT, Fase TINYINT, PRIMARY KEY (CodDisciplina))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Disciplinas</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Turmas (CodTurma VARCHAR(10) NOT NULL, CodDisciplina VARCHAR(10) NOT NULL, Horario VARCHAR(50), Sala VARCHAR(10), NumVagas TINYINT, PRIMARY KEY (CodTurma, CodDisciplina), FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Turmas</b> criada com sucesso.<br>"); } else {

Page 136: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

136

echo ("<b>ERRO</b> ao criar Tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Professores (MatrProfessor VARCHAR (50) NOT NULL, Nome VARCHAR(50) NOT NULL, Departamento VARCHAR(50), PRIMARY KEY (MatrProfessor) )"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Professores</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Topicos (CodTopico INTEGER NOT NULL AUTO_INCREMENT, Nome VARCHAR(255) NOT NULL UNIQUE, PRIMARY KEY (CodTopico))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Topicos</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Alunos (MatrAluno VARCHAR(50) NOT NULL, Nome VARCHAR(50) NOT NULL, PRIMARY KEY (MatrAluno))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Alunos</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Alunos</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Avaliacoes (CodAvaliacao INTEGER NOT NULL AUTO_INCREMENT, CodDisciplina VARCHAR(10) NOT NULL, Tipo VARCHAR(40), Cabecalho VARCHAR(255), Publica BOOL NOT NULL, Temporizada BOOL NOT NULL, TempoMax SMALLINT, DataCriacao DATE NOT NULL, HoraCriacao TIME NOT NULL, PRIMARY KEY (CodAvaliacao, CodDisciplina), FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Avaliacoes</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Avaliacoes</b>: ".mysql_error()."<br>"); }

Page 137: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

137

$sql = "CREATE TABLE AvaliacoesSistema (CodAvaliacao INTEGER NOT NULL, NumFacil TINYINT NOT NULL, NumMedio TINYINT NOT NULL, NumDificil TINYINT NOT NULL, PRIMARY KEY (CodAvaliacao), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>AvaliacoesSistema</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>AvaliacoesSistema</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Respostas (MatrAluno VARCHAR(50) NOT NULL, CodAvaliacao INTEGER NOT NULL, CodQuestao INTEGER NOT NULL, Texto TEXT, Nota NUMERIC(2,2), TempoResp TIME, PRIMARY KEY (MatrAluno, CodAvaliacao, CodQuestao), FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao), FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Respostas</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Respostas</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Alternativas (CodAlternativa INTEGER NOT NULL AUTO_INCREMENT, CodQuestao INTEGER NOT NULL, Texto TEXT NOT NULL, Correta BOOL NOT NULL, PRIMARY KEY (CodAlternativa, CodQuestao), FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Alternativas</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Alternativas</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Questoes (CodQuestao INTEGER NOT NULL AUTO_INCREMENT, MatrProfessor VARCHAR(40) NOT NULL, Tipo VARCHAR(10) NOT NULL, Dificuldade VARCHAR(7) NOT NULL, Enunciado VARCHAR(255) NOT NULL, Gabarito TEXT, DataCriacao DATE NOT NULL, HoraCriacao TIME NOT NULL, PRIMARY KEY (CodQuestao), FOREIGN KEY (MatrProfessor) REFERENCES Professores (MatrProfessor))";

Page 138: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

138

$res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Questoes</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Curriculos (CodCurso SMALLINT NOT NULL, CodDisciplina VARCHAR(10) NOT NULL, PRIMARY KEY (CodCurso, CodDisciplina), FOREIGN KEY (CodCurso) REFERENCES Cursos (CodCurso) ON DELETE CASCADE, FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina) ON DELETE CASCADE)"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Curriculos</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Matriculas (MatrAluno VARCHAR(50) NOT NULL, CodDisciplina VARCHAR(10) NOT NULL, CodTurma VARCHAR(10) NOT NULL, Semestre TINYINT NOT NULL, Ano YEAR NOT NULL, PRIMARY KEY (MatrAluno, CodDisciplina, CodTurma, Semestre, Ano), FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno), FOREIGN KEY (CodTurma) REFERENCES Turmas (CodTurma), FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Matriculas</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE AvaliacoesRealizadas (MatrAluno VARCHAR(50) NOT NULL, CodAvaliacao INTEGER NOT NULL, DataRealizacao DATE NOT NULL, HoraRealizacao TIME NOT NULL, Nota NUMERIC(2,2), PRIMARY KEY (MatrAluno, CodAvaliacao),FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>AvaliacoesRealizadas</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>AvaliacoesRealizadas</b>: ".mysql_error()."<br>");

Page 139: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

139

} $sql = "CREATE TABLE AlternativaResposta (MatrAluno VARCHAR(50) NOT NULL, CodAvaliacao INTEGER NOT NULL, CodQuestao INTEGER NOT NULL, CodAlternativa INTEGER NOT NULL, NumTrocas TINYINT, PRIMARY KEY (MatrAluno, CodAvaliacao, CodQuestao, CodAlternativa), FOREIGN KEY (MatrAluno) REFERENCES Alunos (MatrAluno), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao), FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao), FOREIGN KEY (CodAlternativa) REFERENCES Alternativas (CodAlternativa))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>AlternativaResposta</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>AlternativaResposta</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE TopicoDisciplina (CodTopico INTEGER NOT NULL, CodDisciplina VARCHAR(10) NOT NULL, PRIMARY KEY (CodTopico, CodDisciplina), FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico) ON DELETE CASCADE, FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina) ON DELETE CASCADE)"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>TopicoDisciplina</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE QuestaoTopico (CodQuestao INTEGER NOT NULL, CodTopico INTEGER NOT NULL, PRIMARY KEY (CodQuestao, CodTopico), FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao), FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico) ON DELETE CASCADE)"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>QuestaoTopico</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE QuestaoAvaliacao (CodAvaliacao INTEGER NOT NULL, CodQuestao INTEGER NOT NULL, PRIMARY KEY

Page 140: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

140

(CodAvaliacao, CodQuestao), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes (CodAvaliacao), FOREIGN KEY (CodQuestao) REFERENCES Questoes (CodQuestao))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>QuestaoAvaliacao</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>QuestaoAvaliacao</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE TurmaProfessor (CodDisciplina VARCHAR(10) NOT NULL, CodTurma VARCHAR(10) NOT NULL, MatrProfessor VARCHAR(50) NOT NULL, PRIMARY KEY (CodDisciplina, CodTurma, MatrProfessor), FOREIGN KEY (CodDisciplina) REFERENCES Disciplinas (CodDisciplina), FOREIGN KEY (CodTurma) REFERENCES Turmas (CodTurma), FOREIGN KEY (MatrProfessor) REFERENCES Professores (MatrProfessor))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>TurmaProfessor</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE TopicoAvaliacao( CodAvaliacao INTEGER NOT NULL, CodTopico INTEGER NOT NULL, PRIMARY KEY (CodAvaliacao, CodTopico), FOREIGN KEY (CodAvaliacao) REFERENCES Avaliacoes(CodAvaliacao), FOREIGN KEY (CodTopico) REFERENCES Topicos (CodTopico))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>TopicoAvaliacao</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>TopicoAvaliacao</b>: ".mysql_error()."<br>"); } $sql = "CREATE TABLE Usuarios( Matricula VARCHAR(50) NOT NULL, Senha VARCHAR(20) NOT NULL, Tipo VARCHAR(10) NOT NULL, PRIMARY KEY (Matricula))"; $res = mysql_query($sql); if ($sql){ echo ("Tabela <b>Usuarios</b> criada com sucesso.<br>"); } else { echo ("<b>ERRO</b> ao criar Tabela <b>Usuarios</b>: ".mysql_error()."<br>");

Page 141: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

141

} ?>

Page 142: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

142

montabd2.php <?php echo ("<center><p><b>Inserindo Dados Administrativos no Banco de Dados do SGA - Sistema de Gerenciamento de Avaliações</b></p></center>"); // Estabelecendo conexão com o BD $con_id = mysql_connect() or die ("Erro ao conectar com BD: ".mysql_error()); mysql_select_db('sga',$con_id) or die ("Erro ao selecionar BD SGA: ".mysql_error());; // Inserindo dados na Tabela Cursos $sql = "INSERT INTO Cursos VALUES ('32', 'Ciências da Computação')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Cursos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Cursos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Cursos VALUES ('38', 'Sistemas de Informação')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Cursos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Cursos</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Disciplinas $sql = "INSERT INTO Disciplinas VALUES ('INE5329', 'Administração em Processamento de Dados', 'Obrigatória', '54', '8')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>");

Page 143: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

143

} $sql = "INSERT INTO Disciplinas VALUES ('INE5342', 'Banco de Dados III', 'Optativa', '54', '6')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Disciplinas VALUES ('INE5353', 'Estágio I', 'Optativa', '72', '4')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Disciplinas VALUES ('INE5372', 'Teoria da Computação', 'Obrigatória', '36', '6')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Disciplinas VALUES ('INE5385', 'Informática e Sociedade', 'Obrigatória', '54', '7')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Disciplinas VALUES ('INE5639', 'Sistemas Multimídia', 'Optativa', '72', '7')"; $res = mysql_query($sql); if ($sql){

Page 144: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

144

echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Disciplinas VALUES ('INE5328', 'Projeto em Ciência da Computação II', 'Obrigatória', '108', '8')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Disciplinas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Disciplinas</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Turmas $sql = "INSERT INTO Turmas VALUES ('0832', 'INE5329', '418303', 'CTC302', '50')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0632', 'INE5342', '609103', 'EPS003', '20')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0432', 'INE5353', '520202', 'CTC101', '25')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>");

Page 145: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

145

} $sql = "INSERT INTO Turmas VALUES ('0632', 'INE5372', '310102', 'EEL002', '50')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0732', 'INE5385', '613303', 'CTC106', '25')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0732A', 'INE5385', '609103', 'CTC206', '25')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0732', 'INE5639', '308202/59102', 'CTC112/EPS003', '30')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0832E', 'INE5328', '218302', 'LIVRE', '15')"; $res = mysql_query($sql); if ($sql){

Page 146: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

146

echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0832D', 'INE5328', '218302', 'LIVRE', '15')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0832C', 'INE5328', '216202', 'LIVRE', '15')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0832B', 'INE5328', '213302', 'LIVRE', '15')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Turmas VALUES ('0832A', 'INE5328', '213302', 'LIVRE', '15')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Turmas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Turmas</b>: ".mysql_error()."<br>"); }

Page 147: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

147

// Inserindo dados na Tabela Professores $sql = "INSERT INTO Professores VALUES ('45084', 'Renato Cislaghi', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('31245', 'Edvardo Bonfim Rodrigues Junior', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('116780', 'Ronaldo dos Santos Mello', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('41640', 'Isaias Camilo Boratti', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('119371', 'Jorge Muniz Barreto', 'INE')"; $res = mysql_query($sql); if ($sql){

Page 148: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

148

echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('50436', 'Carmen Dolores de Freitas de Lacerda', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Professores VALUES ('120655', 'Roberto Willrich', 'INE')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Professores</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Professores</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Topicos $sql = "INSERT INTO Topicos (Nome) VALUES ('Organização da Informática das Empresas.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('A Empresa como um Conjunto de Departamentos. Tipos de Estrutura. A Empresa Vista como um Sistema e um Negócio. Downsizing em Empresas.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else {

Page 149: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

149

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('O Plano Diretor de Informática. Plano Estratégico da Empresa. Necessidade de Informação. O Plano de Informática.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Reengenharia da Informação. O Ambiente da Tecnologia da Informação. Novo Paradigma Tecnológico.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Repensando as Organizações de Informática.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Megatendências da Tecnologia da Informação.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); }

Page 150: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

150

$sql = "INSERT INTO Topicos (Nome) VALUES ('Tópicos Especiais: Arquitetura Cliente/Servidor, Downsizing, Rightsizing, Qualidade Total, Tercerização em Empresas de Informática, Etc.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Seminários/Palestras com Temas da Atualizade, Aplicando e Identificando Temas Apresentados na Disciplina.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Introdução: Aplicações Não-Convencionais.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('BD Orientado a Objetos e Objeto-Relacional (BDOO e BDOR).')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('BD Temporal (BDT).')"; $res = mysql_query($sql); if ($sql){

Page 151: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

151

echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('BD Geográfico (BDG).')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('XML e BD (BD XML).')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('A Tese de Church-Turing: Máquinas de Turing. Variantes de MT. Definição de Algoritmo.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Decidibilidade: Linguagens Decidíveis. O Problema de Parada. O Método da Diagonalização.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>");

Page 152: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

152

} $sql = "INSERT INTO Topicos (Nome) VALUES ('Complexidade no Tempo: Medidas de Complexidade. A Classe P. A Classe NP. Problemas NP-Completos.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Complexidade no Espaço: O Teorema de Savitch. A Classe P-Espaço.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Intratabilidade: Teoremas de Hierarquia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Tópicos Avançados em Teoria de Complexidade.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Ética Profissional.')"; $res = mysql_query($sql); if ($sql){

Page 153: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

153

echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Legislação de Informática.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Empreendedorismo.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Introdução à Multimídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Dados Multimídia')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); }

Page 154: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

154

$sql = "INSERT INTO Topicos (Nome) VALUES ('Compressão de Dados Multimídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Documentos Multimídia e Hipermídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Requisitos de Redes.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Redes IP e o Transporte de Dados Multimídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('VoIP.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else {

Page 155: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

155

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Emulando a Conversação e Trabalho Face-a-Face.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Aplicações Baseadas em Servidor Multimídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Suportes de Rede para Multimídia.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Topicos (Nome) VALUES ('Qualidade de Serviços.')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Topicos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Topicos</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Curriculos $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5329')";

Page 156: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

156

$res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5353')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5385')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('38', 'INE5639')"; $res = mysql_query($sql);

Page 157: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

157

if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Curriculos VALUES ('32', 'INE5328')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Curriculos</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Curriculos</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Matriculas $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5329', '0832', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5342', '0632', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5353', '0432', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>");

Page 158: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

158

} $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5372', '0632', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5385', '0732', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5639', '0732', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01132113', 'INE5328', '0832E', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01232452', 'INE5353', '0432', '1', '2005')"; $res = mysql_query($sql); if ($sql){

Page 159: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

159

echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01232452', 'INE5639', '0732', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Matriculas VALUES ('01232452', 'INE5328', '0832D', '1', '2005')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Matriculas</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Matriculas</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela TopicoDisciplina $sql = "INSERT INTO TopicoDisciplina VALUES ('1', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('2', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>");

Page 160: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

160

} $sql = "INSERT INTO TopicoDisciplina VALUES ('3', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('4', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('5', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('6', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('7', 'INE5329')"; $res = mysql_query($sql); if ($sql){

Page 161: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

161

echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('8', 'INE5329')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('9', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('10', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('11', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); }

Page 162: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

162

$sql = "INSERT INTO TopicoDisciplina VALUES ('12', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('13', 'INE5342')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('14', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('15', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('16', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else {

Page 163: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

163

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('17', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('18', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('19', 'INE5372')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('20', 'INE5385')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('21', 'INE5385')"; $res = mysql_query($sql);

Page 164: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

164

if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('22', 'INE5385')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('23', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('24', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('25', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); }

Page 165: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

165

$sql = "INSERT INTO TopicoDisciplina VALUES ('26', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('27', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('28', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('29', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('30', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>");

Page 166: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

166

} else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('31', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TopicoDisciplina VALUES ('32', 'INE5639')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } $sql = ("INSERT INTO TopicoDisciplina VALUES ('33', 'INE5639')"); $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TopicoDisciplina</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TopicoDisciplina</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela TurmaProfessor $sql = "INSERT INTO TurmaProfessor VALUES ('INE5329', '0832', '31245')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); }

Page 167: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

167

$sql = "INSERT INTO TurmaProfessor VALUES ('INE5342', '0632', '116780')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TurmaProfessor VALUES ('INE5353', '0432', '41640')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TurmaProfessor VALUES ('INE5372', '0632', '119371')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TurmaProfessor VALUES ('INE5385', '0732', '50436')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO TurmaProfessor VALUES ('INE5639', '0732', '120655')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>TurmaProfessor</b>.<br>"); } else {

Page 168: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

168

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>TurmaProfessor</b>: ".mysql_error()."<br>"); } // Inserindo dados na Tabela Usuarios $sql = "INSERT INTO Usuarios VALUES ('01132113', password('luciana'), 'Aluno')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('01232452', password('sabrina'), 'Aluno')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('31245', password('edvardo'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('116780', password('ronaldo'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); }

Page 169: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

169

$sql = "INSERT INTO Usuarios VALUES ('41640', password('isaias'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('119371', password('jorge'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('50436', password('carmen'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('120655', password('roberto'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Usuarios VALUES ('45084', password('renato'), 'Professor')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Usuarios</b>.<br>"); } else {

Page 170: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

170

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Usuarios</b>: ".mysql_error()."<br>"); } ?>

Page 171: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

171

montabase3.php <?php echo ("<center><p><b>Inserindo Questões no Banco de Dados do SGA - Sistema de Gerenciamento de Avaliações</b></p></center>"); // Estabelecendo conexão com o BD $con_id = mysql_connect() or die ("Erro ao conectar com BD: ".mysql_error()); mysql_select_db('sga',$con_id) or die ("Erro ao selecionar BD SGA: ".mysql_error());; // Inserindo dados na Tabela Questoes $data = date('Y-m-d'); $hora = date('H:i:s'); $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'dificil', 'Quais as deficiências dos protocolos IP e TCP para transporte de áudio e vídeo? Explique também por que o protocolo UDP é mais usado para este tipo de transporte.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Explique as vantagens e desvantagens da transmissão de áudio e vídeo via unicast e multicast.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao)

Page 172: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

172

VALUES ('120655', 'discursiva', 'facil', 'Defina documentos hipermídia e indique por que a autoria de documentos hipermídia é uma tarefa mais complexa que a autoria de hipertextos.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Quais as vantagens e desvantagens de um modelo de autoria gráfico em relação a uma autoria baseada em script?', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'dificil', 'Apresente brevemente as abordagens de autoria: timeline, baseada em páginas e baseada em ícones. Indique também as vantagens e desvantagens destes modelos.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Explique a finalidade e como funciona a técnica de bufferização para eliminação da variação de atraso.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){

Page 173: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

173

echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'facil', 'Quais os benefícios e obstáculos da telefonia IP?', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Explique quais as funcionalidades do RTP/RTCP interessantes para as aplicações multimídia.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Quais são os principais requisitos de rede impostos pela transmissão de áudio e vídeo? Explique rapidamente cada um deles.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); }

Page 174: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

174

$sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'facil', 'O que é o padrão de conferência H.323 e quais suas vantagens?', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'dificil', 'O que é videofonia e quais são os requisitos gerais deste tipo de aplicação ao nível de hardware e de rede?', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'facil', 'Quais são os requisitos de qualidade de áudio e vídeo para a videofonia?', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Explique o que é espaço de trabalho compartilhado por computador e os tipos de ferramentas que dão suporte a sua implementação.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){

Page 175: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

175

echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'medio', 'Nas aplicações multimídia baseadas em servidores, dois tipos de transmissão de mídias contínuas são possíveis: síncrona (tempo-real) e assíncrona (ou download). Explique estes dois tipos de transmissão, apresentando quando sao utilizadas.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } $sql = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('120655', 'discursiva', 'facil ', 'Apresente os principais componentes de um servidor de vídeo sob demanda.', 'Resposta', '$data', '$hora')"; $res = mysql_query($sql); if ($sql){ echo ("Tupla inserida com sucesso na tabela <b>Questoes</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>Questoes</b>: ".mysql_error()."<br>"); } //Inserindo os dados na tabela QuestaoTopico para relacionar as questões aos tópicos $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Quais as deficiências dos protocolos IP e TCP para transporte de áudio e vídeo? Explique também por que o protocolo UDP é mais usado para este tipo de transporte.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Redes IP e o Transporte de Dados Multimídia.'";

Page 176: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

176

$res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Explique as vantagens e desvantagens da transmissão de áudio e vídeo via unicast e multicast.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Redes IP e o Transporte de Dados Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Defina documentos hipermídia e indique por que a autoria de documentos hipermídia é uma tarefa mais complexa que a autoria de hipertextos.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Documentos Multimídia e Hipermídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3);

Page 177: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

177

if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Quais as vantagens e desvantagens de um modelo de autoria gráfico em relação a uma autoria baseada em script?'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Documentos Multimídia e Hipermídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Apresente brevemente as abordagens de autoria: timeline, baseada em páginas e baseada em ícones. Indique também as vantagens e desvantagens destes modelos.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Documentos Multimídia e Hipermídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>");

Page 178: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

178

} $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Explique a finalidade e como funciona a técnica de bufferização para eliminação da variação de atraso.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Requisitos de Redes.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Quais os benefícios e obstáculos da telefonia IP?'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'VoIP.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Explique quais as funcionalidades do RTP/RTCP interessantes para as aplicações multimídia.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao');

Page 179: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

179

$sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Redes IP e o Transporte de Dados Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Quais são os principais requisitos de rede impostos pela transmissão de áudio e vídeo? Explique rapidamente cada um deles.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Redes IP e o Transporte de Dados Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'O que é o padrão de conferência H.323 e quais suas vantagens?'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Redes IP e o Transporte de Dados Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico');

Page 180: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

180

$sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'O que é videofonia e quais são os requisitos gerais deste tipo de aplicação ao nível de hardware e de rede?'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Emulando a Conversação e Trabalho Face-a-Face.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Quais são os requisitos de qualidade de áudio e vídeo para a videofonia?'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Emulando a Conversação e Trabalho Face-a-Face.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else {

Page 181: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

181

echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Explique o que é espaço de trabalho compartilhado por computador e os tipos de ferramentas que dão suporte a sua implementação.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Emulando a Conversação e Trabalho Face-a-Face.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); } $sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Nas aplicações multimídia baseadas em servidores, dois tipos de transmissão de mídias contínuas são possíveis: síncrona (tempo-real) e assíncrona (ou download). Explique estes dois tipos de transmissão, apresentando quando sao utilizadas.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Aplicações Baseadas em Servidor Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela <b>QuestaoTopico</b>: ".mysql_error()."<br>"); }

Page 182: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

182

$sql1 = "SELECT CodQuestao FROM Questoes WHERE Enunciado = 'Apresente os principais componentes de um servidor de vídeo sob demanda.'"; $res1 = mysql_query($sql1) or die ('Erro ao localizar questão: '.mysql_error()); $codQuestao = mysql_result ($res1, 0, 'CodQuestao'); $sql2 = "SELECT CodTopico FROM Topicos WHERE Nome = 'Aplicações Baseadas em Servidor Multimídia.'"; $res2 = mysql_query($sql2) or die ('Erro ao localizar o tópico: '.mysql_error()); $codTopico = mysql_result ($res2, 0, 'CodTopico'); $sql3 = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', '$codTopico')"; $res3 = mysql_query($sql3); if ($sql3){ echo ("Tupla inserida com sucesso na tabela <b>QuestaoTopico</b>.<br>"); } else { echo ("<b>ERRO</b> ao inserir tupla na tabela

<b>QuestaoTopico</b>: ".mysql_error()."<br>");

}

?>

Page 183: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

183

ANEXO 5 – CÓDIGO FONTE DO SGA

Os arquivos PHP do SGA estão disponíveis neste anexo. São eles:

• aluno.php

• autenticaLogin.php

• bdExcluiAvaliacao.php

• bdExcluiQuestao.php

• bdIncluiAvaliacao.php

• bdIncluiQuestao.php

• bdPublicaAvaliacao.php

• consultaAvaliacoes.php

• consultaQuestoes.php

• elaboraAvaliacao1.php

• elaboraAvaliacao2.php

• elaboraAvaliacao3.php

• excluiAvaliacao.php

• excluiQuestao.php

• incluiQuestao1.php

• incluiQuestao2.php

• index.php

• professor.php

• publicaAvaliacao.php

O arquivo index.php é, obviamente, a página inicial do sistema. Através dela,

o usuário insere seu login e senha para acessar o SGA.

Através do script autenticaLogin.php , verifica-se se o usuário tentando

realizar login está autorizado a isso. Caso esteja, ele é direcionado de acordo com o

Page 184: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

184

tipo do usuário – professor ou aluno – às suas respectivas páginas principais. Caso

contrário, é exibida uma mensagem e a página retorna automaticamente à index.php

após 5 segundos.

O arquivo professor.php consiste na página principal do professor após o

mesmo ter efetuado o login. Esta página apresenta as funcionalidades disponíveis

ao professor. O mesmo ocorre com o arquivo aluno.php .

Aqueles arquivos iniciados com bd utilizam o banco de dados não somente

para consultas como os demais. Estes scripts inserem ou excluem dados de tabelas,

ou ainda alteram alguns de seus valores.

Os arquivos que possuem numeração são aqueles que, juntos, colaboram

para uma mesma funcionalidade do sistema. Por exemplo, os scripts

elaboraAvaliacao1.php , elaboraAvaliacao1.php e elaboraAvaliacao1.php são

executados, em sua execução normal, em seqüência, e ao final da execução provêm

todos os dados necessários para que o script bdincluiAvaliacao.php possa incluir

os vários dados relacionados à avaliação nas várias tabelas relacionadas.

Vale ressaltar que, conforme citado nos objetivos do trabalho, não era a

intenção implementar todo o sistema, e sim realizar seu projeto e um protótipo do

mesmo contendo as funcionalidades principais.

A seguir, está o código implementado do SGA. Os arquivos serão

apresentados em ordem alfabética.

Page 185: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

185

aluno.php

<html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="64" height="131"></td> <td width="127"></td> <td width="261"></td> <td width="1"></td> <td width="216" rowspan="4" valign="top"><img src="imagens/entrada_aluno.jpg" width="216" height="307"></td> <td width="26" rowspan="4" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="18"></td> <td></td> <td valign="top"><img src="imagens/sga_extenso2.gif" width="261" height="18"></td> <td></td> </tr> <tr> <td height="28"></td> <td></td> <td></td> <td></td> </tr> <tr> <td valign="top" height="130"><img src="imagens/logo_sga.gif" width="64" height="130"></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr>

Page 186: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

186

<td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 187: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

187

autenticaLogin.php <?php session_start(); $matrProf = $matricula; session_register("matrProf"); $con_id = mysql_connect(); mysql_select_db('SGA',$con_id); $sql = "SELECT * FROM Usuarios WHERE Matricula = '$matricula' AND Senha = password('$senha')"; $res = mysql_query($sql) or die(mysql_error()); if (mysql_num_rows($res) > 0){ $tipoUsuario = mysql_result($res, 0, "Tipo"); if ($tipoUsuario == "Professor"){ header ("Location: professor.php"); } else { header ("Location: aluno.php"); } } else { ?> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://localhost/sga/index.htm"> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="64" height="47"></td> <td width="117"></td> <td width="77"></td> <td width="231"></td> <td width="81"></td> <td width="99" rowspan="5" valign="top"><img src="imagens/mulher_principal.jpg" width="99" height="307"></td> <td width="26" rowspan="5" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td>

Page 188: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

188

</tr> <tr> <td height="29"></td> <td></td> <td colspan="3" valign="top"><img src="imagens/welcome.gif" width="389" height="29"></td> </tr> <tr> <td height="19"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="82"></td> <td></td> <td></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" background="imagens\back_acesso2.jpg" cellspacing="0"> <tr> <td width="231" height="212"></td> </tr> </table> </td> <td></td> </tr> <tr> <td valign="top" height="130"><img src="imagens/logo_sga.gif" width="64" height="130"></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="510" height="11" valign="top"><img src="imagens/sga_rodape.gif" width="227" height="11"></td> <td width="185"></td> </tr> </table> </body> </html> <?php } ?>

Page 189: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

189

bdExcluiAvaliacao.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 190: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

190

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); if (strlen($avaliacao) < 1) { echo ('Nenhuma avaliação foi escolhida. Favor tentar novamente'); } else { $sql1 = "DELETE FROM Avaliacoes WHERE CodAvaliacao = '$avaliacao'"; $res1 = mysql_query($sql1) or die (mysql_error()); $sql2 = "SELECT * FROM AvaliacoesSistema WHERE CodAvaliacao = '$avaliacao'"; $res2 = mysql_query($sql2) or die (mysql_error()); $avalSistema = mysql_num_rows($res2); if ($avalSistema > 0){ $sql = "DELETE FROM AvaliacoesSistema WHERE CodAvaliacao = '$avaliacao'"; $res = mysql_query($sql) or die (mysql_error()); } $sql3 = "SELECT * FROM QuestaoAvaliacao WHERE CodAvaliacao = '$avaliacao'"; $res3 = mysql_query($sql3) or die (mysql_error()); $numQuestoes = mysql_num_rows($res3); for ($i = 0; $i < $numQuestoes; $i++){ $sql = "DELETE FROM QuestaoAvaliacao WHERE CodAvaliacao = '$avaliacao'";

Page 191: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

191

$res = mysql_query($sql) or die (mysql_error()); } echo ('Questão excluída com sucesso!'); } ?> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr>

Page 192: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

192

<td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 193: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

193

bdExcluiQuestao.php <?php session_start(); ?> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://localhost/sga/professor.php"> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="125"></td> <td width="251"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="40" rowspan="3"><img src="imagens/icones_c_q_exclui.gif" width="40" height="41"></td> <td height="12" width="2"></td> <td width="150"></td> </tr> <tr> <td height="29"></td> <td valign="top"> <p><img src="imagens/c_q_excluir.gif" width="150" height="29"></p> </td> </tr>

Page 194: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

194

<tr> <td height="4"></td> <td></td> </tr> <tr> <td height="8"></td> <td></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="16"></td> <td></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="231"></td> <td colspan="3" valign="top"> <p>&nbsp;</p> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); if (strlen($questao) < 1) { echo ('Nenhuma questão foi escolhida. Favor tentar novamente'); } else { $sql1 = "DELETE FROM Questoes WHERE CodQuestao = '$questao'"; $res = mysql_query($sql1) or die (mysql_error()); $sql2 = "DELETE FROM QuestaoTopico WHERE CodQuestao = '$questao'"; $res = mysql_query($sql2) or die (mysql_error()); $sql3 = "DELETE FROM Alternativas WHERE CodQuestao = '$questao'"; $res = mysql_query($sql3) or die (mysql_error()); echo ('Questão excluída com sucesso!'); } ?>

Page 195: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

195

<p>&nbsp;</p> <p><font size="1"><b></b></font></p> <p>&nbsp;</p> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr>

Page 196: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

196

<tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 197: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

197

bdIncluiAvaliacao.php <?php session_start(); ?> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://localhost/sga/professor.php"> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_incluir2.gif" width="40" height="48"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top">

Page 198: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

198

<p><img src="imagens/c_a_elaborar.gif" width="152" height="33"></p> </td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <?php $con_id = mysql_connect(); mysql_select_db('sga', $con_id); $data = date('Y-m-d'); $hora = date('H:i:s'); if ($modoSelecao == 'manual'){ if (count($questoes) < 1) { echo ("Alguns dados não foram informados. Tente novamente."); } else { //Modo de seleção de questões é manual e foram selecionadas questões if ($temporizada == 0){ $sql = "INSERT INTO Avaliacoes (CodDisciplina, Tipo, Cabecalho, Publica, Temporizada, DataCriacao, HoraCriacao) VALUES ('$disciplina', 'manual', '$cabecalho', '$publica', '$temporizada', '$data', '$hora')"; } else { $sql = "INSERT INTO Avaliacoes (CodDisciplina, Tipo, Cabecalho, Publica, Temporizada, TempoMax, DataCriacao, HoraCriacao) VALUES ('$disciplina', 'manual', '$cabecalho', '$publica', '$temporizada', '$minutos', '$data', '$hora')"; } $res = mysql_query($sql) or die (mysql_error());

Page 199: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

199

$sql1 = "SELECT CodAvaliacao FROM Avaliacoes WHERE DataCriacao = '$data' AND HoraCriacao = '$hora'"; $res1 = mysql_query($sql1) or die (mysql_error()); $codAvaliacao = mysql_result ($res1, 0, 'CodAvaliacao'); $numQuestoes = count ($questoes); for ($i = 0; $i < $numQuestoes; $i++){ $sql = "INSERT INTO QuestaoAvaliacao VALUES ('$codAvaliacao', '$questoes[$i]')"; $res = mysql_query($sql) or die (mysql_error()); } echo ("Avaliação inserida com sucesso!"); } } else { //Modo de seleção de questões é automático if (strlen ($numFacil) < 1 || strlen ($numMedio) < 1 || strlen ($numDificil) < 1){ echo ("Alguns dados não foram informados. Tente novamente."); } else { //Modo de seleção é automático e todos os dados foram informados // Verifica se há questões suficientes no BD para cada valor de dificuldade $sql1 = "SELECT CodQuestao FROM Questoes WHERE Dificuldade = 'facil'"; $res1 = mysql_query($sql1) or die(mysql_error()); $numQuestoesFacil = mysql_num_rows ($res1); if ($numQuestoesFacil < $numFacil){ echo ("Não há questões de complexidade fácil cadastradas no BD o suficiente para compor a avaliação. Tente novamente."); } else { $sql2 = "SELECT CodQuestao FROM Questoes WHERE Dificuldade = 'medio'"; $res2 = mysql_query($sql2) or die(mysql_error()); $numQuestoesMedio = mysql_num_rows ($res1); if ($numQuestoesMedio < $numMedio){ echo ("Não há questões de complexidade médio cadastradas no BD o suficiente para compor a avaliação. Tente novamente."); } else { $sql3 = "SELECT CodQuestao FROM Questoes WHERE Dificuldade = 'dificil'"; $res3 = mysql_query($sql3) or die(mysql_error()); $numQuestoesDificil = mysql_num_rows ($res3); if ($numQuestoesDificil < $numDificil){ echo ("Não há questões de complexidade difícil cadastradas no BD o suficiente para compor a avaliação. Tente novamente."); } else { if ($temporizada == 0){

Page 200: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

200

$sql4 = "INSERT INTO Avaliacoes (CodDisciplina, Tipo, Cabecalho, Publica, Temporizada, DataCriacao, HoraCriacao) VALUES ('$disciplina', 'automatico', '$cabecalho', '$publica', '$temporizada', '$data', '$hora')"; } else { $sql4 = "INSERT INTO Avaliacoes (CodDisciplina, Tipo, Cabecalho, Publica, Temporizada, TempoMax, DataCriacao, HoraCriacao) VALUES ('$disciplina', 'automatico', '$cabecalho', '$publica', '$temporizada', '$minutos', '$data', '$hora')"; } $res4 = mysql_query($sql4) or die (mysql_error()); $sql5 = "SELECT CodAvaliacao FROM Avaliacoes WHERE DataCriacao = '$data' AND HoraCriacao = '$hora'"; $res5 = mysql_query($sql5) or die (mysql_error()); $codAvaliacao = mysql_result($res5, 0, 'CodAvaliacao'); $sql6 = "INSERT INTO AvaliacoesSistema (CodAvaliacao, NumFacil, NumMedio, NumDificil) VALUES ('$codAvaliacao', '$numFacil', '$numMedio', '$numDificil')"; $res6 = mysql_query($sql6) or die (mysql_error()); // Sorteando e inserindo as questões de dificuldade fácil for ($i = 0; $i < $numQuestoesFacil; $i++){ $CodQuestoesFacil[$i] = mysql_result($res1, $i, 'CodQuestao'); } shuffle($CodQuestoesFacil); for ($i = 0; $i < $numFacil; $i++){ $sql = "INSERT INTO QuestaoAvaliacao VALUES ('$codAvaliacao', '$CodQuestoesFacil[$i]')"; $res = mysql_query($sql) or die (mysql_error()); } // Sorteando e inserindo as questões de dificuldade médio for ($i = 0; $i < $numQuestoesMedio; $i++){ $CodQuestoesMedio[$i] = mysql_result ($res2, $i, 'CodQuestao'); } shuffle($CodQuestoesMedio); for ($i = 0; $i < $numMedio; $i++){ $sql = "INSERT INTO QuestaoAvaliacao VALUES ('$codAvaliacao', '$CodQuestoesMedio[$i]')"; $res = mysql_query($sql) or die (mysql_error()); }

Page 201: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

201

// Sorteando e inserindo as questões de dificuldade difícil for ($i = 0; $i < $numQuestoesDificil; $i++){ $CodQuestoesDificil[$i] = mysql_result ($res3, $i, 'CodQuestao'); } shuffle($CodQuestoesDificil); for ($i = 0; $i < $numDificil; $i++){ $sql = "INSERT INTO QuestaoAvaliacao VALUES ('$codAvaliacao', '$CodQuestoesDificil[$i]')"; $res = mysql_query($sql) or die (mysql_error()); } } } } echo ("Avaliação inserida com sucesso!"); } } ?> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"> </a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr>

Page 202: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

202

<td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 203: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

203

bdIncluiQuestao.php <?php session_start(); ?> <html> <head> <META HTTP-EQUIV="Refresh" CONTENT="5; URL=http://localhost/sga/professor.php"> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="125"></td> <td width="241"></td> <td width="10"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="40" rowspan="3"><img src="imagens/icones_c_q_inclui.gif" width="40" height="59"></td> <td height="12" width="2"></td> <td width="150"></td> </tr> <tr> <td height="29"></td> <td valign="top"> <p><img src="imagens/c_q_incluir.gif" width="150" height="29"></p>

Page 204: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

204

</td> </tr> <tr> <td height="4"></td> <td></td> </tr> <tr> <td height="8"></td> <td></td> <td></td> </tr> </table> </td> <td></td> <td></td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="30"></td> <td></td> <td></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="231"></td> <td colspan="3" valign="top"> <p>&nbsp;</p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $data = date('Y-m-d'); $hora = date('H:i:s'); if ($tipoQuestao == 'objetiva') { if (strlen($enunciado) < 1 || count($topicos) < 1 || strlen($alternativa1) < 1 || strlen($alternativa2) < 1 || strlen($alternativa3) < 1 || strlen($alternativa4) < 1 || strlen($alternativa5) < 1) { echo ("Alguns dados não foram informados. Tente novamente."); } else { $sql1 = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, DataCriacao, HoraCriacao)

Page 205: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

205

VALUES ('$matrProf', '$tipoQuestao', '$dificuldade', '$enunciado', '$data', '$hora')"; $res1 = mysql_query($sql1) or die (mysql_error()); $sql2 = "SELECT CodQuestao FROM Questoes WHERE DataCriacao = '$data' AND HoraCriacao = '$hora'"; $res2 = mysql_query($sql2) or die (mysql_error()); $codQuestao = mysql_result($res2, 0, 'CodQuestao'); $sql3 = "INSERT INTO Alternativas (CodQuestao, Texto, Correta) VALUES ('$codQuestao', '$alternativa1', '$alt1')"; $res3 = mysql_query($sql3) or die (mysql_error()); $sql4 = "INSERT INTO Alternativas (CodQuestao, Texto, Correta) VALUES ('$codQuestao', '$alternativa2', '$alt2')"; $res4 = mysql_query($sql4) or die (mysql_error()); $sql5 = "INSERT INTO Alternativas (CodQuestao, Texto, Correta) VALUES ('$codQuestao', '$alternativa3', '$alt3')"; $res5 = mysql_query($sql5) or die (mysql_error()); $sql6 = "INSERT INTO Alternativas (CodQuestao, Texto, Correta) VALUES ('$codQuestao', '$alternativa4', '$alt4')"; $res6 = mysql_query($sql6) or die (mysql_error()); $sql7 = "INSERT INTO Alternativas (CodQuestao, Texto, Correta) VALUES ('$codQuestao', '$alternativa5', '$alt5')"; $res7 = mysql_query($sql7) or die (mysql_error()); $numTopicos = count($topicosProf); $numTopicosEscolhidos = count($topicos); for ($i = 0; $i < $numTopicos; $i++){ for($j = 0; $j < $numTopicosEscolhidos; $j++){ if ($topicosProf[$i]['codigo'] == $topicos[$j]) { $sql = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', ".$topicosProf[$i]['codigo'].")"; $res = mysql_query($sql) or die (mysql_error()); } } } echo ('Questão inserida com sucesso!'); } } else { // A questão é discursiva if (strlen ($enunciado) < 1 || count($topicos) < 1 || strlen ($gabarito) < 1) { echo ( "Alguns dados não foram informados. Tente novamente."); } else { $sql1 = "INSERT INTO Questoes (MatrProfessor, Tipo, Dificuldade, Enunciado, Gabarito, DataCriacao, HoraCriacao) VALUES ('$matrProf', '$tipoQuestao', '$dificuldade', '$enunciado', '$gabarito', '$data', '$hora')"; $res1 = mysql_query($sql1) or die (mysql_error()); $sql2 = "SELECT CodQuestao FROM Questoes WHERE DataCriacao = '$data' AND HoraCriacao = '$hora'"; $res2 = mysql_query($sql2) or die (mysql_error()); $codQuestao = mysql_result($res2, 0, 'CodQuestao'); $numTopicos = count($topicosProf);

Page 206: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

206

$numTopicosEscolhidos = count($topicos); for ($i = 0; $i < $numTopicos; $i++){ for($j = 0; $j < $numTopicosEscolhidos; $j++){ if ($topicosProf[$i]['codigo'] == $topicos[$j]) { $sql = "INSERT INTO QuestaoTopico VALUES ('$codQuestao', ".$topicosProf[$i]['codigo'].")"; $res = mysql_query($sql) or die (mysql_error()); } } } echo ('Questão inserida com sucesso!'); } } ?> </td> <td></td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign='top'><a href='professor.php'><img src='imagens/retornar.gif' width='56' height='10' border='0'></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> <td></td> <td></td> </tr> <tr>

Page 207: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

207

<td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 208: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

208

bdPublicaAvaliacao.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 209: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

209

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "UPDATE Avaliacoes SET Publica = '1' WHERE CodAvaliacao = '$avaliacao'"; $res = mysql_query($sql) or die (mysql_error()); echo ("Avaliação publicada com sucesso!"); ?> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td>

Page 210: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

210

<td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 211: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

211

consultaAvaliacoes.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 212: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

212

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <font size="1"> <b> <font face="Verdana, Arial, Helvetica, sans-serif">Avalia&ccedil;&otilde;es cadastradas nas disciplinas ministradas pelo professor: </font></b></font> <p><font size="1"><b> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT DISTINCT Avaliacoes.CodAvaliacao, Cabecalho FROM TurmaProfessor, Avaliacoes WHERE TurmaProfessor.MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = Avaliacoes.CodDisciplina"; $res = mysql_query($sql) or die (mysql_error()); $numAvaliacoes = mysql_num_rows($res); echo ("<select name = 'avaliacao' size='5'>"); for ($i = 0; $i < $numAvaliacoes; $i++){ echo ("<option value = ".mysql_result($res, $i, 'codAvaliacao').">".mysql_result($res, $i, 'cabecalho')."</option>"); } echo ("</select>"); ?> <font face="Verdana, Arial, Helvetica, sans-serif"></font></b></font></p> </td> </tr> <tr> <td height="15"></td>

Page 213: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

213

<td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0">

Page 214: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

214

<tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 215: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

215

consultaQuestoes.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 216: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

216

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <font size="1"> <b> <font face="Verdana, Arial, Helvetica, sans-serif">Avalia&ccedil;&otilde;es cadastradas nas disciplinas ministradas pelo professor: </font></b></font> <p><font size="1"><b> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT DISTINCT Avaliacoes.CodAvaliacao, Cabecalho FROM TurmaProfessor, Avaliacoes WHERE TurmaProfessor.MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = Avaliacoes.CodDisciplina"; $res = mysql_query($sql) or die (mysql_error()); $numAvaliacoes = mysql_num_rows($res); echo ("<select name = 'avaliacao' size='5'>"); for ($i = 0; $i < $numAvaliacoes; $i++){ echo ("<option value = ".mysql_result($res, $i, 'codAvaliacao').">".mysql_result($res, $i, 'cabecalho')."</option>"); } echo ("</select>"); ?> <font face="Verdana, Arial, Helvetica, sans-serif"></font></b></font></p> </td> </tr> <tr> <td height="15"></td>

Page 217: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

217

<td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0">

Page 218: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

218

<tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 219: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

219

elaboraAvaliacao1.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_incluir2.gif" width="40" height="48"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_elaborar.gif" width="152" height="33"></p>

Page 220: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

220

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Selecione a disciplina:</b></font></p> <form method="post" action="elaboraAvaliacao2.php"> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT * FROM TurmaProfessor WHERE MatrProfessor = '$matrProf'"; $res = mysql_query($sql) or die (mysql_error()); $numDisciplinas = mysql_num_rows($res); echo ("<select name = 'disciplina' size='1'>"); for ($i = 0; $i < $numDisciplinas; $i++){ $disc = mysql_result($res, $i, 'codDisciplina'); echo ("<option value = '$disc'>$disc</option>"); } echo ("</select>"); ?> </p> <p>&nbsp;</p> <p>&nbsp; </p> <p> <input type="submit" name="Submit" value="OK"> </p> </form> <p>&nbsp;</p> <p>&nbsp;</p>

Page 221: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

221

</td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td>

Page 222: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

222

<td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 223: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

223

elaboraAvaliacao2.php <?php session_start(); session_register("disciplina"); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_incluir2.gif" width="40" height="48"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top">

Page 224: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

224

<p><img src="imagens/c_a_elaborar.gif" width="152" height="33"></p> </td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <?php if (strlen ($disciplina) < 1){ echo("Alguns dados não foram informados. Tente novamente."); } else { ?> <form method="post" action="elaboraAvaliacao3.php"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>T&oacute;picos Abordados:</b></font></p> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <select name = "topicos[]" multiple size="5"> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT * FROM Topicos, TopicoDisciplina WHERE TopicoDisciplina.CodDisciplina = '$disciplina' AND Topicos.CodTopico = TopicoDisciplina.CodTopico"; $res = mysql_query($sql) or die(mysql_error()); $numTopicos = mysql_num_rows ($res); for ($i = 0; $i < $numTopicos; $i++){ echo ("<option value = ".mysql_result($res, $i, 'CodTopico').">".mysql_result($res, $i, 'Nome')."</option>"); } ?>

Page 225: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

225

</select> </font> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Cabe&ccedil;alho:</b></font></p> <p><textarea cols="40" rows="4" name="cabecalho"></textarea></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Temporizada?</b></font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <input type="radio" name="temporizada" value="0" checked> N&atilde;o <br> <input type="radio" name="temporizada" value="1"> Sim - Tempo M&aacute;ximo: <input type="text" name="minutos" size = "3"> minutos<br> </font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>P&uacute;blica?</b></font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <input type="radio" name="publica" value="0" checked> N&atilde;o<br> <input type="radio" name="publica" value="1"> Sim </font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Como as quest&otilde;es ser&atilde;o selecionadas?</b></font></p> <p> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <input type="radio" name="modoSelecao" value="manual" checked> Manualmente<br> <input type="radio" name="modoSelecao" value="automatico"> Automaticamente</font></p> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <input type="submit" value="OK"> </font></p> </form> <?php } ?> </td> </tr> <tr> <td height="15"></td>

Page 226: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

226

<td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0">

Page 227: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

227

<tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 228: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

228

elaboraAvaliacao3.php <?php session_start(); session_register ("cabecalho"); session_register ("temporizada"); if ($temporizada == 1){ session_register ("minutos"); } session_register ("publica"); session_register ("modoSelecao"); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_incluir2.gif" width="40" height="48"></td> <td height="7"></td>

Page 229: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

229

<td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_elaborar.gif" width="152" height="33"></p> </td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <form method="post" action="BDincluiAvaliacao.php"> <?php if (count($topicos) < 1 || strlen($cabecalho) < 1 || ($temporizada == 'sim' and strlen($minutos) < 1)) { echo ("Alguns dados não foram informados. Tente novamente."); } else { //Todos os dados foram inseridos corretamente $con_id = mysql_connect(); mysql_select_db('sga', $con_id); if ($modoSelecao == 'manual'){ echo ("<p><font face='Verdana, Arial, Helvetica, sans-serif' size='1'><b>Selecione as questões:</b></font></p>"); $numTopicosEscolhidos = count($topicos); echo ("<p><select name = 'questoes[]' multiple size='5'>"); $sql = "SELECT DISTINCT Questoes.CodQuestao, Enunciado FROM Questoes, QuestaoTopico WHERE "; for ($i = 0; $i < $numTopicosEscolhidos; $i++){ if ($i == $numTopicosEscolhidos - 1){ //Se for o último elemento

Page 230: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

230

$sql1 = " QuestaoTopico.CodTopico = '$topicos[$i]' "; } else { $sql1 = " QuestaoTopico.CodTopico = '$topicos[$i]' OR "; } $sql = $sql.$sql1; } $sql = $sql." AND Questoes.CodQuestao = QuestaoTopico.CodQuestao"; $res = mysql_query($sql) or die (mysql_error()); $numQuestoes = mysql_num_rows($res); for ($i = 0; $i < $numQuestoes; $i++){ echo ("<option value = ".mysql_result($res, $i, 'codQuestao').">".mysql_result($res, $i, 'enunciado')." </option>"); } echo ("</select></p>"); } else { //O modo de seleção é automático ?> <font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Informe a quantidade de questões de acordo com a complexidade:</b></font> <p align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="1">F&aacute;cil: <input type="text" name="numFacil" size = "4"> <br> M&eacute;dio: <input type="text" name="numMedio" size = "4"> <br> Dif&iacute;cil: <input type="text" name="numDificil" size = "4"> </font></p> <?php } echo("<input type='submit' value='OK'>"); } ?> </form> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr>

Page 231: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

231

<td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"> </a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td>

Page 232: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

232

<td></td> </tr> </table> </body> </html>

Page 233: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

233

excluiAvaliacao.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 234: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

234

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <form method="post" action="bdExcluiAvaliacao.php"> <p><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif">Selecione a avalia&ccedil;&atilde;o que ser&aacute; exclu&iacute;da:</font></b></font></p> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT DISTINCT Avaliacoes.CodAvaliacao, Cabecalho FROM TurmaProfessor, Avaliacoes WHERE TurmaProfessor.MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = Avaliacoes.CodDisciplina"; $res = mysql_query($sql) or die (mysql_error()); $numAvaliacoes = mysql_num_rows($res); echo ("<select name = 'avaliacao' size='5'>"); for ($i = 0; $i < $numAvaliacoes; $i++){ echo ("<option value = ".mysql_result($res, $i, 'codAvaliacao').">".mysql_result($res, $i, 'cabecalho')."</option>"); } echo ("</select>"); ?> </p> <p> <input type="submit" name="Submit" value="Excluir"> </p>

Page 235: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

235

</form> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td>

Page 236: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

236

<td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 237: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

237

excluiQuestao.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="125"></td> <td width="251"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="40" rowspan="3"><img src="imagens/icones_c_q_exclui.gif" width="40" height="41"></td> <td height="12" width="2"></td> <td width="150"></td> </tr> <tr> <td height="29"></td> <td valign="top"> <p><img src="imagens/c_q_excluir.gif" width="150" height="29"></p> </td> </tr> <tr> <td height="4"></td>

Page 238: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

238

<td></td> </tr> <tr> <td height="8"></td> <td></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="16"></td> <td></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="231"></td> <td colspan="3" valign="top"> <form method="post" action="bdExcluiQuestao.php"> <p><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif">Selecione a quest&atilde;o que ser&aacute; exclu&iacute;da:</font></b></font></p> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT DISTINCT Questoes.CodQuestao, Enunciado FROM Questoes, QuestaoTopico, Topicos, TopicoDisciplina, TurmaProfessor WHERE TurmaProfessor.MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = TopicoDisciplina.CodDisciplina AND Topicos.CodTopico = TopicoDisciplina.CodTopico AND QuestaoTopico.CodTopico = Topicos.CodTopico AND Questoes.codQuestao = QuestaoTopico.CodQuestao"; $res = mysql_query($sql) or die (mysql_error()); $numQuestoes = mysql_num_rows($res); echo ("<select name = 'questao' size='5'>"); for ($i = 0; $i < $numQuestoes; $i++){

Page 239: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

239

echo ("<option value = ".mysql_result($res, $i, 'codQuestao').">".mysql_result($res, $i, 'enunciado')."</option>"); } echo ("</select>"); ?> </p> <p> <input type="submit" name="Submit" value="Excluir"> </p> </form> <p>&nbsp;</p> <p><font size="1"><b></b></font></p> <p>&nbsp;</p> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td>

Page 240: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

240

<td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 241: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

241

incluiQuestao1.php <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="125"></td> <td width="251"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="40" rowspan="3"><img src="imagens/icones_c_q_inclui.gif" width="40" height="59"></td> <td height="12" width="2"></td> <td width="150"></td> </tr> <tr> <td height="29"></td> <td valign="top"> <p><img src="imagens/c_q_incluir.gif" width="150" height="29"></p> </td> </tr> <tr> <td height="4"></td> <td></td> </tr> <tr>

Page 242: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

242

<td height="8"></td> <td></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="16"></td> <td></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="231" colspan="4" valign="top"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"><b>Tipo:</b></font></p> <form name="incluiQuestao1" method="post" action="incluiQuestao2.php"> <p> <input type="radio" name="tipo" value="objetiva" checked> <font face="Verdana, Arial, Helvetica, sans-serif" size="1">Objetiva<br> <input type="radio" name="tipo" value="discursiva"> Discursiva</font></p> <p> <input type="submit" value="OK"> </p> </form> <p>&nbsp;</p> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr>

Page 243: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

243

<tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr>

Page 244: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

244

<tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 245: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

245

incluiQuestao2.php <?php session_start(); $tipoQuestao = $tipo; session_register ("tipoQuestao"); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="125"></td> <td width="251"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="9" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td valign="top" width="40" rowspan="3"><img src="imagens/icones_c_q_inclui.gif" width="40" height="59"></td> <td height="12" width="2"></td> <td width="150"></td> </tr> <tr> <td height="29"></td> <td valign="top"> <p><img src="imagens/c_q_incluir.gif" width="150" height="29"></p> </td> </tr>

Page 246: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

246

<tr> <td height="4"></td> <td></td> </tr> <tr> <td height="8"></td> <td></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="16"></td> <td></td> <td colspan="2" rowspan="4" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="201" colspan="4" valign="top"> <form method="post" action="BDincluiQuestao.php"> <p><b><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Enunciado:</font></b> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <input type="text" name="enunciado" size="60"> </font></p> <p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>N&iacute;vel de Dificuldade: </b> <input type="radio" name="dificuldade" value="facil" checked> F&aacute;cil <input type="radio" name="dificuldade" value="medio"> M&eacute;dio <input type="radio" name="dificuldade" value="dificil"> Dif&iacute;cil</font></p> <p><font size="1" face="Verdana, Arial, Helvetica, sans-serif"><b>T&oacute;picos Associados:<br> </b></font>

Page 247: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

247

<?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); //Seleciona somente os tópicos das disciplinas ministradas pelo professor logado no sistema $sql = "SELECT * FROM Topicos, TopicoDisciplina, TurmaProfessor WHERE MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = TopicoDisciplina.CodDisciplina AND Topicos.CodTopico = TopicoDisciplina.CodTopico"; $res = mysql_query($sql) or die(mysql_error()); $numTopicos = mysql_num_rows ($res); for ($i = 0; $i < $numTopicos; $i++){ $topicosProf[$i]['codigo'] = mysql_result($res, $i, 'CodTopico'); $topicosProf[$i]['nome'] = mysql_result($res, $i, 'Nome'); } session_register("topicosProf"); ?> <select name = "topicos[]" multiple size="5"> <?php for ($i = 0; $i < $numTopicos; $i++){ echo ("<option value = ".$topicosProf[$i]['codigo'].">".$topicosProf[$i]['nome']."</option>"); } ?> </select> </p> <font size="1" face="Verdana, Arial, Helvetica, sans-serif"> <?php if ($tipoQuestao == 'objetiva') { echo ("<p><b>Cadastro de Alternativas</b></p>"); echo ("<p><input type = 'text' name = 'alternativa1' size = 40>"); echo ("<b>Correta:</b>"); echo ("<input type = 'radio' name = 'alt1' value = '0' checked>Não"); echo ("<input type = 'radio' name = 'alt1' value = '1'>Sim\n</p>"); echo ("<p><input type = 'text' name = 'alternativa2' size = 40>"); echo ("<b>Correta:</b>"); echo ("<input type = 'radio' name = 'alt2' value = '0' checked>Não"); echo ("<input type = 'radio' name = 'alt2' value = '1'>Sim\n</p>");

Page 248: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

248

echo ("<p><input type = 'text' name = 'alternativa3' size = 40>"); echo ("<b>Correta:</b>"); echo ("<input type = 'radio' name = 'alt3' value = '0' checked>Não"); echo ("<input type = 'radio' name = 'alt3' value = '1'>Sim\n</p>"); echo ("<p><input type = 'text' name = 'alternativa4' size = 40>"); echo ("<b>Correta:</b>"); echo ("<input type = 'radio' name = 'alt4' value = '0' checked>Não"); echo ("<input type = 'radio' name = 'alt4' value = '1'>Sim\n</p>"); echo ("<p><input type = 'text' name = 'alternativa5' size = 40>"); echo ("<b>Correta:</b>"); echo ("<input type = 'radio' name = 'alt5' value = '0' checked>Não"); echo ("<input type = 'radio' name = 'alt5' value = '1'>Sim\n</p>"); } else { //Questão é discursiva echo ("<p><b>Gabarito:</b></p>"); echo ("<p><textarea cols = '40' rows = '4' name = 'gabarito'></textarea></p>"); } ?> <br><br> <input type = 'submit' value = 'OK'> </font> </form> </tr> <tr> <td height="30"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td>

Page 249: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

249

<td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11">

Page 250: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

250

<div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 251: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

251

index.php <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="64" height="47"></td> <td width="117"></td> <td width="77"></td> <td width="231"></td> <td width="81"></td> <td width="99" rowspan="5" valign="top"><img src="imagens/mulher_principal.jpg" width="99" height="307"></td> <td width="26" rowspan="5" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="29"></td> <td></td> <td colspan="3" valign="top"><img src="imagens/welcome.gif" width="389" height="29"></td> </tr> <tr> <td height="19"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="82"></td> <td></td> <td></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" background="imagens\back_acesso.jpg" cellspacing="0"> <tr> <td width="215" height="41"></td> <td width="16"></td>

Page 252: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

252

</tr> <tr> <td valign="top" height="165"> <form name="form1" method="post" action="autenticaLogin.php"> <div align="right"> <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#666666">matr&iacute;cula: </font> <input type="text" name="matricula" maxsize = 50 size="16"> <br> <font face="Verdana, Arial, Helvetica, sans-serif" size="1" color="#666666"><br> senha:</font><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> </font> <input type="password" name="senha" maxsize = 20 size="16"> <br> <br> <input type="submit" name="Submit" value="Entrar"> </p> </div> </form> </td> <td></td> </tr> <tr> <td height="6"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td valign="top" height="130"><img src="imagens/logo_sga.gif" width="64" height="130"></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="510" height="11" valign="top"><img src="imagens/sga_rodape.gif" width="227" height="11"></td> <td width="185"></td> </tr>

Page 253: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

253

</table> </body> </html>

Page 254: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

254

professor.php <?php session_start(); $matriculaProf = $matrProf; session_unset(); $matrProf = $matriculaProf; session_register("matrProf"); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td valign="top" colspan="3" height="30"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="476" height="29" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="54" valign="top" rowspan="3"><img src="imagens/sga_pqq.gif" width="54" height="27"></td> <td width="4" height="11"></td> <td width="2" valign="top" rowspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#006699"> <tr> <td width="2" height="25"></td> </tr> </table> </td> <td width="3"></td> <td width="269"></td> <td width="142"></td> </tr> <tr> <td height="14"></td> <td></td> <td rowspan="3" valign="top"><img src="imagens/sga_extenso2.gif" width="261" height="18"></td>

Page 255: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

255

<td></td> </tr> <tr> <td height="2"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> </td> <td width="17"></td> </tr> </table> </td> <td width="24"></td> <td width="152" rowspan="6" valign="top"><img src="imagens/mulher_professor2.jpg" width="152" height="307"></td> <td width="26" rowspan="6" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td width="14" height="37"></td> <td width="54"></td> <td width="425"></td> <td></td> </tr> <tr> <td height="7"></td> <td></td> <td colspan="2" rowspan="3" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="13" width="143"></td> <td width="12"></td> <td width="141"></td> <td width="11"></td> <td width="142"></td> </tr> <tr> <td height="1"></td> <td></td>

Page 256: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

256

<td></td> <td></td> <td rowspan="3" valign="top"><img src="imagens/avaliacao_realizada.gif" width="142" height="144" usemap="#Map" border="0"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/cadastro_questao.gif" width="143" height="181" usemap="#Map3" border="0"></td> <td height="1"></td> <td></td> <td></td> </tr> <tr> <td height="168"></td> <td rowspan="3" valign="top"><img src="imagens/cadastro_avaliacao.gif" width="141" height="196" usemap="#Map2" border="0"></td> <td></td> </tr> <tr> <td height="12"></td> <td></td> <td></td> </tr> <tr> <td height="16"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="28"></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> </td> </tr> <tr> <td height="187" valign="top"><img src="imagens/painel_adm2.gif" width="14" height="187"></td> <td></td> </tr> <tr> <td height="45"></td> <td></td> </tr>

Page 257: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

257

<tr> <td height="5"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="695" height="11" valign="top"> <div align="left"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> </tr> </table> <map name="Map"> <area shape="rect" coords="6,110,133,122" href="corrigirQuestao.php"> <area shape="rect" coords="7,129,102,140" href="resultados.php"> </map> <map name="Map2"> <area shape="rect" coords="4,127,51,138" href="elaboraAvaliacao1.php"> <area shape="rect" coords="7,109,55,120" href="consultaAvaliacoes.php"> <area shape="rect" coords="7,145,49,156" href="publicaAvaliacao.php"> <area shape="rect" coords="5,181,43,193" href="excluiAvaliacao.php"> </map> <map name="Map3"> <area shape="rect" coords="8,111,58,122" href="consultaQuestoes.php"> <area shape="rect" coords="8,129,42,140" href="incluiQuestao1.php"> <area shape="rect" coords="9,165,45,176" href="excluiQuestao.php"> </map> </body> </html>

Page 258: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

258

publicaAvaliacao.php <?php session_start(); ?> <html> <head> <title>SGA - Sistema de Gerenciamento de Avalia&ccedil;&otilde;es</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body bgcolor="006699" text="#000000" leftmargin="0" topmargin="100"> <table width="695" border="0" cellpadding="0" cellspacing="0" bgcolor="#FFFFFF"> <tr> <td width="3" height="2"></td> <td width="67"></td> <td width="376"></td> <td width="178"></td> <td width="45" rowspan="2" valign="top"><img src="imagens/sga_prof_pqq.gif" width="45" height="30"></td> <td width="26" rowspan="8" valign="top"><img src="imagens/acabamento_l_direito.gif" width="26" height="307"></td> </tr> <tr> <td height="28"></td> <td rowspan="3" valign="top" colspan="2"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td height="10" width="40"></td> <td width="2"></td> <td width="401"></td> </tr> <tr> <td valign="top" rowspan="3"><img src="imagens/icones_c_a_exclui.gif" width="40" height="41"></td> <td height="7"></td> <td></td> </tr> <tr> <td height="33"></td> <td valign="top"> <p><img src="imagens/c_a_exclui.gif" width="152" height="33"></p>

Page 259: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

259

</td> </tr> <tr> <td height="13"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="9"></td> <td></td> <td></td> </tr> <tr> <td height="33"></td> <td colspan="2" rowspan="3" valign="top"><img src="imagens/resma_papel.jpg" width="223" height="262"></td> </tr> <tr> <td height="214"></td> <td colspan="2" valign="top"> <form method="post" action="bdpublicaAvaliacao.php"> <p><font size="1"><b><font face="Verdana, Arial, Helvetica, sans-serif">Selecione a avalia&ccedil;&atilde;oa ser publicada:</font></b></font></p> <p> <?php $con_id = mysql_connect(); mysql_select_db('sga',$con_id); $sql = "SELECT DISTINCT Avaliacoes.CodAvaliacao, Cabecalho FROM TurmaProfessor, Avaliacoes WHERE TurmaProfessor.MatrProfessor = '$matrProf' AND TurmaProfessor.CodDisciplina = Avaliacoes.CodDisciplina AND Avaliacoes.Publica = '0'"; $res = mysql_query($sql) or die (mysql_error()); $numAvaliacoes = mysql_num_rows($res); echo ("<select name = 'avaliacao' size='5'>"); for ($i = 0; $i < $numAvaliacoes; $i++){ echo ("<option value = ".mysql_result($res, $i, 'codAvaliacao').">".mysql_result($res, $i, 'cabecalho')."</option>"); } echo ("</select>"); ?> </p> <p> <input type="submit" name="Submit" value="Publicar">

Page 260: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

260

</p> </form> </td> </tr> <tr> <td height="15"></td> <td rowspan="2" valign="top"> <table width="100%" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="9" height="2"></td> <td width="2"></td> <td width="56"></td> </tr> <tr> <td rowspan="3" valign="top"><img src="imagens/seta_retorno.gif" width="9" height="16"></td> <td height="2"></td> <td></td> </tr> <tr> <td height="10"></td> <td valign="top"><a href="professor.php"><img src="imagens/retornar.gif" width="56" height="10" border="0"></a></td> </tr> <tr> <td height="4"></td> <td></td> </tr> </table> </td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="3"></td> <td></td> <td></td> <td></td> <td></td> </tr> <tr> <td height="0"></td> <td></td> <td></td>

Page 261: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

261

<td></td> <td></td> <td></td> </tr> </table> <table width="695" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="669" height="2"></td> <td width="26"></td> </tr> <tr> <td valign="top" height="11"> <div align="right"><img src="imagens/sga_rodape.gif" width="227" height="11"></div> </td> <td></td> </tr> </table> </body> </html>

Page 262: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

262

ANEXO 6 – ARTIGO

Sistema de Gerenciamento de Avaliações

Luciana Graever de Medeiros, Sabrina Schürhaus

Graduação em Ciências da Computação Departamento de Informática e Estatística – INE

Universidade Federal de Santa Catarina (UFSC), Brasil, 88040-900 Fone (0xx48)333-9999, Fax (0xx48)333-9999

[email protected], [email protected]

Resumo

O processo de avaliações

atualmente conta com a disponibilidade de recursos computacionais que permite automatizá-lo. A automatização além de agilizar a submissão ás avaliações por quem é avaliado e a correção pelo avaliador também facilita o processamento dos dados para a realização da análise do processo numa visão mais ampla. Ou seja, o retorno do resultado para o avaliado é praticamente imediato, aumentado a iteração e a autoverificação do conhecimento sobre o conteúdo que está sendo explorado. Desta forma, ele poderia analisar suas falhas, identificar a sua evolução e quais pontos precisa melhorar. Já para os avaliadores, a correção do resultado das avaliações é uma tarefa maçante, demorada e monótona. Esta energia poderia ser usada em tarefas produtivas, como, por exemplo, a análise da avaliação em si, a obtenção do desempenho geral dos avaliados, mudança na forma do trabalho em função dos resultados obtidos, orientação aos alunos etc. Neste trabalho apresentamos uma proposta de um sistema de gerenciamento de avaliações, o SGA, que automatiza o processo de avaliação e pode ser usado em

qualquer circunstância que necessite de um sistema de avaliações, como por exemplo, no próprio ensino regular, em sistemas de ensino a distância etc. A ferramenta foi desenvolvida usando tecnologias para programação web, mais especificamente em linguagem PHP e banco de dados MySQL. No processo de desenvolvimento

do SGA procuramos utilizar todos

os conceitos obtidos no curso para o desenvolvimento de sistemas computacionais, como a explorações das técnicas para levantamento de requisitos, através da descrição dos casos de uso para compreender e descrever os requisitos do sistema, a modelagem de banco de dados usando diagramas de entidade e relacionamentos e técnicas de normalizações para evitar redundâncias, entre outros conceitos adquiridos no curso.

Palavras Chaves: Avaliações

Eletrônicas, Programação na Web, Modelagem de Banco de Dados.

Key Words: Electronic

Assessment, Web Programming, Database Modeling.

Page 263: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

263

Introdução

O conceito de avaliação sempre esteve presente no cotidiano acadêmico e, atualmente com a expansão dos sistemas de informação e da Internet, em várias outras situações, além da tradicional existência no meio acadêmico. Exemplo disto está na prestação de testes de seleção de estagiários e trainees em empresas multinacionais através de avaliações por meio eletrônico, em sistemas de ensino a distância entre outros exemplos.

Desta forma, vê-se a necessidade de

que as ferramentas de avaliação acompanhem o advento tecnológico atual, possibilitando a sua automatização, sem que se perca a sua confiabilidade e eficiência na mensuração do conhecimento. No entanto, surge aí um grande desafio.

Avaliação é a inferência e a

mensuração do conhecimento de um determinado conteúdo adquirido por um individuo [Pellegrino, 2002]. Sendo assim, o desafio está em automatizar este processo inerentemente abstrato sem que a avaliação perca sua qualidade e sua confiabilidade.

Neste trabalho apresentamos a

proposta de um sistema automatizado de avaliações, chamado de Sistema de Gerenciamento de Avaliações – SGA. O SGA foi construído sobre as tecnologias para programação na web, mais especificamente utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerência de banco de dados MySQL. O desenvolvimento deste trabalho nos permitiu utilizar na prática os conhecimentos adquiridos durante o curso para o processo de desenvolvimento de sistemas computacionais.

1. Teoria sobre Avaliações

Avaliação é o meio utilizado para medir os resultados da educação e o conhecimento dos estudantes considerando as competências importantes. As avaliações podem incluir métodos formais, como as tradicionais provas, ou menos formais, tais como testes, projetos e perguntas do professor.

Uma avaliação é uma ferramenta projetada para observar o comportamento dos estudantes e produzir dados que poderão ser utilizados para extrair inferências razoáveis sobre o que os estudantes sabem.

As avaliações devem testar o entendimento profundo do domínio e não somente o conhecimento supérfluo. O entendimento profundo do domínio caracteriza-se por evidências de um entendimento da organização conceitual e relacionamentos conceituais assim como a habilidade de aplicar o conhecimento de um determinado assunto, ao invés de conhecimento supérfluo de conhecimento desconectado baseado na memorização de um assunto.

2. Avaliações Eletrônicas

Os computadores, a Internet e as

inovações digitais auxiliam a criatividade e ampliam as atividades e currículo de muitas disciplinas, tornando-as mais dinâmicas e interessantes e menos monótonas. Softwares educativos propiciam um aumento na motivação do aluno e permitem a realização de atividades que seriam impossíveis de serem realizadas sem o computador.

Com a tecnologia digital sendo cada vez mais utilizada nas instituições de ensino, pode-se pensar em avaliações eletrônica em detrimento às tradicionais avaliações manuscritas e nos computadores como ferramentas de suporte ao professor na elaboração, correção e verificação da evolução dos alunos.

Os principais problemas relacionados à avaliação eletrônica são causados quando a realização da avaliação

Page 264: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

264

é não-presencial, necessitando de segurança para garantir sua idoneidade.

É fundamental garantir a

autenticação da avaliação, tanto do aluno que está realizando a avaliação quanto do professor que a está aplicando. Isto evita possíveis fraudes. Além disso, deve-se garantir a integridade dos dados, para impedir que a avaliação seja alterada antes ou depois da sua realização. O não-repúdio garante que o estudante que fez a avaliação não possa negar sua realização, e a instituição não negue sua aplicação. A justiça garante que todos os estudantes sejam avaliados sobre o mesmo conteúdo e com o mesmo nível de dificuldade, seja com avaliações idênticas ou com questões e tarefas diferenciadas. Finalmente, a privacidade garante que o conteúdo da avaliação seja sigiloso até o momento de sua aplicação.

3. Programando em Ambiente Web

PHP O PHP é uma linguagem de

código aberto que utiliza scripts embutidos em HTML para criar páginas web dinâmicas e interativas usada na programação de aplicações na web. PHP usa seções de script delimitadas por tags <?php ..?> que são embutidas nas páginas HTML. Estes scripts são executados no servidor antes que a página seja enviada ao navegador, então não é preciso um suporte PHP pelo navegador, evitando assim problemas de incompatibilidade entre os navegadores.

Para o desenvolvimento do SGA utilizamos o PHP Triad versão 2.2. O PHPTriad oferece um ambiente para desenvolvimento de aplicações PHP que rodem sobre a plataforma “Wintel” , PC com sistema operacional Windows. Ele instala o Apache, o banco de dados MySQL e o servidor PHP em máquinas Windows.

4. Desenvolvimento do SGA

4.1 Visão do Sistema

O Sistema de Gerenciamento de

Avaliações – SGA tem como objetivo principal proporcionar, como o nome sugere, a gerência de avaliações eletrônicas. O sistema é dividido em dois módulos principais: a interação com o professor e a interação com o aluno.

Em relação ao professor, o SGA

auxilia na elaboração e correção de avaliações e no monitoramento dos resultados através de estatísticas de desempenho.

Para permitir a elaboração das

avaliações, o sistema permite o cadastro de avaliações objetivas e discursivas, assim como posterior alteração e exclusão. Além disso, pode-se gerar avaliações escolhendo as questões manualmente ou através do sistema. Neste caso, o professor informa a quantidade de questões desejadas de acordo com três níveis de dificuldade – fácil, médio e difícil – e o sistema escolhe aleatoriamente dentre as questões armazenadas no banco de dados. As questões objetivas são corrigidas automaticamente pelo sistema no momento do armazenamento da avaliação, e as questões discursivas devem ser corrigidas pelo professor posteriormente.

É possível temporizar a avaliação,

ou seja, estabelecer um tempo máximo para sua execução. Também pode-se elaborar a avaliação e não torná-la pública no momento de sua criação, não deixando, com isso, a avaliação disponível para realização pelos alunos. O professor deve então, posteriormente, torná-la pública, ou tem a opção de excluí-la.

O resultado das avaliações é

fornecido juntamente com gráficos estatísticos de desempenho na turma e entre turmas, quando for o caso. O

Page 265: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

265

resultado pode ser específico para um aluno ou para toda a turma. Se for para um único aluno, as respostas para cada questão são exibidas, a nota, o tempo de resposta de cada questão e de toda a prova (quando a prova for temporizada), gráficos estatísticos comparando seu desempenho com a turma.

Em relação ao aluno, o SGA

permite a realização de avaliações pela web, a verificação das provas que estão disponíveis para realização, e a visualização de resultados. No resultado, o aluno observa suas respostas para cada questão, juntamente com o gabarito, gráficos estatísticos comparando seu desempenho com o da turma, o percentual de acertos.

4.2 Metodologia de Desenvolvimento

O desenvolvimento de aplicações

em PHP e MySql deve ocorrer de modo que o código fique organizado, documentado e principalmente de forma que os blocos de código ou funções possam ser reutilizados. Além de tratar todos as possibilidades do sistema com robustez e coerência. As etapas para o processo de desenvolvimento da aplicação foram:

• Determinar o Escopo e Objetivos

da Aplicação; • Determinar as páginas Necessárias; • Prever Exceções; • Projetar o Banco de Dados; • Geração dos Scripts • Refatorar o Código • Melhorar a Usabilidade das Páginas • Melhorar Aspectos de Segurança • Testar Verificar e Validar a

Aplicação

4.3 Levantamento dos Requisitos

Para o SGA em questão, os

requisitos funcionais foram definidos

através de casos de uso. Os atores e suas respectivas tarefas foram identificados e definidos segundo a tabela abaixo:

Ator Tarefa

Cadastrar Curso Cadastrar Professor Cadastrar Aluno Cadastrar Disciplina Cadastrar Tópico Cadastrar Turma Associar Professor a Turma Desassociar Professor de Turma Incluir Aluno em Turma Excluir Aluno de Turma Associar Tópico a Disciplina Desassociar Tópico de Disciplina Atualizar Curso Atualizar Professor Atualizar Aluno Atualizar Disciplina Atualizar Tópico Atualizar Turma Excluir Curso Excluir Professor Excluir Aluno Excluir Disciplina Excluir Tópico

Administrador

Excluir Turma Cadastrar Questão Objetiva Cadastrar Questão Discursiva Alterar Questão Objetiva Alterar Questão Discursiva Excluir Questão Gerar Avaliação Manualmente Gerar Avaliação pelo Sistema

Professor

Alterar Avaliação Excluir Avaliação Publicar Avaliação

Page 266: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

266

Corrigir Questão Discursiva

Verificar Resultado de Avaliação Verificar Avaliações Públicas Realizar Avaliação

Aluno

Verificar Resultado de Avaliação

Tabela 1 – Atores e Casos de Uso

4.4 Projeto do Banco de Dados

A modelagem conceitual do SGA

se baseou no modelo entidade-relacionamento para se obter uma descrição abstrata dos dados que serão armazenados no banco de dados, sem que se leve inicialmente em consideração, a posterior implementação.

4.5 Geração dos Scripts PHP

Uma das etapas finais ao trabalho

de desenvolvimento do SGA foi a codificação dos scripts PHP em um simples editor de texto e posteriormente no Macromedia DreamWeaver para integrar a interface gráfica.

5. Conclusão

Construir uma ferramenta de

avaliação eletrônica que seja eficiente, fácil de ser usada, que proporcione ir além da tradicional avaliação no papel pela disponibilidade dos recursos computacionais e dos sistemas de informação, e que ainda mantenha sua credibilidade foi um desafio.

Administrar as diversas possibilidades de aprimoramento da ferramenta de avaliação eletrônica SGA, o que implica em aumentar o grau de complexidade da aplicação, permitiu verificar na prática a importância do

planejamento e projeto da aplicação antes do início da sua implementação.

A aplicação inicialmente era simples, mas ao longo do seu desenvolvimento fomos percebendo novos requisitos que poderiam deixar a aplicação mais completa e também mais complexa. A seguir apresentamos alguns dos requisitos que surgiram ao longo do desenvolvimento do SGA:

• Possibilidade de classificar as

questões de acordo com o grau de dificuldades;

• Associar questões a mais de um tópico de diferentes disciplinas;

• Gerar questões e avaliações temporizadas;

• Oferecer a opção de outros tipos de questões como, por exemplo, questões discursivas, de associação de tabelas entre outras.

• A necessidade de manter um histórico das avaliações realizadas.

• Como controlar a consistência na alteração de questões de uma avaliação que já foi realizada.

• Determinar quais dados e quais análises estatísticas destes dados são relevantes de serem apresentadas.

• Qual a melhor forma de apresentar os dados obtidos? Relatórios gráficos tabelas etc.

• A necessidade de incluir segurança no armazenamento das informações e nas transações entre os usuários e o sistema.

Além dos requisitos citados acima

outros tantos foram surgindo ao longo do trabalho o que permitiu visualizarmos a necessidade de mudança dos requisitos ao longo do desenvolvimento e, principalmente, como é fundamental que o trabalho esteja bem planejado e bem documentado para que a mudança dos requisitos ocorra de forma “natural” sem grandes impactos.

Page 267: SISTEMA DE GERENCIAMENTO DE AVALIAÇÕES · utilizando a linguagem de programação para web PHP, e utilizando o sistema de gerenciamento de banco de dados MySQL. O desenvolvimento

267

Outro aspecto importante que notamos foi à complexidade presente no banco de dados da aplicação. Sendo que, a fase de modelagem e especificação do banco de dados da aplicação foi uma das etapas que mais tomou tempo do projeto.

Trabalhos Futuros

O aumento da complexidade da

aplicação faz surgir à necessidade de recursos computacionais mais elaborados, o que pode implicar a migração da aplicação da tecnologia PHP para a tecnologia Java. A tecnologia de componentes distribuídos oferecida pela tecnologia Java através da arquitetura de componentes “Enterpise Java Beans” – EJB pode vir a resolver alguns problemas intrínsecos a aplicação além de permitir maior flexibilidade no seu desenvolvimento.

A apresentação dos dados seria oferecida pelo “Java Servers Page” – JSP.

O EJB encapsula em seu “ framework” toda a complexidade no uso de “threads”, controle de “deadlocks”, administração de sessões dos clientes, controle de transações, mapeamento direto no acesso ao banco de dados, prove baixo acoplamento, em fim entre outras vantagens no seu uso. Desta forma a adoção da tecnologia EJB vai agregar o uso de recursos tecnológicos que vão tornar a aplicação mais robusta, e permitir tranqüilamente o aumento da sua complexidade, principalmente no processamento das análises estatísticas e monitoramento em tempo real da execução das avaliações.

O trabalho de especificação do projeto poderia facilmente ser adaptado para a nova tecnologia, todo levantamento de requisitos e a análise do sistema podem ser reaproveitados e facilmente complementados.

Outra parte do trabalho que poderia ser explorada futuramente é a possibilidade

de integração do SGA a sistemas acadêmicos já criados e implantados.

Aspectos de segurança como

criptografia para proteção e garantia de integridade dos dados, autenticação dos usuários e não-repúdio também precisariam ser integradas ao sistema.