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

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 4

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 4 REFLEXÃO 4 Módulos 0776, 0780, 0781, 0786 e 0787 1/10 8-04-2013 Esta reflexão tem como objectivo partilhar e dar a conhecer o que aprendi nos módulos 0776 - Sistema de informação da empresa, 0780 - Aplicações

Leia mais

PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de 2012.

PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de 2012. PORTARIA N Nº 184 Rio de Janeiro, 27 de dezembro de. ACRESCENTA A ARQUITETURA DE PADRÕES TECNOLÓGICOS DE INTEROPERABILIDADE -, NO SEGMENTO RECURSOS TECNOLÓGICOS, O PADRÃO TECNOLÓGICO SISTEMAS DE GERENCIAMENTO

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

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

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

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

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos.

Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. 1. Introdução aos Sistemas de Bases de Dados Uma Base de Dados é uma colecção de dados partilhados, interrelacionados e usados para múltiplos objectivos. O conceito de base de dados faz hoje parte do nosso

Leia mais

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

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

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

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

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

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

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

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade;

do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; 1 ARQUITETURA E DESIGN DE SOFTWARE O que é Arquitetura? do grego: arkhé (chefe ou mestre) + tékton (trabalhador ou construtor); tekhne arte ou habilidade; do dicionário: Arte de projetar e construir prédios,

Leia mais

Linguagem de Programação JAVA

Linguagem de Programação JAVA Linguagem de Programação JAVA Curso Técnico em Informática Modalida Integrado Instituto Federal do Sul de Minas, Câmpus Pouso Alegre Professora: Michelle Nery Agenda JAVA Histórico Aplicações Pós e Contras

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

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

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

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

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

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

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

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

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s

DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s DDL, Lidando com as diferenças das instruções SQL nos diferentes SGBD s Dio Rafael Jacobs 1, Juliano Varella de Carvalho 1 1 Centro Universitário Feevale Instituto de Ciência Exatas e Tecnológicas Novo

Leia mais

Unified Modeling Language UML - Notações

Unified Modeling Language UML - Notações Unified Modeling Language UML - Notações Prof. Ms. Elvio Gilberto da Silva elvio@fmr.edu.br UML Ponto de Vista É gerada com propósito geral de uma linguagem de modelagem visual usada para especificar,

Leia mais

EXCEL. Listas como Bases de Dados

EXCEL. Listas como Bases de Dados Informática II Gestão Comercial e da Produção EXCEL Listas como Bases de Dados (TÓPICOS ABORDADOS NAS AULAS DE INFORMÁTICA II) Curso de Gestão Comercial e da Produção Ano Lectivo 2002/2003 Por: Cristina

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

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma

Bases de Dados. Bibliografia. 1. Parte I Componente Teórica. Pedro Quaresma Índice Bases de Dados Pedro Quaresma Departamento de Matemática Universidade de Coimbra 2010/2011 1. Parte I Componente Teórica 1.1 Introdução 1.2 Modelo ER 1.3 Modelo Relacional 1.4 SQL 1.5 Integridade

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

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados -

Aula 02 Modelagem de Dados. Banco de Dados. Aula 02 Modelagem de Dados. Superior /2011 Redes Computadores - Disciplina: Banco de Dados - Banco de Dados Aula 02 Modelagem de Dados Roteiro Definição Evolução Projeto de BD Abstração Esquema e Instância Definição É uma representação, normalmente gráfica, de estruturas de dados reais. Auxilia

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

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

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

guia prático 2a Edição Gilleanes T.A. Guedes Novatec

guia prático 2a Edição Gilleanes T.A. Guedes Novatec guia prático 2a Edição Gilleanes T.A. Guedes Novatec Copyright 2007, 2014 da Novatec Editora Ltda. Todos os direitos reservados e protegidos pela Lei 9.610 de 19/02/1998. É proibida a reprodução desta

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Unidade IV ADMINISTRAÇÃO DE BANCO DE DADOS. Software livre se refere à liberdade dos usuários com relação ao software, mais precisamente:

