Docstoc

Relatorio

Document Sample
Relatorio Powered By Docstoc
					   Faculdade de Engenharia da Universidade do Porto
 Licenciatura em Engenharia Electrotécnica e de Computadores




           Projecto/Seminário/Trabalho Final de Curso


Exportação de conteúdos do SiFEUP para XML através de
                uma biblioteca de definições




                    Gabriel António Lopes Ribeiro
          Orientador do projecto: Professor Raul Moreira Vidal
         Co-orientador do projecto: Engenheiro Manuel Machado
                              Julho 2003
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


                                     Resumo




Este relatório refere-se ao projecto “Exportação de conteúdos do SiFEUP para XML
através de uma biblioteca de definições” desenvolvido no âmbito da disciplina
Projecto/Seminário/Trabalho Final de Curso do 5º ano da Licenciatura em Engenharia
Electrotécnica e de Computadores da Faculdade de Engenharia da Universidade do
Porto.
Este projecto é uma das partes constituintes de um projecto mais vasto cujo objectivo
final é a construção de um sistema de informação para a Licenciatura em Engenharia
Informática e Computação da Faculdade de Engenharia da Universidade do Porto. O
trabalho realizado insere-se na área de sistemas de informação e consiste no
desenvolvimento de uma aplicação que permite a disponibilização de conteúdos do
SiFEUP de forma eficiente usando XML.




                                                                                ii
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


                                  Agradecimentos


Professor Raul Moreira Vidal – Orientador do projecto, pelo apoio e orientação do
trabalho.


Engenheiro Manuel Machado – Responsável da Unidade de Sistemas de Informação do
CICA e co-orientador do projecto, pelas sugestões e acompanhamento do trabalho.


Professores João Correia Lopes e Augusto Sousa – Co-orientadores do projecto, pelas
sugestões e apoio dado.


Engenheiro Pedro Strecht – Especialista de Informática da Unidade de Sistemas de
Informação do CICA, pela disponibilidade e apoio na concepção do sistema.


Vítor Carvalho – Designer das páginas do SiFEUP, pelas sugestões e apoio dado na
concepção do exemplo de portal.


Todas as pessoas da Unidade de Sistemas de Informação do CICA pelas sugestões e
excelente ambiente de trabalho proporcionado.




                                                                              iii
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


                                     Índice

1. Introdução __________________________________________________________ 1
   1.1. Análise do Problema ______________________________________________ 1
   1.2. Objectivos ______________________________________________________ 2
   1.3. Definição de Requisitos ____________________________________________ 2
   1.3. Escalonamento do Trabalho ________________________________________ 4
   1.4. Tecnologias e Ferramentas _________________________________________ 4
2. Modelo de Dados ____________________________________________________ 5
   2.1. Modelo Entidade-Associação _______________________________________ 5
   2.2. Modelo Relacional ________________________________________________ 6
   2.3. Criação das Tabelas na Base de Dados ________________________________ 7
3. Interface Web ______________________________________________________ 12
   3.1. Interface de Administração ________________________________________ 12
      3.1.1. Criação de Definições _________________________________________ 13
      3.1.2. Alteração e Eliminação de Definições ____________________________ 15
      3.1.3. Junções ____________________________________________________ 17
      3.1.4. Geração de XML ____________________________________________ 17
   3.2. Interface de Utilização ____________________________________________ 20
4. Implementação _____________________________________________________ 21
   4.1. Procedimentos e Funções _________________________________________ 21
      4.1.1. Aspecto da interface web ______________________________________ 21
      4.1.2. Autenticação ________________________________________________ 21
      4.1.3. Definições __________________________________________________ 21
      4.1.4. Junções ____________________________________________________ 22
      4.1.5. Geração de XML ____________________________________________ 22
   4.2. Análise dos Procedimentos mais Relevantes __________________________ 22
      4.2.1. Procedimento form_definicao __________________________________ 22
      4.2.2. Procedimento submeter_definicao _______________________________ 23
      4.2.3. Procedimento sel_definicao ____________________________________ 23
      4.2.4. Procedimento form_juncao_____________________________________ 23
      4.2.5. Procedimento submeter_juncao _________________________________ 24
      4.2.6. Procedimento form_geraXML __________________________________ 24
      4.2.7. Procedimentos gera_XML _____________________________________ 24
      4.2.8. Procedimento apresenta_XML __________________________________ 25
   4.3. Alguns Aspectos de Optimização de Funcionamento do Sistema __________ 25
      4.3.1. Criação da Tabela PARAMETROS_GERACAO ___________________ 25
      4.3.2. Cache de XML ______________________________________________ 25
5. Exemplos de Aplicação ______________________________________________ 27
   5.1. XML, XSL e CSS _______________________________________________ 27
   5.2. Portal LEIC ____________________________________________________ 27
   5.3. Exemplo de Integração no SiFEUP __________________________________ 32
6. Conclusões ________________________________________________________ 33
   6.1. Trabalho Realizado ______________________________________________ 33
   6.2. Perspectivas de Evolução do Projecto ________________________________ 33
   6.3. Experiência Pessoal ______________________________________________ 34
Bibliografia e Referências ______________________________________________ 35
Anexo A: Relatório de Especificação de Requisitos __________________________ 36




                                                                            iv
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



1. Introdução


1.1. Análise do Problema

