MN Horários. Instituto Politécnico da Guarda. Noémio Dória Nº Escola Superior de Tecnologia e Gestão Departamento de Informática

Tamanho: px
Começar a partir da página:

Download "MN Horários. Instituto Politécnico da Guarda. Noémio Dória Nº 6487. Escola Superior de Tecnologia e Gestão Departamento de Informática"

Transcrição

1 MN Horários Noémio Dória Nº 6487 Instituto Politécnico da Guarda Escola Superior de Tecnologia e Gestão Departamento de Informática Dezembro de 2008

2 MN Horários Noémio de Jesus da Encarnação Dória Nº 6487 RELATÓRIO SUBMETIDO COMO REQUISITO PARCIAL PARA OBTENÇÃO DO GRAU DE LICENCIADO EM ENGENHARIA INFORMÁTICA ORIENTADO POR PROFESSOR JOSÉ FONSECA Instituto Politécnico da Guarda Escola Superior de Tecnologia e Gestão Departamento de Informática Dezembro de 2008

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

4 Resumo O presente relatório relata a criação de uma aplicação que permitiria a criação de horários para as aulas referentes aos cursos leccionados na Escola Superior de Tecnologia e Gestão. Para além deste objectivo, a aplicação deve estar estruturada tendo em conta a integração de duas bases de dados idênticas criadas em gestores de bases de dados diferentes. Neste, caso uma base de dados em T-SQL criada na aplicação Microsoft SQL Server 2005 e uma outra em PL / SQL criada em Oracle Server 10G R2 da Oracle. A aplicação 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: Integração entre bases de dados, Aplicações WEB, Modelo MVC. IV

5 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 Gestão. 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 V

6 Agradecimentos Gostaria de agradecer inicialmente ao meu amigo e colega Filipe Caetano cujo sentido pratico ajudou corrigir alguns bugs na aplicação criada. Agradeço ao Professor José Fonseca pela oportunidade para o desenvolvimento deste projecto e claro está pela paciência por ele demonstrada. À minha família pelo apoio incondicional O último, mas o maior agradecimento, vai para a minha namorada Ana Silva cujo amor e carinho foram motivação e força para ultrapassar obstáculos. VI

7 Indice Resumo... IV Abstract... V Agradecimentos... VI Indice... 7 Índice de Figuras... 9 Indice de Tabelas Introdução Tecnologias UML Modelo MVC Java JavaServer Pages Javascript SQL Oracle e PL/SQL Microsoft SQL Server e T-SQL Descrição do Sistema Casos de uso Diagramas de Sequência Diagrama de Sequência - Aplica Novo Ano Lectivo Diagrama de Sequência - Gerir Utilizadores Diagrama de Sequência - Gerir Salas Diagrama de Sequência - Gerir Motivos Diagrama de Sequência - Gerir Departamentos Diagrama de Sequência - Gerir Disciplinas Diagrama de Sequência - Gerir Componentes Diagrama de Sequência - Gerir Componentes No Ano Lectivo Diagrama de Sequência - Gerir Componentes leccionadas Diagrama de Sequência - Gerir Horários Diagrama de Sequência - Gerir Indisponibilidades... 41

8 Diagrama de Sequência - Consultar Horários Diagrama de Sequência - Criar Horários Diagramas de Actividade Diagrama de Actividades - Gerir Horários Diagrama de Actividades - Gerir Componentes Leccionadas Diagrama de Classes Descrição das Classes Implementação Modelo de Entidades Relacional (ER) Criação das Bases de Dados T-SQL e PL/SQL Acessos JavaBeans Java Server Pages (JSP) Obtenção de todos dados Ver Detalhes Editar e Novo Validação Testes e Análise de resultados Conclusão Bibliografia

9 Índice de Figuras Figura 2.1-Esquema de Modelo MVC (cocoalab 2007)... 4 Figura 3.1 Diagrama Casos de Uso Gestão Figura 3.2 Diagrama Casos de Uso Consultas Figura 3.3- Diagrama de Sequência Aplica Novo Ano Lectivo Figura 3.4- Diagrama de Sequência Gerir utilizadores Figura 3.5- Diagrama de Sequência Gerir Salas Figura 3.6- Diagrama de Sequência Gerir Motivos Figura 3.7- Diagrama de Sequência Gerir Departamentos Figura 3.8- Diagrama de Sequência Gerir Disciplinas Figura 3.9- Diagrama de Sequência Gerir Componentes Figura Diagrama de Sequência Gerir Componentes No Ano Lectivo Figura Diagrama de Sequência Gerir Componentes Leccionadas Figura Diagrama de Sequência Gerir Horários Figura Diagrama de Sequência Gerir Indisponibilidades Figura Diagrama de Sequência Consulta Horários Figura Diagrama de Sequência Insere Horários Figura Diagrama de Actividades Gerir Horários Figura Diagrama de Actividades Gerir Componentes Leccionadas Figura Diagrama de Classes Figura 4.1 Modelo Relacional Figura 4.2 Acesso à criação do Modelo Físico (Diagrama de Classes) Figura Criação do Modelo Físico (Diagrama de Classes) Figura 4.4 Acesso ao menu de criação de bases de dados Figura 4.5 Menu de criação de bases de dados para SQL Server Figura 4.6 Menu de criação de bases de dados para Oracle Figura 4.7 Arquitectura base de um procedimento em T-SQL Figura 4.8 Arquitectura base de um procedimento em PL/SQL Figura 4.9 Código para conexão às bases de dados Figura 4.10 Interacção entre entidades Figura 4.11 Funções internas de um JavaBean Figura 4.12 Obtenção de dados de uma tabela Figura 4.13 Funções internas de uma JavaBean Figura 4.14 Invocação das funções de uma JavaBean Figura 4.15 Obtenção de dados de um registo Figura 4.16 Código referente à obtenção de um registo Figura 4.17 Código referente à obtenção de um registo adjacente Figura 4.18 Código referente à obtenção de um registo adjacente Figura 4.19 Formulário para editar dados de um curso Figura 4.20 Formulário para inserir dados de um curso Figura 4.21 Formulário para editar dados de um curso com as validações activadas Figura 4.22 Fluxograma da aplicação para inserção de registos na tabela Horários Figura 4.23 Fluxograma da base de dados para inserção de registos na tabela Horário Figura 4.24 Interface para a inserção de dados Figura Interface mostra um inserção de dados na tabela Horários bem sucedida

10 Figura 4.26 Selecção de Adicionar hardware Figura 4.27 Indicação de hardware já conectado Figura Selecção do driver do hardware a adicionar Figura Selecção de instalação manual de hardware Figura 4.30 Selecção de Adicionar hardware Figura 4.31 Selecção da placa de rede Figura Configuração da rede Figura 4.33 Ficheiro XML Figura 4.34 Acesso às propriedades Figura 4.35 Acesso à secção de livrarias Figura 4.36 Selecção do driver Figura 4.37 Selecção de drivers concluída Figura 5.1 Entrada no sistema Figura 5.2. Interface mostra a entrada bem sucedida Figura 5.3 Interface mostra a entrada bem sucedida Figura 5.4. Interface mostra a entrada mal sucedida Figura 5.5 Selecção de horário Figura 5.6 O interface mostra o horario

11 Índice de Tabelas Tabela 3.1- Descrição Estruturada do Caso de Uso Controlo Acesso Tabela 3.2- Descrição Estruturada do Caso de Uso Gerir Salas Tabela 3.3- Descrição Estruturada do Caso de Uso Gerir Tipos Curso Tabela 3.4- Descrição Estruturada do Caso de Uso Gerir Tipo Aulas Tabela 3.5- Descrição Estruturada do Caso de Uso Gerir Motivos Tabela 3.6- Descrição Estruturada do Caso de Uso Gerir Utilizadores Tabela Descrição Estruturada do Caso de Uso Gerir Departamentos Tabela Descrição Estruturada do Caso de Uso Gerir Professores Tabela Descrição Estruturada do Caso de Uso Gerir Indisponibilidades Tabela Descrição Estruturada do Caso de Uso Gerir Cursos Tabela Descrição Estruturada do Caso de Uso Gerir Disciplinas Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Ano Lectivo Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Leccionadas Tabela Descrição Estruturada do Caso de Uso Gerir Horarios Tabela Descrição Estruturada do Caso de Uso Aplicar Novo Ano Lectivo Tabela Descrição da Classe Departamentos Tabela Tabela identificadora das operações da Classe Departamentos Tabela Descrição da Classe Professores Tabela Tabela identificadora das operações da Classe Professores Tabela Descrição da Classe Indisponibilidades Tabela Tabela identificadora das operações da Classe indisponibilidades Tabela Descrição da Classe Tipo_Utilizador Tabela Tabela identificadora das operações da Classe Tipo_Utilizador Tabela Descrição da classe Utilizadores Tabela Tabela identificadora das operações da classe Utilizadores Tabela Descrição da classe Tabelas Tabela Tabela identificadora das operações da classe Tabelas Tabela Descrição da classe Motivos Tabela Tabela identificadora das operações da classe Motivos Tabela Descrição da classe Disciplinas Tabela Tabela identificadora das operações da classe Disciplinas Tabela Descrição da classe Cursos Tabela Tabela identificadora das operações da classe Cursos Tabela Descrição da classe Tabela Tabela identificadora das operações da classe Tipos_Curso Tabela Descrição da classe Componentes Tabela Tabela identificadora das operações da classe Componentes Tabela Descrição da classe Tipo_Aulas Tabela Tabela identificadora das operações da classe Tipo_Aulas Tabela Descrição da classe Componentes_Ano_Lectivo Tabela Tabela identificadora das operações da classe Componentes_Ano_Lectivo Tabela Descrição da classe Salas Tabela Tabela identificadora das operações da classe Salas... 71

12 Tabela Descrição da classe Componentes_Disciplinas Tabela Tabela identificadora das operações da classe Componentes_Disciplina Tabela Descrição da classe Prof_Comp_Disc Tabela Tabela identificadora das operações da classe Prof_Comp_Disc Tabela Descrição da classe Horário Tabela Tabela identificadora das operações da classe Horário Tabela Descrição da classe Dias_Semana Tabela Tabela identificadora das operações da classe Dias_Semana Tabela 3.53 Descrição da tabela Tempo Tabela Tabela identificadora das operações da tabela Tempo Tabela Descrição da classe Ano_Lectivo Tabela Tabela identificadora das operações da classe Ano_Lectivo Tabela 4.1- Descrição de funções existentes numa JavaBean... 93

13 1. Introdução Este relatório tem como objectivo retratar os passos, as metodologias tomadas para o desenvolvimento do projecto do 2º semestre do 5º ano do curso de Engenharia Informática 2º ciclo, para a conclusão da Licenciatura. O projecto proposto pelo Professor José Fonseca, visa a integração de bases de dados idênticas criadas em Sistemas Gerais de Bases de Dados diferentes. A segunda parte visa o desenvolvimento de uma aplicação para a criação de horários inicialmente pensada para a sua utilização na Escola Superior de Tecnologia e Gestão como ferramenta de apoio. Mais tarde, decidiu-se pela criação de uma aplicação Web optando pelo desenvolvimento por camadas. Esta aplicação tem uma função A criação de horários é uma actividade semestral que engloba uma enorme paciência, responsabilidade e claro está uma enorme complexidade. Este facto deve-se, aos números factores associados: O número de professores, juntamente com as suas indisponibilidades. O número de disciplinas e dos tipos de aulas. À disposição das salas. Às mudanças associadas à criação de um novo ano lectivo. Tendo em conta estes factores o presente projecto visa o desenvolvimento de uma aplicação Web, através da programação em camadas. Esta aplicação, permitirá, a gestão de bases de dados idênticas criadas diferentes que são neste caso, o Oracle 10g R2 e o SQL Server 2005 da Microsoft. Esta aplicação Web é desenvolvida nos âmbitos de diferentes áreas, tais como Engenharia de Software, Sistemas Distribuídos e Paradigmas da Programação. 1

14 2. Tecnologias 2.1. UML A Unified Modeling Language (UML) é uma linguagem gráfica padrão para a elaboração da estrutura de projectos complexos de software. Pode ser empregada para visualizar, especificar, construir e documentar software. Em 1997, a versão a UML v1.1 foi adoptada pela Object Management Group (OMG) (Nogueira 2005) e desde então tornou-se o padrão para a modelação de software através da unificação da linguagem de modelagem de objectos de 3 métodos líderes 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 abrangência. A arquitectura de um sistema pode ser descrita através de 5 visões interligadas. Cada visão constitui uma projecção na organização e estrutura do sistema, focando determinado aspecto desse sistema. A UML é uma linguagem muito expressiva, abrangendo todas as visões necessárias ao desenvolvimento e implantação de sistemas: Visão de caso de uso: foca os comportamentos de um sistema com transparência tendo em conta todos os agentes envolvidos, como por exemplo: gerentes, analistas, programadores e utilizadores finais. Visão de Projecto: foca a estrutura de um sistema através da definição de classes, colaborações e as interfaces do sistema. Visão de Processo: foca as questões de desempenho e escalabilidade do sistema. Visão de Implementação: foca os elementos físicos (programas, bibliotecas, banco de dados) para a montagem do sistema. Visão de Implantação: foca a topologia do hardware, liberação e instalação do sistema. 2