Unidade IV ADMINISTRAÇÃO DE BANCO DE DADOS. Software livre se refere à liberdade dos usuários com relação ao software, mais precisamente: ADMINISTRAÇÃO DE BANCO DE DADOS Unidade IV DEFINIR A MELHOR SOLUÇÃO DE BANCO DE DADOS PARA AS NECESSIDADES DA EMPRESA.1 O uso das tecnologias.1.1 O software livre 1 A tecnologia de banco de dados, assim

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava

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

TECNOLOCIA JAVA WEB PARA DESENVOLVIMENTO DE SISTEMAS DE LEILÃO

TECNOLOCIA JAVA WEB PARA DESENVOLVIMENTO DE SISTEMAS DE LEILÃO TECNOLOCIA JAVA WEB PARA DESENVOLVIMENTO DE SISTEMAS DE LEILÃO Danilo Alves Verone de Oliveira ¹, Jaime William Dias ¹ ² ¹ Universidade Paranaense (UNIPAR) Paranavaí - PR - Brasil dan.verone@hotmail.com

Leia mais

Introdução a Sistemas de Bancos de Dados

Introdução a Sistemas de Bancos de Dados Introdução a Sistemas de Bancos de Dados Prof. UFES - Universidade Federal do Espírito Santo rapchan@inf.ufes.br http://www.inf.ufes.br/~rapchan Roteiro da Apresentação Introdução Características de um

Leia mais

CONCEITOS BÁSICOS. 1. Conceitos básicos de BD, SBD e SGBD BANCO DE DADOS I

CONCEITOS BÁSICOS. 1. Conceitos básicos de BD, SBD e SGBD BANCO DE DADOS I CONCEITOS BÁSICOS 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

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

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

Automação do Processo de Instalação de Softwares

Automação do Processo de Instalação de Softwares Automação do Processo de Instalação de Softwares Aislan Nogueira Diogo Avelino João Rafael Azevedo Milene Moreira Companhia Siderúrgica Nacional - CSN RESUMO Este artigo tem como finalidade apresentar

Leia mais

Enunciado de apresentação do projecto

Enunciado de apresentação do projecto Engenharia de Software Sistemas Distribuídos 2 o Semestre de 2009/2010 Enunciado de apresentação do projecto FEARSe Índice 1 Introdução... 2 2 Cenário de Enquadramento... 2 2.1 Requisitos funcionais...

Leia mais

SISTEMA GERENCIAL TRATORPLAN

SISTEMA GERENCIAL TRATORPLAN SISTEMA GERENCIAL TRATORPLAN SIGET Fabrício Pereira Santana¹, Jaime William Dias¹, ², Ricardo de Melo Germano¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil fabricioblack@gmail.com germano@unipar.br

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

1. Contratos de aluguer automóvel

1. Contratos de aluguer automóvel 1. Contratos de aluguer automóvel Pretende-se desenvolver um Sistema Informático para apoio à gestão de Contratos de Aluguer automóvel de Longa-duração (SICAL) que permita efectuar, cancelar e modificar

Leia mais

UNIVERSIDADE ESTADUAL DE PONTA GROSSA

UNIVERSIDADE ESTADUAL DE PONTA GROSSA UNIVERSIDADE ESTADUAL DE PONTA GROSSA SECRETARIA MUNICIPAL DE GESTÃO DE RECURSOS HUMANOS CONCURSO PÚBLICO PARA ANALISTA DE SUPORTE 08 DE NOVEMBRO DE 2009... (NOME COMPLETO EM LETRA DE FORMA) INSTRUÇÕES

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

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

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia

A & F Consultoria em Sistemas e Treinamentos 2014 af.tecnoserv@gmail.com. A linguagem SQL. Autor: Hélio de Almeida Fonte: Wikipédia A linguagem SQL Autor: Hélio de Almeida Fonte: Wikipédia 1 Structure Query Language O SQL foi desenvolvido originalmente no início dos anos 70 nos laboratórios da IBM em San Jose, dentro do projeto System

