Sei sulla pagina 1di 133

MN Horrios

Nomio Dria N 6487

Instituto Politcnico da Guarda


Escola Superior de Tecnologia e Gesto Departamento de Informtica

Dezembro de 2008

MN Horrios
Nomio de Jesus da Encarnao Dria N 6487

RELATRIO SUBMETIDO COMO REQUISITO PARCIAL PARA OBTENO DO GRAU DE LICENCIADO EM ENGENHARIA INFORMTICA

ORIENTADO POR PROFESSOR JOS FONSECA

Instituto Politcnico da Guarda


Escola Superior de Tecnologia e Gesto Departamento de Informtica

Dezembro de 2008

Horrios MN 2007/2008

minha namorada Ana Rosa Alegria da Silva por todo o seu apoio

III

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Resumo
O presente relatrio relata a criao de uma aplicao que permitiria a criao de horrios para as aulas referentes aos cursos leccionados na Escola Superior de Tecnologia e Gesto. Para alm deste objectivo, a aplicao deve estar estruturada tendo em conta a integrao de duas bases de dados idnticas criadas em gestores de bases de dados diferentes. Neste, caso uma base de dados em T-SQL criada na aplicao Microsoft SQL Server 2005 e uma outra em PL / SQL criada em Oracle Server 10G R2 da Oracle. A aplicao foi desenvolvida para funcionar num ambiente WEB, sendo inicialmente posto a funcionar em ambiente Microsoft Windows. Esta foi estruturada em diferentes camadas sendo duas delas criadas em NetBeans da Sun e uma outra criada nos gestores de bases de dados.

Palavras- Chave: Integrao entre bases de dados, Aplicaes WEB, Modelo MVC.

IV

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Abstract
The following report describes the creation of an application that permits to create the timetables referring the courses lectured at Escola Superior de Tecnologia e Gesto. Besides this objective the application is structured to use two identical databases created on different database management systems. Is this case the databases will be created in T-SQL created using Microsoft SQL Server 2005 and another in PL / SQL created on Oracle Server 10G R2 da Oracle. This project was developed as a Web Application being initially developed on Windows. The Model-View-Controller arquitecture was used to develop this project using NetBeans for View and Controller layers and the Model layer was developed in the databases.

Keywords: Database Integration, Web Applications, MVC Model

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Agradecimentos
Gostaria de agradecer inicialmente ao meu amigo e colega Filipe Caetano cujo sentido pratico ajudou corrigir alguns bugs na aplicao criada. Agradeo ao Professor Jos Fonseca pela oportunidade para o desenvolvimento deste projecto e claro est pela pacincia por ele demonstrada. minha famlia pelo apoio incondicional O ltimo, mas o maior agradecimento, vai para a minha namorada Ana Silva cujo amor e carinho foram motivao e fora para ultrapassar obstculos.

VI

Nomio Dria n6487 Engenharia Informtica

Indice

Resumo......................................................................................................................................... IV Abstract ......................................................................................................................................... V Agradecimentos ........................................................................................................................... VI Indice ............................................................................................................................................. 7 ndice de Figuras ........................................................................................................................... 9 Indice de Tabelas ......................................................................................................................... 11 1. 2. Introduo ............................................................................................................................. 1 Tecnologias............................................................................................................................ 2 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 2.7. 2.8. 3. UML ............................................................................................................................... 2 Modelo MVC ................................................................................................................. 4 Java ................................................................................................................................ 5 JavaServer Pages ........................................................................................................... 6 Javascript ....................................................................................................................... 7 SQL................................................................................................................................. 8 Oracle e PL/SQL ............................................................................................................. 9 Microsoft SQL Server e T-SQL...................................................................................... 11

Descrio do Sistema .......................................................................................................... 12 3.1. 3.2. Casos de uso ................................................................................................................ 12 Diagramas de Sequncia ............................................................................................. 31 Diagrama de Sequncia - Aplica Novo Ano Lectivo ........................................ 31 Diagrama de Sequncia - Gerir Utilizadores .................................................. 32 Diagrama de Sequncia - Gerir Salas ............................................................... 33 Diagrama de Sequncia - Gerir Motivos ......................................................... 34 Diagrama de Sequncia - Gerir Departamentos .......................................... 35 Diagrama de Sequncia - Gerir Disciplinas ...................................................... 36 Diagrama de Sequncia - Gerir Componentes................................................. 37 Diagrama de Sequncia - Gerir Componentes No Ano Lectivo ..................... 38 Diagrama de Sequncia - Gerir Componentes leccionadas ........................... 39 Diagrama de Sequncia - Gerir Horrios ........................................................... 40 Diagrama de Sequncia - Gerir Indisponibilidades ........................................ 41

3.2.1. 3.2.2. 3.2.3. 3.2.4. 3.2.5. 3.2.6. 3.2.7. 3.2.8. 3.2.9. 3.2.10. 3.2.11.

3.2.12. 3.2.13. 3.3.

Diagrama de Sequncia - Consultar Horrios ................................................. 42 Diagrama de Sequncia - Criar Horrios ......................................................... 43

Diagramas de Actividade ............................................................................................. 44 Diagrama de Actividades - Gerir Horrios ......................................................... 45 Diagrama de Actividades - Gerir Componentes Leccionadas .......................... 46

3.3.1. 3.3.2. 3.4.

Diagrama de Classes .................................................................................................... 47 Descrio das Classes .......................................................................................... 49

3.4.1. 4.

Implementao ................................................................................................................... 81 4.1. 4.2. 4.3. 4.4. 4.5. 4.6. Modelo de Entidades Relacional (ER) ......................................................................... 82 Criao das Bases de Dados ........................................................................................ 84 T-SQL e PL/SQL ............................................................................................................ 88 Acessos ........................................................................................................................ 90 JavaBeans .................................................................................................................... 91 Java Server Pages (JSP) ................................................................................................ 94 Obteno de todos dados ................................................................................... 94 Ver Detalhes ........................................................................................................ 97 Editar e Novo ..................................................................................................... 100 Validao ........................................................................................................... 102

4.6.1. 4.6.2. 4.6.2. 4.6.3. 5. 6. 7.

Testes e Anlise de resultados .......................................................................................... 115 Concluso .......................................................................................................................... 119 Bibliografia ........................................................................................................................ 120

ndice de Figuras
Figura 2.1-Esquema de Modelo MVC (cocoalab 2007) ............................................................... 4 Figura 3.1 Diagrama Casos de Uso Gesto ........................................................................... 13 Figura 3.2 Diagrama Casos de Uso Consultas....................................................................... 14 Figura 3.3- Diagrama de Sequncia Aplica Novo Ano Lectivo .............................................. 31 Figura 3.4- Diagrama de Sequncia Gerir utilizadores ......................................................... 32 Figura 3.5- Diagrama de Sequncia Gerir Salas .................................................................... 33 Figura 3.6- Diagrama de Sequncia Gerir Motivos ................................................................ 34 Figura 3.7- Diagrama de Sequncia Gerir Departamentos .................................................... 35 Figura 3.8- Diagrama de Sequncia Gerir Disciplinas ........................................................... 36 Figura 3.9- Diagrama de Sequncia Gerir Componentes ....................................................... 37 Figura 3.10 - Diagrama de Sequncia Gerir Componentes No Ano Lectivo ......................... 38 Figura 3.11 - Diagrama de Sequncia Gerir Componentes Leccionadas .............................. 39 Figura 3.12 - Diagrama de Sequncia Gerir Horrios ........................................................... 40 Figura 3.13 - Diagrama de Sequncia Gerir Indisponibilidades ............................................ 41 Figura 3.14 - Diagrama de Sequncia Consulta Horrios ...................................................... 42 Figura 3.15 - Diagrama de Sequncia Insere Horrios ........................................................... 43 Figura 3.16 - Diagrama de Actividades Gerir Horrios ......................................................... 45 Figura 3.17- Diagrama de Actividades Gerir Componentes Leccionadas ............................. 46 Figura 3.18- Diagrama de Classes............................................................................................... 48 Figura 4.1 Modelo Relacional ................................................................................................... 82 Figura 4.2 Acesso criao do Modelo Fsico (Diagrama de Classes) .................................... 84 Figura 4.3 - Criao do Modelo Fsico (Diagrama de Classes) .................................................. 85 Figura 4.4 Acesso ao menu de criao de bases de dados ........................................................ 86 Figura 4.5 Menu de criao de bases de dados para SQL Server.............................................. 86 Figura 4.6 Menu de criao de bases de dados para Oracle ..................................................... 87 Figura 4.7 Arquitectura base de um procedimento em T-SQL ................................................. 88 Figura 4.8 Arquitectura base de um procedimento em PL/SQL ............................................... 89 Figura 4.9 Cdigo para conexo s bases de dados .................................................................. 90 Figura 4.10 Interaco entre entidades. ..................................................................................... 91 Figura 4.11 Funes internas de um JavaBean. ........................................................................ 92 Figura 4.12 Obteno de dados de uma tabela. ......................................................................... 94 Figura 4.13 Funes internas de uma JavaBean........................................................................ 95 Figura 4.14 Invocao das funes de uma JavaBean .............................................................. 96 Figura 4.15 Obteno de dados de um registo. ......................................................................... 97 Figura 4.16 Cdigo referente obteno de um registo............................................................ 98 Figura 4.17 Cdigo referente obteno de um registo adjacente............................................ 98 Figura 4.18 Cdigo referente obteno de um registo adjacente............................................ 99 Figura 4.19 Formulrio para editar dados de um curso. .......................................................... 100 Figura 4.20 Formulrio para inserir dados de um curso.......................................................... 101 Figura 4.21 Formulrio para editar dados de um curso com as validaes activadas. ............ 102 Figura 4.22 Fluxograma da aplicao para insero de registos na tabela Horrios. .............. 104 Figura 4.23 Fluxograma da base de dados para insero de registos na tabela Horrio ......... 105 Figura 4.24 Interface para a insero de dados ....................................................................... 106 Figura 4.25. Interface mostra um insero de dados na tabela Horrios bem sucedida. ....... 106

Figura 4.26 Seleco de Adicionar hardware. ..................................................................... 107 Figura 4.27 Indicao de hardware j conectado. ................................................................... 107 Figura 4.28. Seleco do driver do hardware a adicionar. ..................................................... 108 Figura 4.29. Seleco de instalao manual de hardware. ..................................................... 108 Figura 4.30 Seleco de Adicionar hardware. ..................................................................... 109 Figura 4.31 Seleco da placa de rede. ................................................................................... 109 Figura 4.32. Configurao da rede. ........................................................................................ 110 Figura 4.33 Ficheiro XML. ..................................................................................................... 111 Figura 4.34 Acesso s propriedades. ....................................................................................... 112 Figura 4.35 Acesso seco de livrarias. ................................................................................ 113 Figura 4.36 Seleco do driver. .............................................................................................. 113 Figura 4.37 Seleco de drivers concluda.............................................................................. 114 Figura 5.1 Entrada no sistema. ................................................................................................ 115 Figura 5.2. Interface mostra a entrada bem sucedida. ............................................................ 116 Figura 5.3 Interface mostra a entrada bem sucedida. ............................................................. 116 Figura 5.4. Interface mostra a entrada mal sucedida. ............................................................. 117 Figura 5.5 Seleco de horrio. ............................................................................................... 117 Figura 5.6 O interface mostra o horario .................................................................................. 118

ndice de Tabelas
Tabela 3.1- Descrio Estruturada do Caso de Uso Controlo Acesso ...................................... 15 Tabela 3.2- Descrio Estruturada do Caso de Uso Gerir Salas .............................................. 16 Tabela 3.3- Descrio Estruturada do Caso de Uso Gerir Tipos Curso................................... 17 Tabela 3.4- Descrio Estruturada do Caso de Uso Gerir Tipo Aulas ................................. 18 Tabela 3.5- Descrio Estruturada do Caso de Uso Gerir Motivos ..................................... 19 Tabela 3.6- Descrio Estruturada do Caso de Uso Gerir Utilizadores ................................... 20 Tabela 3.7 - Descrio Estruturada do Caso de Uso Gerir Departamentos ............................. 21 Tabela 3.8 - Descrio Estruturada do Caso de Uso Gerir Professores ................................... 22 Tabela 3.9 - Descrio Estruturada do Caso de Uso Gerir Indisponibilidades ........................ 23 Tabela 3.10 - Descrio Estruturada do Caso de Uso Gerir Cursos ........................................ 24 Tabela 3.11- Descrio Estruturada do Caso de Uso Gerir Disciplinas .................................. 25 Tabela 3.12- Descrio Estruturada do Caso de Uso Gerir Componentes .............................. 26 Tabela 3.13- Descrio Estruturada do Caso de Uso Gerir Componentes Ano Lectivo ......... 27 Tabela 3.14- Descrio Estruturada do Caso de Uso Gerir Componentes Leccionadas ......... 28 Tabela 3.15- Descrio Estruturada do Caso de Uso Gerir Horarios ..................................... 29 Tabela 3.16- Descrio Estruturada do Caso de Uso Aplicar Novo Ano Lectivo ................... 30 Tabela 3.17- Descrio da Classe Departamentos ................................................................... 50 Tabela 3.18- Tabela identificadora das operaes da Classe Departamentos.......................... 51 Tabela 3.19- Descrio da Classe Professores......................................................................... 52 Tabela 3.20- Tabela identificadora das operaes da Classe Professores ............................... 53 Tabela 3.21- Descrio da Classe Indisponibilidades ............................................................. 54 Tabela 3.22- Tabela identificadora das operaes da Classe indisponibilidades .................... 54 Tabela 3.23- Descrio da Classe Tipo_Utilizador ................................................................. 55 Tabela 3.24 - Tabela identificadora das operaes da Classe Tipo_Utilizador ....................... 55 Tabela 3.25- Descrio da classe Utilizadores ........................................................................ 56 Tabela 3.26- Tabela identificadora das operaes da classe Utilizadores ............................... 57 Tabela 3.27- Descrio da classe Tabelas ............................................................................... 58 Tabela 3.28- Tabela identificadora das operaes da classe Tabelas ...................................... 58 Tabela 3.29- Descrio da classe Motivos............................................................................... 59 Tabela 3.30- Tabela identificadora das operaes da classe Motivos ..................................... 59 Tabela 3.31- Descrio da classe Disciplinas .......................................................................... 60 Tabela 3.32- Tabela identificadora das operaes da classe Disciplinas ................................. 61 Tabela 3.33- Descrio da classe Cursos ................................................................................. 62 Tabela 3.34- Tabela identificadora das operaes da classe Cursos ....................................... 63 Tabela 3.35- Descrio da classe ................................................................................................ 64 Tabela 3.36- Tabela identificadora das operaes da classe Tipos_Curso .............................. 64 Tabela 3.37- Descrio da classe Componentes ...................................................................... 65 Tabela 3.38- Tabela identificadora das operaes da classe Componentes ............................. 66 Tabela 3.39- Descrio da classe Tipo_Aulas ......................................................................... 67 Tabela 3.40- Tabela identificadora das operaes da classe Tipo_Aulas ................................ 67 Tabela 3.41- Descrio da classe Componentes_Ano_Lectivo ............................................... 68 Tabela 3.42- Tabela identificadora das operaes da classe Componentes_Ano_Lectivo ....... 70 Tabela 3.43- Descrio da classe Salas ................................................................................... 71 Tabela 3.44- Tabela identificadora das operaes da classe Salas .......................................... 71