15 Um diagrama é a apresentação gráfica de um conjunto de elementos para permitir a visualização de um sistema sob diferentes perspectivas. A linguagem UML disponibiliza diagramas específicos para a modelagem visual das 5 visões: Diagrama de Casos de Uso: para ilustrar as interacções que envolvem a utilização do sistema. Diagrama de Classes: para ilustrar a estrutura lógica 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 física do software. Diagrama de Interacções: composto de diagrama de sequência e diagrama de colaboração. Utilizado para ilustrar comportamentos Diagrama de Actividades: para ilustrar o fluxo dos eventos. Em um sentido mais amplo, um modelo é uma simplificação da realidade. A modelação visual com UML torna a arquitectura do sistema mais compreensível, permitindo a avaliação em dimensões múltiplas. A UML permite avaliar a aderência e a qualidade da arquitectura através de iterações precoces com os utilizadores quando os defeitos podem ser corrigidos antes de comprometer o sucesso do projecto. Utilizando uma linguagem de modelagem padrão como a UML, os diferentes membros envolvidos podem comunicar as suas decisões sem que haja ambiguidades ou diferenças de interpretação. A modelagem visual permite que os detalhes do processo sejam expostos ou escondidos conforme a necessidade, auxiliando o desenvolvimento de projectos complexos e extensos. Além disto, a UML ajuda a manter a consistência entre a especificação e a implementação através do desenvolvimento iterativo e do planeamento de testes em cada iteração. 3

16 2.2. Modelo MVC O modelo Model-View-Controller (MVC) ou programação e 3 camadas é hoje o mais utilizado para a produção de aplicações Web Esta arquitectura permite aos desenvolvedores criar componentes reutilizáveis que podem interagir umas com as outras directa ou alternadamente. Como dito anteriormente, este modelo é constituído por 3 partes: Model (Modelo): onde a informação é armazenada e onde as operações relacionadas se encontram. Neste caso, associadas as bases de dados e à programação PL\SQL e T-SQL. Controller (Controlador ou Mediador): onde são efectuadas as acções dos utilizadores e o processamento de informação que normalmente possam provocar mudanças na camada Model. Esta camada é a responsável pela comunicação entre a camada Model e a camada View servindo de mediador. Neste caso, esta camada está implementada através de classes Java. View (Interface, Ver): A interface que permite ao utilizador interagir com o sistema e proceder alterações que poderão ser introduzidas, ou não, através do Controller. Neste caso apresentado através de Java Server Pages (JSP). Figura 2.1-Esquema de Modelo MVC (cocoalab 2007) 4

17 2.3. Java Em 1991, na Sun Microsystems, foi iniciado o Green Project, o berço do Java, uma linguagem de programação orientada a objetos. Os mentores do projecto eram Patrick Naughton, Mike Sheridan, e James Gosling. Os mesmos acreditavam que os computadores e os electrodomésticos 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 versão de demonstração do StarSeven (*7), um controlo remoto activado através de toque, com uma interface gráfica, 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 programação com o nome Oak, criada e baptizada por James Gosling, para que o dispositivo pudesse interagir com diversos dispositivos e aplicações. Tendo em conta que a empresa queria pôr tal invenção a produzir resultados, rapidamente. A equipa criadora do *7 criou uma demonstração com o nome MovieWood, que iria permitir controlar equipamento multimédia tal como televisores e vídeo por demanda. Infelizmente, a empresas que disponibilizavam serviços de televisão por cabo não podiam viabilizar a produção da ideia, uma vez que não entendiam o conceito. Hoje em dia, esta é o melhor serviço que pode ser encontrado junto das empresas multimédia. 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 evolução de Oak. Esta evolução permitia ao Java estar presente tanto na Internet como em diversos dispositivos heterogéneos. Uma vez difundida na Internet, o crescimento da linguagem Java foi totalmente estrondoso. 5

18 Desde seu lançamento, em Maio de 1995, a plataforma Java foi adoptada mais rapidamente do que qualquer outra linguagem de programação na história da computação. Em 2004 Java atingiu a marca de 3 milhões de desenvolvedores em todo mundo a linguagem Java continuou crescendo e hoje é uma referência no mercado de desenvolvimento de software. Java tornou-se popular pelo seu uso na Internet e hoje possui seu ambiente de execução presente em Web browsers, mainframes, Sistemas Operativos, celulares, palmtops e cartões inteligentes, entre outros JavaServer Pages JavaServer Pages (JSP) é a tecnologia Java que permite o desenvolvimento dinâmico de documentos HTML, XML entre outros em reposta a um pedido de um cliente Web. Esta tecnologia permite que código em Java seja inserido em código estático. As funcionalidades e livrarias internas de JSP podem ser activadas ao serem invocadas como se fossem tags XML e funcionam como se fossem extensões de HTML ou XML. Estas também podem ser usadas como extensões de capacidades de um servidor Web. O compilador JSP compila as páginas JSP em Java Servlets, podendo estes ser ainda compilados no compilador Java ou ainda serem transformados em bytecode para serem mais facilmente interpretados. 6

19 2.5. Javascript A linguagem JavaScript foi originalmente criada por Brendan Eich da Netscape com o nome de código Mocha, mais tarde veio a chamar-se LiveScript e finalmente JavaScript. O nome deu inicialmente muita controvérsia visto que a sua semelhança com a designação Java dava a entender que esta linguagem era uma versão alterada da linguagem com esse nome. Em Dezembro de 1995 surgiu a 2.0B3 introduzida no navegador Web Netscape, em 1996 a Microsoft lança uma versão de Javascript com o nome JScript. Nesse mesmo ano, 1996, a Nestcape enviou a linguagem Javascript para a Ecma International[3] para que fosse então tornada num standard.. 7

20 2.6. SQL A Structured Query Language, (SQL), (Wikipedia 2008) é uma linguagem de pesquisa declarativa para bases de dados. Muitas das características originais do SQL foram inspiradas na álgebra relacional. O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projecto System R. Considerada uma linguagem padrão pela simplicidade, por ser declarativa e pela forma clara como apresenta os dados. Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em A linguagem SQL baseia-se em expressões: DML - Linguagem de Manipulação 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 Definição de Dados: - O segundo grupo é a DDL (Data Definition Language). Uma DDL permite ao usuário definir tabelas novas e elementos associados. A maioria dos bancos de dados de SQL comerciais tem extensões proprietárias no DDL. DCL - Linguagem de Controle de Dados: - O terceiro grupo é o DCL (Data Control Language). DCL controla os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. DTL - Linguagem de Transacção de Dados: - O grupo DTL (Data Transaction Language) permite o controlo de transacções. Apesar de ser uma linguagem padrão, os diferentes dialectos omitem características básicas de apoio para Standard SQL, tais como a data ou a hora do tipos de dados, preferindo variações próprias. Como resultado, SQL raramente podem ser transferidos entre sistemas de banco de dados sem modificações. 8

21 Há várias razões para essa falta de portabilidade entre sistemas de banco de dados: A complexidade e dimensão do padrão SQL significa que a maior parte das bases de dados não se aplicar a todo o tipo. Como normas não especificas, comportamento do banco de dados em diversos domínios importantes (por exemplo, índices, arquivos de armazenamento...), deixando aos que implementam o banco de dados para decidir o seu comportamento. O padrão SQL especifica precisamente que a sintaxe conforme um sistema de base de dados deve executar. No entanto, o padrão da especificação da semântica da linguagem construída, é de menor definição, levando a áreas de ambiguidade Oracle e PL/SQL O Oracle é um SGBD (Sistema de Gestão de Bases de Dados) que surgiu no fim dos anos 70, quando Larry Ellison vislumbrou uma oportunidade da qual outras companhias não se tinham percebido, quando encontrou uma descrição de um protótipo 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 negócios 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 lançado o Oracle 11g que veio com melhorias em relação ao Oracle 10g. Além da base de dados, a Oracle desenvolve uma suíte de desenvolvimento chamada de Oracle Developer Suite, utilizada na construção de programas de computador que interagem com a sua base de dados. A Oracle também criou a linguagem de programação PL/SQL, utilizada no processamento de transações. 9

22 PL/SQL (acrónimo para a expressão inglesa Procedural Language/Structured Query Language) é uma extensão da linguagem padrão SQL para o SGBD Oracle da Oracle Corporation. É uma Linguagem Procedural da Oracle, estendida da SQL. Permite que a manipulação de dados seja incluída em unidades de programas. Blocos de PL/SQL são 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 básica para criar programas complexos e poderosos, não só no banco de dados, mas também em diversas ferramentas Oracle. Antes de 1991 a única forma de usar construções procedurais com o SQL era usar PRO*C. Foi onde as instruções SQL do Oracle foram embutidas em código C. O código C era pré-compilado para converter as instruções SQL em chamadas de bibliotecas. 10

23 2.8. Microsoft SQL Server e T-SQL A base do código do Microsoft SQL Server (anterior à versão7.0) foi originalmente incluída no Sybase SQL Server e foi assim que a Microsoft entrou no mercado das bases de dados entrando em competição directa com a Oracle, a IBM e mais tarde a própria Sybase. A versão 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 versão 6.0 foi a primeira versão após a separação da Sybase e da Microsoft uma vez que tinham objectivos de mercado diferentes. Depois disto, a Microsoft adquiriu todas as versões do SQL Server e a Sybase mudou o nome do produto para Adaptive Server Enterprise. Quando estas empresas se reuniram para a criação do Microsoft SQL Server decidiram criar também uma linguagem à qual deram o nome Transact-SQL (T-SQL). 11

24 3. Descrição do Sistema Em plena era informação, o mais valioso é isso mesmo, a informação. Tendo isto em conta, as estruturas e os sistemas que estão associados ao tratamento, armazenamento e criação de informação sofrem um planeamento mais pormenorizado. Através da análise de sistema, é permitido aos desenvolvedores estudar a manipulação de informação das suas por parte das suas criações e de como a interacção das mesmas com os utilizadores ocorrem. Neste caso, através de UML, será realizada a análise funcional da aplicação desenvolvida, especificando e documentando o sistema de informação a ser criado. Neste caso foram utilizados os seguintes diagramas: diagramas de casos de uso, diagramas de sequência, diagramas de actividades e diagramas de classes. Esta parte da criação da aplicação foi criada em conjunto com o aluno Manuel Vieira Casos de uso Os diagramas de Casos de Uso identificam os serviços, utilizadores e fronteiras de um sistema. Assim, facilmente poderão identificar-se os serviços associados aos diferentes utilizadores bem como os seus processos inerentes. Devido à elevada quantidade de casos de usos, os mesmos serão ilustrados em dois diagramas. O primeiro diagrama representará os casos de uso responsáveis pela gestão e no segundo serão agrupados os casos de uso com vista às consultas. Ambos dão-nos uma visão geral do sistema das funcionalidades da aplicação e das situações em que é feito o controlo de acesso aos utilizadores, onde os utilizadores são separados em dois tipos: Administrador e Funcionário, tendo o utilizador do tipo funcionários o acesso limitado a algumas funcionalidades da aplicação. 12

25 Figura 3.1 Diagrama Casos de Uso Gestão 13

26 Figura 3.2 Diagrama Casos de Uso Consultas Na figura 3.2 encontram-se ilustrados os casos de uso responsáveis pelas consultas e impressão de resultado Descrição estruturada dos Casos de Uso Serão agora descritos de forma estruturada todos os casos de uso visíveis nos diagramas de casos de uso (figura 3.1 e 3.2). Em todos os casos de uso é descrita uma pré - condição que indica o que deve existir inicialmente para que o cenário descrito seja seguido com sucesso. Na descrição de um caso de uso pressupõe-se que estão reunidas todas as condições que garantem que tudo corre bem, sendo um cenário onde não surgem problemas, denominado como o cenário principal. [3] Na tabela 3.1 está descrito o caso de uso Controlo de Acesso, responsável por atribuir o acesso aos utilizadores registados. 14

27 Tabela 3.1- Descrição Estruturada do Caso de Uso Controlo Acesso Controlo Acesso Objectivo Descrição Entrar no Sistema 1 - O Caso de Uso começa 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

28 Tabela 3.2- Descrição Estruturada do Caso de Uso Gerir Salas Gerir Salas Objectivos Pré - Condição Descrição Inserir, modificar e eliminar Salas. O Utilizador terá que ser válido no sistema e do tipo Administrador 1 - O Caso de Uso começa quando o utilizador escolhe a opção Salas dentro do ecrã Outros. 2 - Aceder à área Salas para inserir, modificar ou eliminar uma sala. 3 - Serão 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 operação. 5 - A sala tem um estado associado a ela, sendo ele disponível ou indisponível e obrigatório. Pode ser alterado a qualquer altura. 6- As operações são confirmadas nos botões Nova, Modificar e Eliminar. 7 - Caso o utilizador tente eliminar uma sala que esteja atribuída a uma componente no ano lectivo o sistema avisa a impossibilidade de efectuar essa operação. Casos de uso relacionados Include: Controlo de Acesso. 16

29 Tabela 3.3- Descrição Estruturada do Caso de Uso Gerir Tipos Curso Gerir Tipos Curso Objectivos Inserir, modificar e eliminar tipos de curso. Pré Condição O Utilizador terá que ser válido no sistema e do tipo Administrador Descrição Casos de uso relacionados 1. O Caso de Uso começa quando o utilizador escolhe a opção Tipos de Curso dentro do ecrã Menu Principal. 2. Aceder à área Tipos de Curso para inserir, modificar ou eliminar um tipo de curso. 3. São 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 operação. 5. As operações são confirmadas nos botões Novo, Alterar e Eliminar. 6. Caso o utilizador tente eliminar um tipo de curso que esteja atribuído a um curso o sistema avisa a impossibilidade de efectuar essa operação. Include: Controlo de Acesso. 17

30 Tabela 3.4- Descrição Estruturada do Caso de Uso Gerir Tipo Aulas Gerir Tipo Aulas Objectivos Pré - Condição Descrição Inserir, modificar e eliminar tipos de aulas. O Utilizador terá que ser válido no sistema e do tipo Administrador. 1 - O Caso de Uso começa quando o utilizador escolhe a opção Tipos de Aulas dentro do Ecrã Menu Principal. 2 - Aceder à área Tipo Aulas para inserir, modificar ou eliminar um tipo de aulas. 3 - Serão 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 operação 5 - As operações são confirmadas nos botões Novo, Modificar e Eliminar. 6 - Caso o utilizador tente eliminar um tipo de aula que esteja atribuído a uma componente o sistema avisa a impossibilidade de efectuar essa operação. Casos de uso relacionados Include: Controlo de Acesso 18