Leia mais

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

Leia mais

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - MÓDULO 3 - MODELAGEM DE SISTEMAS ORIENTADA A OBJETOS COM UML 1. INTRODUÇÃO A partir de 1980, diversos métodos de desenvolvimento de sistemas surgiram para apoiar o paradigma orientado a objetos com uma

Leia mais

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES

INDICE 3.APLICAÇÕES QUE PODEM SER DESENVOLVIDAS COM O USO DO SAXES w w w. i d e a l o g i c. c o m. b r INDICE 1.APRESENTAÇÃO 2.ESPECIFICAÇÃO DOS RECURSOS DO SOFTWARE SAXES 2.1. Funcionalidades comuns a outras ferramentas similares 2.2. Funcionalidades próprias do software

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

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 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

Leia mais

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013

ORDEM DE SERVIÇO OS 003/DINFO/2013 16/09/2013 A DIRETORIA DE INFORMÁTICA DINFO DA UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO -UERJ, no uso de suas atribuições legais, estabelece: Art. 1º: Para fins de normatização do Desenvolvimento Tecnológico na UERJ

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo everson@por.com.br Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015

SQL - Banco de Dados. Disciplina: Banco de Dados. Professor: José Antônio. José Antônio - CEFET-RN 23/09/2015 SQL - Banco de Dados 1 Disciplina: Banco de Dados Professor: José Antônio 2 Tópicos de discussão Criando um banco de dados Incluindo, atualizando e excluindo linhas nas tabelas Pesquisa básica em tabelas

Leia mais

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG

Bases de Dados. O que é uma Base de Dados? Pós-Grduação em SIG Bases de Dados O que é uma Base de Dados? Dados Pode-se começar por tentar dar uma definição do que são Dados. Os dados são factos em bruto, que não são necessáriamente relevantes para qualquer coisa que

Leia mais

http://www.di.uminho.pt

http://www.di.uminho.pt Escola de Engenharia Departamento de Informática Desenvolvimento de Sistemas de Informação LESI 4º ano / 2º semestre (5308O7) LMCC 4º ano / 2º semestre (7008N8 Opção II) 2005/2006 José Creissac Campos

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

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

Prof. Omero, pág. 63. Banco de Dados InterBase.

Prof. Omero, pág. 63. Banco de Dados InterBase. Prof. Omero, pág. 63 O que é o InterBase? O InterBase é um SGBDR - Sistema Gerenciador de Banco de Dados Cliente/Servidor Relacional 1 que está baseado no padrão SQL ANSI-9, de alta performance, independente

Leia mais

UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências

UML Visão Geral. Índice. Introdução. Diagramas. Modelos e diagramas. Elementos de modelação. Referências UML Visão Geral 1 Índice Introdução O que é a UML? Valor da UML Origens da UML Parceiros da UML Modelos e diagramas Elementos de modelação Diagramas Diagrama de casos de utilização Diagrama de classes

Leia mais

Laboratório de Banco de Dados

Laboratório de Banco de Dados Universidade Federal de Mato Grosso-UFMT Sistemas de Informação Laboratório de Banco de Dados Prof. Clóvis Júnior Laboratório de Banco de Dados Conteúdo Administração de Usuários de Papéis; Linguagens

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

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Engenharia de Software Sistemas Distribuídos. 2º Semestre, 2007/2008. Departamento Engenharia Informática. Enunciado do projecto: Loja Virtual

Engenharia de Software Sistemas Distribuídos. 2º Semestre, 2007/2008. Departamento Engenharia Informática. Enunciado do projecto: Loja Virtual Engenharia de Software Sistemas Distribuídos 2º Semestre, 2007/2008 Departamento Engenharia Informática Enunciado do projecto: Loja Virtual Fevereiro de 2008 Índice Índice...2 Índice de Figuras...3 1 Introdução...4

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua

Leia mais

Vídeo Vigilância Abordagem Open-Source