Este projecto tinha inicialmente como objectivo a construção de um protótipo de um
sistema de informação para uma licenciatura da Faculdade de Engenharia da
Universidade do Porto, especificamente a Licenciatura em Engenharia Informática e
Computação (LEIC). Para esse efeito foi elaborado, no âmbito deste projecto, um
relatório de especificação de requisitos que está anexo a este documento.
Um sistema de informação para uma licenciatura da Faculdade de Engenharia da
Universidade do Porto teria que ir obter grande parte da informação que necessitaria ao
Sistema de Informação Faculdade de Engenharia da Universidade do Porto (SiFEUP),
que é um repositório enorme com toda a informação relevante sobre as actividades da
Faculdade de Engenharia da Universidade do Porto, com interface web.
Devido a esta necessidade e ao facto de ser útil dotar o SiFEUP com uma forma
padronizada de fornecimento de informação, o projecto inicial foi alterado, tendo
passado a orientar-se para a construção de um módulo que permita “Exportação de
conteúdos do SiFEUP para XML através de uma biblioteca de definições”.
O trabalho foi realizado na Unidade de Sistemas de Informação, nas instalações do
Centro de Informática Professor Correia de Araújo, na Faculdade de Engenharia da
Universidade do Porto.




                                                                                  1
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


1.2. Objectivos


Devido à crescente necessidade de retirar informação do SiFEUP por parte de alguns
utilizadores do sistema, surge a necessidade de criar uma biblioteca de disponibilização
de conteúdos, que permita ao utilizador especificar que informação pretende obter. O
acesso a essa biblioteca deve ser feito através de uma interface de utilização prática,
libertando o utilizador da necessidade de ter conhecimentos de base de dados relacionais
para poder utilizá-la.
Outro aspecto que é necessário salvaguardar é a segurança, o utilizador não deve poder
aceder à informação sem restrições, e sim retirar do sistema apenas a informação que a
administração do mesmo disponibilize na biblioteca de conteúdos.
Neste sistema o utilizador tanto poderá ser alguém que necessita de retirar informação
do sistema ocasionalmente, como poderá ser um portal web que usa o sistema de uma
forma sistemática para obter a informação que pretende apresentar. A informação
pretendida pelo utilizador será exportada utilizando o formato XML.




1.3. Definição de Requisitos


Para ilustrar formalmente os requisitos do sistema segue-se o diagrama de casos de uso.
Um diagrama de casos de uso é um diagrama das funcionalidades do sistema, elaborado
com base na linguagem de modelização UML (Unified Modelling Language)[4]. Neste
tipo de diagramas as funcionalidades são designadas por „casos de uso‟ e os utilizadores
designados por „actores‟.


No sistema em causa identificam-se os seguintes actores:
   -   Administrador
   -   Utilizador/Portal




                                                                                   2
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




                         Figura 1.1 – Diagrama de casos de uso




                                                                             3
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


1.3. Escalonamento do Trabalho

O trabalho realizado foi desenvolvido em várias etapas:
     -    Modelação do sistema – modelo entidade-associação, modelo relacional, criação
          das tabelas na base de dados.
     -    Criação da interface web – duas interfaces, uma de administração, e uma de
          utilização.
     -    Geração de XML – criação e optimização de um procedimento que retira a
          informação do sistema e a disponibiliza em formato XML.
     -    Teste e revisões – simulações de utilização do sistema em todas as situações
          previstas de modo a eliminar eventuais anomalias no funcionamento do sistema.
     -    Protótipo de demonstração – construção de um pequeno protótipo de portal
          (SiLEIC) para demonstrar a utilidade do sistema desenvolvido.


As várias etapas não são independentes, todas elas sofreram alterações e optimizações
no decorrer do trabalho.



1.4. Tecnologias e Ferramentas


No desenvolvimento do trabalho foram usadas as seguintes linguagens de programação:

- PL/SQL[1] – usada na implementação de módulos de interacção com a base de
dados.
- HTML [2] – usada na criação das interfaces e na apresentação das páginas
web.
- XML[3] – usada para a exportação da informação.
- Javascript[5] – usada para passagem de parâmetros entre páginas web e para tornar
   as páginas interactivas.

As ferramentas usadas foram:
 -       Oracle Designer 2000 – usada para a modelização do sistema (modelo entidade-
         associação e modelo relacional) e para a criação das tabelas na base de dados.
 - Quest SQL Navigator – usada para o desenvolvimento de toda a aplicação.




                                                                                          4
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


2. Modelo de Dados


O projecto consiste na criação de um módulo que permita armazenar dados relativos à
informação que os utilizadores podem retirar do SiFEUP, ou seja, criar uma biblioteca
de definições. Uma definição é um modelo genérico de uma pergunta à base de dados
(query SQL), que é parametrizado de acordo com a informação que se pretende obter.
Para suportar a biblioteca de definições, é necessário um modelo de dados que armazene
toda a informação que será usada na construção da query SQL, que por sua vez será
usada para gerar o documento XML, que será exportado. Neste capítulo é dada a
conhecer a arquitectura do sistema, ou seja, o modelo de dados que foi criado para
suportar as funcionalidades pretendidas para o sistema.
Na construção do modelo de dados foi usada a ferramenta Oracle Designer 2000, tendo
o modelo sofrido várias alterações ao longo da execução do trabalho, de maneira a
adaptar-se melhor à informação que irá armazenar.




2.1. Modelo Entidade-Associação