31 Tabela 3.5- Descrição Estruturada do Caso de Uso Gerir Motivos Gerir Motivos Objectivos Pré - Condição Descrição Inserir, modificar e eliminar motivos. O Utilizador terá que ser válido no sistema e do tipo Administrador. 1 - O Caso de Uso começa quando o utilizador escolhe a opção Motivos dentro do ecrã Outros. 2 - Aceder à área Motivos para inserir, modificar ou eliminar um motivo. 3 - Serão listados os motivos existentes, organizados pela tabela a que pertencem 4 - Todos os motivos têm de estar associados a uma tabela. 5 - As tabelas existentes serão 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 operação. 7 - As operações são confirmadas nos botões 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 operação. Casos de uso relacionados Include: Controlo de Acesso. 19

32 Tabela 3.6- Descrição Estruturada do Caso de Uso Gerir Utilizadores Gerir Utilizadores Objectivos Inserir, modificar e eliminar utilizadores. Pré - Condição O Utilizador terá que ser válido no sistema e do tipo Administrador Descrição 1 - O Caso de Uso começa quando o utilizador escolhe a opção Utilizadores no Menu Proncipal. 2 - Aceder à área Utilizadores para Inserir, Modificar ou Eliminar um Utilizador. 3 - Serão listados os utilizadores existentes. 4 - Os utilizadores poderão de dois tipos: Administrador e Funcionário. 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 operação. 7 - É o Administrador que atribui a password ao utilizador, 8- As operações são confirmadas nos botões Novo, Modificar e Eliminar. Casos de uso relacionados Include: Controlo de Acesso. 20

33 Tabela Descrição Estruturada do Caso de Uso Gerir Departamentos Gerir Departamentos Objectivos Inserir, modificar e eliminar departamentos. Pré - Condição O Utilizador terá que ser válido no sistema. Descrição 1. O Caso de Uso começa quando o utilizador escolhe a opção Departamentos e Professores. 2. Aceder à área Departamentos para inserir, modificar ou eliminar um Departamento. 3. Serão 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 operação Quando um departamento é inserido ou modificado é guardado o ID do utilizador que efectuou a ultima alteração. 6. Quando um departamento é inserido, é guardada a data do sistema como data de inserção. 7. Quando um departamento é modificado, é guardada a data do sistema como data da última alteração. 8. Caso o utilizador tente eliminar um departamento que tenha associado a ele professores, o sistema avisa a impossibilidade de efectuar essa operação. 9. As operações são confirmadas nos botões Novo, Modificar e Eliminar. Casos de uso relacionados Include: Controlo de Acesso. 21

34 Tabela Descrição Estruturada do Caso de Uso Gerir Professores Gerir Professores Objectivos Pré - Condição Descrição: Inserir, modificar e eliminar professores. O Utilizador terá que ser válido no sistema. 1. O Caso de Uso começa quando o utilizador escolhe a opção Professores no Menu Principal para inserir, modificar ou eliminar um Professor 2. Serão listados os professores existentes 3. Os professores poderão ser listados pelo nome e pelo departamento ao qual pertencem 4. Cada professor terá de estar associado a um departamento 5. Os departamentos serão exibidos numa Combo - box 6. Quando um professor e inserido ou modificado é guardado o ID do utilizador que efectuou a ultima alteração 7. Quando um professor é inserido, é guardada a data do sistema como data de inserção 8. Quando um professor é modificado, é guardada a data do sistema como data da última alteração 9. As operações são confirmadas nos botões Inserir, Modificar e Elimina Casos de uso relacionados. Include: Controlo de Acesso 22

35 Tabela Descrição Estruturada do Caso de Uso Gerir Indisponibilidades Gerir Indisponibilidades Objectivos Inserir, modificar e eliminar indisponibilidades Pré - Condição O Utilizador terá que ser válido no sistema Descrição 1 - O Caso de Uso começa quando o utilizador escolhe a opção Casos de uso relacionados 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 alterações serão removidas sempre que um novo ano lectivo seja criado Include: Controlo de Acesso 23

36 Tabela Descrição Estruturada do Caso de Uso Gerir Cursos Gerir Cursos Objectivos Pré - Condição Descrição Inserir, modificar e eliminar cursos O Utilizador terá que ser válido no sistema 1 - O Caso de Uso começa quando o utilizador escolhe a opção Cursos e Disciplinas 2 - Aceder à área Cursos para inserir, modificar ou liminar um Curso 3 - Serão listados numa os cursos existentes 4 - Os cursos poderão ser listados por nome e por tipo de curso 5 - Todos os cursos terão de ter um tipo de curso associado 6 - Os tipos de curso serão 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 operação 8 - Quando um curso é inserido ou modificado é guardado o ID do utilizador que efectuou a ultima alteração 9- Quando um curso é inserido, é guardada a data do sistema como data de inserção 10 - Quando um curso é modificado, é guardada a data do sistema como data da última alteração Casos de uso relacionados Include: Controlo de Acesso 24

37 Tabela Descrição Estruturada do Caso de Uso Gerir Disciplinas Gerir Disciplinas Objectivos Inserir, modificar e eliminar disciplinas Pré - Condição O Utilizador terá que ser válido no sistema Descrição 1. O Caso de Uso começa quando o utilizador escolhe a opção Disciplinas no Menu Principal para inserir, modificar ou eliminar uma Disciplina 2. Serão listadas as disciplinas existentes 3. As disciplinas poderão ser listadas por nome, curso ou semestre 4. As disciplinas têm que estar associadas a um curso 5. Os cursos serão 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 operação 7. Quando uma disciplina e inserido ou modificado é guardado o ID do utilizador que efectuou a ultima alteração 8. Quando uma disciplina é inserida, é guardada a data do sistema como data de inserção 9. Quando uma disciplina é modificada, é guardada a data do sistema como data da última alteração Include: Controlo de Acesso Casos de uso relacionados 25

38 Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Gerir Componentes Objectivos Inserir, modificar e eliminar componentes Pré - Condição O Utilizador terá que ser válido no sistema Descrição 1. O Caso de Uso começa quando o utilizador escolhe a opção Componentes no Menu Principal para inserir, modificar ou eliminar uma Componente 2. Serão 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 operação 4. Quando uma componente é inserida ou modificada é guardado o ID do utilizador que efectuou a última alteração 5. Quando uma componente é inserida, é guardada a data do sistema como data de inserção 6. Quando uma componente é modificada, é guardada a data do sistema como data da última alteração Casos de uso relacionados Include: Controlo de Acesso 26

39 Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Ano Lectivo Gerir Componentes Ano Lectivo Objectivos Inserir, modificar e eliminar componentes ano lectivo Pré - Condição O Utilizador terá que ser válido no sistema Descrição 1. O Caso de Uso começa quando o utilizador escolhe a opção Componentes no Ano Lectivo 2. Aceder à área Componentes Ano Lectivo para inserir, modificar ou eliminar uma Componente_AL 3. Serão 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 operação 6. Caso o utilizador pretenda eliminar uma componente no ano lectivo que esteja associada a um horários em uso no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operação 7. Quando uma componente_al é inserida ou modificada é guardado o ID do utilizador que efectuou a ultima alteração 8. Quando uma componente_al é inserida, é guardada a data do sistema como data de inserção 9. Quando uma componente_al é modificada, é guardada a data do sistema como data da última alteração 10. As componentes_al são criadas no corrente ano lectivo Casos de uso relacionados Include: Controlo de Acesso 27

40 Tabela Descrição Estruturada do Caso de Uso Gerir Componentes Leccionadas Gerir Componentes Leccionadas Objectivos Inserir, modificar e eliminar componentes leccionadas Pré - Condição O Utilizador terá que ser válido no sistema Para atribuir uma componente a um professor, têm de existir o professor e a componente no ano lectivo Para eliminar ou modificar determinada componente leccionada esta terá de existir Descrição 1. O Caso de Uso começa quando o utilizador escolhe a opção atribuir professor à componente 2. Aceder à área atribuir professor à component e para inserir, modificar ou eliminar um professor atribuído a uma componente 3. As componentes leccionadas são listadas 4. As turmas criadas para cada componente leccionada não podem exceder o número de turmas da componente no ano lectivo 5. O número de horas da componente leccionada tem que ser igual ao número de horas da componente 6. Caso o utilizador pretenda eliminar uma componente leccionada que esteja associada a um horário em uso no ano lectivo corrente o sistema avisa a impossibilidade de efectuar essa operação 7. Quando uma componente leccionada é inserida ou modificado é guardado o ID do utilizador que efectuou a ultima alteração 8. Quando uma componente leccionada é inserida, é guardada a data do sistema como data de inserção 9. Quando uma componente leccionada é modificada, é guardada a data do sistema como data da última alteração Casos de uso Include: Controlo de Acesso relacionados 28

41 Tabela Descrição Estruturada do Caso de Uso Gerir Horarios Gerir Horários Objectivos Pré - Condição Descrição Casos de uso relacionados Inserir, modificar e eliminar horários O Utilizador tem que ser válido no sistema 1. O Caso de Uso começa quando o utilizador escolhe a opção Horarios 2. Aceder à área Horários para inserir, modificar, eliminar ou visualizar um horário 3. Após a selecção do curso, ano, semestre e turma, preencher o horário seguindo as indicações do sistema se o utilizador assim o desejar 4. Os Horários podem ser impressos 5. O Utilizador pode alterar a sala predestinada da componente, especificada na altura de criação da componente no ano lectivo por uma outra. Include: Controlo de Acesso 29

42 Tabela Descrição Estruturada do Caso de Uso Aplicar Novo Ano Lectivo Aplicar Novo Ano Lectivo Objectivo Inserir um novo ano lectivo Pré - Condição O Utilizador terá que ser válido no sistema e do tipo Administrador Descrição 1 - O Caso de Uso começa quando o utilizador escolhe a opção Novo Ano Lectivo 2 - Aceder à área Novo Ano Lectivo para inserir um novo ano lectivo 3 - A criação de um novo ano lectivo é automática, não tendo o utilizador possibilidade de definir o ano lectivo a criar Casos de uso relacionados Include: Controlo de Acesso 30

43 3.2. Diagramas de Sequência Os diagramas de sequência documentam as interacções que estão por destras das funcionalidades dos casos de usos. Assim é ilustrado, estruturadamente, o desenvolvimento dos casos de uso através de interacções entre objectos. Não será exibido o diagrama de sequência para o caso de uso Controlo Acesso uma vez que é efectuado em todos os diagramas de sequência. Serão então demonstrados os diagramas de sequência para os casos de uso dos diagramas apresentados anteriormente neste capítulo Diagrama de Sequência - Aplica Novo Ano Lectivo Figura 3.3- Diagrama de Sequência Aplica Novo Ano Lectivo 31

44 Diagrama de Sequência - Gerir Utilizadores Figura 3.4- Diagrama de Sequência Gerir utilizadores 32

45 Diagrama de Sequência - Gerir Salas Horários MN 2007/2008 Figura 3.5- Diagrama de Sequência Gerir Salas Os diagramas de sequência para os casos de uso Gerir Tipos Curso e Gerir Tipo Aulas, não serão exibidos, pois são idênticos ao diagrama da figura

46 Diagrama de Sequência - Gerir Motivos Horários MN 2007/2008 Figura 3.6- Diagrama de Sequência Gerir Motivos 34

47 Diagrama de Sequência - Gerir Departamentos Figura 3.7- Diagrama de Sequência Gerir Departamentos Os diagramas de sequência para o caso de uso Gerir Professores e Gerir Curso não serão exibidos, pois são semelhantes ao da figura

48 Diagrama de Sequência - Gerir Disciplinas Figura 3.8- Diagrama de Sequência Gerir Disciplinas 36

49 Diagrama de Sequência - Gerir Componentes Figura 3.9- Diagrama de Sequência Gerir Componentes 37

50 Diagrama de Sequência - Gerir Componentes No Ano Lectivo Figura Diagrama de Sequência Gerir Componentes No Ano Lectivo 38

51 Diagrama de Sequência - Gerir Componentes leccionadas Figura Diagrama de Sequência Gerir Componentes Leccionadas 39

52 Diagrama de Sequência - Gerir Horários Figura Diagrama de Sequência Gerir Horários 40

53 Diagrama de Sequência - Gerir Indisponibilidades Figura Diagrama de Sequência Gerir Indisponibilidades 41

54 Diagrama de Sequência - Consultar Horários Figura Diagrama de Sequência Consulta Horários 42

55 Diagrama de Sequência - Criar Horários Horários MN 2007/2008 : Administrador : Funcionário Interf ace Dia_Semana Horas Ano_Lectivo Curso Ano Semestre Turma Componente Horarios s_disciplina Introduzir Credenciais Utilizador Válido Valida Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Selecciona Insere Valida Figura Diagrama de Sequência Insere Horários 43

56 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 descrição estruturada e os diagramas de sequência não foram totalmente elucidativos, foram construídos diagramas de actividade numa tentativa de clarificar as acções que ocorrem. Os Diagramas de Actividades que serão apresentados de seguida são: Gerir Horários e Gerir Componentes Leccionadas. 44

57 Diagrama de Actividades - Gerir Horários Figura Diagrama de Actividades Gerir Horários 45

58 Diagrama de Actividades - Gerir Componentes Leccionadas Figura Diagrama de Actividades Gerir Componentes Leccionadas 46

59 3.4. Diagrama de Classes A criação de um modelo de classes resulta de um processo de abstracção através do qual se identificam os objectos (entidades e conceitos) relevantes no contexto que se pretende modelar e se procuram descrever características comuns em termos de propriedades (atributos) e de comportamentos (operações). A essa descrição genérica dá-se o nome de classe [3]. O Diagrama de Classes é uma das técnicas 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 Horários. Nas classes, por baixo dos atributos, são definidas as operações utilizadas pelas classes. As operações são a representação lógica do comportamento de um objecto, consistindo em acções efectuadas por ou sobre um objecto. 47