Tabela 3.45- Descrio da classe Componentes_Disciplinas .................................................. 72 Tabela 3.46- Tabela identificadora das operaes da classe Componentes_Disciplina .......... 73 Tabela 3.47- Descrio da classe Prof_Comp_Disc ................................................................ 74 Tabela 3.48- Tabela identificadora das operaes da classe Prof_Comp_Disc ....................... 74 Tabela 3.49- Descrio da classe Horrio ............................................................................... 75 Tabela 3.50- Tabela identificadora das operaes da classe Horrio ...................................... 76 Tabela 3.51- Descrio da classe Dias_Semana ...................................................................... 76 Tabela 3.52- Tabela identificadora das operaes da classe Dias_Semana ............................. 77 Tabela 3.53 Descrio da tabela Tempo .................................................................................. 78 Tabela 3.54- Tabela identificadora das operaes da tabela Tempo ....................................... 79 Tabela 3.55- Descrio da classe Ano_Lectivo ....................................................................... 79 Tabela 3.56- Tabela identificadora das operaes da classe Ano_Lectivo.............................. 80 Tabela 4.1- Descrio de funes existentes numa JavaBean ................................................... 93

Horrios MN 2007/2008

1. Introduo
Este relatrio tem como objectivo retratar os passos, as metodologias tomadas para o desenvolvimento do projecto do 2 semestre do 5 ano do curso de Engenharia Informtica 2 ciclo, para a concluso da Licenciatura. O projecto proposto pelo Professor Jos Fonseca, visa a integrao de bases de dados idnticas criadas em Sistemas Gerais de Bases de Dados diferentes. A segunda parte visa o desenvolvimento de uma aplicao para a criao de horrios inicialmente pensada para a sua utilizao na Escola Superior de Tecnologia e Gesto como ferramenta de apoio. Mais tarde, decidiu-se pela criao de uma aplicao Web optando pelo desenvolvimento por camadas. Esta aplicao tem uma funo A criao de horrios uma actividade semestral que engloba uma enorme pacincia, responsabilidade e claro est uma enorme complexidade. Este facto deve-se, aos nmeros factores associados:

O nmero de professores, juntamente com as suas indisponibilidades. O nmero de disciplinas e dos tipos de aulas. disposio das salas. s mudanas associadas criao de um novo ano lectivo.

Tendo em conta estes factores o presente projecto visa o desenvolvimento de uma aplicao Web, atravs da programao em camadas. Esta aplicao, permitir, a gesto de bases de dados idnticas criadas diferentes que so neste caso, o Oracle 10g R2 e o SQL Server 2005 da Microsoft. Esta aplicao Web desenvolvida nos mbitos de diferentes reas, tais como Engenharia de Software, Sistemas Distribudos e Paradigmas da Programao.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
2. Tecnologias

2.1.

UML

A Unified Modeling Language (UML) uma linguagem grfica padro para a elaborao da estrutura de projectos complexos de software. Pode ser empregada para visualizar, especificar, construir e documentar software. Em 1997, a verso a UML v1.1 foi adoptada pela Object Management Group (OMG) (Nogueira 2005) e desde ento tornou-se o padro para a modelao de software atravs da unificao da linguagem de modelagem de objectos de 3 mtodos lderes do mercado da altura: Booch, Object Modeling Technique (OMT) e Objected-Oriented Software Engineering (OOSE). A linguagem UML uma linguagem simples, expressiva e de grande abrangncia. A arquitectura de um sistema pode ser descrita atravs de 5 vises interligadas. Cada viso constitui uma projeco na organizao e estrutura do sistema, focando determinado aspecto desse sistema. A UML uma linguagem muito expressiva, abrangendo todas as vises necessrias ao desenvolvimento e implantao de sistemas: Viso de caso de uso: foca os comportamentos de um sistema com transparncia tendo em conta todos os agentes envolvidos, como por exemplo: gerentes, analistas, programadores e utilizadores finais. Viso de Projecto: foca a estrutura de um sistema atravs da definio de classes, colaboraes e as interfaces do sistema. Viso de Processo: foca as questes de desempenho e escalabilidade do sistema. Viso de Implementao: foca os elementos fsicos (programas, bibliotecas, banco de dados) para a montagem do sistema. Viso de Implantao: foca a topologia do hardware, liberao e instalao do sistema.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Um diagrama a apresentao grfica de um conjunto de elementos para permitir a visualizao de um sistema sob diferentes perspectivas. A linguagem UML disponibiliza diagramas especficos para a modelagem visual das 5 vises: Diagrama de Casos de Uso: para ilustrar as interaces que envolvem a utilizao do sistema. Diagrama de Classes: para ilustrar a estrutura lgica Diagrama de Objectos: para ilustrar os objectos e a interactividade entre os mesmos Diagrama de Estados: para ilustrar comportamentos Diagrama de Componentes: para ilustrar a estrutura fsica do software. Diagrama de Interaces: composto de diagrama de sequncia e diagrama de colaborao. Utilizado para ilustrar comportamentos Diagrama de Actividades: para ilustrar o fluxo dos eventos. Em um sentido mais amplo, um modelo uma simplificao da realidade. A modelao visual com UML torna a arquitectura do sistema mais compreensvel, permitindo a avaliao em dimenses mltiplas. A UML permite avaliar a aderncia e a qualidade da arquitectura atravs de iteraes precoces com os utilizadores quando os defeitos podem ser corrigidos antes de comprometer o sucesso do projecto. Utilizando uma linguagem de modelagem padro como a UML, os diferentes membros envolvidos podem comunicar as suas decises sem que haja ambiguidades ou diferenas de interpretao. A modelagem visual permite que os detalhes do processo sejam expostos ou escondidos conforme a necessidade, auxiliando o desenvolvimento de projectos complexos e extensos. Alm disto, a UML ajuda a manter a consistncia entre a especificao e a implementao atravs do desenvolvimento iterativo e do planeamento de testes em cada iterao.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 2.2. Modelo MVC

O modelo Model-View-Controller (MVC) ou programao e 3 camadas hoje o mais utilizado para a produo de aplicaes Web Esta arquitectura permite aos desenvolvedores criar componentes reutilizveis que podem interagir umas com as outras directa ou alternadamente. Como dito anteriormente, este modelo constitudo por 3 partes: Model (Modelo): onde a informao armazenada e onde as operaes relacionadas se encontram. Neste caso, associadas as bases de dados e programao PL\SQL e T-SQL. Controller (Controlador ou Mediador): onde so efectuadas as aces dos utilizadores e o processamento de informao que normalmente possam provocar mudanas na camada Model. Esta camada a responsvel pela comunicao entre a camada Model e a camada View servindo de mediador. Neste caso, esta camada est implementada atravs de classes Java. View (Interface, Ver): A interface que permite ao utilizador interagir com o sistema e proceder alteraes que podero ser introduzidas, ou no, atravs do Controller. Neste caso apresentado atravs de Java Server Pages (JSP).

Figura 2.1-Esquema de Modelo MVC (cocoalab 2007)

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

2.3.

Java

Em 1991, na Sun Microsystems, foi iniciado o Green Project, o bero do Java, uma linguagem de programao orientada a objetos. Os mentores do projecto eram Patrick Naughton, Mike Sheridan, e James Gosling. Os mesmos acreditavam que os computadores e os electrodomsticos iriam convergir de forma a se tornarem na nova tecnologia do lar. Para provar a viabilidade desta ideia, 13 pessoas trabalharam arduamente durante 18 meses. Em 1992, em Sand Hill Road em Menlo Park foi apresentada uma verso de demonstrao do StarSeven (*7), um controlo remoto activado atravs de toque, com uma interface grfica, onde o ajudante virtual nela existente se denominava Duke o qual mais tarde se tornou na mascote hoje amplamente conhecido no mundo Java. Este controlo remoto, o *7, estava programado com uma linguagem de programao com o nome Oak, criada e baptizada por James Gosling, para que o dispositivo pudesse interagir com diversos dispositivos e aplicaes. Tendo em conta que a empresa queria pr tal inveno a produzir resultados, rapidamente. A equipa criadora do *7 criou uma demonstrao com o nome MovieWood, que iria permitir controlar equipamento multimdia tal como televisores e vdeo por demanda. Infelizmente, a empresas que disponibilizavam servios de televiso por cabo no podiam viabilizar a produo da ideia, uma vez que no entendiam o conceito. Hoje em dia, esta o melhor servio que pode ser encontrado junto das empresas multimdia. Entratanto, surgiu uma rede interactiva, cujo crescimento alastrava muito mais rapidamente do que a equipa do *7 conseguia vender a ideia. De forma, a recuperar do seu fracasso a Sun incumbiu Gosling de adaptar a linguagem Oak a referida rede interactiva conhecida como Internet. Em 1995, nasceu a linguagem Java, esta surgiu da evoluo de Oak. Esta evoluo permitia ao Java estar presente tanto na Internet como em diversos dispositivos heterogneos. Uma vez difundida na Internet, o crescimento da linguagem Java foi totalmente estrondoso.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Desde seu lanamento, em Maio de 1995, a plataforma Java foi adoptada mais rapidamente do que qualquer outra linguagem de programao na histria da computao. Em 2004 Java atingiu a marca de 3 milhes de desenvolvedores em todo mundo a linguagem Java continuou crescendo e hoje uma referncia no mercado de desenvolvimento de software. Java tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execuo presente em Web browsers, mainframes, Sistemas Operativos, celulares, palmtops e cartes inteligentes, entre outros.

2.4.

JavaServer Pages

JavaServer Pages (JSP) a tecnologia Java que permite o desenvolvimento dinmico de documentos HTML, XML entre outros em reposta a um pedido de um cliente Web. Esta tecnologia permite que cdigo em Java seja inserido em cdigo esttico. As funcionalidades e livrarias internas de JSP podem ser activadas ao serem invocadas como se fossem tags XML e funcionam como se fossem extenses de HTML ou XML. Estas tambm podem ser usadas como extenses de capacidades de um servidor Web. O compilador JSP compila as pginas JSP em Java Servlets, podendo estes ser ainda compilados no compilador Java ou ainda serem transformados em bytecode para serem mais facilmente interpretados.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 2.5. Javascript

A linguagem JavaScript foi originalmente criada por Brendan Eich da Netscape com o nome de cdigo Mocha, mais tarde veio a chamar-se LiveScript e finalmente JavaScript. O nome deu inicialmente muita controvrsia visto que a sua semelhana com a designao Java dava a entender que esta linguagem era uma verso alterada da linguagem com esse nome. Em Dezembro de 1995 surgiu a 2.0B3 introduzida no navegador Web Netscape, em 1996 a Microsoft lana uma verso de Javascript com o nome JScript. Nesse mesmo ano, 1996, a Nestcape enviou a linguagem Javascript para a Ecma International[3] para que fosse ento tornada num standard..

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 2.6. SQL