Inicialmente foi construído o modelo entidade-associação que mostra as tabelas que são
necessárias, a informação que cada tabela deve guardar e as dependências entre as
várias tabelas.
A figura seguinte ilustra o modelo entidade-associação construído.




                                                                                 5
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




                           Figura 2.1 – Modelo Entidade-Associação




2.2. Modelo Relacional


Depois de construído o modelo entidade-associação, através do Oracle Designer 2000
gera-se automaticamente o modelo relacional. O modelo relacional mostra todas as
colunas que as tabelas que serão criadas na base de dados irão possuir, o tipo de dados
de cada coluna e todas as dependências entre tabelas.
A figura seguinte ilustra o modelo relacional obtido.




                                                                                  6
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




                              Figura 2.2 – Modelo Relacional




2.3. Criação das Tabelas na Base de Dados


Com base no modelo relacional acima ilustrado e ainda usando a ferramenta Oracle
Designer 2000 todas as tabelas e dependências associadas foram geradas
automaticamente na base de dados.
Nesta secção é feita uma breve análise da estrutura das tabelas ,indicando as colunas,
tipo de dados, tamanho (quando aplicável) e comentários.




                                                                                 7
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Tabela DEFINICOES


Nesta tabela é armazenada a informação que identifica cada definição, como por
exemplo a sua descrição, o criador, e a data de criação.




                         Figura 2.3 – Definição da tabela DEFINICOES




Tabela COLUNAS


Nesta tabela é armazenada a informação relativa às colunas que fazem parte das
definições.




                          Figura 2.4 – Definição da tabela COLUNAS




                                                                             8
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Tabela DEF_JUNCOES



Nesta tabela é guardada a informação acerca das junções existentes, ou seja, as
definições que fazem parte de cada junção e o tipo de junção que é usada.




                       Figura 2.5 – Definição da tabela DEF_JUNCOES




Tabela DEF_J_COLUNAS


Esta tabela está associada à tabela DEF_JUNCOES. Para cada junção existente na
tabela DEF_JUNCOES, existe na tabela DEF_J_COLUNAS a informação sobre as
colunas usadas para juntar as definições.




                      Figura 2.6 – Definição da tabela DEF_J_COLUNAS




                                                                             9
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Tabela FUNCIONARIOS


Esta é uma tabela que já existia no ambiente do SiFEUP, tendo como finalidade
identificar o criador das definições e das gerações de XML.




                      Figura 2.7 – Definição da tabela FUNCIONARIOS




Tabela PORTAIS


Esta tabela tem a mesma finalidade que a tabela FUNCIONARIOS, sendo usada para
identificar os portais que usam o sistema. Esta tabela indica também o
REFRESH_TIME de cada portal que é usado na implementação de um mecanismo de
cache de XML que será abordado noutro capítulo deste relatório.




                          Figura 2.8 – Definição da tabela PORTAIS




                                                                            10
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Tabela GERACOES_XML


Nesta tabela são guardados o documento XML gerado e a query SQL que foi usado na
sua geração. É de salientar também o campo VALIDA que tem como finalidade testar a
validade ou não da informação armazenada. A definição usada para gerar o documento
XML pode ser alterada, invalidando todas as gerações realizadas até à data para essa
definição.




                     Figura 2.9 – Definição da tabela GERACOES_XML




Tabela PARAMETROS_GERACAO


Esta tabela armazena os parâmetros associados a cada geração de XML. A finalidade é
utilizar esta informação para optimizar o funcionamento do sistema, como será
mostrado noutro capítulo deste documento.




                Figura 2.10 – Definição da tabela PARAMETROS_GERACAO




                                                                              11
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



3. Interface Web


Neste capítulo é analisada a interface web desenvolvida para a biblioteca de definições.
Esta interface está dividida em dois grupos, a interface de administração e a interface de
utilização.
Para ter acesso à interface web da biblioteca de definições, o utilizador tem que se
autenticar introduzindo o seu código e password no formulário de controlo de acesso,
usado no SiFEUP.




                               Figura 3.1 – Controlo de acesso




3.1. Interface de Administração


Depois de se autenticar como tal, um administrador tem acesso a todas as
funcionalidades da interface, podendo aceder às várias páginas muito facilmente através
do menu de opções disponível em todas as páginas.




                                                                                   12
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


3.1.1. Criação de Definições

O formulário para criar uma nova definição é interactivo, sendo alguns campos
preenchidos automaticamente. Inicialmente é pedida a introdução dos dados iniciais,
sendo os campos para introdução das colunas da definição, apenas mostrados após a
escolha da primeira tabela. À medida que o administrador necessita de inserir mais
colunas o formulário vai crescendo.




                              Figura 3.2 – Criação de Definição




                       Figura 3.3 – Introdução das colunas da definição


                                                                             13
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Quando o administrador tenta submeter uma definição são feitas várias validações,
sendo-lhe indicado o que deve corrigir (em caso de insucesso), ou que a operação foi
efectuada (em caso de sucesso).




                         Figura 3.4 – Exemplo de validação de dados




                        Figura 3.5 – Inserção correctamente efectuada




                                                                              14
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



3.1.2. Alteração e Eliminação de Definições

O administrador tem a possibilidade de visualizar todas as definições existentes no
sistema.




                              Figura 3.6 – Pesquisa de Definições