Vídeo Vigilância Abordagem Open-Source Vídeo Vigilância Abordagem Open-Source Alunos: Justino Santos, Paulo Neto E-mail: eic10428@student.estg.ipleiria.pt, eic10438@student.estg.ipleiria.pt Orientadores: Prof. Filipe Neves, Prof. Paulo Costa

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Engenharia de Software. Enunciado da Primeira Parte do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software 2 o Semestre 2014/2015 Enunciado da Primeira Parte do Projecto 1. Primeira Parte do Projecto ES Este enunciado descreve o trabalho a realizar

Leia mais

3 ao Quadrado - Agenda Web

3 ao Quadrado - Agenda Web 3 ao Quadrado - Agenda Web Relatório de Gestão de Projectos de Software - Grupo A - LEIC 2001/2002 http://gnomo.fe.up.pt/gps01a João Montenegro - ei97023@fe.up.pt André Teixeira - ei97024@fe.up.pt Carlos

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

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

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS

INTRODUÇÃO À LINGUAGEM SQL CRIAÇÃO DE BANCO DE DADOS E OTIMIZAÇÃO DE CONSULTAS Esclarecimento Licenciamento de Uso Este documento é propriedade intelectual 2012 da NRSYSTEM COMÉRCIO E SERVIÇOS DE INFORMÁTICA LTDA-ME, consiste de uma compilação de diversos materiais entre livros,

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Interface Homem Máquina para Domótica baseado em tecnologias Web

Interface Homem Máquina para Domótica baseado em tecnologias Web Interface Homem Máquina para Domótica baseado em tecnologias Web João Alexandre Oliveira Ferreira Dissertação realizada sob a orientação do Professor Doutor Mário de Sousa do Departamento de Engenharia

Leia mais

Bases de Dados! 2014/15! http://ssdi.di.fct.unl.pt/bd!! João Leite (jleite@fct.unl.pt)!!!

Bases de Dados! 2014/15! http://ssdi.di.fct.unl.pt/bd!! João Leite (jleite@fct.unl.pt)!!! Bases de Dados 2014/15 http://ssdi.di.fct.unl.pt/bd João Leite (jleite@fct.unl.pt) Capítulo 1: Introdução Função dos Sistemas de Bases de Dados Visão dos dados Modelos de dados Linguagem de Definição de

Leia mais

Oracle SQL Developer

Oracle SQL Developer BDDAD Bases de Dados Oracle SQL Developer Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/30 SQL Developer Sumário Introdução Instalar Abrir Ligar à BD no Servidor Oracle SQL Worksheet Editar SQL Executar SQL

Leia mais

Bases de Dados II Engª. Informática + Ensino Informática

Bases de Dados II Engª. Informática + Ensino Informática Introdução SQL SERVER hugomcp@di-ubi.pt, 2004 Arranque do MS SQLServer UNIVERSIDADE DA BEIRA INTERIOR Departamento de Informática Bases de Dados II Engª. Informática + Ensino Informática Pode-se usar o

Leia mais

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias

CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias CURSO DESENVOLVEDOR JAVA Edição Intensiva de Férias O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

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

15 Conceitos de Bancos de Dados com o LibreOffice Base

15 Conceitos de Bancos de Dados com o LibreOffice Base Introdução a Informática - 1º semestre AULA 14 Prof. André Moraes Objetivos desta aula: Explorar as propriedades na criação de bancos de dados no LibreOffice Base; Criar e explorar tabelas; Criar e explorar

Leia mais

Tarefa Orientada 2 Criar uma base de dados

Tarefa Orientada 2 Criar uma base de dados Tarefa Orientada 2 Criar uma base de dados Objectivos: Criar uma base de dados vazia. O Sistema de Gestão de Bases de Dados MS Access Criar uma base dados vazia O Access é um Sistema de Gestão de Bases

Leia mais

Softwares de Sistemas e de Aplicação

Softwares de Sistemas e de Aplicação Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?

Leia mais

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

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

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