60 48 Figura Diagrama de Classes FK_UTILIZAD_TEM_UM_TI_TIPO_UTI FK_PROFESSO_PERTENCEM_DEPARTAM FK_HORARIOS_TEM_TEMPO_TEMPO FK_HORARIOS_TEM_DIA_DIAS_SEM FK_PROF_COM_PERTENCEN_ANO_LECT FK_PROF_COM_LECIONA_PROFESSO FK_HORARIOS_COMP_DIS_COMPONEN FK_DISCIPLI_REGENTE_PROFESSO FK_MOTIVOS_TIPO_TABELAS FK_INDISPON_INDISPONI_PROFESSO FK_INDISPON_NO_TEMPO_TEMPO FK_INDISPON_NO_DIA_DIAS_SEM FK_INDISPON_NO_ANO_LE_ANO_LECT FK_COMPONEN_RESPONSAV_PROF_COM FK_DISCIPLI_REFERENTE_CURSOS FK_PROFESSO_ALTERACAO_MOTIVOS FK_DEPARTAM_ALTERACAO_MOTIVOS FK_PROF_COM_ALTERACAO_MOTIVOS FK_DISCIPLI_ALTERACAO_MOTIVOS FK_CURSOS_ALTERACAO_MOTIVOS FK_HORARIOS_ALTERACAO_MOTIVOS FK_COMPONEN_TEM_DISCIPLI FK_COMPONEN_MODULO_CO_TIPO_AUL FK_CURSOS_DIVIDE_SE_TIPOS_CU FK_COMPONEN_LECCIONAD_SALAS FK_PROFESSO_INDENTIFI_CATEGORI FK_COMPONEN_EM_USO_COMPONEN FK_COMPONEN_UTILIZADA_COMPONEN FK_COMPONEN_ALTERAR_C_MOTIVOS FK_PROF_COM_PROF_DIS UTILIZAD FK_COMPONEN_CAL_DEF_P_UTILIZAD FK_COMPONEN_COM_DEF_P_UTILIZAD FK_CURSOS_CUR_DEF_P_UTILIZAD FK_DISCIPLI_DIS_DEF_P_UTILIZAD FK_PROFESSO_PROF_DEF UTILIZAD FK_DEPARTAM_DEP_DEF_P_UTILIZAD FK_HORARIOS_HOR_DEF_P_UTILIZAD FK_COMPONEN_RELATIVA_ANO_LECT FK_COMPONEN_ALTERAR_C_MOTIVOS Tipo_Utilizador ID_Tipo_Utilizador Descricao_Tipo_Utilizador numeric(6) varchar(30) <pk> Utilizadores ID_Utilizador ID_Tipo_Utilizador Username Password Nome_Utilizador Apelido_Utilizador numeric(6) numeric(6) varchar(30) RAW2000 varchar(30) varchar(30) <pk> <fk> Departamentos ID_Departamento ID_Utilizador ID_Motivo Nome_Departamento Data_Inicio_Departamento Data_U_Alteracao_Departamento Data_Fim_Departamento Obs_Departamento numeric(6) numeric(6) numeric(6) varchar(150) datetime datetime datetime varchar(500) <pk> <fk2> <fk1> Professores ID_Professor ID_Utilizador ID_Categoria_Professor ID_Motivo ID_Departamento Nome_Professor Seccao_Professor Horas_1_Semestre Horas_2_Semestre Media_Anual_Horas Data_Inicio_Professor Data_U_Alteracao_Professor Data_Fim_Professor Obs_Professor numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) varchar(300) varchar(100) numeric(4) numeric(4) float(4) datetime datetime datetime varchar(500) <pk> <fk4> <fk3> <fk2> <fk1> Disciplinas ID_Disciplina ID_Professor ID_Utilizador ID_Curso ID_Motivo Nome_Disciplina Ano_Disciplina Semestre_Disciplina Num_Horas_Semanais_Disciplina Data_Inicio_Disciplina Data_U_Alteracao_Disciplina Data_Fim_Disciplina Obs_Disciplina numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) varchar(200) numeric(2) numeric(2) numeric(2) datetime datetime datetime varchar(500) <pk> <fk1> <fk4> <fk2> <fk3> Cursos ID_Curso ID_Motivo ID_Utilizador ID_Tipo_Curso Nome_Curso Num_Anos_Curso Iniciais_Curso Data_Inicio_Curso Data_U_Alteracao_Curso Data_Fim_Curso Obs_Curso numeric(6) numeric(6) numeric(6) numeric(6) varchar(100) numeric(1) varchar(5) datetime datetime datetime varchar(500) <pk> <fk1> <fk3> <fk2> Ano_Lectivo ID_Ano_Lectivo Descricao_Ano_Lectivo Estado_Ano_Lectivo numeric(6) varchar(30) varchar(10) <pk> Horarios ID_Tempo ID_Dia_Semana ID_PCD ID_Componente_AL ID_Utilizador ID_Motivo Descricao_Horario Data_Inicio_Horario Data_U_Alteracao_Horario Data_Fim_Horario Obs_Horarios TIPO_USER CURSO ANO SEMESTRE TURMA SALA ANO_LECTIVO numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) varchar(30) datetime datetime datetime varchar(500) numeric(3) numeric numeric numeric numeric numeric numeric <pk,fk1> <pk,fk2> <pk,fk3> <pk,fk3> <fk5> <fk4> Tempo ID_Tempo Descricao_Tempo Hora_Inicio_Tempo Minutos_Inicio_Tempo Hora_Fim_Tempo Minutos_Fim_Tempo numeric(6) varchar(30) numeric(2) numeric(2) numeric(2) numeric(2) <pk> Dias_Semana ID_Dia_Semana Descricao_Dia_Semana numeric(6) varchar(30) <pk> Salas ID_Sala Descricao_Sala Estado_Sala numeric(6) varchar(30) varchar(12) <pk> Prof_Comp_Dis ID_PCD ID_Ano_Lectivo ID_Utilizador ID_Professor ID_Motivo Data_Inicio_PCD Data_U_Alteracao_PCD Data_Fim_PCD numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) datetime datetime datetime <pk> <fk1> <fk4> <fk2> <fk3> Componentes_Disciplinas ID_PCD ID_Componente_AL Num_Horas_CD Num_Turma_CD Duracao_Aulas_CD Data_Inicio_CD Data_U_Alteracao_CD Data_Fim_CD numeric(6) numeric(6) numeric(2) numeric(2) numeric datetime datetime datetime <pk,fk1> <pk,fk2> Motivos ID_Motivo ID_Tabela Descricao_Motivo numeric(6) numeric varchar(500) <pk> <fk> Tabelas ID_Tabela Descricao_Tabela numeric varchar(500) <pk> Indisponibilidades ID_Professor ID_Tempo ID_Dia_Semana ID_Ano_Lectivo Motivo_Indisponibilidade TIPO_USER ID_TEMPO_F numeric(6) numeric(6) numeric(6) numeric(6) varchar(500) numeric(3) numeric(6) <pk,fk1> <pk,fk2> <pk,fk3> <pk,fk4> Tipo_Aulas ID_Tipo_Aula Descricao_Tipo_Aula numeric(6) varchar(100) <pk> Componentes ID_Componente ID_Tipo_Aula ID_Disciplina ID_Utilizador ID_Motivo Num_Horas_Componente Data_Inicio_Componente Data_U_Alteracao_Componente Data_Fim_Componente Obs_Componente numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) numeric(2) datetime datetime datetime varchar(500) <pk> <fk2> <fk1> <fk4> <fk3> Tipos_Curso ID_Tipo_Curso Descricao_Tipo_Curso numeric(6) varchar(50) <pk> Componentes_Ano_Lectivo ID_Componente_AL ID_Ano_Lectivo ID_Motivo ID_Componente ID_Utilizador ID_Sala Num_Turmas_Componente_AL Prioridade_Sala Sala_Alternativa Software_Necessario Num_Max_Alunos Data_Inicio_CAL Data_U_Alteracao_CAL Data_Fim_CAL numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) numeric(6) numeric(2) numeric(1) numeric(3) varchar(500) numeric(4) datetime datetime datetime <pk> <fk4> <fk5> <fk2> <fk3> <fk1> Categorias_Professores ID_Categoria_Professor Descricao_Categoria_Professor numeric(6) varchar(50) <pk>

61 Descrição das Classes Aqui serão descritas, permenorizadamente as classes que constituem as tabelas existentes nas bases de dados pretendendo-se então especificar todos os atributos associados as mesmas. A descrição de cada classe irá focar quatro pontos: 1. Atributos: Característica que as classes possuem e que é representada por um valor de dados; 1. Descrição: Descrição do atributo 2. Tipo de Dados: Os atributos também podem ser identificados pelos seus tipo de dados, que caracteriza a informação que irá conter; 3. Operações: São a representação lógica do comportamento de uma classe, consistindo em acções efectuadas por ou sobre uma classe 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 instituição. De seguida apresenta-se a descrição da classe Departamentos encontram-se em baixo, na tabela. na tabela é possível observar-se as suas operações. 49

62 Tabela Descrição da Classe Departamentos Atributo Descrição Tipo de Dados ID_Departamento Nome_Departamento Data_Inicio_Departamento Código que identifica a tabela Departamento (Chave Primária). Campo identificador do nome do Departamento. Data de criação do departamento. Number (10) Varchar2 (150) Date Data_U_Alteracao_Departamento Data da última alteração efectuada no registo. Date Data_Fim_Departamento Obs_Departamento Data em que o departamento deixou de ser utilizado e passou a fazer parte do histórico. Campo onde podem ser guardadas diversas informações sobre um determinado departamento. Date Varchar2 (500) 50

63 Tabela Tabela identificadora das operações da Classe Departamentos Operação INSERE_DEPARTAMENTOS ALTERA_DEPARTAMENTOS DELPROCEDURE CHECKIDDEPT OBTEM_DEPARTAMENTOS OBTEM_DEPARTAMENTOS2 Descrição Operação responsável pela inserção de um novo departamento. Operação responsável pela modificação de um departamento existente. Operação que permite a eliminação de um determinado departamento. Operação que permite seleccionar todos os departamentos. Operação que permite obter dados de um determinado Departamento. Operação que permite obter dados de todos os departamentos. 51

64 Classe Professores Nesta tabela é armazenada toda a informação sobre os decentes que actuam e/ou actuaram na instituição. Nas tabelas seguintes podem observar-se a descrição detalhada da classe Professores e as suas operações. Tabela Descrição da Classe Professores Atributo Descrição Tipo de Dados ID_Professor Nome_Professor Descricao_Categoria Seccao_Professor Horas_1_Semestre Horas_2_Semestre Media_Anual Código que identifica um Professor (Chave Primária). Campo identificador do nome do professor. Campo que identifica a categoria do professor. Campo que identifica a secção que o professor pertence, isto se, existirem secções dentro de um departamento. Campo que identifica o número de horas que o professor lecciona por semana no 1º Semestre. Campo que identifica o número de horas que o professor lecciona por semana no 2º Semestre. Media anual do número de horas leccionadas por semana. Number (10) Varchar2 (300) Varchar (100) Varchar (100) Number (2) Number (2) Float (4) Data_Inicio_Professor Data de criação do Date 52

65 Data_U_Alteracao_ Professor Data_Fim_ Professor Obs_Professor professor. Data da última alteração efectuada no registo. Data em que o professor deixou de ser utilizado e passou a fazer parte do histórico. Campo onde podem ser guardadas variadas informações sobre um determinado professor. Date Date Varchar2 (500) Tabela Tabela identificadora das operações da Classe Professores Operação Descrição INSERE_PROFESSOR ALTERA_PROFESSOR DELPROCEDURE OBTEM_PROFESSOR OBTEM_PROFESSOR2 Operação responsável pela inserção de um novo professor. Operação responsável pela modificação de um professor existente. Operação que permite a eliminação de um determinado professor. Operação que permite seleccionar todos os atributos de um determinado professor. Operação que permite seleccionar todos os professores. 53

66 Classe Indisponibilidades Na classe Indisponibilidades são 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 não tem a disponibilidade para leccionar uma aula. As indisponibilidades podem englobar quaisquer razões que definam a situação acima descrita. Tabela Descrição da Classe Indisponibilidades Atributo Descrição Tipo de Dados Motivo_Indisponibilidad e Id_tempo_f Campo onde será armazenado o motivo da indisponibilidade do professor para determinado tempo e dia da semana. Campo onde será armazenado o final da indisponibilidade para aquele dia Varchar2 (500) Numeric (6,0) Tabela Tabela identificadora das operações da Classe indisponibilidades Operação INSERE_INDISPONIBILIDADE DELPROCEDURE OBTEM_ INDISPONIBILIDADE Descrição Operação responsável pela inserção de uma nova indisponibilidade do professor. Operação responsável pela eliminação de uma ou mais indisponibilidades de um determinado professor. Operação responsável por mostrar as indisponibilidades de um determinado professor. CHECK_ID_ INDISPONIBILIDADE Operação responsável por verificar se o numero de indisponibilidades existentes. 54

67 Classe Tipo_Utilizador Esta classe é uma classe estática, pois os seus dados não poderão ser alterados. Irá armazenar os tipos de utilizador existentes no sistema (Administrador e Funcionário). Tabela Descrição da Classe Tipo_Utilizador Atributo Descrição Tipo de Dados ID_Tipo_Utilizador Descricao_Tipo_Utilizador Campo que identifica um tipo de utilizador (chave primária). Campo que identifica o nome do tipo de utilizador. Number (1) Varchar2 (30) Tabela Tabela identificadora das operações da Classe Tipo_Utilizador Operação OBTEM_TIPO_UTILIZADOR OBTEM_TIPO_UTILIZADOR2 Descrição Operação responsável por seleccionar os dados de um determinado utilizador Operação responsável por seleccionar todos os tipos de utilizador permitindo assim a sua visualização. 55

