Curso de Engenharia de Computação PROTÓTIPO DE UM SISTEMA DE CONTROLE ACADÊMICO COM ENVIO DE MENSAGENS AUTOMÁTICAS Willian Alexandre Ribeiro Campinas – São Paulo – Brasil Dezembro de 2008 Curso de Engenharia de Computação PROTÓTIPO DE UM SISTEMA DE CONTROLE ACADÊMICO COM ENVIO DE MENSAGENS AUTOMÁTICAS Willian Alexandre Ribeiro Monografia apresentada à disciplina de Trabalho de Conclusão do Curso de Engenharia de Computação da Universidade São Francisco, sob a orientação da Professora Silvia Elisabeth S. Lopes, como exigência parcial para conclusão do curso de graduação. Orientadora: Professora Silvia Elisabeth S. Lopes Campinas – São Paulo – Brasil Dezembro de 2008 Protótipo de um Sistema de Controle Acadêmico com Envio de Mensagens Automáticas Willian Alexandre Ribeiro Ribeiro, Willian Alexandre. Protótipo de um Sistema de Controle Acadêmico com Envio de Mensagens Automáticas. Monografia defendida e aprovada em 11 de Dezembro de 2008 pela Banca Examinadora assim constituída: Prof. M.Sc. Silvia Elisabeth S. Lopes (Orientadora) USF – Universidade São Francisco – Campinas – SP. Prof M.Sc. Raimundo Cláudio da Silva Vasconcelos. USF – Universidade São Francisco – Campinas – SP. Prof Esp. Ricardo César Boaretto. USF – Universidade São Francisco – Campinas – SP. Aos meus pais, por imensa dedicação e pelos sábios conselhos despendidos ao longo da minha caminhada. .Agradecimentos Agradeço imensamente aos meus pais, que me apoiaram e compartilharam todas as batalhas que enfrentei até aqui, com muito carinho, paciência, sorriso e principalmente confiança. Agradeço a todos os meus colegas de trabalho, em especial: Marcelo Oliveira de Moraes e André L. Macedo, pelo incentivo, fornecimento de fontes e literaturas que trouxeram um maior esclarecimento sobre os assuntos abordados. Agradeço a todos os meus amigos, em especial: Fagner Firmo de Souza Santos e Waldeir C. Alves de Souza, pelo incentivo e companheirismo em horas definitivamente importantes. Ao professor Raimundo Claudio da Silva Vasconcelos, pela paciência na coorientação e explicações a respeito de sistemas de gerenciamento, comunicação e desenvolvimento web. A minha professora e orientadora Silvia Elisabeth S. Lopes, que me auxiliou durante toda a elaboração e conclusão deste trabalho. Agradeço a todos que, de alguma forma direta ou indireta me ajudaram e incentivaram para a realização deste projeto. v Sumário Lista de Siglas ........................................................................................................ viii Lista de Figuras ........................................................................................................ ix Lista de Tabelas ....................................................................................................... xi Resumo .................................................................................................................... xii Abstract ................................................................................................................... xiii 1 Introdução ............................................................................................................ 1 1.1 Contextualização ............................................................................................. 1 1.2 Objetivo ........................................................................................................... 1 1.3 Estrutura do Texto ........................................................................................... 1 2 TECNOLOGIA adotada ........................................................................................ 3 2.1 Linguagem de Programação Java ................................................................... 3 2.2 Características Importantes ............................................................................. 4 2.2.1 Simplicidade na programação ................................................................... 4 2.2.2 Linguagem orientada a objetos ................................................................. 4 2.2.3 Independente de Plataforma ..................................................................... 5 2.2.4 Performance e segurança ......................................................................... 6 2.3 Java Server Pages (JSP) ................................................................................ 6 2.4 Servlet ............................................................................................................. 8 2.5 Tomcat ............................................................................................................ 9 2.6 MySQL ............................................................................................................ 9 2.7 UML ................................................................................................................. 9 2.7.1 Análise de requisitos ............................................................................... 10 2.7.2 Conceitos ................................................................................................ 11 3 Projeto Desenvolvido ........................................................................................ 12 3.1 Visão Geral da Universidade ......................................................................... 12 3.2 Problema de Negócio .................................................................................... 12 3.3 Solução Proposta .......................................................................................... 13 3.4 Interessados no Projeto................................................................................. 13 3.5 Características Gerais do Projeto .................................................................. 14 3.5.1 Requisitos não funcionais: ....................................................................... 14 3.5.2 Requisitos Funcionais: ............................................................................ 14 3.6 Usuários do Projeto ....................................................................................... 14 3.7 Premissas e Restrições do Projeto................................................................ 15 3.8 Documentos Relacionados ............................................................................ 15 3.9 Diagrama de Caso de Uso ............................................................................ 15 3.9.1 Descrição dos Casos de Uso .................................................................. 16 vi 3.10 3.11 3.12 3.13 Diagrama de Classes .................................................................................... 27 Diagrama de Seqüência ................................................................................ 28 Administração ................................................................................................ 29 Comunicação ................................................................................................ 35 4 Conclusão .......................................................................................................... 40 4.1 Contribuições ................................................................................................ 40 4.2 Trabalhos futuros........................................................................................... 40 5 Referências Bibliográficas ............................................................................... 41 6 Glossário ............................................................................................................ 42 7 APÊNDICE .......................................................................................................... 45 7.1 Apêndice A .................................................................................................... 45 vii Lista de Siglas SGBD Sistema de Gerenciamento de Banco de Dados. JSP Java Server Pages. JVM Java Virtual Machine. ASP Active Server Pages. HTTP Hypertext Transfer Protocol. API Application Programming Interface. JPA Java Persistence API. UML Unified Modeling Language. HTML Hyper Text Markup Language. viii Lista de Figuras FIGURA 1: AMBIENTE DE DESENVOLVIMENTO JAVA .......................................................... 3 FIGURA 2: EXEMPLO DE CLASSE E OBJETOS. ................................................................... 5 FIGURA 3: JAVA MULTIPLATAFORMA. .............................................................................. 6 FIGURA 4: ARQUITETURA DE UMA PÁGINA JSP ................................................................ 8 FIGURA 5: FUNCIONAMENTO DE UM SERVLET .................................................................. 9 FIGURA 6: CASO DE USO GERAIS DO SISTEMA. ............................................................... 16 FIGURA 7: CASO DE USO CADASTRO DE ALUNO. ............................................................. 16 FIGURA 8: CASO DE USO LISTAR ALUNO. ....................................................................... 17 FIGURA 9: CASO DE USO CADASTRO DE PROFESSOR. ..................................................... 18 FIGURA 10: CASO DE USO LISTAR PROFESSOR. ............................................................. 19 FIGURA 11: CASO DE USO CADASTRO DE DISCIPLINA. ..................................................... 20 FIGURA 12: CASO DE USO LISTAR DISCIPLINA. ............................................................... 21 FIGURA 13: CASO DE USO CADASTRO DE TURMA............................................................ 21 FIGURA 14: CASO DE USO LISTAR TURMAS. ................................................................... 22 FIGURA 15: CASO DE USO CADASTRO DE HISTÓRICO. ..................................................... 23 FIGURA 16: CASO DE USO ENVIA MENSAGEM. ................................................................ 24 FIGURA 17: CASO DE USO LISTAR MENSAGENS. ............................................................. 25 FIGURA 18: CASO DE USO UPLOAD DE ARQUIVO. ............................................................ 26 FIGURA 19: CASO DE USO LISTAR ARQUIVOS. ................................................................ 26 FIGURA 20: DIAGRAMA DE CLASSES ............................................................................. 28 FIGURA 21: DIAGRAMA DE SEQÜÊNCIA ......................................................................... 29 FIGURA 22: CADASTRO DE ALUNO ................................................................................ 30 FIGURA 23: CADASTRO DE PROFESSOR ........................................................................ 31 FIGURA 24: CADASTRO DE DISCIPLINA .......................................................................... 32 FIGURA 25: CADASTRO DE TURMA ............................................................................... 33 FIGURA 26: LISTAR DE ALUNOS CADASTRADOS NA TURMA PESQUISADA. .......................... 34 FIGURA 27: GERENCIAMENTO DE HISTÓRICO. ............................................................... 35 FIGURA 28: MODELO DE ENVIO DE MENSAGENS. ............................................................ 37 FIGURA 29: INSERÇÃO DE ARQUIVOS NO SISTEMA. ......................................................... 38 FIGURA 30: DOWNLOAD DE ARQUIVOS. ......................................................................... 39 ix FIGURA 31: DIAGRAMA DE CLASSES COMPLETO. ............................................................ 45 x Lista de Tabelas TABELA 1: INTERESSADOS NO PROJETO (STAKEHOLDERS). ............................................. 13 TABELA 2: USUÁRIOS DO PROJETO. .............................................................................. 15 xi Resumo O presente trabalho tem como objetivo principal apresentar um protótipo de um sistema de controle acadêmico com envio de mensagens automáticas para correios eletrônicos e celulares, utilizando a linguagem de programação Java. O protótipo desenvolvido tem como foco principal o desenvolvimento de um software que agrega conceitos adquiridos durante o curso de Engenharia de Computação, tais como, engenharia de software, linguagem orientada a objetos e sistemas de gerenciamento de banco de dados. Esse sistema visa beneficiar os usuários de um sistema acadêmico, proporcionando ferramentas para uma melhor comunicação e estabelecendo assim uma melhor integração entre os seus membros. O protótipo foi desenvolvido em um ambiente Java, pois a linguagem de programação Java proporciona vantagens na programação com uso de interface com banco de dados e protocolos da internet, elementos de extrema importância para a realização e conclusão deste protótipo. PALAVRAS-CHAVE: envio de mensagens automáticas; sistema de controle acadêmico; protótipo em Java; xii Abstract This work has as main objective to present a prototype of an academic control system with automatic messaging to emails and to mobile phones, using Java programming language. The prototype has as main focus the development of software that uses concepts acquired during the Computing Engineering course such as software engineering, knowledge of object oriented languages, and database management systems. This system aims to help users of an academic system, making available tools to improve communication, and so improving the interactions in between the members of this system. The prototype was developed in a Java environment, because the Java programming language presents advantages during the implementation as the use of an easy interface with the database and internet protocols, extremely important elements for the realization and conclusion of such prototype. KEY WORDS: automatic messaging; academic control system; Java prototype; xiii 1 INTRODUÇÃO 1.1 Contextualização A idéia principal do projeto é a implementação de um protótipo de controle acadêmico com envio de mensagens automáticas para celulares utilizando a linguagem de programação Java. Este sistema acadêmico possibilita aos seus usuários o serviço de envio de mensagens automáticas após a ocorrência de determinados eventos. O desenvolvimento do projeto tem como foco principal o desenvolvimento de um protótipo baseado em orientação a objetos utilizando como ferramenta a linguagem de programação Java. A linguagem Java oferece uma série de vantagens na implementação da interface com banco de dados e protocolos da internet. No desenvolvimento do projeto também foi utilizado um sistema de gerenciamento de banco de dados (SGBD). O projeto tem como base o sistema acadêmico utilizado na Universidade São Francisco, e tem como finalidade a implementação de um programa que utiliza uma interface disponível na linguagem Java para um banco de dados. Após o desenvolvimento do projeto é feito um estudo de caso para mostrar sua funcionalidade. A escolha do software Netbeans justifica-se por ser um software livre, prática utilizada pela Universidade São Francisco. Com a contribuição da linguagem JSP (Java Server Pages), o projeto visa uma melhor interface gráfica com os seus usuários bem como sua utilização via internet. Este trabalho de conclusão de curso tem como função também promover uma inter ralação entre os diversos temas e conteúdos tratados durante o curso de Engenharia de Computação, de forma a contribuir para a formação profissional do aluno agregando conhecimento entre as diversas áreas relacionadas ao curso. 1.2 Objetivo O objetivo principal do projeto é a implementação de um sistema acadêmico que possibilitará uma melhor comunicação entre seus usuários com envio de mensagens automáticas após a ocorrência de determinados eventos. 1.3 Estrutura do Texto A monografia foi dividida em 6 seções da seguinte maneira: • Seção 1 aborda a introdução e contextualização do objetivo do projeto. 1 • Seção 2 aborda a tecnologia e ferramentas necessárias para o desenvolvimento do protótipo. • Seção 3 contempla tópicos de metodologias de desenvolvimento utilizadas na implementação do protótipo. • Seção 4 aborda a conclusão da monografia assim como contribuições a possíveis trabalhos futuros. • Seção 5 lista as referências bibliográficas. • Seção 6 contém um glossário de palavras para um maior entendimento da monografia. 2 2 TECNOLOGIA ADOTADA 2.1 Linguagem de Programação Java A linguagem de programação Java foi criada por uma equipe de pesquisadores da Sun Microsystems, em 23 de maio de 1995. Java é uma linguagem de alto nível muito semelhante à linguagem de programação C++. A linguagem de programação Java é o resultado de um trabalho de pesquisa e desenvolvimento muito mais do que uma simples linguagem de programação, ou seja, tem todo um ambiente de desenvolvimento e execução de programas que reúne um conjunto infinito de facilidades. A seguir, a figura 1 demonstra como é dividido um ambiente de desenvolvimento Java. Figura 1: Ambiente de Desenvolvimento Java Fonte: www.javafree.org A linguagem de programação Java foi adotada para o desenvolvimento deste projeto, por tratar-se de uma linguagem de programação que suporta a programação orientada a objetos, por ter facilidade na implementação de uma interface com bancos de dados e protocolos de internet e por incorporar diversas características voltadas para segurança. 3 Como será visto posteriormente, um aperfeiçoamento deste projeto seria a execução do mesmo através de um dispositivo móvel, e, neste caso, é através da linguagem Java que este tipo de implementação se torna possível. 2.2 Características Importantes 2.2.1 Simplicidade na programação Sua semelhança com a linguagem de programação C++ torna a linguagem Java conhecida pela maioria dos programadores que utilizam a programação orientada a objetos. Porém Java foi desenvolvida com intuito de melhorar e eliminar desvantagens que vinham do C++, como por exemplo, herança múltipla, sobrecarga de operadores, aritmética de ponteiros, alocação e liberação manual de memória. “Java é uma linguagem de programação de propósito geral, concorrente, com base em classes e orientada a objetos. Foi projetada para ser simples o bastante para que a maioria dos programadores se torne fluente com a linguagem Java. A linguagem Java tem relação com C e C++, mas é organizada de maneira diferente, com vários aspectos de C e C++ omitidos e algumas idéias de outras linguagens incluídas” [6] 2.2.2 Linguagem orientada a objetos O protótipo tem como princípio, além do envio de mensagens automáticas após a ocorrência de determinados eventos, a manipulação de usuários desse sistema acadêmico utilizando métodos como cadastro, pesquisa e alteração, por essa razão foi necessário a utilização de uma linguagem que suportasse a orientação a objetos. Ao se utilizar uma linguagem de programação orientada a objetos para a manipulação dos dados, ganha-se uma maior organização e gerenciamento, pois esta programação ajuda em muito o tratamento e gerenciamento de grandes quantidades de dados. A linguagem orientada a objetos também descreve procedimentos para obter a solução de um problema de forma clara, rápida e objetiva dando segurança ao programador. A programação orientada a objetos implementa uma séries de classes que irão definir os objetos presentes do sistema, onde cada classe determinará o comportamento e estados possíveis de seus objetos, assim como o relacionamento com outros objetos. O projeto orientado a objetos fornece uma maneira natural e intuitiva de visualizar o processo de projeto de software – modelar objetos por seus atributos e comportamentos da maneira como descrevemos objetos do mundo real. [1]. A figura 2 mostra um exemplo de 4 orientação a objetos onde temos uma classe casa e as suas instâncias. A classe casa define o comportamento dos objetos, através do método boolean abrePorta(), e quais estados que esses objetos poderão manter através dos atributos número e cor. Os objetos c1, c2 e c3 têm valores diferentes de cor e número das casas, enquanto apenas o objeto c3 utiliza o método abrePorta(). Figura 2: Exemplo de classe e objetos. Fonte: www.argonavis.com.br 2.2.3 Independente de Plataforma Um dos conceitos mais importantes da linguagem Java é a independência de plataforma, pois um programa Java escrito em uma plataforma pode ser utilizado em qualquer outra plataforma diferente da original. Isso é possível através da utilização da Java Virtual Machine (JVM), esta máquina virtual interpretará um programa Java para o código de máquina específico da plataforma em questão. Portanto, qualquer plataforma que possui uma JVM pode compilar qualquer programa Java. Na figura 3, temos um exemplo de como o JVM pode funcionar em diferentes sistemas operacionais, como Windows, Linux e Mac. 5 Figura 3: Java Multiplataforma. Fonte: www.java.sun.com 2.2.4 Performance e segurança Pensando em performance, a linguagem de programação Java foi projetada para ser compacta, independente de plataforma e para a utilização em rede, o que levou a decisão de ser interpretada por intermédio dos esquemas de bytecodes. “Sendo uma linguagem interpretada, sua performance é razoável não podendo ser comparada a velocidade de execução de código nativo”. [6]. Visando a segurança e considerando a possibilidade de que as aplicações possam ser obtidas através de uma rede, a linguagem Java possui mecanismos de segurança que podem, no caso de applets, evitar, por exemplo, qualquer operação no sistema de arquivos de outra máquina, minimizando problemas de segurança. Tal mecanismo é flexível o suficiente para determinar se uma applet é considerada segura, especificando nesta situação diferentes níveis de acesso ao sistema de outro computador. 2.3 Java Server Pages (JSP) Java Server Pages é uma tecnologia usada para o desenvolvimento de aplicações para web, muito semelhante ao Active Server Pages (ASP). Por ser modelada na linguagem de programação Java, tem a vantagem da portabilidade de plataforma, que permite a execução em diversos sistemas operacionais como o Windows e o Linux. 6 “As Java Server Pages simplificam o fornecimento de conteúdo web dinâmico. Elas permitem aos programadores de aplicativo web criar conteúdo dinâmico reutilizando componentes pré-definidos e interagindo com componentes que utilizam script do lado do servidor”. [1]. JSP permite aos programadores de sites, construírem aplicações que permitam o acesso ao banco de dados, acessos a arquivos texto, a captação de informações por formulários, a captação de informações sobre o visitante e sobre o servidor entre outras funcionalidades. Há quatro componentes chaves para o JSP: diretivas, ações, elementos de script e bibliotecas de tags. ● Diretivas: são mensagens para o componente de servidor que executa o JSP, que permitem ao programador especificar configurações de página, incluindo conteúdos de outros recursos, e especificar as bibliotecas de tag personalizada para utilização em uma JSP. ● Ações: encapsulam funcionalidades em tags pré-definidas que os programadores podem incorporar em uma JSP. As ações freqüentemente são realizadas com base nas informações enviadas para o servidor como parte de uma solicitação particular de cliente, estas ações também podem criar objetos Java para a utilização em scriptlets de JSP. ● Elementos de Script: permitem aos programadores inserir um código Java que entre em interação com os componentes de uma página JSP, para realizar o processo de solicitação. Os scriptlets podem ser considerados como um tipo de script, que contém fragmentos de código, que descrevem a ação a ser realizada em resposta a uma solicitação de um usuário. ● Bibliotecas de tags: fazem parte do mecanismo de extensão de tag que disponibiliza aos programadores criarem tags personalizadas. “Os programadores tendem a utilizar JSPs quando a maior parte do conteúdo enviado para o cliente for dados de template fixo e uma pequena ou nenhuma parte do conteúdo for gerada dinamicamente com código Java”. [1]. A figura 4 mostra a arquitetura de uma página JSP, onde o cliente faz uma requisição a uma página. Após essa requisição o browser web efetua o pedido através da internet. O pedido JSP é então enviado para o servidor web. O servidor web reconhece o pedido em extensão JSP e entrega o arquivo JSP ao JSP Engine. 7 Figura 4: Arquitetura de uma página JSP Fonte: Fonte: www.javafree.org 2.4 Servlet Servlet é uma classe Java usada para ampliar as capacidades dos servidores que permitem o acesso a aplicações por meio do modelo requisição-resposta. Embora as classes Servlets possam responder a qualquer tipo de requisição, as mesmas são comumente usadas para ampliar as aplicações hospedadas em servidores web. Para tais aplicações, a tecnologia Java Servlet define classes Servlets específicas para o protocolo HTTP. [7]. Servlets geralmente são utilizadas para geração de conteúdo HTML dinâmico, sincronização de requisição e redirecionamento de requisições. A classe Servlet é executada a partir de requisições de clientes, que executam uma determinada tarefa, por exemplo, tarefas em banco de dados. A classe Servlet realiza a operação requisitada e retorna uma página ao cliente. Na figura 5 será mostrado o funcionamento de uma classe servlet. 8 Figura 5: Funcionamento de um Servlet Fonte: www.devmedia.com.br No momento (1), na figura 5, o cliente envia uma requisição POST ou GET via HTTP ao Servlet; no momento (2) o Servlet executa as tarefas necessárias para atender à requisição, buscando, inserindo ou alterando dados na Base de Dados; no momento (3) o Servlet envia ao navegador do cliente uma URL como resultado da requisição deste; finalizando no momento (4) o navegador recupera a URL e exibe ao cliente. 2.5 Tomcat O Tomcat é um servidor de aplicações Java para web. É distribuído como software livre e desenvolvido como código aberto dentro do projeto Apache Jakarta. O Tomcat tem a capacidade de atuar também como servidor web/HTTP. Este foi o grande motivo pelo qual o Apache Tomcat foi utilizado para o desenvolvimento deste protótipo. 2.6 MySQL O MySQL é um sistema de gerenciamento de banco de dados, que utiliza a linguagem SQL (Structured Query Language – Linguagem de Consulta Estruturada) como interface. O gerenciador de dados é usado para adicionar, modificar ou apagar dados armazenados em uma base de dados do computador. A grande vantagem do MySQL é o fato de ser um gerenciador gratuito e possuir as mesmas funcionalidades de outros gerenciadores de dados atualmente no mercado. 2.7 UML A UML (Unified Modeling Language) não é um método e sim uma linguagem de modelagem projetada para especificar, visualizar, construir e documentar um sistema. A linguagem de modelagem é a notação que o método utiliza para expressar projetos enquanto 9 que o processo indica quais passos seguir para desenvolver um projeto. A especificação da UML consiste de duas partes: • Semântica - especifica a sintaxe abstrata e a semântica dos conceitos de modelagem estática e dinâmica de objetos; • Notação – especifica a notação gráfica para a representação visual da semântica. A UML suporta o desenvolvimento iterativo e incremental. Desenvolvimento iterativo e incremental é o processo de desenvolvimento de sistemas em pequenos passos. Uma iteração é um laço de desenvolvimento que resulta na liberação de um subconjunto de produtos que evolui até o produto final percorrendo as seguintes atividades: • Análise de requisitos • Análise • Projeto • Implementação • Teste O detalhamento de cada etapa destas atividades define o método de desenvolvimento de sistemas. 2.7.1 Análise de requisitos Esta etapa se caracteriza pela definição do comportamento do sistema, ou seja, como o sistema age ou reage, descrevendo o relacionamento entre o ambiente e o sistema. Deve ser uma definição de necessidades do usuário e não uma proposta de solução. O usuário deve indicar os requisitos prioritários para o sistema. O grupo de análise deve identificar as necessidades do usuário. Decisões do projeto impostas não são características essenciais do domínio do problema. A análise de requisitos é composta pelos seguintes diagramas: • Diagrama de caso de uso; • Diagrama de seqüência; 10 • Diagrama de colaboração; Para realizar a análise de requisitos, primeiramente deve-se: • Identificar objetivo e características do sistema; • Identificar os requisitos essenciais; • Descrever as necessidades do usuário; • Elaborar diagrama de caso de uso; • Elaborar diagrama de seqüência; • Elaborar diagrama de colaboração 2.7.2 Conceitos Como já foi dito, a UML é uma linguagem visual para especificação (modelagem) de sistemas orientados a objeto. A UML privilegia a descrição de um sistema seguindo três perspectivas: 1. Os diagramas de classes - (Dados estruturais); 2. Os diagramas de casos de uso (Operações funcionais); 3. Os diagramas de seqüência, atividades e transição de Estados (Eventos temporais); No decorrer desse documento, estes assuntos serão abordados com maiores detalhes. 11 3 PROJETO DESENVOLVIDO Conforme comentado anteriormente, o projeto visa beneficiar os usuários de um sistema acadêmico, proporcionando ferramentas para uma melhor administração e também comunicação entre as partes envolvidas neste sistema. O protótipo tem como base o sistema acadêmico utilizado na Universidade São Francisco. 3.1 Visão Geral da Universidade Como já dito anteriormente, o Sistema Acadêmico utilizado como base deste protótipo tem como referência o sistema utilizado pela Universidade São Francisco. A Universidade São Francisco é uma entidade educacional que contribui para o desenvolvimento humano e profissional de seus alunos, bem como para sua inserção no mercado de trabalho. Com sede em Bragança Paulista, a Universidade São Francisco conta com mais três campus (Itatiba, Campinas e São Paulo), todos situados em região de fácil acesso. Fisicamente estão distribuídos em instalações que acolhem plenamente as atividades educacionais e, também técnico-administrativas. Com laboratórios altamente equipados a Universidade São Francisco oferece aos seus alunos e professores alto nível no ensino superior. A Universidade São Francisco adota o sistema denominado “Aluno online” para o cadastro de alunos, atualização dos dados dos alunos, disponibilização de notas e freqüências, disponibilização de arquivos, mensagens e avisos, plano de estudo, histórico acadêmico entre outras ferramentas, para melhor gerenciamento e comunicação entre alunos e professores. A Universidade também adota o sistema denominado “Docente online”, que atua em conjunto com o sistema “Aluno online”. O sistema “Docente online” possibilita a interação do docente com as turmas das disciplinas para as quais leciona. É realizado a inserção de notas e freqüências e também a disponibilização de arquivos juntamente com a comunicação via mensagens e avisos. 3.2 Problema de Negócio O sistema “Aluno online” atua de acordo com as normas internas da Universidade. A comunicação entre o docente e os alunos de uma determinada turma, somente se dá quando do acesso via internet ao sistema. Este método de interação não é muito eficiente, uma vez que o aluno necessita verificar constantemente se houve a inclusão de algum arquivo, mensagem ou aviso, ou se houve a inclusão de nota ou freqüência. Com esses acessos constantes, a rede e o sistema tendem a ficar sobrecarregados gerando assim certo desconforto por parte de seus usuários. 12 3.3 Solução Proposta Visando resolver o problema de negócio mencionado no item anterior, o presente trabalho apresenta uma melhoria na comunicação entre o docente e os alunos, promovendo a emissão de avisos para endereços eletrônicos e dispositivos móveis, sempre após a ocorrência de um determinado evento no sistema. Por evento, entende-se a inclusão de um arquivo, mensagem ou aviso, ou a inserção de nota ou freqüência. Com a emissão dos avisos, o usuário não necessita verificar constantemente o sistema, apenas o fará após o recebimento de mensagens em seu correio eletrônico ou mensagens em seu dispositivo móvel. 3.4 Interessados no Projeto A tabela abaixo apresenta os interessados/envolvidos no desenvolvimento do projeto. Tabela 1: Interessados no Projeto (Stakeholders). Coordenador do curso de Engenharia de Computação. Orientar os alunos e docentes sobre as atividades e deveres da Universidade. Solicitação de retornos freqüentes das atividades desenvolvidas no projeto e aplicação das devidas avaliações. Professor Lecionar as disciplinas oferecidas pelo curso. Contribuição nas explanações sobre a utilização do sistema: elogios, críticas e sugestões. Aluno Atuar como um cliente para a Universidade, tendo direitos e deveres de acordo com o estatuto. Contribuição nas explanações sobre a utilização do sistema: elogios, críticas e sugestões. Apresentar um projeto rápido, seguro e inovador. Manter o escopo do projeto, aplicando os requisitos préestabelecidos na fase de planejamento. Desenvolver a programação com qualidade, visando não ultrapassar o budget (esforço). Desenvolvedor Espera-se que o aluno aplique na prática os conhecimentos adquiridos durante a graduação em um projeto inovador. Espera-se um software que seja rápido e seguro, facilitando a interação com os alunos da Universidade Espera-se um software que seja rápido e seguro, facilitando a interação com os professores e outros alunos da Universidade. Espera-se concluir um projeto que siga as normas e padrões de um trabalho de conclusão de curso. 13 3.5 Características Gerais do Projeto 3.5.1 Requisitos não funcionais: 1. O acesso ao sistema deve ser feito usando a tecnologia de internet, ou seja, usando um navegador web. 2. As telas para consulta e cadastro (alunos, professores, turmas, disciplinas, etc.) devem ter tempo de resposta máximo de 8 segundos. 3. O sistema deve ser projetado tanto para dar agilidade de movimentação do dados quanto para evitar erros de digitação que possam levar a informações inconsistentes. 4. Os computadores da Universidade estão baseados na plataforma Windows. O sistema foi desenvolvido em Java, utilizando servidor web (Tomcat) e banco de dados (MySQL). 3.5.2 Requisitos Funcionais: 5. Manutenção de Alunos: criar um banco de dados de alunos no sistema acadêmico e assim gerar possíveis consultas no sistema. 6. Manutenção de Professores: criar um banco de dados de professores no sistema acadêmico e assim gerar possíveis consultas no sistema. 7. Manutenção de Disciplinas: criar um banco de dados das disciplinas no sistema acadêmico e assim gerar possíveis consultas e exclusões das disciplinas do sistema. 8. Manutenção de Turmas: criar um banco de dados de turmas no sistema acadêmico e assim gerar possíveis consulta e exclusões das turmas no sistema. 9. Envio de Mensagens: criar um banco de dados com os conteúdos das Mensagens Enviadas. Essas mensagens são visualizadas pelos usuários do sistema e podem ser excluídas a qualquer momento. 10. Upload (inclusão) de Arquivos: criar um acervo de arquivos para possíveis consultas e downloads dos usuários do sistema. 3.6 Usuários do Projeto A tabela abaixo informa os usuários do projeto. 14 Tabela 2: Usuários do Projeto. Professores Alunos Desenvolvedor Funcionários Responsável por Disponibilizar arquivos para lecionar as disciplinas. acompanhamento das aulas. Divulgar através de mensagens u avisos informações pertinentes ao curso. Incluir as notas e freqüências. Atua como um cliente Interage com os demais usuários para a Universidade, incluindo mensagens. Possui mantendo um acesso ao seu cadastro e comprometimento com também as notas e freqüências. as normas acadêmicas. Responsável pela Deve atuar na manutenção do implementação e sistema e futuras alterações. validação do sistema. Responsável pelas Cadastra alunos, professores, atividades disciplinas e turmas. administrativas. Exclui disciplinas e turmas. 3.7 Premissas e Restrições do Projeto O projeto apresenta as seguintes premissas e restrições: 1. O banco de dados MySQL está disponível para o armazenamento dos dados dos professores e dos alunos e também para o armazenamento das mensagens e arquivos. 2. O servidor suporta páginas JSP. 3. Professores e alunos devem ter acesso ao sistema. 3.8 Documentos Relacionados O projeto não contempla nenhum documento específico, uma vez que a finalidade da presente monografia é didática e âmbito acadêmico. 3.9 Diagrama de Caso de Uso “O caso de uso é a parte mais importante da construção de software orientado a objetos utilizando a UML. Os Casos de Uso são, talvez, o único instrumento que acompanha um software do seu inicio até a sua conclusão. “[5]. A utilização do diagrama de casos de uso auxiliou a descrever as funcionalidades propostas desse sistema acadêmico, pois podemos descrever a seqüência de eventos que um usuário necessita realizar para completar um processo no sistema. A seguir é apresentado um 15 exemplo utilizando o diagrama de casos de uso, demonstrando a seqüência de eventos necessária para realização de um envio de mensagem no sistema. A figura 6 mostra as funcionalidades gerais do sistema na forma de diagrama de casos de uso. Em seguida estão detalhadas as especificações textuais dos casos de uso do sistema. Figura 6: Caso de uso gerais do sistema. 3.9.1 Descrição dos Casos de Uso 3.9.1.1 Cadastro de Aluno Figura 7: Caso de uso cadastro de aluno. 16 Breve Descrição: Deve ser possível cadastrar novos alunos no sistema. Atores: Usuário, Sistema. Pré-condições: O aluno não deve estar cadastrado no sistema. Pós-condições: Aluno cadastrado no sistema. Fluxo Principal: 1. Usuário seleciona opção Cadastrar Aluno. 2. Usuário entra com os dados do Aluno: • RA do Aluno • Nome • Email • Celular • Recebe SMS • Recebe Email • Seleciona uma Turma 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Usuário clica no botão Cadastrar. 6. Sistema volta para a tela de Cadastro de Aluno. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3.9.1.2 Listar Aluno Figura 8: Caso de uso listar aluno. Breve Descrição: Deve ser possível listar todos os alunos no sistema. Atores: Usuário, Sistema. 17 Pré-condições: O sistema deve conter alunos cadastrados. Pós-condições: Listagem de todos os alunos cadastrados no sistema. Fluxo Principal: 1. Usuário seleciona opção Listar Aluno. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 1. 3. Caso usuário clique no botão Histórico, segue para Fluxo alternativo item 2. 4. O sistema deve exibir todos os alunos cadastrados. Fluxo alternativo: 1. Sistema volta para a tela anterior. 2. Sistema avança para a tela de Cadastro de Histórico. 3.9.1.3 Cadastro de Professor Figura 9: Caso de uso cadastro de professor. Breve Descrição: Deve ser possível cadastrar novos professores no sistema. Atores: Usuário, Sistema. Pré-condições: O professor não deve estar cadastrado no sistema. Pós-condições: Professor cadastrado no sistema. Fluxo Principal: 1. Usuário seleciona opção Cadastrar Professor. 2. Usuário entra com os dados do Professor: • Nome • Email • Celular 18 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Usuário clica no botão Cadastrar. 6. Sistema volta para a tela de Cadastro de Professor. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3.9.1.4 Listar Professor Figura 10: Caso de uso listar professor. Breve Descrição: Deve ser possível listar todos os professores do sistema. Atores: Usuário, Sistema. Pré-condições: O sistema deve conter professores cadastrados. Pós-condições: Listagem de todos os professores cadastrados no sistema. Fluxo Principal: 1. Usuário seleciona opção Listar Professor. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo 1. 3. O sistema deve exibir uma lista de todos os professores cadastrados. Fluxo alternativo: 1. Sistema volta para a tela anterior. 3.9.1.5 Cadastro de Disciplina 19 Figura 11: Caso de uso cadastro de disciplina. Breve Descrição: Deve ser possível cadastrar novas disciplinas no sistema. Atores: Usuário, Sistema. Pré-condições: A disciplina não deve estar cadastrada no sistema. Pós-condições: Disciplina cadastrada no sistema. Fluxo Principal: 1. Usuário seleciona opção Cadastrar Disciplina. 2. Usuário entra com os dados da Disciplina: • Nome • Carga Horária • Nome do Professor 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Usuário clica no botão Cadastrar. 6. Sistema volta para a tela de Cadastro de Disciplina. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3.9.1.6 Listar Disciplina 20 Figura 12: Caso de uso listar disciplina. Breve Descrição: Deve ser possível listar todas as disciplinas do sistema. Atores: Usuário, Sistema. Pré-condições: O Sistema deve conter disciplinas cadastradas. Pós-condições: Listagem de todas as disciplinas cadastradas no sistema Fluxo Principal: 1. Usuário seleciona opção Listar Disciplinas. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo 1. 3. O sistema irá exibir todas as disciplinas cadastradas. Fluxo alternativo: 1. Sistema volta para a tela anterior. 3.9.1.7 Cadastro de Turma Figura 13: Caso de uso cadastro de turma. Breve Descrição: Deve ser possível cadastrar novas turmas no sistema. Atores: Usuário, Sistema. Pré-condições: A Turma não deve estar cadastrada no sistema. Pós-condições: Turma cadastrada no sistema. 21 Fluxo Principal: 1. Usuário seleciona opção Cadastrar Turma. 2. Usuário entra com dados da Turma: • Ano • Horário 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Usuário clica no botão Cadastrar Turma. 6. Sistema volta para a tela de Cadastro de Turma. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3.9.1.8 Listar Turma Figura 14: Caso de uso listar turmas. Breve Descrição: Deve ser possível listar todas as turmas do sistema. Atores: Usuário, Sistema. Pré-condições: O Sistema deve conter turmas cadastradas. Pós-condições: Listagem de todas as turmas cadastradas no sistema. Fluxo Principal: 1. Usuário seleciona opção Listar Turmas. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 1. 3. Caso usuário clique no botão Excluir, segue para Fluxo alternativo item 2. 4. Caso usuário clique no botão Lista segue para Fluxo alternativo item 3. 22 5. O sistema irá exibir todas as turmas cadastradas. Fluxo alternativo: 1. Sistema volta para a tela anterior. 2. Sistema exclui a turma selecionada. 3. Listagem de todos os alunos cadastrados na turma selecionada (caso de uso listar alunos). 3.9.1.9 Cadastro de Histórico Figura 15: Caso de uso cadastro de histórico. Breve Descrição: Deve ser possível gerenciar o histórico de cada aluno do sistema. Atores: Usuário, Sistema. Pré-condições: O Sistema deve conter disciplinas cadastradas. Pós-condições: Listagem do Histórico de um determinado aluno do sistema. Fluxo Principal: 1. Usuário seleciona opção Histórico. 2. Usuário entra com dados: • Freqüência • Nota 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Caso usuário clique no botão Excluir, segue para Fluxo alternativo item 3. 23 6. Caso usuário clique no botão Cadastra segue o Fluxo alternativo 4. 7. Usuário clica no botão Salvar. 8. Sistema volta para a tela de Cadastro de Histórico. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3. Sistema exclui o cadastro do aluno na disciplina selecionada. 4. Sistema cadastra aluno na disciplina selecionada. 3.9.1.10 Enviar Mensagem Figura 16: Caso de uso envia mensagem. Breve Descrição: Deve ser possível cadastrar e enviar novas mensagens no sistema. Atores: Usuário, Sistema. Pré-condições: Nenhuma. Pós-condições: Nova mensagem cadastrada no sistema. Nova mensagem enviada aos usuários do sistema. Fluxo Principal: 1. Usuário seleciona opção Enviar Mensagem. 2. Usuário entra com dados da Mensagem: • Assunto • Conteúdo 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 1. 4. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 2. 5. Usuário clica no botão Enviar. 24 6. Sistema volta para a tela de Enviar Mensagem. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem efetuar nenhum cadastro. 3.9.1.11 Listar Mensagens Figura 17: Caso de uso listar mensagens. Breve Descrição: Deve ser possível listar todas as mensagens do sistema. Atores: Usuário, Sistema. Pré-condições: O Sistema deve conter mensagens cadastradas. Pós-condições: Listagem das mensagens cadastradas no Sistema Fluxo Principal: 1. Usuário seleciona opção Listar Mensagens. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 1. 3. Caso usuário clique no botão Excluir, segue para Fluxo alternativo item 2. 4. O Sistema irá exibir todas as Mensagens Cadastradas no Sistema. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema exclui a Mensagem selecionada. 3.9.1.12 Upload de Arquivo 25 Figura 18: Caso de uso upload de arquivo. Breve Descrição: Deve ser possível incluir novos arquivos no sistema. Atores: Usuário, Sistema. Pré-condições: Nenhuma. Pós-condições: Novo arquivo incluído no Sistema Fluxo Principal: 1. Usuário seleciona opção Upload Arquivo. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 1. 3. Caso usuário clique no botão Limpar, segue para Fluxo alternativo item 2. 4. Usuário seleciona arquivo pra incluir no Sistema. 5. Usuário clica no botão Enviar Dados. 6. Sistema volta para a tela de Upload Arquivo. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem incluir nenhum arquivo. 3.9.1.13 Listar Arquivos Figura 19: Caso de uso listar arquivos. Breve Descrição: Deve ser possível listar todos os arquivos do sistema. 26 Atores: Usuário, Sistema. Pré-condições: O Sistema deve conter arquivos. Pós-condições: Listagem de todos os arquivos do Sistema. Fluxo Principal: 1. Usuário seleciona opção Listar Arquivos. 2. Caso usuário clique no botão Voltar, segue para Fluxo alternativo item 1. 3. O Sistema deve exibir todos os arquivos incluídos no sistema disponível para o download. Fluxo alternativo: 1. Sistema remove todos os dados deixando os campos sem nenhum preenchimento. 2. Sistema volta para a tela anterior sem incluir nenhum arquivo. 3.10 Diagrama de Classes Nos Diagramas de Classes devemos identificar as diferentes classes que compõem o sistema a ser desenvolvido e como estas classes se relacionam entre si. Estes diagramas são normalmente estáticos, pois demonstram as classes em conjunto com os seus métodos e atributos, assim como as relações estáticas de uma classe com a outra. Com a utilização do diagrama de classes pode-se perceber quais as classes que se comunicam e as que se completam, porém no diagrama de classes não é demonstrado as chamadas de métodos entre as classes que o compõem. Na Figura 20 temos o diagrama de classes desse protótipo, as classes Aluno e Professor herdam os seus métodos e atributos da classe Pessoa seguindo o conceito de herança na linguagem orientada a objetos. A classe Professor está associada às classes Disciplina e Turma, relacionando as disciplinas que os professores lecionam em determinado ano e horário formando, as turmas. A classe Disciplina possui código, nome e carga horária e a classe Turma possui código ano e horário. A classe Aluno está associada às classes Histórico, Turma e Disciplina, relacionando as disciplinas que os alunos cursam em determinado ano e horário, formando as turmas e seus respectivos históricos. A classe Histórico possui freqüência e nota. 27 Figura 20: Diagrama de Classes No apêndice A é mostrado o diagrama de classes relacionando todas as classes utilizadas no protótipo. Para um melhor entendimento do diagrama, neste caso, os métodos não são mostrados. 3.11 Diagrama de Seqüência Um diagrama de seqüência pode ser usado para mostrar a evolução de uma dada situação em determinado momento do software, mostrar uma dada colaboração entre duas ou 28 mais classes e pode, também, ser usado para mostrar a tradução de um Caso de Uso desde a interação com o usuário até a finalização do processo em questão. [5]. Em um projeto podemos ter uma grande quantidade de métodos em diferentes classes, então para se determinar uma seqüência dos processos e atividades do software, foi utilizado o diagrama de seqüência para que assim pudéssemos descrever a maneira como os objetos colaboram entre si ao longo dos processos. Na figura 21 podemos verificar o fluxo dos dados, ao realizar um cadastro de aluno no protótipo do sistema. Primeiramente na tela inicial o usuário escolhe a opção cadastrar aluno, em seguida na página cadastra aluno o usuário envia os dados para o armazenamento no Banco de Dados. Após o cadastro do aluno, o usuário tem a opção de realizar um novo cadastro ou apenas voltar para tela inicial do sistema. Figura 21: Diagrama de Seqüência 3.12 Administração Com a implementação do protótipo, uma melhor administração será alcançada por parte dos usuários desse sistema acadêmico, pois o sistema disponibilizará ao funcionário ferramentas para o auxilio de tarefas como: Cadastro de Alunos, onde o usuário deverá entrar com os dados do aluno. ● ra; ● nome; ● email; ● celular; ● Recebe SMS; 29 ● Recebe Email; ● Turma; Em seguida o software analisa os dados fornecidos, de forma a garantir a compatibilidade entre os valores inseridos, com os valores esperados pelo sistema. Após a validação dos dados do aluno, um objeto do tipo aluno é armazenado no Banco de Dados. A seguir na figura 22, podemos visualizar a aparência da página através da qual os alunos serão cadastrados no sistema acadêmico. Figura 22: Cadastro de Aluno Cadastro de Professores, onde o usuário deverá entrar com os dados do professor. ● nome; ● email; ● celular; Em seguida o software analisa os dados fornecidos, de forma a garantir a compatibilidade dos valores inseridos, com os valores esperados pelo sistema. Após a validação dos dados do professor, um objeto do tipo professor é armazenado no Banco de 30 Dados. Na figura 23, podemos visualizar a aparência da página através da qual os professores serão cadastrados no sistema acadêmico. Figura 23: Cadastro de Professor Cadastro de Disciplinas, onde o usuário deverá entrar com os dados da Disciplina. ● nome; ● carga horária; ● Nome Professor Porém a inclusão de dados a um objeto do tipo disciplina é um pouco diferentes das inclusões de valores em objetos vistos anteriormente, pois o usuário não necessita preencher o campo professor figura 24. O usuário apenas seleciona com o mouse no Drop Down List do campo, nome do professor os valores oferecidos, evitando assim que os usuários necessitem conhecer todos os professores disponíveis para lecionar as disciplina. Além de facilitar no preenchimento dos campos o Drop Down List realiza uma pré-analise dos valores, pois apenas os professores cadastrados no sistema podem ser selecionados para um possível cadastro na disciplina. 31 Figura 24: Cadastro de Disciplina Cadastro de Turmas, onde o usuário deverá entrar com os dados da Turma. ● ano; ● horário; Em seguida o software analisa os dados inseridos via usuário, de forma a garantir a compatibilidade realizando comparações dos valores inseridos, com os valores esperados pelo sistema. Após a validação desses dados referentes ao objeto turma, o mesmo é armazenado no Banco de Dados. Na figura 25, podemos visualizar a aparência da página através da qual as turmas serão cadastradas no sistema acadêmico. 32 Figura 25: Cadastro de Turma Inclusão de Notas e Freqüência, onde o professor deverá entrar com os valores. ● freqüência; ● nota; Após uma listagem na turma na qual o usuário queira incluir as notas e freqüências de seus alunos, uma lista dos alunos referente à turma pesquisada é apresentada, conforme apresentado na figura 26. 33 Figura 26: Listar de alunos cadastrados na turma pesquisada. Uma opção denominada histórico aparece ao lado dos nomes dos alunos da turma. Após o usuário clicar em histórico de um determinado aluno o software encaminha o usuário à página de Gerenciamento de Histórico, nesta página o usuário pode cadastrar o aluno nas disciplinas oferecidas pelo curso e também pode incluir notas e freqüências em disciplinas précadastradas no sistema. Na figura 27, podemos visualizar a aparência da página através da qual as notas e freqüências serão incluídas no histórico de cada aluno. 34 Figura 27: Gerenciamento de Histórico. O sistema disponibiliza aos seus usuários, um acesso para a realização de consultas referentes as notas e freqüências, essas informações serão armazenadas no histórico individual de cada aluno. 3.13 Comunicação O protótipo do sistema acadêmico com envio de mensagens automáticas tem como objetivo integrar os membros que utilizam esse sistema acadêmico, através de uma comunicação eficiente e rápida. Os usuários do sistema podem realizar o envio de mensagens e postagem de dúvidas e esclarecimentos sobre a disciplina em questão, como por exemplo, provendo dúvidas relacionadas a datas de entregas de trabalhos e provas. Estas informações serão de acesso público para todos os alunos de uma mesma disciplina. Além dessa informação, que fica na página como as páginas de um “FÓRUM”, os alunos que optaram por receber o “alerta” de que uma nova informação foi inserida no sistema irão receber um aviso através de 35 dispositivos moveis (celular) e endereços eletrônicos (e-mails), dados esses que foram devidamente cadastrados no sistema. Não será enviado o conteúdo da nova mensagem incluída no sistema, mas sim uma mensagem informando aos alunos da disciplina em questão que há uma nova mensagem ou aviso sobre a disciplina no sistema acadêmico. Essa mensagem informativa tem como conteúdo o titulo e o autor da mensagem inserida anteriormente no sistema. Os alunos interessado em descobrir o conteúdo da mensagem deve acessar o sistema acadêmico. Após o envio da mensagem informativa, um número maior de alunos da disciplina é alcançado, esses alunos terão informações necessárias para um melhor aproveitamento das aulas. Um bom exemplo da utilização de envios de mensagens para os emails e celulares doas alunos, é a necessidade de avisos urgentes, que os alunos ou o professores só tomam o conhecimento deste aviso urgente no momento da aula. Exemplo de uma mensagem urgente é a necessidade não prevista antecipadamente do professor em faltar em uma de suas aulas, uma maneira para se evitar que os alunos não tenham a infelicidade de serem informados que não haverá aula apenas no momento em que chegam à Universidade, seria a utilização da comunicação disponibilizada nesse sistema. O professor pode informar a sua ausência através desse sistema utilizando o envio de mensagens, não garantindo que 100% dos alunos serão informados da ausência do professor, mas que a grande maioria dos alunos estará ciente da ausência de seu professor com muito mais eficácia e rapidez. A seguir na figura 28, uma ilustração da página de envio de mensagens, onde o usuário deve preencher os campos Titulo e corpo da mensagem antes de enviar. 36 Figura 28: Modelo de envio de mensagens. A mesma mensagem informativa também será enviada aos alunos da disciplina, quando um novo arquivo for inserido no sistema. Arquivos que o professor pode disponibilizar aos seus alunos, visando ajudá-los com o aprendizado nas aulas. Esses arquivos podem ser apostilas, artigos, listas de exercícios entre outros. Após a inclusão do material o sistema envia mensagens para os alunos interessados em recebê-las, pois como dito anteriormente os alunos serão questionados se querem ou não receber essas informações em seus celulares e e-mails no momento em que se cadastrarem no sistema. O sistema, por sua vez, verificará todos os alunos que aceitam receber essas mensagens e assim envia uma mensagem informativa, seguindo o mesmo modelo das mensagens postadas com o titulo e o autor no corpo da mensagem. A figura 29 mostra como a página de inserção de arquivos foi desenvolvida, o usuário deve fornecer o arquivo ao sistema. Após essa especificação o usuário deve clicar no botão “Enviar dados, após o “click” do usuário com o mouse o arquivo é carregado na página do sistema. Os arquivos incluídos no sistema podem ser visualizados pelos usuários após selecionarem a opção do menu “Listar Arquivos”, após a escolha dessa opção o sistema disponibiliza ao usuário a lista de arquivos 37 incluídos no sistema, e também a opção de “download” para esses arquivos. A figura 30 demonstra como é realizado a pesquisa para o download desses arquivos. Figura 29: Inserção de arquivos no sistema. 38 Figura 30: Download de arquivos. 39 4 CONCLUSÃO Este protótipo nos permitiu agregar conceitos adquiridos nas disciplinas da grade de engenharia de computação, tais como: A disciplina de Engenharia de Software que nos permite especificar, desenvolver e garantir a sua manutenção, objetivando organização, produtividade e qualidade. A disciplina de banco de dados que no trouxe as noções de gerenciamento, recuperação e alteração de informações. A disciplina de programação orientada a objetos da qual utilizamos conceitos de objeto, classe, encapsulamento e herança; entre outras. Portanto, da fase inicial do projeto até o desenvolvimento, conseguimos articular diversos conceitos de diferentes áreas da engenharia. Tornamos essa articulação possível neste protótipo com a utilização da linguagem Java, por se tratar de uma ferramenta orientada a objeto, além de facilitar a implementação de interface com banco de dados e protocolos de internet, possibilitando ainda um aperfeiçoamento desse protótipo para uso em dispositivos móveis. 4.1 Contribuições O projeto foi elaborado tendo em vista a carência de comunicação entre alunos e professores observada no sistema da Universidade São Francisco, sobretudo as de caráter informativo, tornando mais eficientes os avisos de uma determinada disciplina na qual tenha ocorrido alguma eventualidade. Dessa forma, acreditamos ter avançado no sentido de um aperfeiçoamento da atual interação/comunicação entre alunos e professores existente na universidade, já que até então as informações disponibilizadas não vêm acompanhadas de aviso simultâneo aos usuários, forçando-os a acessar o sistema com muita freqüência. Todavia, acessos freqüentes não garantem a precisão na aquisição de informações, visto que o momento da consulta pode não coincidir com o momento da inclusão dos dados, deixando o usuário carente de informações que, em muitas ocasiões, podem ser imprescindíveis. 4.2 Trabalhos futuros • Utilização de envio SMS para um número maior de operadoras. • Acesso ao aplicativo via dispositivos móveis. • Teste no sistema acadêmico da Universidade São Francisco. • Incluir o envio de mensagens automáticas para celulares a um sistema de segurança. 40 5 REFERÊNCIAS BIBLIOGRÁFICAS [1] Deitel, Harvey M/Deitel, P.J.Java como programar. 6º edição. 2007. [2] Gonçalves, Edson. Desenvolvendo Aplicações Web com Netbeans IDE 5,5. 1º edição.2007. [3] Korth, H.F. e Silberschatz, A.; Sistemas de Bancos de Dados, Makron Books, 2a. edição revisada, 1994. [4] DATE, C. J. Introdução a sistemas de bancos de dados. 4. ed. Rio de Janeiro : Campus, 1991. [5] MEDEIROS, Ernani. Desenvolvendo software com UML 2.0 Definitivo. Makron Books. 2004. [6] JANDL JUNIOR, Peter. Introdução ao Java. São Paulo: Berkeley, 2002. [7] Sun Microsystems. Disponivel on-line em http://java.sun.com, 2008. [8] Sun Microsystems. Java Server Servlet Technology. Disponível on-line em http://java.sun.com/products/servlet/index.jsp, 2008. [9] Sun Microsystems. Java Server Pages Standard Tag Library. Disponível on-line em http://java.sun.com/products/jsp/jstl/, 2008. 41 6 GLOSSÁRIO ● Apache O servidor Apache (em inglês: Apache HTTP Server, ou simplesmente: Apache) é a principal tecnologia da Apache Software Foundation, responsável por mais de uma dezena de projetos envolvendo tecnologias de transmissão via web, processamento de dados e execução de aplicativos distribuídos. ● Apple A Apple Inc. é uma empresa multinacional norte-americana que atua no ramo de aparelhos eletrônicos e informática famosa principalmente pela fabricação do computador de marca registrada, Macintosh, com seu próprio sistema operacional, Mac OS, entre outros produtos. ● Applet É um aplicativo ou um programa pequeno com capacidade limitada. Geralmente, é um programa ou uma ferramenta auxiliar, como o Painel de controle do Windows. ● Bollean Bollean é um tipo de dado primitivo que possui dois valores, que podem ser considerados como 0 ou 1, verdadeiro ou falso. ● Browser O navegador, também conhecido como web browser ou simplesmente browser, termos em inglês, é um programa que habilita seus usuários a interagirem com documentos virtuais, também conhecidos como páginas HTML, que estão hospedadas num servidor Web. ● Budget Budget (do francês bougette, porta-moedas) geralmente se refere a uma lista de todas as receitas e despesas programadas. ● Bytecodes Em ciência da computação, bytecode é o resultado de um processo semelhante ao dos compiladores de código-fonte que não é imediatamente executável. ●C C é uma linguagem de programação compilada de propósito geral, estruturada, imperativa, de alto nível, e padronizada, criada em 1972. ● C++ A linguagem de programação C++ foi originalmente derivada do C para suportar programação orientada a objetos. 42 ● Download Download (significa descarregar ou baixar, em português), é a transferência de dados de um computador remoto para um computador local: o inverso de upload (carregar em português). ● Drop Down List Uma lista drop-down é uma interface de usuário controle GUI elemento semelhante a uma lista caixa que permite ao usuário escolher um valor a partir de uma lista. ● Email E-mail, correio-e (em português, correio electrónico), ou ainda email é um método que permite compor, enviar e receber mensagens através de sistemas eletrônicos de comunicação. ● Engine Na programação é a parte do programa que trata de dados de um certo tipo ou mecanismo. ● Forum Forum é uma ferramenta para páginas de Internet destinada a promover debates através de mensagens publicadas abordando uma mesma questão. ● GUI (GUI do inglês Graphical User Interface) é um tipo de interface do utilizador que permite a interação com dispositivos digitais através de elementos gráficos como ícones e outros indicadores visuais, em contraste a interface de linha de comando. ● Java Java é uma linguagem de programação orientada a objeto desenvolvida na década de 90, por uma da empresa Sun Microsystems. ● Linux Linux é o termo geralmente usado para designar qualquer sistema operativo ou sistema operacional que utilize o núcleo Linux. ● Mac O Macintosh Operating System (Mac OS) é a denominação do sistema operacional padrão dos computadores Macintosh produzidos pela Apple. ● Netbeans O NetBeans IDE é um ambiente de desenvolvimento integrado (IDE) gratuito e de código aberto para desenvolvedores de software na linguagem Java. ● Servlet Servlet é uma tecnologia que insere novos recursos a um servidor. 43 ● Stakeholder Stakeholder ou, em português, parte interessada ou interveniente, refere-se a todos os envolvidos num processo, por exemplo, clientes, colaboradores, investidores, fornecedores, comunidade etc. ● Tags Na programação são estruturas de linguagem de marcação que consistem em breves instruções, tendo uma marca de início e outra de fim. ● Tomcat O Tomcat é um servidor web Java, mais especificamente, um container de servlets. ● Upload Upload é a transferência de dados de um computador local para um servidor. ● Unix Unix é um sistema operacional portável, multitarefa e multiusuário originalmente criado por Ken Thompson. A marca UNIX é uma propriedade do The Open Group, um consórcio formados por empresas de informática. ● URL Um URL (de Uniform Resource Locator), em português Localizador de Recursos Universal, é o endereço de um recurso (um arquivo, uma impressora etc.), disponível em uma rede; seja a Internet, ou uma rede corporativa, uma intranet. ● Web A World Wide Web (que em português significa, "Rede de alcance mundial"; também conhecida como Web e WWW) é um sistema de documentos em hipermídia que são interligados e executados na Internet. ● Windows Microsoft Windows é uma popular família de sistemas operacionais criados pela Microsoft, empresa fundada por Bill Gates e Paul Allen. 44 7 APÊNDICE 7.1 Apêndice A No apêndice A é mostrado o diagrama de classes relacionando todas as classes utilizadas no protótipo. Para um melhor entendimento do diagrama, neste caso, os métodos não são mostrados. Figura 31: Diagrama de classes completo. 45