No ecrã de selecção, clicando numa definição da lista, abre-se o formulário de criação
de definições com toda a informação relativa à definição em causa. O administrador
pode assim alterar a definição e voltar a submeter, ou eventualmente eliminar a
definição.




                   Figura 3.7 – Possibilidade de eliminar ou alterar Definição


                                                                                 15
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Quando a definição que se pretende alterar faz parte de alguma junção, existem
restrições às alterações possíveis.




                              Figura 3.8 – Restrições às alterações


Eliminar uma definição implica eliminar toda a informação associada a essa definição,
eventuais junções e gerações de XML.




                      Figura 3.9 – Confirmação de eliminação de Definição




                                                                               16
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



3.1.3. Junções


Para criar junções existe o seguinte formulário, também interactivo.




                              Figura 3.10 – Criação de Junções


Para as junções estão também disponíveis todas as funcionalidades anteriormente
descritas para as definições, como por exemplo, eliminar e alterar junções.

3.1.4. Geração de XML


O documento XML pode ser gerado de duas formas, usando o formulário que a
interface disponibiliza para o efeito, ou chamando directamente o procedimento que
gera o documento XML com os respectivos parâmetros. O formulário de geração de
XML foi construído de forma a que o utilizador não necessite de ter quaisquer
conhecimentos de base de dados para utilizá-lo, limitando-se a especificar a informação
que pretende obter. A segunda forma de gerar o documento XML é usada pelos portais
para obter a informação que necessitam, recebendo o XML respectivo.




                                                                                17
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




                       Figura 3.11 – Formulário de geração de XML




                               Figura 3.12 – XML gerado




                                                                            18
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

O administrador pode ainda de visualizar todas as gerações de XML existentes no
sistema e eliminar aquelas que já não se encontrem válidas.




                          Figura 3.13 – Pesquisar gerações de XML




                        Figura 3.14 – Eliminação de gerações inválidas



                                                                            19
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



3.2. Interface de Utilização

Na interface de utilização apenas estão presentes as funcionalidades relacionadas com a
geração e visualização de XML. O utilizador apenas pode gerar XML e visualizar
gerações que eventualmente já existam no sistema.




                         Figura 3.15 – Pesquisa de gerações de XML




                              Figura 3.16 – Geração de XML



                                                                                20
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


4. Implementação


Neste capítulo é feita uma análise dos procedimentos criados para suportar o sistema de
biblioteca de definições. O ambiente de desenvolvimento usado foi o Quest SQL
Navigator. Apresenta-se uma listagem de todos os procedimentos e funções usadas,
seguida de uma breve análise de alguns tópicos relevantes, tais como validações e
optimização.




4.1. Procedimentos e Funções



4.1.1. Aspecto da interface web

           Nome                           Descrição                        Tipo
         cabecalho           Apresenta cabeçalho das páginas web       Procedimento
       menu_opcoes               Apresenta menu de opções              Procedimento
           botoes              Apresenta botões de navegação           Procedimento
   apresentar_mensagem        Apresenta mensagem informativa           Procedimento




4.1.2. Autenticação

           Nome                           Descrição                        Tipo
        autenticacao             Controlo de acesso ao sistema            Função



4.1.3. Definições

           Nome                           Descrição                        Tipo
      form_definicao           Cria formulário para as definições      Procedimento
    submeter_definicao         Submete formulário de definições        Procedimento
       sel_definicao            Permite pesquisa de definições         Procedimento




                                                                                21
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




4.1.4. Junções

           Nome                           Descrição                        Tipo
       form_juncao              Cria formulário para as junções        Procedimento
     submeter_ juncao           Submete formulário de junções          Procedimento
        sel_ juncao              Permite pesquisa de junções           Procedimento




4.1.5. Geração de XML


           Nome                           Descrição                        Tipo
      form_geraXML             Cria formulário para gerar XML          Procedimento
         gera_XML                        Gera o XML                    Procedimento
        sel_geracoes          Permite pesquisar gerações de XML        Procedimento
     apresentar_XML                    Apresenta XML                   Procedimento
     Elimina_geracao              Elimina gerações inválidas           Procedimento




4.2. Análise dos Procedimentos mais Relevantes


Nesta secção é feita uma breve análise a alguns dos procedimentos, referindo as
principais funcionalidades que implementam.




4.2.1. Procedimento form_definicao


Este procedimento é usado sempre que se pretende criar, alterar ou eliminar alguma
definição. São usados formulários com elementos do tipo hidden e funções de javascript
para o preenchimento automático de alguns campos do formulário e para passar
parâmetros para outros procedimentos. Quando se trata de criar uma nova definição o
formulário é mostrado em branco, quando se trata de uma operação sobre uma definição
já existente o formulário é carregado com os valores respectivos, valores esses obtidos
da base de dados.




                                                                                22
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



4.2.2. Procedimento submeter_definicao

Este é o procedimento para realizar todas as operações na base de dados, no que diz
respeito ás definições. Para além disso, é também neste procedimento que são feitas
todas as verificações e operações necessárias, para garantir a consistência dos dados
inseridos na base de dados. De seguida são referidas as verificações feitas por este
procedimento.
- Obrigar o preenchimento de campos obrigatórios.
- Obrigar o preenchimento de campos, se algum campo relacionado também o estiver.
- Verificar se as tabelas indicadas no campo FROM são válidas.
- Impedir repetição de alias nas colunas de uma definição.
- Impedir alteração de campos fundamentais em colunas usadas como condição de
 junção.