68 Classe Utilizadores A Classe Utilizadores contém todos os utilizadores da aplicação. A classe não serve apenas para validar a entrada de utilizadores na aplicação, serve também para associar os utilizadores às inserções, alterações e eliminações que efectuam aos registos da BD. Tabela Descrição da classe Utilizadores Atributo Descrição Tipo de Dados ID_Utilizador Username Password Nome_Utilizador Apelido_Utilizador Estado_Utilizador Campo que identifica um utilizador (chave primária). Campo que identifica o Username do utilizador. Campo que identifica a Password do utilizador. Campo que identifica o Nome do utilizador. Campo que identifica o Apelido do utilizador. Campo que identifica o estado do utilizador (0 para novo utilizador, 1 para utilizador em uso, 2 para utilizador desactivado). Number (10) Varchar2 (30) Numeric Varchar2 (30) Varchar2 (30) Number (1) 56

69 Tabela Tabela identificadora das operações da classe Utilizadores Operação INSERE_UTILIZADOR ALTERA_UTILIZADOR OBTEM_UTILIZADOR Descrição Operação responsável pela inserção de novos utilizadores na BD. Operação responsável pela modificação dos dados de um utilizador. Operação responsável pela selecção de um determinado utilizador. 57

70 Classe Tabelas Esta émais uma classe onde a manipulação de dados não é possível. Armazena os tipos de dados existentes aos quais se aplicam os motivos existentes para justificar a sua eliminação. Tabela Descrição da classe Tabelas Atributo Descrição Tipo de Dados ID_Tabela Descrição_Tabela Campo que identifica uma tabela (chave primária). Campo que identifica o nome da Tabela. Number (1) Varchar2 (500) Tabela Tabela identificadora das operações da classe Tabelas Operação OBTEM_TABELAS OBTEM_TABELAS2 Descrição Operação responsável pela selecção de determinada tabela Operação responsável pela selecção de todas as tabelas existentes, às quais se aplicam motivos. 58

71 Classe Motivos Esta classe armazena dados referentes a motivos que levam a determinados registos a entrarem no histórico do sistema. Tabela Descrição da classe Motivos Atributo Descrição Tipo de Dados ID_Motivo Descrição_Motivo Campo que identifica um motivo (chave primária). Campo utilizado para descrever um Motivo. Number (10) Varchar2 (500) Tabela Tabela identificadora das operações da classe Motivos Operação INSERE_MOTIVOS ALTERA_MOTIVOS DELPROCEDURE OBTEM_MOTIVOS OBTEM_MOTIVOS2 Descrição Operação responsável pela inserção de novos motivos. Operação responsável pela alteração de motivos já existentes. Operação responsável pela eliminação de motivos já existentes. Operação responsável pela selecção De um determinado motivo. Operação responsável pela selecção dos motivos existentes. 59

72 Classe Disciplinas Os dados nesta tabela são de alta importância uma vez que traduzem a informação das disciplinas leccionadas na aplicação. Através destes dados poderão obter-se informações para a distribuição das componentes que lhes estão associadas. Poderão existir disciplinas com o mesmo nome, no entanto, essa situação não se poderá verificar dentro do mesmo curso. Tabela Descrição da classe Disciplinas Atributo Descrição Tipo de Dados ID_Disciplina Nome_Disciplina Ano_Disciplina Semestre_Disciplina Num_Horas_Semanais_Di sciplina Data_Inicio_Disciplina Data_U_Alteracao_Discipl ina Data_Fim_Disciplina Obs_Disciplina Campo que identifica uma Disciplina (Chave Primária). Campo que identifica o nome de uma Disciplina. Campo que identifica o ano de uma Disciplina. Campo que identifica o semestre de uma Disciplina. Campo que identifica o número de horas semanais de uma disciplina. Campo que identifica a data de inserção da Disciplina. Campo que identifica a data da ultima alteração na disciplina. Campo que identifica a data de fim de utilização de uma disciplina. Campo onde podem ser guardadas diversas informações sobre uma determinada Disciplina. Number (10) Varchar2 (200) Number (2) Varchar2 (1) Number (2) Date Date Date Varchar2 (500) 60

73 Tabela Tabela identificadora das operações da classe Disciplinas Operação INSERE_DISCIPLINAS ALTERA_DISCIPLINAS CHECKID_DISCI DELPROCEDURE OBTEM_DISCIPLINA OBTEM_DISCIPLINAS2 OBTEM_DISCIPLINA_PROF OBTEM_DISCIPLINA_DEPT OBTEM_DISCIPLINA_SEME OBTEM_DISCIPLINA_CURS Descrição Operação responsável pela inserção de novas disciplinas. Operação responsável pela alteração de disciplinas já existentes. Operação responsável pela verificação do número total de disciplinas. Operação responsável pela eliminação de uma disciplina. Operação responsável pela selecção dos atributos de uma determinada disciplina. Operação responsável pela selecção das disciplinas existentes. Operação responsável pela selecção dos atributos das disciplinas associadas a um determinado docente Operação responsável pela selecção dos atributos das disciplinas associadas a um determinado departamento. Operação responsável pela selecção dos atributos das disciplinas associadas a um determinado semestre Operação responsável pela selecção dos atributos das disciplinas associadas a um determinado curso 61

74 Classe Cursos Na classe Cursos é guardada toda a informação relativa aos cursos existentes na instituição. Também esta classe armazena dados importantes. Tabela Descrição da classe Cursos Atributo Descrição Tipo de Dados ID_Curso Nome_Curso Num_Anos_Curso Iniciais_Curso Data_Inicio_Curso Data_U_Alteracao_ Curso Data_Fim_Curso Obs_Curso Campo que identifica um curso (Chave Primária). Campo que identifica o nome de um curso. Campo que identifica o número de anos de um curso. Campo que representa a iniciais do curso. Campo que identifica a data de inserção do curso. Campo que identifica a data da ultima alteração no curso. Campo que identifica a data de fim de utilização do curso. Campo onde podem ser guardadas variadas informações sobre um determinado Curso. Number (10) Varchar2 (100) Number (1) Varchar2 (5) Date Date Date Varchar2 (500) 62

75 Tabela Tabela identificadora das operações da classe Cursos Operação INSERE_CURSO ALTERA_CURSO CHECKID_CURSO DELPROCEDURE OBTEM_CURSO OBTEM_CURSO2 Descrição Operação responsável pela inserção de um novo curso. Operação responsável pela alteração de um curso já existente. Operação responsável pela verificação do numero total de cursos Operação responsável pela eliminação de um curso. Operação responsável pela selecção de um determinado curso Operação responsável pela selecção dos cursos existentes. 63

76 Classe Tipos_Curso Nesta classe serão armazenados os dados referentes aos tipo de curso leccionados na instituição Tabela Descrição da classe Tipos_Curso Atributo Descrição Tipo de Dados ID_Tipo_Curso Descricao_Tipo_Curso Campo responsável pela identificação de um tipo de curso (chave primária). Campo responsável pela descrição de um tipo de curso. Number (10) Varchar2 (50) Tabela Tabela identificadora das operações da classe Tipos_Curso Operação INSERE_TIPO_CURSO ALTERA_TIPO_CURSO DELPROCEDURE OBTEM_ TIPO_CURSO OBTEM_ TIPO_CURSO2 Descrição Operação responsável pela inserção de novo tipo de curso. Operação responsável pela alteração de um tipo de curso já existente. Operação responsável pela eliminação de um tipo de curso. Operação responsável pela selecção um determinado tipo de curso. Operação responsável pela selecção dos tipos de curso existentes. 64

77 Classe Componentes As aulas são leccionadas através de componentes que são nada mais e nada menos que tipos de aula. Esta classe alberga a informação relacionada com a disposição das componentes das disciplinas Tabela Descrição da classe Componentes Atributo Descrição Tipo de Dados ID_Componente Num_Horas_Componente Data_Incio_Componente Data_U_Alteracao_Comp onente Data_Fim_Componente Obs_Componente Campo responsável pela identificação de uma componente (chave primária). Campo responsável pelo número de horas semanais de uma determinada componente. Data de criação da componente. Data da última alteração de uma determinada componente. Data de eliminação de um determinada componente. Campo onde podem ser guardadas variadas informações sobre uma determinada componente. Number (10) Number (2) Date Date Date VarChar2 (500) 65

78 Tabela Tabela identificadora das operações da classe Componentes Operação INSERE_COMPONENTES ALTERA_COMPONENTES OBTEM_COMPONENTES CHECKID_COMPONENTES OBTEM_COMPONENTES2 DELPROCEDURE Descrição Operação responsável pela inserção de uma nova componente Operação responsável pela alteração de uma componente Operação responsável pela visualização das componentes existentes Operação responsável pela selecção do número total de componentes Operação responsável pela selecção do total das componentes. Operação responsável pela eliminação de uma determinada componente Classe Tipo_Aulas As aulas são leccionadas em diversos tipos de aula, por exemplo: aulas teóricas, praticas ou ainda teórico-práticas. É pertinente então que os dados referentes a estes tipos de aula sejam armazenados para que as componentes das aulas possam ser documentadas convenientemente. 66

79 Tabela Descrição da classe Tipo_Aulas Atributo Descrição Tipo de Dados ID_Tipo_Aula Descricao_Tipo_Aula Campo responsável pela identificação de um tipo de Aula (chave primária). Campo responsável pela descrição de um tipo de aula. Number (10) Varchar2 (100) Tabela Tabela identificadora das operações da classe Tipo_Aulas Operação INSERE_TIPO_AULAS ALTERA_TIPO_AULAS CHECK_TIPO_AULAS DELPROCEDURE OBTEM_TIPO_AULAS OBTEM_TIPO_AULAS2 Descrição Operação responsável pela inserção de novo tipo de aula. Operação responsável pela alteração de um tipo de aula já existente. Operação responsável pelo calculo do total de tipos de aula existentes. Operação responsável pela eliminação de um tipo de aula. Operação responsável pela selecção dos tipos de aulas existentes. Operação responsável pela selecção do total de tipos de aula existenes 67

80 Classe Componentes_Ano_lectivo Esta classe é importante porque especifica dados importantes das componentes que sofrem actualizações constantes. Os dados nesta classe passam por atributos tais como: sala em que é leccionada, número de alunos, conteúdos ou número de horas semanais. A sua actualização é efectuada todos os anos lectivos e mesmo durante os mesmos e uma das bases para a criação de horários de cada ano lectivo. Tabela Descrição da classe Componentes_Ano_Lectivo Atributo Descrição Tipo de Dados ID_Componente_AL Num_Turmas_Compon ente_al Prioridade_Sala Sala_Alternativa Material_Necessario Campo responsável pela identificação de uma componente no ano lectivo (chave primária). Campo responsável pelo número turmas que uma componente no lectivo possui. Campo responsável pela prioridade que um sala tem para uma determinada componente (valores entre 1 e 3). Componente que identifica a sala alternativa caso a principal não possa ser utilizada. Componente que identifica o material necessário para as aulas de Number (10) Number (2) Number (1) Varchar2 (30) Varchar2 (500) 68

81 Num_Max_Alunos Data_Inicio_CAL Data_U_Alteracao_CA L Data_Fim_CAL uma determinada componente. Componente que identifica o número máximo de alunos que uma aula deve ter. Data de inserção da componente no ano lectivo. Data da última alteração na componente no ano lectivo. Data de eliminação da componente no ano lectivo. Number (3) Date Date Date 69

82 Tabela Tabela identificadora das operações da classe Componentes_Ano_Lectivo Operação INSERE_COMPONENTE_AL ALTERA_COMPONENTE_AL DELPROCEDURE CHECKID_COMPONENTE_AL OBTEM_COMPONENTE_AL OBTEM _COMPONENTE_AL2 Descrição Operação responsável pela inserção de nova componente no ano lectivo. Operação responsável pela alteração de uma componente no ano lectivo. Operação responsável pela eliminação de uma componente no ano lectivo. Operação responsável pelo calculo do total das componentes existentes. Operação responsável pela selecção dos dados de uma componente no ano lectivo. Operação responsável pela visualização das componentes existentes Classe Salas É importante salientar que as aulas são leccionadas em salas de aula ou laboratórios. Assim, os dados referentes a todas as salas de aula serão armazenados nesta classe. Esses dados serão a sala em questão e o seu estado senod o Operacional o considerado para as salas de aula onde podem ser dadas aulas, Reservado para as salas que são ocupadas por outras entidades e Em manutenção para as salas que se encontram em manutenção alargadae não podem ser utilizadas de momento. 70

83 Tabela Descrição da classe Salas Horários MN 2007/2008 Atributo Descrição Tipo de Dados ID_Sala Descricao_Sala Estado_Sala Campo que identifica uma Sala (Chave Primária). Campo que identifica o nome de uma sala. Campo que identifica o estado de uma sala (disponível ou indisponível). Number (10) Varchar2 (30) Varchar2 (12) Tabela Tabela identificadora das operações da classe Salas Operação INSERE_SALA ALTERA_SALA DELPROCEDURE CHECKID_SALA OBTEM_SALA OBTEM_SALA2 Descrição Operação responsável pela inserção de nova sala. Operação responsável pela alteração de uma sala. Operação responsável pela eliminação de uma sala. Operação responsável pelo calculo do total Operação responsável por obter dados de uma determinada sala Operação responsável por obter os dados de todas as salas existentes. 71