A Structured Query Language, (SQL), (Wikipedia 2008) uma linguagem de pesquisa declarativa para bases de dados. Muitas das caractersticas originais do SQL foram inspiradas na lgebra relacional. O SQL foi desenvolvido originalmente no incio dos anos 70 nos laboratrios da IBM em San Jose, dentro do projecto System R. Considerada uma linguagem padro pela simplicidade, por ser declarativa e pela forma clara como apresenta os dados. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vrios "dialectos" desenvolvidos por outros produtores. Essa expanso levou necessidade de ser criado e adaptado um padro para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987. A linguagem SQL baseia-se em expresses: DML - Linguagem de Manipulao de Dados: - Primeiro h os elementos da DML (Data Manipulation Language ). A DML um subconjunto da linguagem usada para selecionar, inserir, atualizar e apagar dados. DDL - Linguagem de Definio de Dados: - O segundo grupo a DDL (Data Definition Language). Uma DDL permite ao usurio definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extenses proprietrias no DDL. DCL - Linguagem de Controle de Dados: - O terceiro grupo o DCL (Data Control Language). DCL controla os aspectos de autorizao de dados e licenas de usurios para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. DTL - Linguagem de Transaco de Dados: - O grupo DTL Transaction Language) permite o controlo de transaces. Apesar de ser uma linguagem padro, os diferentes dialectos omitem caractersticas bsicas de apoio para Standard SQL, tais como a data ou a hora do tipos de dados, preferindo variaes prprias. Como resultado, SQL raramente podem ser transferidos entre sistemas de banco de dados sem modificaes. (Data

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
H vrias razes para essa falta de portabilidade entre sistemas de banco de dados: A complexidade e dimenso do padro SQL significa que a maior parte das bases de dados no se aplicar a todo o tipo. Como normas no especificas, comportamento do banco de dados em diversos domnios importantes (por exemplo, ndices, arquivos de armazenamento...), deixando aos que implementam o banco de dados para decidir o seu comportamento. O padro SQL especifica precisamente que a sintaxe conforme um sistema de base de dados deve executar. No entanto, o padro da especificao da semntica da linguagem construda, de menor definio, levando a reas de ambiguidade.

2.7.

Oracle e PL/SQL

O Oracle um SGBD (Sistema de Gesto de Bases de Dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade da qual outras companhias no se tinham percebido, quando encontrou uma descrio de um prottipo funcional de um banco de dados relacional e descobriu que nenhuma empresa tinha se empenhado em comercializar essa tecnologia. Ellison e os co-fundadores da Oracle Corporation, Bob Miner e Ed Oates, perceberam que havia um tremendo potencial de negcios no modelo de banco de dados relacional tornando assim a maior empresa de software empresarial do mundo. O Oracle 9i foi pioneiro no suporte ao modelo web. O Oracle 10g, mais recente, se baseia na tecnologia de grid. Recentemente fora lanado o Oracle 11g que veio com melhorias em relao ao Oracle 10g. Alm da base de dados, a Oracle desenvolve uma sute de desenvolvimento chamada de Oracle Developer Suite, utilizada na construo de programas de computador que interagem com a sua base de dados. A Oracle tambm criou a linguagem de programao PL/SQL, utilizada no processamento de transaes.

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
PL/SQL (acrnimo para a expresso inglesa Procedural Language/Structured Query Language) uma extenso da linguagem padro SQL para o SGBD Oracle da Oracle Corporation. uma Linguagem Procedural da Oracle, estendida da SQL. Permite que a manipulao de dados seja includa em unidades de programas. Blocos de PL/SQL so passados e processados por uma PL/SQL Engine que pode estar dentro de uma ferramenta Oracle ou do Server. A PL/SQL Engine filtra os comandos SQL e manda individualmente o comando SQL para o SQL Statement Executor no Oracle Server, que processa o PL/SQL com os dados retornados do Server. a linguagem bsica para criar programas complexos e poderosos, no s no banco de dados, mas tambm em diversas ferramentas Oracle. Antes de 1991 a nica forma de usar construes procedurais com o SQL era usar PRO*C. Foi onde as instrues SQL do Oracle foram embutidas em cdigo C. O cdigo C era pr-compilado para converter as instrues SQL em chamadas de bibliotecas.

10

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 2.8. Microsoft SQL Server e T-SQL

A base do cdigo do Microsoft SQL Server (anterior verso7.0) foi originalmente includa no Sybase SQL Server e foi assim que a Microsoft entrou no mercado das bases de dados entrando em competio directa com a Oracle, a IBM e mais tarde a prpria Sybase. A verso 1.0 foi criada em parceria com a Sybase em 1989 para OS/2 e era muito semelhante ao Sybase SQL Server 3.0 para o UNIX. Mais tarde, a verso 6.0 foi a primeira verso aps a separao da Sybase e da Microsoft uma vez que tinham objectivos de mercado diferentes. Depois disto, a Microsoft adquiriu todas as verses do SQL Server e a Sybase mudou o nome do produto para Adaptive Server Enterprise. Quando estas empresas se reuniram para a criao do Microsoft SQL Server decidiram criar tambm uma linguagem qual deram o nome Transact-SQL (T-SQL).

11

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3. Descrio do Sistema
Em plena era informao, o mais valioso isso mesmo, a informao. Tendo isto em conta, as estruturas e os sistemas que esto associados ao tratamento, armazenamento e criao de informao sofrem um planeamento mais pormenorizado. Atravs da anlise de sistema, permitido aos desenvolvedores estudar a manipulao de informao das suas por parte das suas criaes e de como a interaco das mesmas com os utilizadores ocorrem. Neste caso, atravs de UML, ser realizada a anlise funcional da aplicao desenvolvida, especificando e documentando o sistema de informao a ser criado. Neste caso foram utilizados os seguintes diagramas: diagramas de casos de uso, diagramas de sequncia, diagramas de actividades e diagramas de classes. Esta parte da criao da aplicao foi criada em conjunto com o aluno Manuel Vieira.

3.1.

Casos de uso

Os diagramas de Casos de Uso identificam os servios, utilizadores e fronteiras de um sistema. Assim, facilmente podero identificar-se os servios associados aos diferentes utilizadores bem como os seus processos inerentes. Devido elevada quantidade de casos de usos, os mesmos sero ilustrados em dois diagramas. O primeiro diagrama representar os casos de uso responsveis pela gesto e no segundo sero agrupados os casos de uso com vista s consultas. Ambos do-nos uma viso geral do sistema das funcionalidades da aplicao e das situaes em que feito o controlo de acesso aos utilizadores, onde os utilizadores so separados em dois tipos: Administrador e Funcionrio, tendo o utilizador do tipo funcionrios o acesso limitado a algumas funcionalidades da aplicao.

12

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 3.1 Diagrama Casos de Uso Gesto

13

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 3.2 Diagrama Casos de Uso Consultas Na figura 3.2 encontram-se ilustrados os casos de uso responsveis pelas consultas e impresso de resultado

3.1.1. Descrio estruturada dos Casos de Uso Sero agora descritos de forma estruturada todos os casos de uso visveis nos diagramas de casos de uso (figura 3.1 e 3.2). Em todos os casos de uso descrita uma pr - condio que indica o que deve existir inicialmente para que o cenrio descrito seja seguido com sucesso. Na descrio de um caso de uso pressupe-se que esto reunidas todas as condies que garantem que tudo corre bem, sendo um cenrio onde no surgem problemas, denominado como o cenrio principal. [3] Na tabela 3.1 est descrito o caso de uso Controlo de Acesso, responsvel por atribuir o acesso aos utilizadores registados.

14

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.1- Descrio Estruturada do Caso de Uso Controlo Acesso Controlo Acesso Objectivo Descrio Entrar no Sistema 1 - O Caso de Uso comea quando o utilizador insere o seu username e pasword. 2 - verificado se o utilizador existe na BD e qual o seu tipo. 3- verificado o estado do utilizador.

15

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.2- Descrio Estruturada do Caso de Uso Gerir Salas

Gerir Salas Objectivos Pr - Condio Inserir, modificar e eliminar Salas. O Utilizador ter que ser vlido no sistema e do tipo Administrador

Descrio

1 - O Caso de Uso comea quando o utilizador escolhe a opo Salas dentro do ecr Outros. 2 - Aceder rea Salas para inserir, modificar ou eliminar uma sala. 3 - Sero listadas as salas existentes. 4 - Caso o utilizador tente inserir uma nova sala ou modificar uma sala existente com um nome de sala j existente o sistema avisa a impossibilidade de efectuar essa operao. 5 - A sala tem um estado associado a ela, sendo ele disponvel ou indisponvel e obrigatrio. Pode ser alterado a qualquer altura. 6- As operaes so confirmadas nos botes Nova, Modificar e Eliminar. 7 - Caso o utilizador tente eliminar uma sala que esteja atribuda a uma componente no ano lectivo o sistema avisa a impossibilidade de efectuar essa operao.

Casos de uso relacionados

Include: Controlo de Acesso.

16

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.3- Descrio Estruturada do Caso de Uso Gerir Tipos Curso Gerir Tipos Curso Objectivos Pr Condio Inserir, modificar e eliminar tipos de curso. O Utilizador ter que ser vlido no sistema e do tipo Administrador 1. O Caso de Uso comea quando o utilizador escolhe a opo Descrio Tipos de Curso dentro do ecr Menu Principal. 2. Aceder rea Tipos de Curso para inserir, modificar ou eliminar um tipo de curso. 3. So listados numa os tipos de curso existentes. 4. Caso o utilizador tente inserir um novo tipo de curso ou modificar um tipo de curso existente com um nome de tipo de curso j existente o sistema avisa a impossibilidade de efectuar essa operao. 5. As operaes so confirmadas nos botes Novo, Alterar e Eliminar. 6. Caso o utilizador tente eliminar um tipo de curso que esteja atribudo a um curso o sistema avisa a impossibilidade de efectuar essa operao. Casos de uso relacionados Include: Controlo de Acesso.

17

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.4- Descrio Estruturada do Caso de Uso Gerir Tipo Aulas Gerir Tipo Aulas Objectivos Pr - Condio Inserir, modificar e eliminar tipos de aulas. O Utilizador ter que ser vlido no sistema e do tipo Administrador. Descrio 1 - O Caso de Uso comea quando o utilizador escolhe a opo Tipos de Aulas dentro do Ecr Menu Principal. 2 - Aceder rea Tipo Aulas para inserir, modificar ou eliminar um tipo de aulas. 3 - Sero listados os tipos de aulas existentes 4 - Caso o utilizador tente inserir um novo tipo de aula ou modificar um tipo de aula existente com um nome j existente o sistema avisa a impossibilidade de efectuar essa operao 5 - As operaes so confirmadas nos botes Novo, Modificar e Eliminar. 6 - Caso o utilizador tente eliminar um tipo de aula que esteja atribudo a uma componente o sistema avisa a impossibilidade de efectuar essa operao. Casos de uso relacionados Include: Controlo de Acesso

18

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.5- Descrio Estruturada do Caso de Uso Gerir Motivos Gerir Motivos Objectivos Pr - Condio Inserir, modificar e eliminar motivos. O Utilizador ter que ser vlido no sistema e do tipo Administrador. Descrio 1 - O Caso de Uso comea quando o utilizador escolhe a opo Motivos dentro do ecr Outros. 2 - Aceder rea Motivos para inserir, modificar ou eliminar um motivo. 3 - Sero listados os motivos existentes, organizados pela tabela a que pertencem 4 - Todos os motivos tm de estar associados a uma tabela. 5 - As tabelas existentes sero exibidas numa ComboBox. 6 - Caso o utilizador tente inserir um novo motivo ou modificar um motivo existente com um nome j existente e associado a uma mesma tabela o sistema avisa a impossibilidade de efectuar essa operao. 7 - As operaes so confirmadas nos botes Novo, Modificar e Eliminar. 8 - Caso o utilizador tente eliminar um motivo que esteja associado a algum registo o sistema avisa a

impossibilidade de efectuar essa operao. Casos de uso relacionados Include: Controlo de Acesso.

19

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.6- Descrio Estruturada do Caso de Uso Gerir Utilizadores Gerir Utilizadores Objectivos Pr - Condio Inserir, modificar e eliminar utilizadores. O Utilizador ter que ser vlido no sistema e do tipo Administrador

Descrio

1 - O Caso de Uso comea quando o utilizador escolhe a opo Utilizadores no Menu Proncipal. 2 - Aceder rea Utilizadores para Inserir, Modificar ou Eliminar um Utilizador. 3 - Sero listados os utilizadores existentes. 4 - Os utilizadores podero de dois tipos: Administrador e Funcionrio. 5 - O tipo de utilizador ser exibido numa Combobox. 6 - Caso o Administrador tente inserir um novo utilizador ou modificar um utilizador existente com um username j existente o sistema avisa a impossibilidade de efectuar essa operao. 7 - o Administrador que atribui a password ao utilizador, 8- As operaes so confirmadas nos botes Novo, Modificar e Eliminar.

Casos de uso relacionados

Include: Controlo de Acesso.

20

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.7 - Descrio Estruturada do Caso de Uso Gerir Departamentos Gerir Departamentos Objectivos Pr - Condio Descrio Inserir, modificar e eliminar departamentos. O Utilizador ter que ser vlido no sistema. 1. O Caso de Uso comea quando o utilizador escolhe a opo Departamentos e Professores. 2. Aceder rea Departamentos para inserir, modificar ou eliminar um Departamento. 3. Sero listados numa os departamentos existentes. 4. Caso o utilizador tente inserir um novo departamento ou modificar um departamento existente com um nome j existente o sistema avisa da impossibilidade de efectuar essa operao. 5. 5 - Quando um departamento inserido ou modificado guardado o ID do utilizador que efectuou a ultima alterao. 6. Quando um departamento inserido, guardada a data do sistema como data de insero. 7. Quando um departamento modificado, guardada a data do sistema como data da ltima alterao. 8. Caso o utilizador tente eliminar um departamento que tenha associado a ele professores, o sistema avisa a impossibilidade de efectuar essa operao. 9. As operaes so confirmadas nos botes Novo, Modificar e Eliminar. Casos de uso relacionados Include: Controlo de Acesso.

21

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.8 - Descrio Estruturada do Caso de Uso Gerir Professores Gerir Professores Objectivos Pr - Condio Descrio: Inserir, modificar e eliminar professores. O Utilizador ter que ser vlido no sistema. 1. O Caso de Uso comea quando o utilizador escolhe a opo Professores no Menu Principal para inserir, modificar ou eliminar um Professor 2. Sero listados os professores existentes 3. Os professores podero ser listados pelo nome e pelo departamento ao qual pertencem 4. Cada professor ter de estar associado a um departamento 5. Os departamentos sero exibidos numa Combo - box 6. Quando um professor e inserido ou modificado guardado o ID do utilizador que efectuou a ultima alterao 7. Quando um professor inserido, guardada a data do sistema como data de insero 8. Quando um professor modificado, guardada a data do sistema como data da ltima alterao 9. As operaes so confirmadas nos botes Inserir, Modificar e Elimina

Casos de uso relacionados.

Include: Controlo de Acesso

22

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.9 - Descrio Estruturada do Caso de Uso Gerir Indisponibilidades Gerir Indisponibilidades Objectivos Pr - Condio Descrio Inserir, modificar e eliminar indisponibilidades O Utilizador ter que ser vlido no sistema 1 - O Caso de Uso comea quando o utilizador escolhe a opo Departamentos e Professores 2 - Dentro da rea Professores aceder rea indisponibilidades para inserir, modificar ou eliminar uma indisponibilidade . 3 - Ser listadas todas indisponibilidades 4 - Todas a alteraes sero removidas sempre que um novo ano lectivo seja criado Casos de uso relacionados Include: Controlo de Acesso

23

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.10 - Descrio Estruturada do Caso de Uso Gerir Cursos Gerir Cursos Objectivos Pr - Condio Descrio Inserir, modificar e eliminar cursos O Utilizador ter que ser vlido no sistema 1 - O Caso de Uso comea quando o utilizador escolhe a opo Cursos e Disciplinas 2 - Aceder rea Cursos para inserir, modificar ou liminar um Curso 3 - Sero listados numa os cursos existentes 4 - Os cursos podero ser listados por nome e por tipo de curso 5 - Todos os cursos tero de ter um tipo de curso associado 6 - Os tipos de curso sero exibidos numa combobox 7 - Caso o utilizador tente eliminar um Curso ao qual estejam associadas disciplinas em uso o sistema avisa a impossibilidade de efectuar essa operao 8 - Quando um curso inserido ou modificado guardado o ID do utilizador que efectuou a ultima alterao 9- Quando um curso inserido, guardada a data do sistema como data de insero 10 - Quando um curso modificado, guardada a data do sistema como data da ltima alterao Casos de uso relacionados Include: Controlo de Acesso

24

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.11- Descrio Estruturada do Caso de Uso Gerir Disciplinas Gerir Disciplinas Objectivos Pr - Condio Descrio Inserir, modificar e eliminar disciplinas O Utilizador ter que ser vlido no sistema 1. O Caso de Uso comea quando o utilizador escolhe a opo Disciplinas no Menu Principal para inserir, modificar ou eliminar uma Disciplina 2. Sero listadas as disciplinas existentes 3. As disciplinas podero ser listadas por nome, curso ou semestre 4. As disciplinas tm que estar associadas a um curso 5. Os cursos sero exibidos numa Combo - box 6. Caso o utilizador tente eliminar uma disciplina qual esteja associada uma componente no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operao 7. Quando uma disciplina e inserido ou modificado guardado o ID do utilizador que efectuou a ultima alterao 8. Quando uma disciplina inserida, guardada a data do sistema como data de insero 9. Quando uma disciplina modificada, guardada a data do sistema como data da ltima alterao Casos de uso relacionados Include: Controlo de Acesso

25

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.12- Descrio Estruturada do Caso de Uso Gerir Componentes Gerir Componentes Objectivos Inserir, modificar e eliminar componentes

Pr - Condio O Utilizador ter que ser vlido no sistema Descrio 1. O Caso de Uso comea quando o utilizador escolhe a opo Componentes no Menu Principal para inserir, modificar ou eliminar uma Componente 2. Sero listadas as componentes respectivas a cada disciplina 3. Caso o utilizador tente eliminar uma componente qual esteja associada uma componente no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operao 4. Quando uma componente inserida ou modificada guardado o ID do utilizador que efectuou a ltima alterao 5. Quando uma componente inserida, guardada a data do sistema como data de insero 6. Quando uma componente modificada, guardada a data do sistema como data da ltima alterao Casos de uso relacionados Include: Controlo de Acesso

26

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.13- Descrio Estruturada do Caso de Uso Gerir Componentes Ano Lectivo Gerir Componentes Ano Lectivo Objectivos Pr - Condio Descrio Inserir, modificar e eliminar componentes ano lectivo O Utilizador ter que ser vlido no sistema 1. O Caso de Uso comea quando o utilizador escolhe a opo Componentes no Ano Lectivo 2. Aceder rea Componentes Ano Lectivo para inserir, modificar ou eliminar uma Componente_AL 3. Sero listadas numa datagridview todas as componentes existentes no ano lectivo corrente 4. Cada componente_al ter que possuir uma sala principal e uma prioridade para essa sala bem como uma sala alternativa 5. Caso o utilizador pretenda inserir uma nova componente_al j existente o sistema avisa a impossibilidade de efectuar essa operao 6. Caso o utilizador pretenda eliminar uma componente no ano lectivo que esteja associada a um horrios em uso no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operao 7. Quando uma componente_al inserida ou modificada guardado o ID do utilizador que efectuou a ultima alterao 8. Quando uma componente_al inserida, guardada a data do sistema como data de insero 9. Quando uma componente_al modificada, guardada a data do sistema como data da ltima alterao 10. As componentes_al so criadas no corrente ano lectivo Casos de uso relacionados Include: Controlo de Acesso

27

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.14- Descrio Estruturada do Caso de Uso Gerir Componentes Leccionadas Gerir Componentes Leccionadas Objectivos Pr - Condio Inserir, modificar e eliminar componentes leccionadas O Utilizador ter que ser vlido no sistema Para atribuir uma componente a um professor, tm de existir o professor e a componente no ano lectivo Para eliminar ou modificar determinada componente leccionada esta ter de existir Descrio 1. O Caso de Uso comea quando o utilizador escolhe a opo atribuir professor componente 2. Aceder rea atribuir professor componente para inserir, modificar ou eliminar um professor atribudo a uma componente 3. 4. As componentes leccionadas so listadas As turmas criadas para cada componente leccionada no podem exceder o nmero de turmas da componente no ano lectivo 5. O nmero de horas da componente leccionada tem que ser igual ao nmero de horas da componente 6. Caso o utilizador pretenda eliminar uma componente leccionada que esteja associada a um horrio em uso no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operao 7. Quando uma componente leccionada inserida ou modificado guardado o ID do utilizador que efectuou a ultima alterao 8. Quando uma componente leccionada inserida, guardada a data do sistema como data de insero 9. Quando uma componente leccionada modificada, guardada a data do sistema como data da ltima alterao Casos de uso relacionados Include: Controlo de Acesso

28

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.15- Descrio Estruturada do Caso de Uso Gerir Horarios Gerir Horrios Objectivos Pr - Condio Descrio Inserir, modificar e eliminar horrios O Utilizador tem que ser vlido no sistema 1. O Caso de Uso comea quando o utilizador escolhe a opo Horarios 2. Aceder rea Horrios para inserir, modificar, eliminar ou visualizar um horrio 3. Aps a seleco do curso, ano, semestre e turma, preencher o horrio seguindo as indicaes do sistema se o utilizador assim o desejar 4. 5. Os Horrios podem ser impressos O Utilizador pode alterar a sala predestinada da componente, especificada na altura de criao da componente no ano lectivo por uma outra. Casos de uso relacionados Include: Controlo de Acesso

29

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.16- Descrio Estruturada do Caso de Uso Aplicar Novo Ano Lectivo Aplicar Novo Ano Lectivo Objectivo Pr - Condio Descrio Inserir um novo ano lectivo O Utilizador ter que ser vlido no sistema e do tipo Administrador 1 - O Caso de Uso comea quando o utilizador escolhe a opo Novo Ano Lectivo 2 - Aceder rea Novo Ano Lectivo para inserir um novo ano lectivo 3 - A criao de um novo ano lectivo automtica, no tendo o utilizador possibilidade de definir o ano lectivo a criar

Casos de uso relacionados

Include: Controlo de Acesso

30

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 3.2. Diagramas de Sequncia

Os diagramas de sequncia documentam as interaces que esto por destras das funcionalidades dos casos de usos. Assim ilustrado, estruturadamente, o desenvolvimento dos casos de uso atravs de interaces entre objectos. No ser exibido o diagrama de sequncia para o caso de uso Controlo Acesso uma vez que efectuado em todos os diagramas de sequncia. Sero ento demonstrados os diagramas de sequncia para os casos de uso dos diagramas apresentados anteriormente neste captulo.

3.2.1. Diagrama de Sequncia - Aplica Novo Ano Lectivo

Figura 3.3- Diagrama de Sequncia Aplica Novo Ano Lectivo

31

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.2. Diagrama de Sequncia - Gerir Utilizadores

Figura 3.4- Diagrama de Sequncia Gerir utilizadores

32

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.3. Diagrama de Sequncia - Gerir Salas

Figura 3.5- Diagrama de Sequncia Gerir Salas Os diagramas de sequncia para os casos de uso Gerir Tipos Cursoe Gerir Tipo Aulas, no sero exibidos, pois so idnticos ao diagrama da figura 3.5.

33

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.4. Diagrama de Sequncia - Gerir Motivos

Figura 3.6- Diagrama de Sequncia Gerir Motivos

34

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.5. Diagrama de Sequncia - Gerir Departamentos

Figura 3.7- Diagrama de Sequncia Gerir Departamentos

Os diagramas de sequncia para o caso de uso Gerir Professores e Gerir Curso no sero exibidos, pois so semelhantes ao da figura 3.7.

35

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.6. Diagrama de Sequncia - Gerir Disciplinas

Figura 3.8- Diagrama de Sequncia Gerir Disciplinas

36

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.7. Diagrama de Sequncia - Gerir Componentes

Figura 3.9- Diagrama de Sequncia Gerir Componentes

37

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.8. Diagrama de Sequncia - Gerir Componentes No Ano Lectivo

Figura 3.10 - Diagrama de Sequncia Gerir Componentes No Ano Lectivo

38

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.9. Diagrama de Sequncia - Gerir Componentes leccionadas

Figura 3.11 - Diagrama de Sequncia Gerir Componentes Leccionadas

39

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.10. Diagrama de Sequncia - Gerir Horrios

Figura 3.12 - Diagrama de Sequncia Gerir Horrios

40

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.11. Diagrama de Sequncia - Gerir Indisponibilidades

Figura 3.13 - Diagrama de Sequncia Gerir Indisponibilidades

41

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.12. Diagrama de Sequncia - Consultar Horrios

Figura 3.14 - Diagrama de Sequncia Consulta Horrios

42

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.2.13. Diagrama de Sequncia - Criar Horrios

Interf ace
: Administrador : Funcionrio
Introduzir Credenciais

Dia_Semana

Horas

Ano_Lectivo

Curso

Ano

Semestre

Turma

Componente s_Disciplina

Horarios

Valida Utilizador Vlido Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Insere

Valida

Figura 3.15 - Diagrama de Sequncia Insere Horrios

43

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 3.3. Diagramas de Actividade

Estes diagramas de actividade descrevem as actividades de sistema que ocorrem paralelamente envolvendo assim diversos casos de uso. Como para alguns dos casos de uso, a descrio estruturada e os diagramas de sequncia no foram totalmente elucidativos, foram construdos diagramas de actividade numa tentativa de clarificar as aces que ocorrem. Os Diagramas de Actividades que sero apresentados de seguida so: Gerir Horrios e Gerir Componentes Leccionadas.

44

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.3.1. Diagrama de Actividades - Gerir Horrios

Figura 3.16 - Diagrama de Actividades Gerir Horrios

45

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.3.2. Diagrama de Actividades - Gerir Componentes Leccionadas

Figura 3.17- Diagrama de Actividades Gerir Componentes Leccionadas

46

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 3.4. Diagrama de Classes

A criao de um modelo de classes resulta de um processo de abstraco atravs do qual se identificam os objectos (entidades e conceitos) relevantes no contexto que se pretende modelar e se procuram descrever caractersticas comuns em termos de propriedades (atributos) e de comportamentos (operaes). A essa descrio genrica d-se o nome de classe [3]. O Diagrama de Classes uma das tcnicas mais utilizadas no desenvolvimento orientado a objectos, pois define a estrutura do sistema a desenvolver. Em baixo na figura 3.18, esta representado o diagrama de classes do MN Horrios. Nas classes, por baixo dos atributos, so definidas as operaes utilizadas pelas classes. As operaes so a representao lgica do comportamento de um objecto, consistindo em aces efectuadas por ou sobre um objecto.

47

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Departamentos ID_Departamento ID_Uti l i zador ID_Moti vo Nome_Departamento Data_Ini ci o_Departamento Data_U_Al teracao_Departamento Data_Fi m_Departamento Obs_Departamento numeri c(6) numeri c(6) numeri c(6) varchar(150) dateti me dateti me dateti me varchar(500) <pk> <fk2> <fk1> Di as_Semana Indi sponi bi l i dades ID_Professor ID_T empo ID_Di a_Semana ID_Ano_Lecti vo Moti vo_Indi sponi bi l i dade T IPO_USER ID_T EMPO_F numeri c(6) numeri c(6) numeri c(6) numeri c(6) varchar(500) numeri c(3) numeri c(6) <pk,fk1> <pk,fk2> <pk,fk3> <pk,fk4> FK_INDISPON_NO_DIA_DIAS_SEM FK_INDISPON_NO_T EMPO_T EMPO T empo ID_T empo Descri cao_T empo Hora_Ini ci o_T empo Mi nutos_Ini ci o_T empo Hora_Fi m_T empo Mi nutos_Fi m_T empo numeri c(6) varchar(30) numeri c(2) numeri c(2) numeri c(2) numeri c(2) <pk> ID_Di a_Semana Descri cao_Di a_Semana numeri c(6) varchar(30) <pk>

FK_PROFESSO_PERT ENCEM_DEPART AM

T abel as Professores ID_Professor ID_Uti l i zador ID_Categori a_Professor ID_Moti vo ID_Departamento Nome_Professor Seccao_Professor Horas_1_Semestre Horas_2_Semestre Medi a_Anual _Horas Data_Ini ci o_Professor Data_U_Al teracao_Professor Data_Fi m_Professor Obs_Professor numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) varchar(300) varchar(100) numeri c(4) numeri c(4) fl oat(4) dateti me dateti me dateti me varchar(500) <pk> <fk4> <fk3> <fk2> <fk1> ID_T abel a Descri cao_T abel a FK_INDISPON_INDISPONI_PROFESSO numeri c varchar(500) <pk>

FK_INDISPON_NO_ANO_LE_ANO_LECT

FK_HORARIOS_T EM_DIA_DIAS_SEM

FK_PROFESSO_INDENT IFI_CAT EGORI

Ano_Lecti vo FK_MOT IVOS_T IPO_T ABELAS ID_Ano_Lecti vo Descri cao_Ano_Lecti vo Estado_Ano_Lecti vo numeri c(6) <pk> FK_HORARIOS_T EM_T EMPO_T EMPO varchar(30) varchar(10)

Categori as_Professores ID_Categori a_Professor Descri cao_Categori a_Professor numeri c(6) varchar(50) <pk>

FK_DEPART AM_ALT ERACAO_MOT IVOS FK_PROFESSO_ALT ERACAO_MOT IVOS

Moti vos

ID_Moti vo ID_T abel a FK_CURSOS_ALT ERACAO_MOT IVOS FK_DEPART AM_DEP_DEF_P_UTcao_Moti vo Descri ILIZAD FK_DISCIPLI_ALT ERACAO_MOT IVOS

FK_COMPONEN_ALT ERAR_C_MOT IVOS FK_COMPONEN_ALT ERAR_C_MOT IVOS numeri c(6) <pk> FK_PROF_COM_PERT ENCEN_ANO_LECT numeri c <fk> varchar(500) FK_HORARIOS_ALT ERACAO_MOT IVOS FK_PROF_COM_ALT ERACAO_MOT IVOS Prof_Comp_Di s

Horari os ID_T empo ID_Di a_Semana ID_PCD ID_Componente_AL ID_Uti l i zador ID_Moti vo Descri cao_Horari o Data_Ini ci o_Horari o Data_U_Al teracao_Horari o Data_Fi m_Horari o Obs_Horari os T IPO_USER CURSO ANO SEMEST RE T URMA SALA ANO_LECT IVO numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) varchar(30) dateti me dateti me dateti me varchar(500) numeri c(3) numeri c numeri c numeri c numeri c numeri c numeri c <pk,fk1> <pk,fk2> <pk,fk3> <pk,fk3> <fk5> <fk4>