- Pedir confirmação sempre que se trata de uma operação de eliminação de definição.
- Avisar o utilizador da existência de junções e/ou gerações de XML associadas a uma
 definição que pretende eliminar.
- Marcar como inválidas, todas as gerações de XML associadas a uma definição, sempre
 que está é alterada.




4.2.3. Procedimento sel_definicao

Este procedimento usa um cursor para retirar da base de dados a listagem de todas as
definições e apresenta-a numa página web de pesquisa de definições com os respectivos
botões de navegação.




4.2.4. Procedimento form_juncao

Este procedimento é similar ao procedimento form_definicao, sendo responsável pela
obtenção dos dados a partir da base de dados no caso de junções já existente, e pela
passagem de parâmetros para outros procedimentos.



                                                                                23
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



4.2.5. Procedimento submeter_juncao

Tal como no caso das definições, para inserir uma junção na base de dados é necessário
fazer algumas verificações para garantir a consistência dos dados. De seguida são
listadas as verificações feitas por este procedimento.
- Obrigar preenchimento de campos obrigatórios.
- Impedir inserção de junções sem condições de junção.
- Impedir definição de condições de junção entre colunas com tipo de dados diferentes.




4.2.6. Procedimento form_geraXML

Este procedimento é responsável pela passagem dos parâmetros para os procedimentos
que vão gerar o documento XML. Para isso é usado um cursor, que retira da base de
dados todas as colunas que podem ser seleccionadas e/ou parametrizadas. Essa
informação é usada para criar o formulário que é usado pelo utilizador para escolher a
informação que pretende obter no documento XML.




4.2.7. Procedimentos gera_XML

Este procedimento recebe os parâmetros do formulário onde o utilizador escolhe a
informação que pretende, e usa-os para construir a pergunta à base de dados (query
SQL) que vai ser usada para gerar o documento XML. Além disso este procedimento
insere informação relativa à geração de XML actual, na base de dados, logo faz também
algumas verificações que são listadas a seguir.
- Obrigar selecção de pelo menos uma coluna.
- Obrigar preenchimento de parâmetros obrigatórios.
- Impedir a introdução de valores não numéricos para parâmetros do tipo NUMBER.




                                                                                 24
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


4.2.8. Procedimento apresenta_XML

Este procedimento utiliza a query SQL construída pelo procedimento gera_XML para
gerar o documento XML, utilizando o procedimento XMLGen existente no ambiente do
SiFEUP . Depois de gerado, é guardado na base de dados e é apresentado numa página
web.



4.3. Alguns Aspectos de Optimização de Funcionamento do Sistema



4.3.1. Criação da Tabela PARAMETROS_GERACAO


Para evitar que cada vez que fosse gerado um documento XML tivesse que se
acrescentar uma nova entrada na tabela GERACOES_XML , foi criada a tabela
PARAMETROS_GERACAO que guarda os parâmetros que foram usados em cada uma
das gerações. Assim, o procedimento que insere as gerações na base de dados, sempre
que é chamado verifica se já existe uma geração para aquela definição, com aqueles
parâmetros, e em caso afirmativo apenas actualiza a informação.
Isto evita o crescimento desnecessário da tabela GERACOES_XML e evita que se
guarde a mesma informação várias vezes.




4.3.2. Cache de XML

Quando a biblioteca de definições é utilizada por um portal para obter informação, uma
definição pode ser usada de uma maneira sistemática com os mesmos parâmetros. Por
exemplo, o futuro portal da LEIC para mostrar uma lista dos seus docentes usaria uma
definição “Docentes” que lista os docentes de um curso, com o parâmetro CURSO
preenchido com o valor LEIC. Sempre que alguém através do portal, quisesse visualizar
a lista de docentes os parâmetros seriam exactamente os mesmos.
O documento XML seria gerado a cada acesso, o que tornava o processo de
visualização da lista de docentes mais lento. Para além disso, originaria uma sobrecarga
adicional na base de dados do SiFEUP, pois cada vez que o documento XML é gerado,


                                                                                 25
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

é executada a query SQL, que pode ser complexa. Isso seria uma desperdício de
recursos, pois na maioria dos casos a informação obtida seria exactamente a mesma.
Para evitar esta situação foi criada a tabela PORTAIS que tem uma coluna onde é
definido, para cada portal, o período de tempo após o qual a informação deve ser
actualizada (REFRESH_TIME). O sistema, antes de gerar o documento XML verifica
se já existe uma geração com os mesmos parâmetros. Se existe alguma geração nessas
condições, soma-se a data da geração com o valor de REFRESH_TIME do portal, se o
valor obtido for superior à data actual o documento XML volta a ser gerado, caso
contrário é exportado o documento que está guardado na base de dados.




                                                                            26
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



5. Exemplos de Aplicação



5.1. XML, XSL e CSS


O XML (eXtensible Markup Language) separa rigorosamente o conteúdo da
apresentação, ao contrário do HTML (HyperText Markup Language). XML é uma
representação de dados estruturados em formato texto, ou seja, um documento XML
contém apenas e só informação. Para apresentar a informação, por exemplo num
browser, é necessário formatar o seu conteúdo, usando para esse efeito uma folha de
estilo (XSL ou CSS). Uma folha de estilo CSS (Cascading Style Sheet) usa o conteúdo
documento XML e apresenta-o de uma determinada forma. Uma folha de estilo XSL
(eXtensible Stylesheet Language), apesar da sua maior complexidade, apresenta outras
vantagens, permite a reordenação da informação, e seleccionar a informação que se
pretende apresentar.