84 Classe Componentes_Disciplinas Esta classe reúne todos os dados referentes às disciplinas que são leccionadas a cada turma bem como quem as lecciona e a duração das aulas. Esta é a fonte de onde a classe horários irá retirar os dados referentes os aulas. A chave primaria desta classe será constituída pelos atributos estrangeiros: ID_Componente_AL de Componentes_Ano_Lectivo e ID_PCD de Componentes_Disciplina Tabela Descrição da classe Componentes_Disciplinas Atributo Descrição Tipo de Dados Num_Horas_CD Num_Turma_CD Duracao_Aulas_C D Data_Inicio_CD Data_U_Alteracao _CD Data_Fim_CD Campo que identifica o número de horas da componente. Campo que identifica o número da turma da componente. Campo que identifica a duração estipulada das aulas. Data em que a componente foi criada. Data da última alteração efectuada ao registo. Data em que o registo foi eliminado. Number (2) Number (2) Number (4) Date Date Date 72

85 Tabela Tabela identificadora das operações da classe Componentes_Disciplina Operação INSERE_COPMDIS ALTERA_COPMDIS DELPROCEDURE CHECKID_COPMDIS OBTEM_COPMDIS OBTEM _COPMDIS2 Descrição Operação responsável pela inserção de uma nova componente. Operação responsável pela alteração de uma componente existente. Operação responsável pela eliminação de uma componente. Operação responsável pelo calculo do total de registos existentes na classe Operação responsável por listar os dados de um determinado registo Operação responsável por todos os registos da classe Classe Prof_Com_Dis Tendo em conta que a classe anterior pode ser considerada a mais importante no que toca à inserção de dados na classe Horários. Esta é sem duvida uma das classes mais importantes para a inserção de dados na classe anterior. Uma vez que dois docentes podem dar aulas, a mesma componente e a mesma disciplina, é conveniente então diferenciar ambos os casos como casos singulares. 73

86 Tabela Descrição da classe Prof_Comp_Disc Atributo Descrição Tipo de Dados ID_PCD Data_Inicio_PCD Data_U_Alteracao_PC D Data_Fim_PCD Campo que identifica o Prof_Comp_Dis (chave primária). Data em que o registo foi criado. Data da última alteração efectuada ao registo. Data em que o registo foi eliminado. Number (10) Date Date Date Tabela Tabela identificadora das operações da classe Prof_Comp_Disc Operação INSERE_PROF_COMP_DIS ALTERA_PROF_COMP_DIS DELPROCEDURE CHECKID_PROF_COMP_DIS OBTEM_PROF_COMP_DIS OBTEM_PROF_COMP_DIS2 Descrição Operação responsável pela inserção de um novo Prof_Comp_Disc. Operação responsável pela alteração de um Prof_Comp_Disc. Operação responsável pela eliminação de um Prof_Comp_Disc. Operação responsável pelo calculo do total de registos existentes Operação responsável pela obtenção de dados de um determinado registo Operação responsável pela obtenção de todos os registos 74

87 Classe Horarios Pode dizer-se que esta classe é o centro da aplicação para a qual todas a outras têm significado directo ou indirecto. A base de dados foi então desenhada tendo esta classe como a mais importante e para a mesma que a aplicação se desenvolve. Tabela Descrição da classe Horário Atributo Descrição Tipo de Dados Curso Ano Semestre Turma Sala Ano_Lectivo Campo que identifica o curso do horário. Campo que identifica o ano do horário. Campo que identifica o semestre do horário. Campo que identifica a turma do horário. Campo que identifica a sala de aula onde a aula será leccionada Campo que identifica o ano lectivo aplicado Number (2) Number (2) Number (1) Number (2) Number (18) Number (18) 75

88 Tabela Tabela identificadora das operações da classe Horário Operação INSERE_HORARIO ALTERA_HORARIO DELPROCEDURE OBTEM _HORARIO Descrição Operação responsável pela inserção de um novo horário. Operação responsável pela alteração de um horário. Operação responsável pela eliminação de um horário. Operação responsável pela visualização de um horário Classe Dias_Semana Mais uma classe estática cujos dados são inalteráveis servindo de apoio à inserção de dados em outras diferentes classes. É estatica uma vez que a semana tem apenas 7 dias Tabela Descrição da classe Dias_Semana Atributo Descrição Tipo de Dados ID_Dias_Semana Descrição_Dia_Semana Campo que identifica um dia da semana (chave primária). Campo que define a descrição de um dia da semana. Number (1) Varchar2 (30) 76

89 Tabela Tabela identificadora das operações da classe Dias_Semana Operação OBTEM_DIA_SEMANA OBTEM_DIA_SEMANA2 Descrição Operação responsável pela obtenção de um determinado dia da semana Operação responsável pela selecção e obtenção de todos os registos Classe Tempo Esta classe estática armazena registos de horas as quais são atribuídas as aulas. Cada intervalo tem uma duração de 50 minutos que vão das 08h30m até as 23h20m. 77

90 Tabela 3.53 Descrição da tabela Tempo Atributo Descrição Tipo de Dados ID_Tempo Descrição_Tempo Hora_Inicio_Tempo Minutos_Inicio_Temp o Hora_Fim_Tempo Minutos_Fim_Tempo Campo que identifica um tempo (chave primária). Campo que define a descrição de um tempo. Campo que define a hora de início de um tempo. Campo que define os minutos de início de um tempo. Campo que define a hora de fim de um tempo. Campo que define os minutos de fim de um tempo. Number (2) Varchar2 (30) Number (2) Number (2) Number (2) Number (2) 78

91 Tabela Tabela identificadora das operações da tabela Tempo Operação OBTEM_ID_TEMPO OBTEM_ID_TEMPO2 Descrição Operação responsável pela selecção de um determinado registo Operação responsável pela obtenção de todos os dados existentes Classe Ano_lectivo Como muita informação no sistema depende do ano lectivo onde é utilizada deixando de ter sentido quando se muda de ano lectivo. Uns dos exemplos óbvios são mesmo os horários que mudam todos os anos e as informações associadas perdem o sentido. Tabela Descrição da classe Ano_Lectivo Atributo Descrição Tipo de Dados ID_Ano_Lectivo Descrição_Ano_Le ctivo Estado_Ano_Lecti vo Campo que identifica um ano lectivo (chave primária). Campo que define a descrição de um ano lectivo. Campo que define o estado de um ano lectivo, em uso ou não. Number (6) Varchar2 (30) Number (1) 79

92 Tabela Tabela identificadora das operações da classe Ano_Lectivo Operação INSERE_ANO_LECTIVO ALTERA_ANO_LECTIVO DELPROCEDURE OBTEM_ANO_LECTIVO OBTEM_ANO_LECTIVO2 Descrição Operação responsável pela inserção de um novo ano lectivo. Operação responsável pela alteração do ano lectivo actual. Operação responsável pela eliminação do ano lectivo actual Operação responsável pela obtenção de um determinado ano lectivo Operação responsável pela obtenção de todos os registos existentes. 80

93 4. Implementação Aqui termina a análise do sistema, a qual foi executada em conjunto com o aluno Manuel Vieira. Começa então a implementação do sistema que será documentada o mais clara possível. Assim a implementação será documentada seguindo os passos: 81

94 Modelo de Entidades Relacional (ER) Figura 4.1 Modelo Relacional Tem_um_Tipo Pertencem Tem_Tempos Tem_Dia Pertencente Leciona Comp_Dis Regente Tipo Indisponiblidade No_Tempo No_Dia No_Ano_Lectivo Responsavel Referente Alteracao_Professor Alteracao_Departamento Alteracao_PCD Alteracao_Disciplina Alteracao_Curso Alteracao_Horario Tem Modulo_Comp Divide-se Leccionada Indentificado Em uso Utilizada Alterar_Componente Prof_Dis_Def_Por CAL_Def_Por Com_Def_Por Cur_Def_Por Dis_Def_Por Prof_Def_Por Dep_Def_Por Hor_Def_Por Relativa Alterar_Comp_AL Tipo_Utilizador ID_Tipo_Utilizador Descricao_Tipo_Utilizador <pi> N6 VA30 <M> <M> Identifier_1 <pi> Utilizadores ID_Utilizador Username Password Nome_Utilizador Apelido_Utilizador <pi> N6 VA30 RAW2000 VA30 VA30 <M> <M> <M> <M> <M> Identifier_1 <pi> Departamentos ID_Departamento Nome_Departamento Data_Inicio_Departamento Data_U_Alteracao_Departamento Data_Fim_Departamento Obs_Departamento <pi> N6 VA150 D D D VA500 <M> <M> <M> Identifier_1 <pi> Professores ID_Professor Nome_Professor Seccao_Professor Horas_1_Semestre Horas_2_Semestre Media_Anual_Horas Data_Inicio_Professor Data_U_Alteracao_Professor Data_Fim_Professor Obs_Professor <pi> N6 VA300 VA100 N4 N4 F4 D D D VA500 <M> <M> <M> Identifier_1 <pi> Disciplinas ID_Disciplina Nome_Disciplina Ano_Disciplina Semestre_Disciplina Num_Horas_Semanais_Disciplina Data_Inicio_Disciplina Data_U_Alteracao_Disciplina Data_Fim_Disciplina Obs_Disciplina <pi> N6 VA200 N2 N2 N2 D D D VA500 <M> <M> <M> <M> <M> <M> Identifier_1 <pi> Cursos ID_Curso Nome_Curso Num_Anos_Curso Iniciais_Curso Data_Inicio_Curso Data_U_Alteracao_Curso Data_Fim_Curso Obs_Curso <pi> N6 VA100 N1 VA5 D D D VA500 <M> <M> <M> <M> <M> Identifier_1 <pi> Ano_Lectivo ID_Ano_Lectivo Descricao_Ano_Lectivo Estado_Ano_Lectivo <pi> N6 VA30 VA10 <M> <M> <M> Identifier_1 <pi> 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 D D D VA500 N3 N N N N N N <M> <M> Tempo ID_Tempo Descricao_Tempo Hora_Inicio_Tempo Minutos_Inicio_Tempo Hora_Fim_Tempo Minutos_Fim_Tempo <pi> N6 VA30 N2 N2 N2 N2 <M> <M> <M> <M> <M> <M> Identifier_1 <pi> Dias_Semana ID_Dia_Semana Descricao_Dia_Semana <pi> N6 VA30 <M> Identifier_1 <pi> Salas ID_Sala Descricao_Sala Estado_Sala <pi> N6 VA30 VA12 <M> <M> <M> Identifier_1 <pi> Prof_Comp_Dis ID_PCD Data_Inicio_PCD Data_U_Alteracao_PCD Data_Fim_PCD <pi> N6 D D D <M> <M> Identifier_1 <pi> 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> Motivos ID_Motivo Descricao_Motivo <pi> N6 VA500 <M> <M> ID_Motivo <pi> Tabelas ID_Tabela Descricao_Tabela <pi> N VA500 <M> <M> Identifier_1 <pi> Indisponibilidades Motivo_Indisponibilidade TIPO_USER ID_TEMPO_F VA500 N3 N6 <M> Tipo_Aulas ID_Tipo_Aula Descricao_Tipo_Aula <pi> N6 VA100 <M> <M> Identifier_1 <pi> Componentes ID_Componente Num_Horas_Componente Data_Inicio_Componente Data_U_Alteracao_Componente Data_Fim_Componente Obs_Componente <pi> N6 N2 D D D VA500 <M> <M> <M> ID_Componente <pi> Tipos_Curso ID_Tipo_Curso Descricao_Tipo_Curso <pi> N6 VA50 <M> <M> Identifier_1 <pi> Componentes_Ano_Lectivo ID_Componente_AL Num_Turmas_Componente_AL Prioridade_Sala Sala_Alternativa Software_Necessario Num_Max_Alunos Data_Inicio_CAL Data_U_Alteracao_CAL Data_Fim_CAL <pi> N6 N2 N1 N3 VA500 N4 D D D <M> <M> <M> <M> ID_Componente_AL <pi> Categorias_Professores ID_Categoria_Professor Descricao_Categoria_Professor <pi> N6 VA50 <M> <M> Identifier_1 <pi>

95 Para a implementação desta aplicação, inicialmente, procedeu-se ao levantamento de informação a qual mais tarde seria processada para iniciar o desenvolvimento. Para começar, houve uma reunião com a funcionária Cristina Rosa, a qual, explicou o procedimento e os documentos utilizados para a produção de horários. Tendo isto, começaram as reuniões 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 criação de horários. Após várias reuniões e mais tarde depois da análise do sistema, iniciou-se a implementação da aplicação. O meu colega partiu para a produção do sistema numa aplicação Windows criada em C# com e eu parti para o desenvolvimento de uma aplicação Web em JSP. O modelo ER foi produzido em o PowerDesigner da Sybase v12 o qual permite a criação fácil e simples de modelos conceptuais, físicos, de objectos. Permite ainda a criação de ficheiros DDL para a criação das bases de dados em MS SQL Server 2005 e em Oracle 10G R2. 83

96 4.2. Criação das Bases de Dados Assim procedeu-se à criação das bases de dados. Após a criação do modelo conceptual, que equivale ao modelo ER, devemos criar o modelo físico ou diagrama de classes. Figura 4.2 Acesso à criação do Modelo Físico (Diagrama de Classes) 84

97 De seguida: Figura Criação do Modelo Físico (Diagrama de Classes) 85

98 Depois procedeu-se à exportação para os diferentes Gestores de Bases de Dados Figura 4.4 Acesso ao menu de criação de bases de dados Figura 4.5 Menu de criação de bases de dados para SQL Server 86

99 Figura 4.6 Menu de criação de bases de dados para Oracle 87

100 4.3. T-SQL e PL/SQL Após a criação das bases de dados procede-se a programação de procedimentos que irão interagir com as bases de dados. Aqui esta a base de um procedimento criado em T-SQL. Comentários para documentar Autoria, data e função Corpo do Procedimento Inserir, Alterar, Obter e Apagar Tratamento de Erros Figura 4.7 Arquitectura base de um procedimento em T-SQL 88