FK_PROF_COM_LECIONA_PROFESSO

T i po_Uti l i zador FK_DISCIPLI_REGENT E_PROFESSO FK_PROFESSO_PROF_DEF__UT ILIZAD ID_T i po_Uti l i zador Descri cao_T i po_Uti l i zador numeri c(6) varchar(30) <pk>

ID_PCD ID_Ano_Lecti vo ID_Uti l i zador ID_Professor ID_Moti vo Data_Ini ci o_PCD Data_U_Al teracao_PCD Data_Fi m_PCD

numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) dateti me dateti me dateti me

<pk> <fk1> <fk4> <fk2> <fk3>

FK_UT ILIZAD_T EM_UM_T I_T IPO_UT I

FK_HORARIOS_HOR_DEF_P_UT ILIZAD FK_PROF_COM_PROF_DIS__UT ILIZAD

FK_COMPONEN_RESPONSAV_PROF_COM Uti l i zadores Di sci pl i nas ID_Di sci pl i na ID_Professor ID_Uti l i zador ID_Curso ID_Moti vo Nome_Di sci pl i na Ano_Di sci pl i na Semestre_Di sci pl i na Num_Horas_Semanai s_Di sci pl i na Data_Ini ci o_Di sci pl i na Data_U_Al teracao_Di sci pl i na Data_Fi m_Di sci pl i na Obs_Di sci pl i na numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) varchar(200) numeri c(2) numeri c(2) numeri c(2) dateti me dateti me dateti me varchar(500) <pk> <fk1> <fk4> <fk2> <fk3> ID_Uti l i zador ID_T i po_Uti l i zador Username Password Nome_Uti l i zador Apel i do_Uti l i zador numeri c(6) numeri c(6) varchar(30) RAW2000 varchar(30) varchar(30) <pk> <fk>