5.2. Portal LEIC


Para demonstrar a utilidade da biblioteca de definições e do uso do XML para exportar
a informação, foi construído uma página web bastante simples, que pretende simular o
futuro portal da LEIC.
O portal usa a biblioteca de definições para obter o documento XML com a informação
que pretende disponibilizar, e formata esse documento com uma folha de estilo XSL. A
folha de estilo usada para formatar o documento é local ao portal, a biblioteca de
definições exporta unicamente o documento XML. Desta maneira o portal tem a
possibilidade de apresentar a informação da forma que desejar, podendo inclusive
seleccionar do documento XML apenas a informação que pretende apresentar.
Nesta secção são mostrados dois exemplos. Num dos exemplos é apresentada na página
HTML todo o conteúdo do documento XML criado pela biblioteca de definições. No
segundo exemplo é mostrada apenas alguma da informação contida pelo documento
XML.




                                                                               27
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Neste primeiro exemplo foi usada a definição “Docentes” que permite obter os dados de
todos os docentes de um curso num determinado ano lectivo. No exemplo a definição
foi parametrizada de forma a fornecer a sigla, o nome, e o e-mail de todos os docentes a
leccionar na LEIC no ano lectivo de 2002/2003.




                   Figura 5.1 – XML exportado pela biblioteca de definições




                 Figura 5.2 – XML formatado com XSL e apresentado no portal


                                                                                 28
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




Usando o mesmo documento XML obtido da biblioteca de definições pode obter-se
uma visualização diferente, bastando para isso usar uma folha de estilo diferente.




                  Figura 5.3 – XML formatado com XSL e apresentado no portal




                                                                                     29
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Como segundo exemplo foi usada a definição “Cadeiras” que exporta a informação
relativa a todas as cadeiras de um curso. A definição foi parametrizada de forma a
fornecer o nome, o ano, o semestre e a página web de cada uma das cadeiras da LEIC.




                   Figura 54 – XML exportado pela biblioteca de definições




                 Figura 5.5 – XML formatado com XSL e apresentado no portal



                                                                               30
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições

Neste segundo exemplo não é apresentada toda a informação contida no documento
XML, é apenas apresentado o nome da cadeira e a respectiva página web, apesar de o
documento XML conter também o ano e o semestre de cada cadeira. Esta formatação é
executada pela XSL que se ilustra na figura seguinte. Note-se que a folha de estilo XSL
usa uma outra folha de estilo CSS (leic.css) para formatar a apresentação (tipo de letra,
fonte,etc).




                                 Figura 5.6 – Documento XSL




Os utilizadores do portal, quando tentarem visualizar a informação num browser,
algures na Internet, receberão apenas páginas HTML, a formatação dos documentos
XML é feita pela portal. O diagrama seguinte ilustra o funcionamento acima referido.



        SiFEUP          XML           Portal LEIC          HTML      Utilizador do
                                                                       portal na
                                                                       Internet

                        Pedido                             Pedido
                          de                                 de
                         XML                               página
                         XML
                              Figura 5.7 – Fluxo de Informação



                                                                                  31
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


5.3. Exemplo de Integração no SiFEUP


Nesta secção é dado um exemplo de utilização da aplicação desenvolvida no ambiente
do SIFEUP. Usou-se a definição “Pessoal_activo” para criar a opção “Exportar Pessoal
Activo em XML” na página de pesquisa de informação sobre pessoal do SiFEUP.




                       Figura 5.8 – Exemplo de integração no SiFEUP




                                                                              32
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


6. Conclusões


6.1. Trabalho Realizado


Os objectivos do trabalho foram alcançados, foi construída uma biblioteca de
definições, que permite exportar conteúdos do SiFEUP de uma forma eficiente. Com
esta nova aplicação, evita-se a necessidade de ter construir a query SQL, e disponibilizar
os conteúdos, sempre que alguém necessita de alguma informação. O utilizador não
necessita de ter quaisquer conhecimentos sobre base de dados para poder usar a
biblioteca de definições, pois a interface de utilização está construída de forma a que o
utilizador se limite a especificar a informação que pretende obter. A biblioteca de
definições também esta preparada para responder a utilizadores sistemáticos, como por
exemplo portais. Para esse efeito tem implementado um mecanismo de cache de XML,
que evita o uso desnecessário de recursos. Criando definições genéricas e abrangentes,
sempre que algum pedido de informação for feito, basta efectuar uma nova geração da
definição com os parâmetros adequados. Outra grande vantagem que a biblioteca de
definições oferece aos utilizadores, é facto de a exportação dos conteúdos ser feita
usando XML.O documento XML, sendo uma representação estruturada da informação,
permite ao utilizador uma enorme flexibilidade, podendo ser formatado da maneira mais
conveniente antes de ser apresentada a informação. Uma das formas de formatar XML
que apresenta mais potencialidades é o XSL, permite para além da formatação do
aspecto, a reordenação e selecção de conteúdos.




6.2. Perspectivas de Evolução do Projecto

A nível de perspectivas de evolução do projecto, sugerem-se as seguintes:
 - Implementar a geração de XML de junções de definições.
 - Expandir o modelo de dados e a interface de modo a suportar queries com maior
   complexidade.




                                                                                   33
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


