Gestão de Projectos de Software Licenciatura em Engenharia Informática e Computação Faculdade de Engenharia da Universidade do Porto Projecto SAPIENS Sistema de Avaliação Assistida por Computador RELATÓRIO DO TRABALHO PARA FORA 2000/12/04 AUTORIA Artur Matos Nuno Costa REVISTO E APROVADO Rui Filipe Andrade Pereira
GRUPO DE PROJECTO Chefe (Gestor de Projecto) Rui Pereira Secretária Sandra Oliveira Controlo da Qualidade/Auditor Miguel Teixeira Analistas/Arquitectos Artur Matos Nuno Costa Programadores João Pires Luís Almeida GPS 2000/2001 2
ÍNDICE 1. INTRODUÇÃO 5 2. ESTADO DA IMPLEMENTAÇÃO 5 3. DESENVOLVIMENTO DO TRABALHO PARA FORA 5 4. DESCRIÇÃO DA IMPLEMENTAÇÃO 5 5. INTEGRAÇÃO DO MÓDULO NO RESTANTE PROJECTO 7 6. INTEGRAÇÃO DO TRABALHO QUE NÃO FOI IMPLEMENTADO 7 7. BIBLIOGRAFIA 7 GPS 2000/2001 3
Resumo Este relatório contém a descrição do trabalho efectuado em regime de outsourcing para o grupo Softroom, no âmbito da cadeira de GPS. O trabalho para fora consistia em implementar um módulo de consultas de horários de exames, que permitisse ver os exames atribuídos a alunos, professores e de disciplinas para um dado ramo de um curso, a desenvolver em PHP3. O trabalho de implementação ocupou as 20 horas atribuídas na especificação, e este está totalmente implementado, exceptuando a consulta por ramos. O trabalho efectuado é explicado através de uma pequena descrição textual e um diagrama de componentes UML com as extensões para WWW propostas em [1]. São ainda dadas indicações de como integrar o trabalho resultante no projecto original. GPS 2000/2001 4
1. Introdução O nosso trabalho, encomendado pelo grupo de trabalho Softroom, consistiu no desenvolvimento do módulo de pesquisas para os exames marcados. O módulo a desenvolver é separado do restante trabalho, pelo que as interacções serão muito fáceis de localizar. O módulo a desenvolver deve funcionar sobre uma base de dados PostgreSQL, na qual serão criados todos os dados. Apesar do sistema necessitar de ligação ao SiFEUP, que executa sobre Oracle, toda a informação será replicada para este desenvolvimento. Adicionalmente, o grupo Softroom pediu explicitamente que o nosso módulo fosse desenvolvido em PHP3. Quanto ao tempo estimado para a execução do trabalho, foram previstas 20 horas, incluindo documentação e testes. 2. Estado da implementação A implementação pedida, tal como indicado na especificação, não foi totalmente completada. Das 3 consultas especificadas, a consulta de horários por curso e ramo não foi implementada. As outras 2 consultas estão totalmente implementadas e testadas. 3. Desenvolvimento do trabalho para fora O trabalho para fora foi desenvolvido directamente na conta do grupo Softroom, e usando a base de dados do projecto, sem nenhuma replicação. Este facto irá provavelmente diminuir os problemas de integração. 4. Descrição da implementação Como já foi indicado anteriormente, o módulo em causa está implementado em PHP3, e de acordo com este, é constituído por um conjunto de páginas estáticas (.html) e dinâmicas (código HTML embebido com PHP). Estando o trabalho Softroom inserido no contexto do SiFEUP, o interface geral do módulo está de acordo com este. O conjunto estático é o seguinte: Index.html Pesquisa.html Aluno.html Professor.html Directoria imagens (todas imagens usadas pelo módulo) GPS 2000/2001 5
Todo este conjunto estático (incluindo as imagens) foi retirado e adaptado do SiFEUP actual. Este conjunto corresponde a interface inicial do módulo para o utilizador e dirige a parte dinâmica de acordo com os dados indicados por este. Contém as forms para pesquisa de alunos (alunos.html) e professores (professores.html). O conteúdo dinâmico é constituído pelos seguintes ficheiros: Horario.php3l Palunos.php Pprofessores.php Os ficheiros.php3l são bibliotecas com rotinas auxiliares usados por ambas as pesquisas. A rotina essencial neste módulo chama-se horarioashtml(sql), que cria uma tabela HTML com um formato horário de acordo com a query SQL passada como argumento. Assim a pesquisa por aluno ou por código do professor ficam limitados a construir o código sql correspondente aos parâmetros passados pela parte estática do módulo e chamar esta rotina. Os ficheiros.php correspondem à parte dinâmica da aplicação, concretamente a pesquisa por alunos (palunos.php3) e professores (pprofessores.php3). Estes ficheiros recebem a chave correspondente da entidade (aluno ou professor), através do parâmetro codigo, passado das forms estáticas através de GET. Como já foi dito anteriormente, o código PHP associado a estes ficheiros constrói uma query SQL (textual), posteriormente usada por horarioashtml. Esta query SQL deve obter a lista de exames, com as devidas restrições, ordenadas por data e hora, de modo ao procedimento funcionar correctamente. O esquema UML seguinte (com as extensões descritas em [1]), clarifica os conceitos apresentados: index.html <<links>> pesquisas.html palunos.ht ml <<links>> <<server palunos.p hp3 <<creates>> <<client palunos.p hp3 pprofessor es.html <<links>> <<server pprofessor es.php3 <<creates>> <<client pprofessor es.php3 GPS 2000/2001 6
5. Integração do módulo no restante projecto A integração do módulo no restante projecto não deve apresentar dificuldades. O trabalho para fora foi desenvolvido directamente na conta do grupo Softroom, e usando a base de dados do projecto, sem nenhuma replicação. Este facto irá provavelmente diminuir os problemas de integração. O problema de integração mais provável de aparecer é a adaptação da parte estática (.html) com o restante do projecto: poderá ser necessário adaptar alguns caminhos de ficheiros de modo a estar de acordo com a estrutura física usada no todo do projecto. 6. Integração do trabalho que não foi implementado A implementação do trabalho que falta a este módulo não deve apresentar grande dificuldade. Pode ser feito usando a mesma estratégia descrita neste relatório: Criar uma página estática com a form, por exemplo, pramos.html, onde o utilizador indica os dados para a página dinâmica. Criar a página dinâmica, fazendo interface com o procedimento horarioashtml, como já indicado anteriormente. Ajustar a página principal para conter a nova pesquisa. A questão essencial nesta implementação é a definição da query SQL de acordo com o pretendido. 7. Bibliografia [1] Conallen, Jim - Modeling Web Application Design with UML GPS 2000/2001 7