FK_DISCIPLI_DIS_DEF_P_UT ILIZAD

Componentes_Di sci pl i nas ID_PCD ID_Componente_AL Num_Horas_CD Num_T urma_CD Duracao_Aul as_CD Data_Ini ci o_CD Data_U_Al teracao_CD Data_Fi m_CD numeri c(6) numeri c(6) numeri c(2) numeri c(2) numeri c dateti me dateti me dateti me <pk,fk1> <pk,fk2> FK_HORARIOS_COMP_DIS_COMPONEN

FK_CURSOS_CUR_DEF_P_UT ILIZAD FK_COMPONEN_UT ILIZADA_COMPONEN

Componentes_Ano_Lecti vo ID_Componente_AL ID_Ano_Lecti vo ID_Moti vo ID_Componente ID_Uti l i zador ID_Sal a Num_T urmas_Componente_AL Pri ori dade_Sal a Sal a_Al ternati va Software_Necessari o Num_Max_Al unos Data_Ini ci o_CAL Data_U_Al teracao_CAL Data_Fi m_CAL numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(2) numeri c(1) numeri c(3) varchar(500) numeri c(4) dateti me dateti me dateti me <pk> <fk4> <fk5> <fk2> <fk3> <fk1> FK_COMPONEN_LECCIONAD_SALAS Sal as ID_Sal a Descri cao_Sal a Estado_Sal a numeri c(6) varchar(30) varchar(12) <pk>

Cursos FK_DISCIPLI_REFERENT E_CURSOS ID_Curso ID_Moti vo ID_Uti l i zador ID_T i po_Curso Nome_Curso Num_Anos_Curso Ini ci ai s_Curso Data_Ini ci o_Curso Data_U_Al teracao_Curso Data_Fi m_Curso Obs_Curso numeri c(6) <pk> numeri c(6) FK_COMPONEN_COM_DEF_P_UT ILIZAD <fk1> numeri c(6) <fk3> numeri c(6) <fk2> varchar(100) numeri c(1) varchar(5) dateti me FK_COMPONEN_CAL_DEF_P_UT ILIZAD dateti me dateti me varchar(500)

FK_COMPONEN_RELAT IVA_ANO_LECT

FK_CURSOS_DIVIDE_SE_T IPOS_CU

T i pos_Curso ID_T i po_Curso Descri cao_T i po_Curso numeri c(6) varchar(50) <pk>

Componentes FK_COMPONEN_T EM_DISCIPLI ID_Componente ID_T i po_Aul a ID_Di sci pl i na ID_Uti l i zador ID_Moti vo Num_Horas_Componente Data_Ini ci o_Componente Data_U_Al teracao_Componente Data_Fi m_Componente Obs_Componente numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(6) numeri c(2) dateti me dateti me dateti me varchar(500) <pk> <fk2> <fk1> <fk4> <fk3> FK_COMPONEN_EM_USO_COMPONEN FK_COMPONEN_MODULO_CO_T IPO_AUL

T i po_Aul as ID_T i po_Aul a Descri cao_T i po_Aul a numeri c(6) varchar(100) <pk>

Figura 3.18- Diagrama de Classes

48

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1. Descrio das Classes Aqui sero descritas, permenorizadamente as classes que constituem as tabelas existentes nas bases de dados pretendendo-se ento especificar todos os atributos associados as mesmas. A descrio de cada classe ir focar quatro pontos: 1. Atributos: Caracterstica que as classes possuem e que representada por um valor de dados; 1. Descrio: Descrio do atributo 2. Tipo de Dados: Os atributos tambm podem ser identificados pelos seus tipo de dados, que caracteriza a informao que ir conter; 3. Operaes: So a representao lgica do comportamento de uma classe, consistindo em aces efectuadas por ou sobre uma classe.

3.4.1.1.

Classe Departamentos

Esta classe ir permitir armazenar os dados relacionados com os departamentos existentes. Todos os docentes Normalmente, os departamentos agrupam docentes que leccionam as mesmas ou reas semelhantes. Este facto aplica-se mesmo aos docentes convidados a leccionar na instituio. De seguida apresenta-se a descrio da classe Departamentos encontram-se em baixo, na tabela. na tabela possvel observar-se as suas operaes.

49

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.17- Descrio da Classe Departamentos

Atributo ID_Departamento

Descrio Cdigo que identifica a tabela Departamento (Chave Primria).

Tipo de Dados Number (10)

Nome_Departamento

Campo identificador do nome do Departamento.

Varchar2 (150)

Data_Inicio_Departamento

Data de criao do departamento.

Date

Data_U_Alteracao_Departamento Data da ltima alterao efectuada no registo. Data_Fim_Departamento Data em que o departamento deixou de ser utilizado e passou a fazer parte do histrico. Obs_Departamento Campo onde podem ser guardadas diversas informaes sobre um determinado departamento.

Date

Date

Varchar2 (500)

50

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.18- Tabela identificadora das operaes da Classe Departamentos

Operao INSERE_DEPARTAMENTOS

Descrio Operao responsvel pela insero de um novo departamento.

ALTERA_DEPARTAMENTOS

Operao responsvel pela modificao de um departamento existente.

DELPROCEDURE

Operao que permite a eliminao de um determinado departamento.

CHECKIDDEPT

Operao que permite seleccionar todos os departamentos.

OBTEM_DEPARTAMENTOS

Operao que permite obter dados de um determinado Departamento.

OBTEM_DEPARTAMENTOS2

Operao que permite obter dados de todos os departamentos.

51

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.2. Classe Professores Nesta tabela armazenada toda a informao sobre os decentes que actuam e/ou actuaram na instituio. Nas tabelas seguintes podem observar-se a descrio detalhada da classe Professores e as suas operaes. Tabela 3.19- Descrio da Classe Professores Atributo ID_Professor Descrio Cdigo que identifica um Professor (Chave Primria). Nome_Professor Campo identificador do nome do professor. Descricao_Categoria Campo que identifica a categoria do professor. Seccao_Professor Campo que identifica a seco que o professor pertence, isto se, existirem seces dentro de um departamento. Horas_1_Semestre Campo que identifica o nmero de horas que o professor lecciona por semana no 1 Semestre. Horas_2_Semestre Campo que identifica o nmero de horas que o professor lecciona por semana no 2 Semestre. Media_Anual Media anual do nmero de horas leccionadas por semana. Data_Inicio_Professor Data de criao do Date Float (4) Number (2) Number (2) Varchar (100) Varchar (100) Varchar2 (300) Tipo de Dados Number (10)

52

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
professor. Data_U_Alteracao_ Professor Data da ltima alterao efectuada no registo. Data_Fim_ Professor Data em que o professor deixou de ser utilizado e passou a fazer parte do histrico. Obs_Professor Campo onde podem ser guardadas variadas informaes sobre um determinado professor. Varchar2 (500) Date Date

Tabela 3.20- Tabela identificadora das operaes da Classe Professores

Operao

Descrio

INSERE_PROFESSOR

Operao responsvel pela insero de um novo professor.

ALTERA_PROFESSOR

Operao responsvel pela modificao de um professor existente.

DELPROCEDURE

Operao que permite a eliminao de um determinado professor.

OBTEM_PROFESSOR

Operao que permite seleccionar todos os atributos de um determinado professor.

OBTEM_PROFESSOR2

Operao que permite seleccionar todos os professores.

53

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.3. Classe Indisponibilidades Na classe Indisponibilidades so armazenadas as indisponibilidades de cada professor para o ano lectivo corrente. As indisponibilidades de cada professor resumem-se a determinadas alturas em que um determinado docente no tem a disponibilidade para leccionar uma aula. As indisponibilidades podem englobar quaisquer razes que definam a situao acima descrita. Tabela 3.21- Descrio da Classe Indisponibilidades Atributo Motivo_Indisponibilidad e Descrio Campo onde ser armazenado o motivo da indisponibilidade do professor para determinado tempo e dia da semana. Id_tempo_f Campo onde ser armazenado o final da indisponibilidade para aquele dia Numeric (6,0) Tipo de Dados Varchar2 (500)

Tabela 3.22- Tabela identificadora das operaes da Classe indisponibilidades Operao INSERE_INDISPONIBILIDADE Descrio Operao responsvel pela insero de uma nova indisponibilidade do professor. DELPROCEDURE Operao responsvel pela eliminao de uma ou mais indisponibilidades de um determinado professor. OBTEM_ INDISPONIBILIDADE Operao responsvel por mostrar as indisponibilidades de um determinado professor. CHECK_ID_ INDISPONIBILIDADE Operao responsvel por verificar se o numero de indisponibilidades existentes.

54

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.4. Classe Tipo_Utilizador Esta classe uma classe esttica, pois os seus dados no podero ser alterados. Ir armazenar os tipos de utilizador existentes no sistema (Administrador e Funcionrio).

Tabela 3.23- Descrio da Classe Tipo_Utilizador Atributo ID_Tipo_Utilizador Descrio Campo que identifica um tipo de utilizador (chave primria). Descricao_Tipo_Utilizador Campo que identifica o nome do tipo de utilizador. Varchar2 (30) Tipo de Dados Number (1)

Tabela 3.24 - Tabela identificadora das operaes da Classe Tipo_Utilizador Operao OBTEM_TIPO_UTILIZADOR Descrio Operao responsvel por seleccionar os dados de um determinado utilizador OBTEM_TIPO_UTILIZADOR2 Operao responsvel por seleccionar todos os tipos de utilizador permitindo assim a sua visualizao.

55

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.5. Classe Utilizadores A Classe Utilizadores contm todos os utilizadores da aplicao. A classe no serve apenas para validar a entrada de utilizadores na aplicao, serve tambm para associar os utilizadores s inseres, alteraes e eliminaes que efectuam aos registos da BD.

Tabela 3.25- Descrio da classe Utilizadores Atributo Descrio Tipo de Dados ID_Utilizador Campo que identifica um utilizador (chave primria). Username Campo que identifica o Username do utilizador. Password Campo que identifica a Password do utilizador. Nome_Utilizador Campo que identifica o Nome do utilizador. Apelido_Utilizador Campo que identifica o Apelido do utilizador. Estado_Utilizador Campo que identifica o estado do utilizador (0 para novo utilizador, 1 para utilizador em uso, 2 para utilizador desactivado). Varchar2 (30) Varchar2 (30) Number (1) Number (10) Varchar2 (30) Numeric

56

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.26- Tabela identificadora das operaes da classe Utilizadores Operao INSERE_UTILIZADOR Descrio Operao responsvel pela insero de novos utilizadores na BD. ALTERA_UTILIZADOR Operao responsvel pela modificao dos dados de um utilizador. OBTEM_UTILIZADOR Operao responsvel pela seleco de um determinado utilizador.