6.3. Experiência Pessoal

A nível pessoal, a realização deste projecto permitiu alargar bastante os conhecimentos
sobre as tecnologias usadas, bem como aumentar a aptidão para a programação. Um dos
principais objectivos da disciplina, no âmbito da qual se inseriu este projecto, é
aproximar os alunos da realidade do mundo do trabalho. Este objectivo foi plenamente
alcançado, tendo o aluno realizado o projecto integrado num dinâmico grupo de
trabalho, na Unidade de Sistemas de Informação do Centro de Informática Professor
Correia de Araújo.




                                                                                34
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



Bibliografia e Referências


[1].FEUERSTEIN, Steven – Oracle PL/SQL Programming, O‟Reilly & Associates,
    Inc., 1995

[2].MUSCIANO, Chuck; KENNEDY, Bill – HTML: The Definitive Guide, O‟Reilly &
    Associates, Inc., 1997

[3].HEITLINGER, Paulo – O guia prático da XML, Centro Atlântico 2001

[4].SILVA, Alberto; VIDEIRA, Carlos – UML, Metodologias e Ferramentas Case,
    Centro Atlântico 2001

[5].FLANNAGAN, David – Javascript: The Definitive Guide, O‟Reilly & Associates,
    Inc., 1997




                                                                            35
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



Anexo A: Relatório de Especificação de Requisitos




                                                                            36
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições




        Projecto Seminário Trabalho Final de Curso
                     LEEC 2002-2003




                                  SILEIC

                Relatório de Especificação de Requisitos




Trabalho realizado por:
      Gabriel António Lopes Ribeiro            ee98206




                                                                            37
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


                                      Índice

1. Introdução _________________________________________________________            39
   1.1. Objectivo ______________________________________________________           39
   1.2. Enquadramento _________________________________________________            39
   1.3. Riscos ________________________________________________________            39
2. Requisitos do Sistema________________________________________________           40
   2.1. Descrição geral dos requisitos do Sistema ____________________________     40
   2.2. Descrição detalhada dos requisitos mínimos do sistema __________________   41
      2.2.1. Gestão de Utilizadores ________________________________________       41
      2.2.2. Plano de Estudos_____________________________________________         41
      2.2.3. Inscrição em disciplinas e turmas ________________________________    41
      2.2.4. Ficha do Aluno ______________________________________________         42
      2.2.5. Folha de avaliação ___________________________________________        42
      2.2.6. Foros de Discussão ___________________________________________        42
      2.2.7. Sistema de Notícias __________________________________________        42
      2.2.8. Vitrina Electrónica ___________________________________________       43
      2.2.9. Gestão de Documentação ______________________________________         43
      2.2.10. Website de Estágios _________________________________________        44
   2.3. Descrição dos Requisitos não Funcionais do Sistema ____________________    45




                                                                             38
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


1. Introdução


1.1. Objectivo

Desenvolver um sistema de informação para um curso da faculdade de engenharia da
universidade do porto, especificamente para a LEIC. Sistema esse que deve ter uma
interface simples e intuitiva e possuir funcionalidades inovadoras em relação aos
sistemas já existentes, facilitando o acesso à informação e o trabalho de todas as pessoas
ligadas à licenciatura.




1.2. Enquadramento


Devido ao crescimento em número de pessoas e de cadeiras da LEIC tornou-se
necessário a criação de um sistema de informação que disponibilize um melhor acesso a
toda a informação sobre o curso e que disponibilize também facilidades na avaliação,
entrega de trabalhos, comunicação entre utilizadores, etc.
Como existe já na faculdade um sistema de informação (SiFEUP, que cobre algumas
das funcionalidades necessárias), pretende-se com este projecto não duplicar a
informação, mas sim tirar partido das potencialidades do SiFEUP e implementar novas
e úteis funcionalidades. Com este trabalho espera-se obter um portal específico para a
LEIC, organizando a informação referente à LEIC existente no SiFEUP e
disponibilizando funcionalidades que contribuam para o melhor funcionamento da
licenciatura e do trabalho de todos a ela associados.



1.3. Riscos

Este projecto engloba vários riscos, dos quais se destacam os seguintes:
   - Grande dimensão do sistema;
   - Tempo limitado para a execução do projecto;




                                                                                   39
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



2. Requisitos do Sistema


2.1. Descrição geral dos requisitos do Sistema


Este sistema é muito vasto podendo ser dividido em várias partes que serão
mencionadas em seguida e analisadas com mais pormenor adiante neste documento:


   - Este sistema deve suportar vários tipos de utilizadores, cada um desses tipos com
permissões distintas para aceder ás funcionalidades do sistema, sendo estas sujeitas a
verificação;
   - Manter utilizadores e grupos de utilizadores, autenticando o acesso dos mesmos ao
sistema;
   - Manter informação actualizada sobre os cursos e planos de estudo;
   - Permitir registar a inscrição de alunos em disciplinas e turmas;
   - Manter uma ficha de aluno detalhada, com informação de classificações parciais e
faltas de cada aluno;
   - Possuir sistema de foros de discussão e notícias;
   - Possuir um sistema de vitrina electrónica onde possam ser afixados classificações e
informações importantes;
   - Permitir a submissão de entregáveis relativos a trabalhos de grupo e posterior
consulta e anotação por parte dos docentes;
   - Possuir um website específico para os estágios da LEIC;




                                                                                 40
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