101 Aqui está um procedimento base em PL/SQL Corpo do Procedimento Inserir, Alterar, Obter e Apagar Tratamento de Erros Comentários para documentar Autoria, data e função Figura 4.8 Arquitectura base de um procedimento em PL/SQL Nos anexos serão apresentados procedimentos utilizados pelo sistema 89

102 4.4. Acessos O acesso às bases de dados é efectuado através de Java Database Connectivity (JDBC) a qual é feita através de drivers específicos para cada gestor de bases de dados. Neste caso, usou-se o driver 1.4 para conexão Oracle e a versão 1.1 para a conexão com o MS SQL Server. Tendo isto a conexão é feita essencialmente com três linhas de código: Figura 4.9 Código para conexão às bases de dados Onde a verde drivermssql é identificado o driver utilizado. A frase de conexão (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 conexão. As frases de conexão variam conforme o gestor de bases de dados Como norma de segurança, os dados referentes as conexões encontram-se armazenadas num ficheiro XML armazenado no disco. Os dados são acedidos através 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

103 4.5. JavaBeans Como dito anteriormente, estas classes são os intermediários que comunicam entre a interface e as bases de dados. Interface.jsp JavaBean.java Procedime nto.sql Base de Dados Figura 4.10 Interacção entre entidades. São nestas classes, criadas funções para a interacção com as bases de dados onde dados são, ou não, inseridos dados vindos da interface e estas funções devolvem a informação requerida, seja por operações ou por tratamentos de dados. Foram criadas classes para operações e para acessos as bases de dados. As referentes a conexões à base de dados contêm uma função específica para cada acção em cada base de dados. 91

104 Figura 4.11 Funções internas de um JavaBean. 92

105 Apresentadas na figura anterior estão representadas a funções par a interacção com as bases de dados. As suas funções resumem-se a: Tabela 4.1- Descrição de funções existentes numa JavaBean CHECKIDCURS_XXXSQL INSCURS_XXXSQL ALTCURS_XXXSQL OBTNUMCURS_XXXSQL OBTCURS_XXXSQL getcurso_xxxsql SETERROR_XXXSQL SETEXCEP_XXXSQL GETERROR_XXXSQL Função responsável pela verificação de ID s Função responsável pela inserção de dados Função responsável pela alteração de dados Função responsável pela obtenção do número total de registos Função responsável pela obtenção de dados de um determinado registo Função responsável pela obtenção de dados de todos os registos da tabela Função responsável pelo armazenamento temporário de erros quando existem Função responsável pelo armazenamento temporário de excepções quando existem Função responsável pelo envio para a interface de excepções quando existem 93

106 4.6. Java Server Pages (JSP) Quando se iniciou a implementação desta aplicação a ideia de tornar aplicação portável foi a mais aliciante. A ideia inicial seria proceder à implementação de uma aplicação Web em ASP.NET com incorporação de C#. Contudo como o aluno Manuel Vieira decidiu utilizar esta linguagem para a sua aplicação decidiu-se passar a uma outra forma de implementar a aplicação. Todas as paginas JSP estão estruturadas para uma função especifica normalmente relacionada com uma operação de uma determinada tabela Obtenção de todos dados Que pode ser acedida através do menu principal ou de um link adjacente quando os dados se encontram associados a outras tabelas Figura 4.12 Obtenção de dados de uma tabela. 94

107 Inicialmente a pagina faz um pedido à JavaBean correspondente que usa uma função do tipo: Figura 4.13 Funções 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

108 Figura 4.14 Invocação das funções de uma JavaBean É dada depois ao utilizador a opção de ver dados de um determinado registo, alterar os seus dados ou ainda elimina-lo. 96

109 Ver Detalhes Ao escolher está opção serão apresentados dados do registo escolhido. Figura 4.15 Obtenção de dados de um registo. A pagina JSP faz novamente um pedido para a obtensão de dados do registo pedido 97

110 Figura 4.16 Código referente à obtenção de um registo. Neste caso (Figura 4.16), são obtidos dados de um determinado curso. Contudo, há atributos que são representados pelos numero de identificação (ID). Assim a pagina JSP pede os dados dos registos cujos ID s fazem parte do registo. Figura 4.17 Código referente à obtenção de um registo adjacente. Na Figura 4.17 representa-se o código para pedir dados sobre o tipo de curso. 98

111 Figura 4.17 Código referente à obtenção de um registo adjacente. Figura 4.18 Código referente à obtenção de um registo adjacente. Neste caso, o Utilizador que procedeu à ultima alteração. 99

112 Editar e Novo Ao optar por editar são mostrados os dados originais são mostrados e é mostrado o formulario para a alteração de dados. Avalidação dos dados é efectuada atraves de JavaScript. Há atributos que são mostrados no formulario em forma de Combo-Box que são inseridos na mesma depois da pagina JSP ter requisitado o mesmos à camada central. Figura 4.19 Formulário para editar dados de um curso. O mesmo passa-se com a pagina JSP de inserção é apenas mostrado o formulário para a inserção de dados e as Combo-Boxes são preenchidos da mesma forma que a anterior. 100

113 Figura 4.20 Formulário para inserir dados de um curso. 101

114 Validação Figura 4.21 Formulário para editar dados de um curso com as validações activadas. A validação como dito anteriormente a validação está a cargo de funções JavaScript que verificam o estado dos campos. 102

115 Inserção de Horários Como o segundo objectivo foi a criação de horários decidiu-se aqui elucidar a implementação do processo de inserção de registos para a tabela Horários. A implementação começou com um fluxograma apresentado de seguida. Sendo esta a tabela mais importante pode ver-se que existem diversas tabelas que lhe são adjacentes. O primeiro fluxograma exemplifica como a aplicação envia os dados para a 3ª camada e o segundo como são tratados os dados dentro dessa camada Mostra-se também a interface de inserção e resultado. 103

116 Fluxograma: Inserir Horários INS_HORARIO BEAN_DISE BEAN_ANLE BEAN_CURSO BEAN_CODI BEAN_SALA INSBD_HORARIO BEAN_HORA BASE DE DADOS Acesso Seleccionar dia Aceder a todos os dados disponíveis Dados em DIA_SEMANA Seleccionar hora Seleccionar Ano Lectivo Aceder a todos os dados disponíveis Dados em ANO_LECTIVO Seleccionar Curso Aceder a todos os dados disponíveis Dados em CURSOS Seleccionar Ano Seleccionar Semestre Seleccionar Turma Seleccionar Componente Disciplina Aceder a todos os dados disponíveis Dados em COMPONENT ES_DISCIPLIN AS Seleccionar Sala Aceder a todos os dados disponíveis Dados em SALA Enviar Dados Envia Dados Insere Dados Dados em HORARIOS Inserção Finalizada Figura 4.22 Fluxograma da aplicação para inserção de registos na tabela Horários. 104

117 Fluxograma : Inserir Horário. Parte interna da Base de Dados Procedimento: INS_HORARIO_RESTRI Recebe Dados Procedimento: INSERE_HORARIO Recepção de dados Insere dados Professor Indisponível? Sim Contador1 =1 Não Erros de inserção? Sim Envia Erro Contador1 =0 Devolve Erro1 Não Envia Variáveis de controlo Professor Ocupado? Sim Contador2 =1 \ Não Contador2 =0 Devolve Erro2 Sala Ocupada? Sim Contador3 =1 Envia dados para INSERE_HORARIO Não Não 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 inserção de registos na tabela Horário 105

118 Figura 4.24 Interface para a inserção de dados Figura Interface mostra um inserção de dados na tabela Horários bem sucedida. 106

119 4.7. Aspectos a considerar Horários MN 2007/2008 Antes da instalação do Oracle 10gR2 é aconselhável a criação de uma placa virtual e proceder à sua configuração em computadores sem conexão à rede ou com conexão através de DHCP. Assim sendo serão demonstrados o passos para tal processo. Figura 4.26 Selecção de Adicionar hardware. Através de Adicionar hardware, no painel de controlo, iniciou-se o processo. Figura 4.27 Indicação de hardware já conectado. 107

120 Figura Selecção do driver do hardware a adicionar. Figura Selecção de instalação manual de hardware. 108

121 Figura 4.30 Selecção de Adicionar hardware. Figura 4.31 Selecção da placa de rede. 109

122 Figura Configuração da rede. 110

123 Para armazenar a informação referente às conexões às bases de dados foi criado um ficheiro XML que armazenou-se no disco rígido. Figura 4.33 Ficheiro XML. O acesso a esta informação fez-se através do driver JDOM na versão

124 Uma vez que foram utilizados drivers jar para a criação da aplicação aqui é mostrada a forma como foram associados à mesma. Inicialmente acedeu-se às propriedades da aplicação e de seguida na secção das livrarias (Iivraries) inseriu-se o caminho para os mesmos. Figura 4.34 Acesso às propriedades. 112

125 Figura 4.35 Acesso à secção de livrarias. Figura 4.36 Selecção do driver. 113

126 Figura 4.37 Selecção de drivers concluída 114

127 4. Testes e Análise de resultados Aqui serão descritos alguns teste efectuados não se mostram todos uma vez que todos são de todo semelhantes com a excepção do interface dos horários. Figura 4.1 Entrada no sistema. O utilizador deve autenticar-se no sistema e pode usar qualquer uma das bases de dados. 115

128 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 senão após 5 segundos será reencaminhado para a entrada. Figura 4.3 Interface mostra a entrada bem sucedida. A validação de formulários é feita através de JavaScript. 116

129 Figura 4.4. Interface mostra a entrada mal sucedida. No caso de o utilizador não 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 obtenção de um horário. O utilizador escolhe o horário a visualizar. Figura 4.5 Selecção de horário. 117

130 Figura 4.6 O interface mostra o horario Neste caso, é apenas mostrado o horário da 2ª feira porque só existem registos desse dia e porque aplicação ainda está a sofrer testes. 118

Rock In Rio - Lisboa

Rock In Rio - Lisboa Curso de Engenharia Informática Industrial Rock In Rio - Lisboa Elaborado por: Ano Lectivo: 2004/05 Tiago Costa N.º 4917 Turma: C Gustavo Graça Patrício N.º 4757 Turma: C Docente: Professora Maria Estalagem

Leia mais

Escola Superior de Tecnologia de Setúbal. Projecto Final

Escola Superior de Tecnologia de Setúbal. Projecto Final Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Projecto Final Computação na Internet Ano Lectivo 2002/2003 Portal de Jogos Executado por:

Leia mais

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL

SQL APOSTILA INTRODUÇÃO A LINGUAGEM SQL SQL APOSTILA INTRODUÇÃO Uma linguagem de consulta é a linguagem por meio da qual os usuários obtêm informações do banco de dados. Essas linguagens são, tipicamente, de nível mais alto que as linguagens

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle Luís Filipe Borges Pinto Resumo: Este projecto consiste na implementação de uma aplicação WEB para monitorização

Leia mais

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com

BANCO DE DADOS WEB AULA 4. linguagem SQL: subconjuntos DCL, DDL e DML. professor Luciano Roberto Rocha. www.lrocha.com BANCO DE DADOS WEB AULA 4 linguagem SQL: subconjuntos DCL, DDL e DML professor Luciano Roberto Rocha www.lrocha.com O que é SQL? Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL,

Leia mais

Gestão de projectos na Web

Gestão de projectos na Web Gestão de projectos na Web Relatório de desenho de alto nível Versão 1.0, 5 de Maio de 2003 Telmo Pedro Gomes Amaral (mee02013@fe.up.pt) (Grupo 15) Aplicações na Web Mestrado em Engenharia Electrotécnica

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II BANCO DE DADOS II AULA 1 Linguagem SQL Linguagem de definição de dados (DDL) DISCIPLINA: Banco de Dados

Leia mais

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec

SQL. Curso Prático. Celso Henrique Poderoso de Oliveira. Novatec SQL Curso Prático Celso Henrique Poderoso de Oliveira Novatec 1 Introdução Desde o início da utilização dos computadores, sabemos que um sistema é feito para aceitar entrada de dados, realizar processamentos

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan 1 Unidade 2 Introdução a SQL 2 Leitura Obrigatória ELMASRI,

Leia mais

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016

PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 PLANIFICAÇÃO MODULAR ANO LECTIVO 2015 / 2016 CURSO/CICLO DE FORMAÇÃO Técnico de Eletrotecnia e Técnico de Gestão de Equipamentos Informáticos / 2015/2018 DISCIPLINA: Tecnologias da Informação e Comunicação

Leia mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Guia de Prova de Aptidão Profissional

Guia de Prova de Aptidão Profissional Guia de Prova de Aptidão Profissional Técnico de Gestão e Programação de Sistemas Informáticos Fábio Alexandre Lemos Ferreira Fábio Cardante Teixeira 2010/2011 Índice I. Apresentação permanente do projecto...

Leia mais

UML - Unified Modeling Language

UML - Unified Modeling Language UML - Unified Modeling Language Casos de Uso Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 24 de abril

Leia mais

Base de Dados para Administrações de Condomínios

Base de Dados para Administrações de Condomínios Base de Dados para Administrações de Condomínios José Pedro Gaiolas de Sousa Pinto: ei03069@fe.up.pt Marco António Sousa Nunes Fernandes Silva: ei03121@fe.up.pt Pedro Miguel Rosário Alves: alves.pedro@fe.up.pt

Leia mais

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 UML 2 Guia Prático Gilleanes T.A. Guedes Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2 Novatec capítulo 1 Introdução à UML A UML (Unified Modeling Language ou Linguagem de Modelagem

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 08 APRESENTAÇÃO Na aula de hoje vamos apresentar e discutir como definir

Leia mais

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 1. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 1 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Apresenta a diferença entre dado e informação e a importância

Leia mais

Administração da disciplina

Administração da disciplina Administração da disciplina Agrupamento Vertical de Escolas de Tarouca Documento disponível em: http://avetar.no-ip.org 1.Acesso e utilização da plataforma:. Seleccione a opção Entrar, que se encontra

Leia mais

Direcção Regional de Educação do Algarve

Direcção Regional de Educação do Algarve MÓDULO 1 Folha de Cálculo 1. Introdução à folha de cálculo 1.1. Personalização da folha de cálculo 1.2. Estrutura geral de uma folha de cálculo 1.3. O ambiente de da folha de cálculo 2. Criação de uma

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

Introdução a Linguagem

Introdução a Linguagem Introdução a Linguagem Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 03 Introdução a Linguagem Java 1 Conteúdo Máquina Virtual (JVM) Histórico de Java Case Sensitive Tipos Primitivos Tipo String

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS (GRUPO INFORMÁTICA) Ano Letivo de 2014/2015 MÓDULO 1 FOLHA DE CÁLCULO Ensino Regular Diurno Disciplina: T.I.C. Professores: Margarida Afonso Curso Profissional - Técnico de Auxiliar de Saúde Ano: 10.º Turma(s): TAS MÓDULO 1 FOLHA DE CÁLCULO OBJECTIVOS Indicar as principais

Leia mais

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC 10º C. Planificação de. Curso Profissional de Técnico de Secretariado Escola Básica e Secundária de Velas Planificação de TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO - TIC Curso Profissional de Técnico de Secretariado 10º C MÓDULO 1 FOLHA DE CÁLCULO Microsoft Excel Conteúdos

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Engenharia de Requisitos Estudo de Caso

Engenharia de Requisitos Estudo de Caso Engenharia de Requisitos Estudo de Caso Auxiliadora Freire Fonte: Engenharia de Software 8º Edição / Ian Sommerville 2007 Slide 1 Engenharia de Requisitos Exemplo 1 Reserva de Hotel 1. INTRODUÇÃO Este

Leia mais

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

PLATAFORMA INFORMÁTICA DE REQUISIÇÃO DE POLICIAMENTO DE ESPETÁCULOS DESPORTIVOS (PIRPED)

PLATAFORMA INFORMÁTICA DE REQUISIÇÃO DE POLICIAMENTO DE ESPETÁCULOS DESPORTIVOS (PIRPED) Manual de Utilizador PLATAFORMA INFORMÁTICA DE REQUISIÇÃO DE POLICIAMENTO DE ESPETÁCULOS DESPORTIVOS (PIRPED) Data: 11 De Junho de 2014 Versão: 3.0 1 Histórico do Documento Versão Data Autor Revisor Descrição

Leia mais

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios

GereComSaber. Disciplina de Desenvolvimento de Sistemas de Software. Sistema de Gestão de Serviços em Condomínios Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática 3ºAno Disciplina de Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/2010 GereComSaber Sistema de

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

VM Card. Referência das Definições Web das Funções Avançadas. Manuais do Utilizador

VM Card. Referência das Definições Web das Funções Avançadas. Manuais do Utilizador VM Card Manuais do Utilizador Referência das Definições Web das Funções Avançadas 1 Introdução 2 Ecrãs 3 Definição de Arranque 4 Informações de Função Avançada 5 Instalar 6 Desinstalar 7 Ferramentas do

Leia mais

Portal AEPQ Manual do utilizador

Portal AEPQ Manual do utilizador Pedro Gonçalves Luís Vieira Portal AEPQ Manual do utilizador Setembro 2008 Engenharia Informática - Portal AEPQ Manual do utilizador - ii - Conteúdo 1 Introdução... 1 1.1 Estrutura do manual... 3 1.2 Requisitos...

Leia mais

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com.

Banco de Dados I. Apresentação (mini-currículo) Conceitos. Disciplina Banco de Dados. Cont... Cont... Edson Thizon (edson@esucri.com. Sistemas da Informação Banco de Dados I Edson Thizon (edson@esucri.com.br) 2008 Apresentação (mini-currículo) Formação Acadêmica Mestrando em Ciência da Computação (UFSC/ ) Créditos Concluídos. Bacharel

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Programa de Parcerias e Submissão de Propostas 2014/15

Programa de Parcerias e Submissão de Propostas 2014/15 DEPARTAMENTO DE INFORMÁTICA Programa de Parcerias e Submissão de Propostas 2014/15 O Departamento de Informática (DI) da Faculdade de Ciências da Universidade de Lisboa (FCUL) procura criar e estreitar

Leia mais

Especificação do 3º Trabalho

Especificação do 3º Trabalho Especificação do 3º Trabalho I. Introdução O objetivo deste trabalho é abordar a prática da programação orientada a objetos usando a linguagem Java envolvendo os conceitos de classe, objeto, associação,

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem

JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem 1 JSP trata-se de uma tecnologia que possibilita o desenvolvimento de páginas web dinâmicas utilizando todas as potencialidades do Java como linguagem orientada a objectos. Tal como em ASP e PHP, os ficheiros

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL

GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL GUIA PARA O PREENCHIMENTO DOS FORMULÁRIOS ENTIDADE GESTORA ERP PORTUGAL Versão: 1.0 Data: 05-06-2009 Índice Acesso e estados dos Formulários... 3 Escolha do Formulário e submissão... 4 Bases para a navegação

Leia mais

Unified Software Development Process

Unified Software Development Process 59/170 Unified Software Development Process Sumário Breve história do Unified Process O Unified Process O ciclo de vida do Unified Process O RUP (Rational Unified Process) 60/170 Breve História do Unified

Leia mais

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática Desenvolvimento de Sistemas de Software Ano Lectivo de 2009/10 GereComSaber Ana Duarte, André Guedes, Eduardo

Leia mais

Procedimento de Gestão PG 02 Controlo de Documentos e Registos

Procedimento de Gestão PG 02 Controlo de Documentos e Registos Índice 1.0. Objectivo. 2 2.0. Campo de aplicação 2 3.0. Referências e definições....... 2 4.0. Responsabilidades... 3 5.0. Procedimento... 3 5.1. Generalidades 3 5.2. Controlo de documentos... 4 5.3. Procedimentos

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com ANÁLISE E PROJETO ORIENTADO A OBJETOS Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Análise Descrição do problema a ser implementado Descrição dos objetos e classes que fazem parte do problema, Descrição

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Engenharia de Software Sistemas Distribuídos

Engenharia de Software Sistemas Distribuídos Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 FEARSe Requisitos para a 1 a entrega 18 de Março de 2010 1 Introdução O projecto conjunto das disciplinas de Engenharia de Software

Leia mais

Aplicação Prática de Lua para Web

Aplicação Prática de Lua para Web Aplicação Prática de Lua para Web Aluno: Diego Malone Orientador: Sérgio Lifschitz Introdução A linguagem Lua vem sendo desenvolvida desde 1993 por pesquisadores do Departamento de Informática da PUC-Rio

Leia mais

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096 TUTORIAL DE UTILIZAÇÃO Índice Geral Antes de Começar 2 Procedimento de Instalação 3 Exportar dados para o 8 Acesso ao 10 Ordens de Serviço no 11 Solicitações de Serviço no 17 Folhas de Inspeção no 19 Importar

Leia mais

MANUAL DO UTILIZADOR

MANUAL DO UTILIZADOR MANUAL DO UTILIZADOR SISTEMA DE INFORMAÇÃO FORMAÇÃO CONTÍNUA (Art.21.º do Decreto-Lei n.º22/2014, de 11 de fevereiro) 6 de julho de 2015 Índice 1. ENQUADRAMENTO... 5 1.1 Objetivo... 5 1.2 Contactos Úteis...

Leia mais

Escola Secundária de Camarate

Escola Secundária de Camarate Escola Secundária de Camarate Ano Lectivo 2014/2015 Planificação da Disciplina de Tecnologias da Informação e Comunicação Curso Profissional de Técnico Auxiliar de Saúde e Técnico de Restauração e Bar

Leia mais

Sistemas de Bases de Dados

Sistemas de Bases de Dados Sistemas de Bases de Dados Carlos Viegas Damásio José Alferes e Carlos Viegas Damásio Sistemas de Bases de Dados 2014/15 Objectivos - Em Bases de Dados (2º ano) pretendia-se: Que os estudantes fossem capazes

Leia mais

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador>

FACULDADE DE ENGENHARIA DE COMPUTAÇÃO. PROJETO FINAL I e II PLANO DE TRABALHO <NOME DO TRABALHO> <Nome do Aluno> <Nome do Orientador> FACULDADE DE ENGENHARIA DE COMPUTAÇÃO PROJETO FINAL I e II PLANO DE TRABALHO O Trabalho de Conclusão de Curso (TCC) a ser desenvolvido

Leia mais

Diagramas de Casos de Uso

Diagramas de Casos de Uso UML Unified Modeling Language Diagramas de Casos de Uso José Correia, Março 2006 (http://paginas.ispgaya.pt/~jcorreia/) Objectivos O objectivo de um diagrama de casos de uso de um sistema é mostrar para

Leia mais

Wilson Moraes Góes. Novatec

Wilson Moraes Góes. Novatec Wilson Moraes Góes Novatec Copyright 2014 Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta obra, mesmo parcial, por qualquer processo,

Leia mais

Engenharia de Software

Engenharia de Software Engenharia de Software 2º Semestre de 2006/2007 Terceiro enunciado detalhado do projecto: Portal OurDocs ic-es+alameda@mega.ist.utl.pt ic-es+tagus@mega.ist.utl.pt 1. Introdução O terceiro enunciado do

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

O modelo unificado de processo. O Rational Unified Process, RUP.

O modelo unificado de processo. O Rational Unified Process, RUP. Cursos: Sistemas de Informação Disciplina: Administração ADM Prof. Jarbas Avaliação: Prova B1, 5º/6º semestres Data: 27/09/2010 Nome: Gabarito RA: Assinatura: Turma: 1) Segundo as afirmações a seguir,

Leia mais

Aprend.e Sistema integrado de formação e aprendizagem

Aprend.e Sistema integrado de formação e aprendizagem Aprend.e Sistema integrado de formação e aprendizagem Pedro Beça 1, Miguel Oliveira 1 e A. Manuel de Oliveira Duarte 2 1 Escola Aveiro Norte, Universidade de Aveiro 2 Escola Aveiro Norte, Departamento

Leia mais

WebSphere_Integration_Developer_D_Jan06 Script

WebSphere_Integration_Developer_D_Jan06 Script WebSphere_Integration_Developer_D_Jan06 Script 1a Nesta demonstração, Will Dunlop, um programador de integração da JK, utiliza o IBM, [ IBM], ou WID para construir um novo serviço orientado para os processos

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Manual de utilização do Moodle

Manual de utilização do Moodle Manual de utilização do Moodle Iniciação para docentes Universidade Atlântica Versão: 1 Data: Fevereiro 2010 Última revisão: Fevereiro 2010 Autor: Ricardo Gusmão Índice Introdução... 1 Registo no Moodle...

Leia mais

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Fundamentos dos Sistemas de Informação Organização de Dados e Informações Fundamentos dos Sistemas de Informação Organização de Dados e Informações http://professor.fimes.edu.br/milena milenaresende@fimes.edu.br Sistema de Gerenciamento de Bases de Dados (DBMS) A implementação

Leia mais

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99 5093/98/PT/final WP 17 Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais Recomendação 1/99 sobre o tratamento invisível e automatizado de dados

Leia mais

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase

Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase Trabalho de Desenvolvimento de Sistemas de Software GereComSaber 1ª Fase Paulo Rui Lopes Pereira da Silva nº 47049 Luana Georgia Lopes Telha nº 49379 Luis Miguel Ferreira Rosa nº 51784 1 Índice 1. INTRODUÇÃO...3

Leia mais

SAMUO APP: MANUAL DO ADMINISTRADOR

SAMUO APP: MANUAL DO ADMINISTRADOR as novas tecnologias ao serviço do desenvolvimento de projectos w w w. i m a d i p. c o m CABO VERDE: REALIZAÇÃO DE UMA ACÇÃO- PILOTO PARA A MELHORIA DA GESTÃO NUM GABINETE TÉCNICO SELECCIONADO OFITEC

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Microsoft Word Folha

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Licenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP

Licenciatura em Eng.ª Informática Complementos de Redes - 3º Ano - 2º Semestre. Trabalho Nº 4 - VoIP Trabalho Nº 4 - VoIP 1. Introdução A utilização de tecnologia VoIP como alternativa às redes telefónicas tradicionais está a ganhar cada vez mais a aceitação junto dos utilizadores, e está sobretudo em

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito

Comunicação de Dados de Autenticação e Credenciais de Acesso para Resposta ao Inquérito Mais informação Acesso ao Sistema de Transferência Electrónica de dados de Inquéritos (STEDI). Onde se acede ao sistema de entrega de Inquéritos? Deverá aceder ao sistema através do site do GEP www.gep.mtss.gov.pt

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD

1. CONCEITOS BÁSICOS DE BD, SBD E SGBD Introdução 1. CONCEITOS BÁSICOS DE BD, SBD E SGBD A importância da informação para a tomada de decisões nas organizações tem impulsionado o desenvolvimento dos sistemas de processamento de informações.

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Modelagem de Processos. Prof.: Fernando Ascani

Modelagem de Processos. Prof.: Fernando Ascani Modelagem de Processos Prof.: Fernando Ascani Bibliografia UML Guia de consulta rápida Douglas Marcos da Silva Editora: Novatec UML Guia do usuário Grady Booch James Rumbaugh Ivair Jacobson Editora: Campus

Leia mais

Supply4Galp (S4G) FAQs Fornecedores Versão 1.0 03.02.2014

Supply4Galp (S4G) FAQs Fornecedores Versão 1.0 03.02.2014 Lista de FAQs 1. Registo de Fornecedor e Gestão da Conta... 4 Q1. Quando tento fazer um novo registo na Plataforma S4G, recebo uma mensagem a indicar que a minha empresa já se encontra registada.... 4

Leia mais