57

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.6. Classe Tabelas Esta mais uma classe onde a manipulao de dados no possvel. Armazena os tipos de dados existentes aos quais se aplicam os motivos existentes para justificar a sua eliminao. Tabela 3.27- Descrio da classe Tabelas Atributo ID_Tabela Descrio Campo que identifica uma tabela (chave primria). Descrio_Tabela Campo que identifica o nome da Tabela. Varchar2 (500) Tipo de Dados Number (1)

Tabela 3.28- Tabela identificadora das operaes da classe Tabelas Operao OBTEM_TABELAS Descrio Operao responsvel pela seleco de determinada tabela OBTEM_TABELAS2 Operao responsvel pela seleco de todas as tabelas existentes, s quais se aplicam motivos.

58

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.7. Classe Motivos Esta classe armazena dados referentes a motivos que levam a determinados registos a entrarem no histrico do sistema. Tabela 3.29- Descrio da classe Motivos Atributo ID_Motivo Descrio Campo que identifica um motivo (chave primria). Descrio_Motivo Campo utilizado para descrever um Motivo. Varchar2 (500) Tipo de Dados Number (10)

Tabela 3.30- Tabela identificadora das operaes da classe Motivos Operao INSERE_MOTIVOS Descrio Operao responsvel pela insero de novos motivos. ALTERA_MOTIVOS Operao responsvel pela alterao de motivos j existentes. DELPROCEDURE Operao responsvel pela eliminao de motivos j existentes. OBTEM_MOTIVOS Operao responsvel pela seleco De um determinado motivo. OBTEM_MOTIVOS2 Operao responsvel pela seleco dos motivos existentes.

59

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.8. Classe Disciplinas Os dados nesta tabela so de alta importncia uma vez que traduzem a informao das disciplinas leccionadas na aplicao. Atravs destes dados podero obter-se informaes para a distribuio das componentes que lhes esto associadas. Podero existir disciplinas com o mesmo nome, no entanto, essa situao no se poder verificar dentro do mesmo curso. Tabela 3.31- Descrio da classe Disciplinas Atributo ID_Disciplina Descrio Campo que identifica uma Disciplina (Chave Primria). Nome_Disciplina Campo que identifica o nome de uma Disciplina. Ano_Disciplina Campo que identifica o ano de uma Disciplina. Semestre_Disciplina Campo que identifica o semestre de uma Disciplina. Num_Horas_Semanais_Di sciplina Campo que identifica o nmero Number (2) de horas semanais de uma disciplina. Data_Inicio_Disciplina Campo que identifica a data de insero da Disciplina. Data_U_Alteracao_Discipl Campo que identifica a data da ina Data_Fim_Disciplina ultima alterao na disciplina. Campo que identifica a data de fim de utilizao de uma disciplina. Obs_Disciplina Campo onde podem ser guardadas diversas informaes sobre uma determinada Disciplina. Varchar2 (500) Date Date Date Varchar2 (1) Number (2) Varchar2 (200) Tipo de Dados Number (10)

60

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.32- Tabela identificadora das operaes da classe Disciplinas Operao INSERE_DISCIPLINAS Descrio Operao responsvel pela insero de novas disciplinas. ALTERA_DISCIPLINAS Operao responsvel pela alterao de disciplinas j existentes. CHECKID_DISCI Operao responsvel pela verificao do nmero total de disciplinas. DELPROCEDURE Operao responsvel pela eliminao de uma disciplina. OBTEM_DISCIPLINA Operao responsvel pela seleco dos atributos de uma determinada disciplina. OBTEM_DISCIPLINAS2 Operao responsvel pela seleco das disciplinas existentes. OBTEM_DISCIPLINA_PROF Operao responsvel pela seleco dos atributos das disciplinas associadas a um determinado docente OBTEM_DISCIPLINA_DEPT Operao responsvel pela seleco dos atributos das disciplinas associadas a um determinado departamento. OBTEM_DISCIPLINA_SEME Operao responsvel pela seleco dos atributos das disciplinas associadas a um determinado semestre OBTEM_DISCIPLINA_CURS Operao responsvel pela seleco dos atributos das disciplinas associadas a um determinado curso

61

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.9. Classe Cursos Na classe Cursos guardada toda a informao relativa aos cursos existentes na instituio. Tambm esta classe armazena dados importantes. Tabela 3.33- Descrio da classe Cursos Atributo ID_Curso Descrio Campo que identifica um curso (Chave Primria). Nome_Curso Campo que identifica o nome de um curso. Num_Anos_Curso Campo que identifica o nmero de anos de um curso. Iniciais_Curso Campo que representa a iniciais do curso. Data_Inicio_Curso Campo que identifica a data de insero do curso. Data_U_Alteracao_ Curso Data_Fim_Curso Campo que identifica a data da ultima Date alterao no curso. Campo que identifica a data de fim de Date utilizao do curso. Obs_Curso Campo onde podem ser guardadas variadas informaes sobre um determinado Curso. Varchar2 (500) Date Varchar2 (5) Number (1) Varchar2 (100) Tipo de Dados Number (10)

62

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.34- Tabela identificadora das operaes da classe Cursos Operao INSERE_CURSO Descrio Operao responsvel pela insero de um novo curso. ALTERA_CURSO Operao responsvel pela alterao de um curso j existente. CHECKID_CURSO Operao responsvel pela verificao do numero total de cursos DELPROCEDURE Operao responsvel pela eliminao de um curso. OBTEM_CURSO Operao responsvel pela seleco de um determinado curso OBTEM_CURSO2 Operao responsvel pela seleco dos cursos existentes.

63

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.9. Classe Tipos_Curso Nesta classe sero armazenados os dados referentes aos tipo de curso leccionados na instituio

Tabela 3.35- Descrio da classe Tipos_Curso Atributo ID_Tipo_Curso Descrio Campo responsvel pela identificao de um tipo de curso (chave primria). Descricao_Tipo_Curso Campo responsvel pela descrio de um tipo de curso. Varchar2 (50) Tipo de Dados Number (10)

Tabela 3.36- Tabela identificadora das operaes da classe Tipos_Curso Operao INSERE_TIPO_CURSO Descrio Operao responsvel pela insero de novo tipo de curso. ALTERA_TIPO_CURSO Operao responsvel pela alterao de um tipo de curso j existente. DELPROCEDURE Operao responsvel pela eliminao de um tipo de curso. OBTEM_ TIPO_CURSO Operao responsvel pela seleco um determinado tipo de curso. OBTEM_ TIPO_CURSO2 Operao responsvel pela seleco dos tipos de curso existentes.

64

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.10. Classe Componentes As aulas so leccionadas atravs de componentes que so nada mais e nada menos que tipos de aula. Esta classe alberga a informao relacionada com a disposio das componentes das disciplinas Tabela 3.37- Descrio da classe Componentes Atributo ID_Componente Descrio Campo responsvel pela identificao de uma componente (chave primria). Num_Horas_Componente Campo responsvel pelo nmero de horas semanais de uma determinada componente. Data_Incio_Componente Data de criao da componente. Data_U_Alteracao_Comp onente Data da ltima alterao de Date uma determinada componente. Data_Fim_Componente Data de eliminao de um determinada componente. Obs_Componente Campo onde podem ser guardadas variadas informaes sobre uma determinada componente. VarChar2 (500) Date Date Number (2) Tipo de Dados Number (10)

65

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.38- Tabela identificadora das operaes da classe Componentes Operao INSERE_COMPONENTES Descrio Operao responsvel pela insero de uma nova componente ALTERA_COMPONENTES Operao responsvel pela alterao de uma componente OBTEM_COMPONENTES Operao responsvel pela visualizao das componentes existentes CHECKID_COMPONENTES Operao responsvel pela seleco do nmero total de componentes OBTEM_COMPONENTES2 Operao responsvel pela seleco do total das componentes. DELPROCEDURE Operao responsvel pela eliminao de uma determinada componente

3.4.1.12.

Classe Tipo_Aulas

As aulas so leccionadas em diversos tipos de aula, por exemplo: aulas tericas , praticas ou ainda terico-prticas. pertinente ento que os dados referentes a estes tipos de aula sejam armazenados para que as componentes das aulas possam ser documentadas convenientemente.

66

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.39- Descrio da classe Tipo_Aulas Atributo ID_Tipo_Aula Descrio Campo responsvel pela identificao de um tipo de Aula (chave primria). Descricao_Tipo_Aula Campo responsvel pela descrio de um tipo de aula. Varchar2 (100) Tipo de Dados Number (10)

Tabela 3.40- Tabela identificadora das operaes da classe Tipo_Aulas Operao INSERE_TIPO_AULAS Descrio Operao responsvel pela insero de novo tipo de aula. ALTERA_TIPO_AULAS Operao responsvel pela alterao de um tipo de aula j existente. CHECK_TIPO_AULAS Operao responsvel pelo calculo do total de tipos de aula existentes. DELPROCEDURE Operao responsvel pela eliminao de um tipo de aula. OBTEM_TIPO_AULAS Operao responsvel pela seleco dos tipos de aulas existentes. OBTEM_TIPO_AULAS2 Operao responsvel pela seleco do total de tipos de aula existenes

67

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

3.4.1.13.

Classe Componentes_Ano_lectivo

Esta classe importante porque especifica dados importantes das componentes que sofrem actualizaes constantes. Os dados nesta classe passam por atributos tais como: sala em que leccionada, nmero de alunos, contedos ou nmero de horas semanais. A sua actualizao efectuada todos os anos lectivos e mesmo durante os mesmos e uma das bases para a criao de horrios de cada ano lectivo. Tabela 3.41- Descrio da classe Componentes_Ano_Lectivo Atributo ID_Componente_AL Descrio Campo responsvel pela identificao de uma componente no ano lectivo (chave primria). Num_Turmas_Compon ente_AL Campo responsvel pelo nmero turmas que uma componente no lectivo possui. Prioridade_Sala Campo responsvel pela prioridade que um sala tem para uma determinada componente (valores entre 1 e 3). Sala_Alternativa Componente que identifica a sala alternativa caso a principal no possa ser utilizada. Material_Necessario Componente que identifica o material necessrio para as aulas de Varchar2 (500) Varchar2 (30) Number (1) Number (2) Tipo de Dados Number (10)

68

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
uma determinada componente. Num_Max_Alunos Componente que identifica o nmero mximo de alunos que uma aula deve ter. Data_Inicio_CAL Data de insero da componente no ano lectivo. Data_U_Alteracao_CA L Data da ltima alterao na componente no ano lectivo. Data_Fim_CAL Data de eliminao da componente no ano lectivo. Date Date Date Number (3)

69

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.42- Tabela identificadora das operaes da classe Componentes_Ano_Lectivo Operao INSERE_COMPONENTE_AL Descrio Operao responsvel pela insero de nova componente no ano lectivo. ALTERA_COMPONENTE_AL Operao responsvel pela alterao de uma componente no ano lectivo. DELPROCEDURE Operao responsvel pela eliminao de uma componente no ano lectivo. CHECKID_COMPONENTE_AL Operao responsvel pelo calculo do total das componentes existentes. OBTEM_COMPONENTE_AL Operao responsvel pela seleco dos dados de uma componente no ano lectivo. OBTEM _COMPONENTE_AL2 Operao responsvel pela visualizao das componentes existentes.

3.4.1.14.

Classe Salas

importante salientar que as aulas so leccionadas em salas de aula ou laboratrios. Assim, os dados referentes a todas as salas de aula sero armazenados nesta classe. Esses dados sero a sala em questo e o seu estado senod o Operacional o considerado para as salas de aula onde podem ser dadas aulas, Reservado para as salas que so ocupadas por outras entidades e Em manuteno para as salas que se encontram em manuteno alargadae no podem ser utilizadas de momento.

70

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.43- Descrio da classe Salas Atributo ID_Sala Descrio Campo que identifica uma Sala (Chave Primria). Descricao_Sala Campo que identifica o nome de uma sala. Estado_Sala Campo que identifica o estado de uma sala (disponvel ou indisponvel). Varchar2 (12) Varchar2 (30) Tipo de Dados Number (10)

Tabela 3.44- Tabela identificadora das operaes da classe Salas Operao INSERE_SALA ALTERA_SALA DELPROCEDURE CHECKID_SALA OBTEM_SALA Descrio Operao responsvel pela insero de nova sala. Operao responsvel pela alterao de uma sala. Operao responsvel pela eliminao de uma sala. Operao responsvel pelo calculo do total Operao responsvel por obter dados de uma determinada sala OBTEM_SALA2 Operao responsvel por obter os dados de todas as salas existentes.

71

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.15. Classe Componentes_Disciplinas Esta classe rene todos os dados referentes s disciplinas que so leccionadas a cada turma bem como quem as lecciona e a durao das aulas. Esta a fonte de onde a classe horrios ir retirar os dados referentes os aulas. A chave primaria desta classe ser constituda pelos atributos estrangeiros: ID_Componente_AL de Componentes_Ano_Lectivo e ID_PCD de Componentes_Disciplina Tabela 3.45- Descrio da classe Componentes_Disciplinas Atributo Num_Horas_CD Descrio Campo que identifica o nmero de horas da componente. Num_Turma_CD Campo que identifica o nmero da turma da componente. Duracao_Aulas_C D Campo que identifica a durao estipulada das aulas. Data_Inicio_CD Data em que a componente foi criada. Data_U_Alteracao _CD Data_Fim_CD Data da ltima alterao efectuada ao registo. Data em que o registo foi eliminado. Date Date Date Number (4) Number (2) Tipo de Dados Number (2)

72

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.46- Tabela identificadora das operaes da classe Componentes_Disciplina Operao INSERE_COPMDIS Descrio Operao responsvel pela insero de uma nova componente. ALTERA_COPMDIS Operao responsvel pela alterao de uma componente existente. DELPROCEDURE Operao responsvel pela eliminao de uma componente. CHECKID_COPMDIS Operao responsvel pelo calculo do total de registos existentes na classe OBTEM_COPMDIS Operao responsvel por listar os dados de um determinado registo OBTEM _COPMDIS2 Operao responsvel por todos os registos da classe.

3.4.1.16.

Classe Prof_Com_Dis