2.2. Descrição detalhada dos requisitos mínimos do sistema

Nesta secção será feita uma descrição mais pormenorizada das funcionalidades
desejadas para o sistema que foram enumeradas na secção anterior.



2.2.1. Gestão de Utilizadores

O sistema deve suportar quatro tipos de utilizadores:
       -   Gestores, responsáveis por gerir e configurar o sistema;
       -   Docentes, responsáveis pela informação relativa às cadeiras que leccionam,
           planos de aulas, planos de avaliação, foros de discussão, etc;
       -   Alunos, têm acesso a informação relativa às cadeiras que frequentam,
           participam em foros de discussão, submetem trabalhos, etc;
       -   Público, consultam informação pública;



  O acesso dos utilizadores ao sistema deve ser autenticado e verificadas as suas
  permissões.




2.2.2. Plano de Estudos

O sistema deve permitir a visualização do plano de estudos do curso com a seguinte
informação:

       -   Disciplinas por ano e por semestre;
       -   Créditos de cada disciplina;
       -   Disciplinas optativas;
       -   Link para página referente à disciplina;



2.2.3. Inscrição em disciplinas e turmas

O sistema deve permitir aos alunos inscreverem-se em disciplinas e turmas
(funcionalidade existente no SiFEUP).

                                                                                    41
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


2.2.4. Ficha do Aluno

O sistema deve disponibilizar ao aluno uma ficha de aluno detalhada, onde deve constar
a seguinte informação:
       -   Nota final em cada disciplina quando disponível;
       -   Notas das avaliações parciais (mini-testes, relatórios, etc.) em cada
           disciplina;
       -   Tipo de frequência;
       -   Faltas do aluno em cada disciplina;



2.2.5. Folha de avaliação

O sistema deve permitir que os docentes produzam, no início de cada semestre, uma
folha de avaliação onde especificam os itens de avaliação. Essa especificação pode
alternativamente ser apresentada na ficha de disciplina.




2.2.6. Foros de Discussão

O sistema deve disponibilizar foros de discussão com as seguintes características:
       - Possibilidade de criar foros privados (por exemplo um foro específico para
           um grupo de utilizadores, uma disciplina, uma comissão);
       -   Possibilidade de atribuir permissões distintas aos utilizadores;
       -   Permitir arquivar o foro quando retirado do sistema;



2.2.7. Sistema de Notícias

O sistema de notícias deve também permitir:
       -   Definir prioridades;
       -   Definir prazos de validade;
       -   Definir grupos alvo aos quais se dirigem notícias específicas;
       -   Notificar via e-mail os utilizadores pertencentes a grupos alvo de notícias
           prioritárias;
       -   Arquivar notícias;


                                                                                   42
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


2.2.8. Vitrina Electrónica

O sistema deve possuir uma página onde os docentes e a administração possam afixar
classificações e outras informações úteis. Esta secção do sistema deve:

        -   Permitir o acesso á informação apenas a utilizadores devidamente
            autenticados e com permissões para o fazerem;


        -   Permitir que os utilizadores possam pesquisar a informação que querem
            visualizar (classificações, informações, ano, semestre, etc);




2.2.9. Gestão de Documentação

O sistema deve disponibilizar um módulo de gestão documental com as seguintes
características:

        -   Deve permitir a submissão de trabalhos por parte dos membros de grupos
            definidos (várias versões do mesmo trabalho);
        -   Deve mostrar os prazos estabelecidos para os trabalhos;
        -   Deve registar toda a informação (nome do documento, nome do submissor,
            data de submissão, etc.);
        -   Deve permitir ao docente anotar o trabalho, atribuindo-lhe uma classificação
            e/ou um comentário;
        -   Deve permitir a alteração das anotações por parte dos docentes;
        -   Deve registar a informação referente ao anotador e a data de anotação;
        -   Deve permitir aos alunos a visualização dos trabalhos e das anotações, mas
            apenas no caso dos trabalhos por si produzidos (ou pelo seu grupo de
            trabalho);
        -   Permitir o acesso aos trabalhos também aos docentes das respectivas
            disciplinas;
        -   O sistema deve armazenar os documentos num sistema de ficheiros local ao
            SiLEIC e a restante informação numa base de dados;


                                                                                     43
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições


2.2.10. Website de Estágios

O sistema deve possuir uma secção destinada a processar a informação referente aos
estágios da LEIC. Essa secção deve disponibilizar as seguintes funcionalidades:

      -   Permitir a submissão de propostas de estágio;
      -   Permitir aos alunos candidatarem-se aos estágios;
      -   Permitir o fecho das candidaturas e da submissão de propostas;
      -   Disponibilizar informação acerca das propostas de estágio e regulamentos;
      -   Permitir a colocação de dados pessoais por parte dos alunos (curriculum
          vitae) e áreas de interesse;
      -   Informar acerca das atribuições de estágios;




                                                                               44
Exportação de conteúdos do SiFEUP para XML através de uma biblioteca de definições



2.3. Descrição dos Requisitos não Funcionais do Sistema

A informação deve ser partilhada pelo SiLEIC e pelo SiFEUP, não deve existir
duplicação de informação. Quando alterada a informação no SiFEUP, deve
automaticamente ser alterada também no SiLEIC.




                                                                            45

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:170
posted:9/24/2011
language:Portuguese
pages:49