Tendo em conta que a classe anterior pode ser considerada a mais importante no que toca insero de dados na classe Horrios. Esta sem duvida uma das classes mais importantes para a insero de dados na classe anterior. Uma vez que dois docentes podem dar aulas, a mesma componente e a mesma disciplina, conveniente ento diferenciar ambos os casos como casos singulares.

73

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.47- Descrio da classe Prof_Comp_Disc Atributo ID_PCD Descrio Campo que identifica o Prof_Comp_Dis (chave primria). Data_Inicio_PCD Data em que o registo foi criado. Data_U_Alteracao_PC D Data_Fim_PCD Data da ltima alterao efectuada ao registo. Data em que o registo foi eliminado. Date Date Date Tipo de Dados Number (10)

Tabela 3.48- Tabela identificadora das operaes da classe Prof_Comp_Disc Operao INSERE_PROF_COMP_DIS Descrio Operao responsvel pela insero de um novo Prof_Comp_Disc. ALTERA_PROF_COMP_DIS Operao responsvel pela alterao de um Prof_Comp_Disc. DELPROCEDURE Operao responsvel pela eliminao de um Prof_Comp_Disc. CHECKID_PROF_COMP_DIS Operao responsvel pelo calculo do total de registos existentes OBTEM_PROF_COMP_DIS Operao responsvel pela obteno de dados de um determinado registo OBTEM_PROF_COMP_DIS2 Operao responsvel pela obteno de todos os registos

74

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
3.4.1.17. Classe Horarios Pode dizer-se que esta classe o centro da aplicao para a qual todas a outras tm significado directo ou indirecto. A base de dados foi ento desenhada tendo esta classe como a mais importante e para a mesma que a aplicao se desenvolve.

Tabela 3.49- Descrio da classe Horrio Atributo Curso Descrio Campo que identifica o curso do horrio. Ano Campo que identifica o ano do horrio. Semestre Campo que identifica o semestre do horrio. Turma Campo que identifica a turma do horrio. Sala Campo que identifica a sala de aula onde a aula ser leccionada Ano_Lectivo Campo que identifica o ano lectivo aplicado Number (18) Number (18) Number (2) Number (1) Number (2) Tipo de Dados Number (2)

75

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.50- Tabela identificadora das operaes da classe Horrio Operao INSERE_HORARIO Descrio Operao responsvel pela insero de um novo horrio. ALTERA_HORARIO Operao responsvel pela alterao de um horrio. DELPROCEDURE Operao responsvel pela eliminao de um horrio. OBTEM _HORARIO Operao responsvel pela visualizao de um horrio.

3.4.1.18.

Classe Dias_Semana

Mais uma classe esttica cujos dados so inalterveis servindo de apoio insero de dados em outras diferentes classes. estatica uma vez que a semana tem apenas 7 dias

Tabela 3.51- Descrio da classe Dias_Semana Atributo ID_Dias_Semana Descrio Campo que identifica um dia da semana (chave primria). Descrio_Dia_Semana Campo que define a descrio de um dia da semana. Varchar2 (30) Tipo de Dados Number (1)

76

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.52- Tabela identificadora das operaes da classe Dias_Semana Operao OBTEM_DIA_SEMANA Descrio Operao responsvel pela obteno de um determinado dia da semana OBTEM_DIA_SEMANA2 Operao responsvel pela seleco e obteno de todos os registos

3.4.1.19 Classe Tempo Esta classe esttica armazena registos de horas as quais so atribudas as aulas. Cada intervalo tem uma durao de 50 minutos que vo das 08h30m at as 23h20m.

77

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Tabela 3.53 Descrio da tabela Tempo

Atributo ID_Tempo

Descrio Campo que identifica um tempo (chave primria).

Tipo de Dados Number (2)

Descrio_Tempo

Campo que define a descrio de um tempo.

Varchar2 (30)

Hora_Inicio_Tempo

Campo que define a hora de incio de um tempo.

Number (2)

Minutos_Inicio_Temp o

Campo que define os minutos de incio de um tempo.

Number (2)

Hora_Fim_Tempo

Campo que define a hora de fim de um tempo.

Number (2)

Minutos_Fim_Tempo

Campo que define os minutos de fim de um tempo.

Number (2)

78

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Tabela 3.54- Tabela identificadora das operaes da tabela Tempo Operao OBTEM_ID_TEMPO Descrio Operao responsvel pela seleco de um determinado registo OBTEM_ID_TEMPO2 Operao responsvel pela obteno de todos os dados existentes.

3.4.1.20.

Classe Ano_lectivo

Como muita informao no sistema depende do ano lectivo onde utilizada deixando de ter sentido quando se muda de ano lectivo. Uns dos exemplos bvios so mesmo os horrios que mudam todos os anos e as informaes associadas perdem o sentido. Tabela 3.55- Descrio da classe Ano_Lectivo Atributo ID_Ano_Lectivo Descrio Campo que identifica um ano lectivo (chave primria). Descrio_Ano_Le Campo que define a descrio de um ctivo Estado_Ano_Lecti vo ano lectivo. Campo que define o estado de um ano lectivo, em uso ou no. Number (1) Varchar2 (30) Tipo de Dados Number (6)

79

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Tabela 3.56- Tabela identificadora das operaes da classe Ano_Lectivo Operao INSERE_ANO_LECTIVO Descrio Operao responsvel pela insero de um novo ano lectivo. ALTERA_ANO_LECTIVO Operao responsvel pela alterao do ano lectivo actual. DELPROCEDURE Operao responsvel pela eliminao do ano lectivo actual OBTEM_ANO_LECTIVO Operao responsvel pela obteno de um determinado ano lectivo OBTEM_ANO_LECTIVO2 Operao responsvel pela obteno de todos os registos existentes.

80

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
4. Implementao
Aqui termina a anlise do sistema, a qual foi executada em conjunto com o aluno Manuel Vieira. Comea ento a implementao do sistema que ser documentada o mais clara possvel. Assim a implementao ser documentada seguindo os passos:

81

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.1. Modelo de Entidades Relacional (ER)


Departamentos ID_Departamento <pi> N6 <M> Nome_Departamento VA150 <M> Data_Inicio_Departamento D <M> Data_U_Alteracao_Departamento D Data_Fim_Departamento D Obs_Departamento VA500 Identifier_1 <pi> Pertencem No_Dia Dias_Semana ID_Dia_Semana <pi> N6 <M> Descricao_Dia_Semana VA30 Identifier_1 <pi> Indisponibilidades Motivo_Indisponibilidade VA500 <M> TIPO_USER N3 ID_TEMPO_F N6 No_Tempo Tempo No_Ano_Lectivo ID_Tempo <pi> N6 <M> Descricao_Tempo VA30 <M> Hora_Inicio_Tempo N2 <M> Minutos_Inicio_Tempo N2 <M> Hora_Fim_Tempo N2 <M> Minutos_Fim_Tempo N2 <M> Identifier_1 <pi> Tem_Dia Ano_Lectivo Alteracao_Departamento Tipo ID_Ano_Lectivo <pi> N6 <M> Descricao_Ano_Lectivo VA30 <M> Estado_Ano_Lectivo VA10 <M> Identifier_1 <pi> Tem_Tempos

Tabelas ID_Tabela <pi> N <M> Descricao_Tabela VA500 <M> Indentificado Professores ID_Professor <pi> N6 <M> Nome_Professor VA300 <M> Seccao_Professor VA100 Horas_1_Semestre N4 Horas_2_Semestre N4 Media_Anual_Horas F4 Data_Inicio_Professor D <M> Data_U_Alteracao_Professor D Data_Fim_Professor D Obs_Professor VA500 Identifier_1 <pi> Identifier_1 <pi> Indisponiblidade

Categorias_Professores ID_Categoria_Professor <pi> N6 <M> Descricao_Categoria_Professor VA50 <M> Identifier_1 <pi>

Alteracao_Professor

Motivos ID_Motivo <pi> N6 <M> Descricao_Motivo VA500 <M> ID_Motivo <pi> Alteracao_PCD Alteracao_Horario Pertencente Horarios Descricao_Horario Data_Inicio_Horario Data_U_Alteracao_Horario Data_Fim_Horario Obs_Horarios TIPO_USER CURSO ANO SEMESTRE TURMA SALA ANO_LECTIVO VA30 <M> D <M> D D VA500 N3 N N N N N N

Leciona Prof_Comp_Dis ID_PCD <pi> N6 <M> Data_Inicio_PCD D <M> Data_U_Alteracao_PCD D Data_Fim_PCD D Identifier_1 <pi>

Tipo_Utilizador ID_Tipo_Utilizador <pi> N6 <M> Descricao_Tipo_Utilizador VA30 <M> Identifier_1 <pi>

Regente

Alteracao_Disciplina

Alteracao_Curso

Alterar_Componente Dep_Def_Por Prof_Def_Por Utilizadores Disciplinas ID_Disciplina <pi> N6 <M> Nome_Disciplina VA200 <M> Ano_Disciplina N2 <M> Semestre_Disciplina N2 <M> Num_Horas_Semanais_Disciplina N2 <M> Data_Inicio_Disciplina D <M> Data_U_Alteracao_Disciplina D Data_Fim_Disciplina D Obs_Disciplina VA500 Identifier_1 <pi> Dis_Def_Por ID_Utilizador <pi> N6 Username VA30 Password RAW2000 Nome_Utilizador VA30 Apelido_Utilizador VA30 Identifier_1 <pi> <M> <M> <M> <M> <M> Componentes_Disciplinas Num_Horas_CD Num_Turma_CD Duracao_Aulas_CD Data_Inicio_CD Data_U_Alteracao_CD Data_Fim_CD N2 N2 N D D D <M> <M> <M> <M> Prof_Dis_Def_Por Tem_um_Tipo Hor_Def_Por Responsavel

Alterar_Comp_AL

Comp_Dis

Cur_Def_Por Utilizada

Componentes_Ano_Lectivo ID_Componente_AL <pi> N6 Num_Turmas_Componente_AL N2 Prioridade_Sala N1 Sala_Alternativa N3 Software_Necessario VA500 Num_Max_Alunos N4 Data_Inicio_CAL D Data_U_Alteracao_CAL D Data_Fim_CAL D CAL_Def_Por ID_Componente_AL <pi> <M> <M> <M>

Leccionada Salas ID_Sala <pi> N6 <M> Descricao_Sala VA30 <M> Estado_Sala VA12 <M> Identifier_1 <pi> <M>

Referente

Cursos ID_Curso <pi> N6 <M> Nome_Curso VA100 <M> Num_Anos_Curso N1 <M> Iniciais_Curso VA5 <M> Data_Inicio_Curso D <M> Data_U_Alteracao_Curso D Data_Fim_Curso D Obs_Curso VA500 Identifier_1 <pi> Com_Def_Por

Relativa

Divide-se

Tem

Tipos_Curso ID_Tipo_Curso <pi> N6 <M> Descricao_Tipo_Curso VA50 <M> Identifier_1 <pi>

Tipo_Aulas Componentes ID_Componente <pi> N6 <M> Num_Horas_Componente N2 <M> Data_Inicio_Componente D <M> Data_U_Alteracao_Componente D Data_Fim_Componente D Obs_Componente VA500 ID_Componente <pi> Em uso Modulo_Comp ID_Tipo_Aula <pi> N6 <M> Descricao_Tipo_Aula VA100 <M> Identifier_1 <pi>

Figura 4.1 Modelo Relacional

82

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Para a implementao desta aplicao, inicialmente, procedeu-se ao levantamento de informao a qual mais tarde seria processada para iniciar o desenvolvimento. Para comear, houve uma reunio com a funcionria Cristina Rosa, a qual, explicou o procedimento e os documentos utilizados para a produo de horrios. Tendo isto, comearam as reunies com o Professor Jos Fonseca e o meu colega Manuel Vieira de forma a transformar as primeiras 6 tabelas deram origem ao modelo ER final que visa dar conta de todas as eventualidades e processos para a criao de horrios. Aps vrias reunies e mais tarde depois da anlise do sistema, iniciou-se a implementao da aplicao. O meu colega partiu para a produo do sistema numa aplicao Windows criada em C# com e eu parti para o desenvolvimento de uma aplicao Web em JSP. O modelo ER foi produzido em o PowerDesigner da Sybase v12 o qual permite a criao fcil e simples de modelos conceptuais, fsicos, de objectos . Permite ainda a criao de ficheiros DDL para a criao das bases de dados em MS SQL Server 2005 e em Oracle 10G R2.

83

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.2. Criao das Bases de Dados

Assim procedeu-se criao das bases de dados. Aps a criao do modelo conceptual, que equivale ao modelo ER, devemos criar o modelo fsico ou diagrama de classes.

Figura 4.2 Acesso criao do Modelo Fsico (Diagrama de Classes)

84

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

De seguida:

Figura 4.3 - Criao do Modelo Fsico (Diagrama de Classes)

85

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Depois procedeu-se exportao para os diferentes Gestores de Bases de Dados

Figura 4.4 Acesso ao menu de criao de bases de dados

Figura 4.5 Menu de criao de bases de dados para SQL Server

86

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.6 Menu de criao de bases de dados para Oracle

87

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.3. T-SQL e PL/SQL

Aps a criao das bases de dados procede-se a programao de procedimentos que iro interagir com as bases de dados. Aqui esta a base de um procedimento criado em T-SQL.

Comentrios para documentar Autoria, data e funo

Corpo do Procedimento Inserir, Alterar, Obter e Apagar

Tratamento de Erros

Figura 4.7 Arquitectura base de um procedimento em T-SQL

88

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Aqui est um procedimento base em PL/SQL

Corpo do Procedimento Inserir, Alterar, Obter e Apagar

Tratamento de Erros

Comentrios para documentar Autoria, data e funo

Figura 4.8 Arquitectura base de um procedimento em PL/SQL

Nos anexos sero apresentados procedimentos utilizados pelo sistema

89

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.4. Acessos

O acesso s bases de dados efectuado atravs de Java Database Connectivity (JDBC) a qual feita atravs de drivers especficos para cada gestor de bases de dados. Neste caso, usou-se o driver 1.4 para conexo Oracle e a verso 1.1 para a conexo com o MS SQL Server. Tendo isto a conexo feita essencialmente com trs linhas de cdigo:

Figura 4.9 Cdigo para conexo s bases de dados Onde a verde drivermssql identificado o driver utilizado. A frase de conexo (connection string) encontra-se em constrmssql onde os dados do servidor ou computador onde se encontram as bases de dados, do utilizador, a palavra-passe de acesso e a porta de conexo. As frases de conexo variam conforme o gestor de bases de dados Como norma de segurana, os dados referentes as conexes encontram-se armazenadas num ficheiro XML armazenado no disco. Os dados so acedidos atravs de JavaBeans quer aos dados do ficheiro XML quer as bases de dados. Estas classes servem como intermediarias entre a interface (JSP) e as bases de dados.

90

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.5. JavaBeans

Como dito anteriormente, estas classes so os intermedirios que comunicam entre a interface e as bases de dados.

Interface .jsp

JavaBean .java

Procedime nto .sql

Base de Dados

Figura 4.10 Interaco entre entidades.

So nestas classes, criadas funes para a interaco com as bases de dados onde dados so, ou no, inseridos dados vindos da interface e estas funes devolvem a informao requerida, seja por operaes ou por tratamentos de dados. Foram criadas classes para operaes e para acessos as bases de dados. As referentes a conexes base de dados contm uma funo especfica para cada aco em cada base de dados.

91

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.11 Funes internas de um JavaBean.

92

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Apresentadas na figura anterior esto representadas a funes par a interaco com as bases de dados. As suas funes resumem-se a: Tabela 4.1- Descrio de funes existentes numa JavaBean CHECKIDCURS_XXXSQL Funo responsvel pela verificao de IDs Funo responsvel pela insero de dados Funo responsvel pela alterao de dados Funo responsvel pela obteno do nmero total de registos Funo responsvel pela obteno de dados de um determinado registo Funo responsvel pela obteno de dados de todos os registos da tabela Funo responsvel pelo armazenamento temporrio de erros quando existem Funo responsvel pelo armazenamento temporrio de excepes quando existem Funo responsvel pelo envio para a interface de excepes quando existem

INSCURS_XXXSQL

ALTCURS_XXXSQL

OBTNUMCURS_XXXSQL

OBTCURS_XXXSQL

getCURSO_XXXSQL

SETERROR_XXXSQL

SETEXCEP_XXXSQL

GETERROR_XXXSQL

93

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.6. Java Server Pages (JSP)

Quando se iniciou a implementao desta aplicao a ideia de tornar aplicao portvel foi a mais aliciante. A ideia inicial seria proceder implementao de uma aplicao Web em ASP .NET com incorporao de C#. Contudo como o aluno Manuel Vieira decidiu utilizar esta linguagem para a sua aplicao decidiu-se passar a uma outra forma de implementar a aplicao. Todas as paginas JSP esto estruturadas para uma funo especifica normalmente relacionada com uma operao de uma determinada tabela. 4.6.1. Obteno de todos dados Que pode ser acedida atravs do menu principal ou de um link adjacente quando os dados se encontram associados a outras tabelas

Figura 4.12 Obteno de dados de uma tabela.

94

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Inicialmente a pagina faz um pedido JavaBean correspondente que usa uma funo do tipo:

Figura 4.13 Funes internas de uma JavaBean Que devolver os dados de todos registos existentes. De seguida, a pagina JSP interpretar os dados de forma a mostra-los.

95

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.14 Invocao das funes de uma JavaBean

dada depois ao utilizador a opo de ver dados de um determinado registo, alterar os seus dados ou ainda elimina-lo.

96

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
4.6.2. Ver Detalhes

Ao escolher est opo sero apresentados dados do registo escolhido.

Figura 4.15 Obteno de dados de um registo.

A pagina JSP faz novamente um pedido para a obtenso de dados do registo pedido

97

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.16 Cdigo referente obteno de um registo. Neste caso (Figura 4.16), so obtidos dados de um determinado curso.

Contudo, h atributos que so representados pelos numero de identificao (ID). Assim a pagina JSP pede os dados dos registos cujos IDs fazem parte do registo.

Figura 4.17 Cdigo referente obteno de um registo adjacente. Na Figura 4.17 representa-se o cdigo para pedir dados sobre o tipo de curso.
Nomio Dria n6487 Engenharia Informtica

98

Horrios MN 2007/2008

Figura 4.17 Cdigo referente obteno de um registo adjacente.

Figura 4.18 Cdigo referente obteno de um registo adjacente. Neste caso, o Utilizador que procedeu ultima alterao.

99

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

4.6.2. Editar e Novo Ao optar por editar so mostrados os dados originais so mostrados e mostrado o formulario para a alterao de dados. Avalidao dos dados efectuada atraves de JavaScript. H atributos que so mostrados no formulario em forma de Combo-Box que so inseridos na mesma depois da pagina JSP ter requisitado o mesmos camada central.

Figura 4.19 Formulrio para editar dados de um curso. O mesmo passa-se com a pagina JSP de insero apenas mostrado o formulrio para a insero de dados e as Combo-Boxes so preenchidos da mesma forma que a anterior.

100

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.20 Formulrio para inserir dados de um curso.

101

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
4.6.3. Validao

Figura 4.21 Formulrio para editar dados de um curso com as validaes activadas.

A validao como dito anteriormente a validao est a cargo de funes JavaScript que verificam o estado dos campos.

102

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
4.6.4. Insero de Horrios

Como o segundo objectivo foi a criao de horrios decidiu-se aqui elucidar a implementao do processo de insero de registos para a tabela Horrios. A implementao comeou com um fluxograma apresentado de seguida. Sendo esta a tabela mais importante pode ver-se que existem diversas tabelas que lhe so adjacentes. O primeiro fluxograma exemplifica como a aplicao envia os dados para a 3 camada e o segundo como so tratados os dados dentro dessa camada Mostra-se tambm a interface de insero e resultado.

103

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Fluxograma: Inserir Horrios
INS_HORARIO
Acesso

BEAN_DISE

BEAN_ANLE

BEAN_CURSO

BEAN_CODI

BEAN_SALA

INSBD_HORARIO

BEAN_HORA

BASE DE DADOS

Seleccionar dia

Aceder a todos os dados disponveis

Dados em DIA_SEMANA

Seleccionar hora

Seleccionar Ano Lectivo

Aceder a todos os dados disponveis

Dados em ANO_LECTIVO

Seleccionar Curso

Aceder a todos os dados disponveis

Dados em CURSOS

Seleccionar Ano

Seleccionar Semestre

Seleccionar Turma

Seleccionar Componente Disciplina

Aceder a todos os dados disponveis

Dados em COMPONENT ES_DISCIPLIN AS

Seleccionar Sala

Aceder a todos os dados disponveis

Dados em SALA

Enviar Dados

Envia Dados

Insere Dados

Dados em HORARIOS

Insero Finalizada

Figura 4.22 Fluxograma da aplicao para insero de registos na tabela Horrios.

104

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Fluxograma : Inserir Horrio. Parte interna da Base de Dados Procedimento: INS_HORARIO_RESTRI Recebe Dados Procedimento: INSERE_HORARIO

Recepo de dados

Insere dados

Professor Indisponvel?

Sim

Contador1 =1 Erros de insero?

Sim

Envia Erro

No

No Contador1 =0 Devolve Erro1 Envia Variveis de controlo

Professor Ocupado?

Sim

Contador2 =1 \

No

Contador2 =0 Devolve Erro2

Sala Ocupada?

Sim

Contador3 =1

Envia dados para INSERE_HORARIO

No No

Contador3 =0 Devolve Erro3

SomaCont >0?

Sim

Termina e devolve erro

SomaCont = Contador1+Conta dor2+Contador3

Figura 4.23 Fluxograma da base de dados para insero de registos na tabela Horrio

105

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.24 Interface para a insero de dados

Figura 4.25. Interface mostra um insero de dados na tabela Horrios bem sucedida.

106

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008 4.7. Aspectos a considerar

Antes da instalao do Oracle 10gR2 aconselhvel a criao de uma placa virtual e proceder sua configurao em computadores sem conexo rede ou com conexo atravs de DHCP. Assim sendo sero demonstrados o passos para tal processo.

Figura 4.26 Seleco de Adicionar hardware.

Atravs de Adicionar hardware, no painel de controlo, iniciou-se o processo.

Figura 4.27 Indicao de hardware j conectado.

107

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.28. Seleco do driver do hardware a adicionar.

Figura 4.29. Seleco de instalao manual de hardware.

108

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.30 Seleco de Adicionar hardware.

Figura 4.31 Seleco da placa de rede.

109

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.32. Configurao da rede.

110

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Para armazenar a informao referente s conexes s bases de dados foi criado um ficheiro XML que armazenou-se no disco rgido.

Figura 4.33 Ficheiro XML.

O acesso a esta informao fez-se atravs do driver JDOM na verso 1.0

111

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
Uma vez que foram utilizados drivers jar para a criao da aplicao aqui mostrada a forma como foram associados mesma. Inicialmente acedeu-se s propriedades da aplicao e de seguida na seco das livrarias (Iivraries) inseriu-se o caminho para os mesmos.

Figura 4.34 Acesso s propriedades.

112

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.35 Acesso seco de livrarias.

Figura 4.36 Seleco do driver.

113

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.37 Seleco de drivers concluda

114

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
4. Testes e Anlise de resultados

Aqui sero descritos alguns teste efectuados no se mostram todos uma vez que todos so de todo semelhantes com a excepo do interface dos horrios.

Figura 4.1 Entrada no sistema.

O utilizador deve autenticar-se no sistema e pode usar qualquer uma das bases de dados.

115

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.2. Interface mostra a entrada bem sucedida.

O sistema d as boas-vindas ao utilizador e o mesmo deve clicar em Continuar para completar a sua entrada seno aps 5 segundos ser reencaminhado para a entrada.

Figura 4.3 Interface mostra a entrada bem sucedida. A validao de formulrios feita atravs de JavaScript.

116

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.4. Interface mostra a entrada mal sucedida.

No caso de o utilizador no pertencer ao sistema informa-o e reencaminha-o para a entrada. mostrado o menu principal e o utilizador pode escolher para onde se deslocar. Neste caso ser mostrada a obteno de um horrio.

Figura 4.5 Seleco de horrio. O utilizador escolhe o horrio a visualizar.

117

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

Figura 4.6 O interface mostra o horario

Neste caso, apenas mostrado o horrio da 2 feira porque s existem registos desse dia e porque aplicao ainda est a sofrer testes.

118

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
5. Concluso

A implementao do projecto descrito mostrou-se verdadeiramente desafiante. A anlise de sistema mostrou-se como um processo longo e demorado que contudo, acabou por mostrar-se bastante abrangente. Durante a implementao houveram certas classes que sofreram alteraes de forma a integrarem-se melhor no sistema de forma a atingir os objectivos propostos. De uma forma geral, conclui-se que a integrao das bases de dados foi conseguida de uma forma clara e funcional. Embora inicialmente tivessem sido encontrados problemas no que toca s conexes JDBC o mesmo acontecendo algumas vezes que a aplicao fora transladada de formatao para formatao do PC onde se encontrava. Esta abordagem simplista poderia ser substituda por outras j existentes de forma a facilitar as interaces da aplicao com as bases de dados. Pode considerar-se assim o 1 objectivo alcanado. Quanto a aplicao em si encontra-se ainda em testes e a sofrer algumas alteraes quando este relatrio estava a ser redigido. Por isso, pensa-se que estar altura dos objectivos propostos permitindo uma utilizao fcil como ferramenta de apoio para a criao de horrios.. A vantagem desta aplicao passa pela portabilidade podendo ser acedida atravs qualquer Web browser. A desvantagem que sem ligao Internet no possvel aceder aplicao. Para desenvolvimento futuro, prope a optimizao das bases de dados para permitirem um acesso mais rpido. A reestruturao da aplicao de forma a melhorar o seu desempenho. O histrico poder mais tarde ser armazenado num ficheiro. De forma a impedir a seu crescimento. Dever tambm desenvolver-se a opo de impresso atravs da aplicao que uma opo na aplicao que ficaram em stand by

119

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008
6. Bibliografia
cocoalab. Model View Controller. 10 de Julho de 2007. http://www.cocoalab.com/?q=node/24 (acedido em 29 de Novembro de 2008). Nogueira, Admilson. Histrico da UML. 21 de Fevereiro de 2005. http://imasters.uol.com.br/artigo/2994/uml/historico_da_uml/ (acedido em 29 de Novembro de 29). Wikipedia. Java (linguagem de programao). 11 de Dezembro de 2008. http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3o) (acedido em 5 de Dezembro de 2008). . JavaScript. 17 de Dezembro de 2008. http://en.wikipedia.org/wiki/JavaScript#Structured_programming (acedido em 03 de Dezembro de 2008). . JavaServer Pages. 12 de Dezembro de 2008. http://en.wikipedia.org/wiki/Javaserver_pages (acedido em 29 de Novembro de 2008). . Microsoft SQL Server. 14 de Dezembro de 2008. http://pt.wikipedia.org/wiki/Sql_server (acedido em 29 de Novembro de 2008). . MVC. 11 de Dezembro de 2008. http://pt.wikipedia.org/wiki/MVC (acedido em 09 de Dezembro de 2008). . Oracle. 2 de Dezembro de 2008. http://pt.wikipedia.org/wiki/Oracle (acedido em 2 de Dezembro de 2008). . SQL. 12 de Dezembro de 2008. http://pt.wikipedia.org/wiki/Sql (acedido em 29 de Novembro de 2008). . UML. 9 de Dezembro de 2008. http://pt.wikipedia.org/wiki/Unified_Modeling_Language (acedido em 10 de Dezembro de 2008).

120

Nomio Dria n6487 Engenharia Informtica

Horrios MN 2007/2008

121

Nomio Dria n6487 Engenharia Informtica

Potrebbero piacerti anche