UNIVERSIDADE FEDERAL DE SANTA CATARINA CENTRO TECNOLÓGICO - CTC DISCIPLINA: INTRODUÇÃO A PROJETOS PROFESSOR: RENATO CISLAGHI FERRAMENTA COLABORATIVA PARA GROUPWARE Proposta de trabalho de conclusão de curso RODOLPHO BROCK 0023841-4 Apoio: Florianópolis, Fevereiro de 2004. Sumário Sumário ................................................................................................................2 Apresentação ........................................................................................................3 Objetivo ................................................................................................................3 Objeto de Estudo ..................................................................................................4 Ferramentas de Desenvolvimento ........................................................................5 Metodologia de Trabalho .....................................................................................6 1. Análise......................................................................................................6 2. Projeto ......................................................................................................6 3. Implementação .........................................................................................7 4. Testes........................................................................................................7 Cronograma de Atividades ...................................................................................7 2 Apresentação Esta proposta de trabalho de conclusão de curso, de autoria do aluno, do curso de graduação, Rodolpho Brock, visa implementar uma Ferramenta Colaborativa para Groupware, o qual será mais especificamente apresentado no decorrer deste documento. A confecção deste faz parte dos requisitos necessários para conseguir o grau de bacharel em Sistemas de Informação pela Universidade Federal de Santa Catarina (UFSC). Conta com a coordenação do professor João Bosco da Mota Sobral, e como membros da banca de avaliação o também professor Frank Siqueira e o professor Leandro José Komosinski. Objetivo Este trabalho visa desenvolver um sistema com base na arquitetura cliente-servidor utilizando o padrão de projeto MVC 2 para aplicações na Internet utilizando a tecnologia Java. Será necessário um estudo profundo da Linguagem Java e de todas as demais tecnologias ligadas a web, tais como Servlet, JSP e Struts, além das ferramentas necessárias ao desenvolvimento do sistema. Tais itens são a base para a viabilidade do trabalho. O objetivo deste trabalho resume-se em implementar um sistema na web que possibilite duas grandes tarefas o controle de horário e o controle de atividades. Justifico a escolha deste sistema como trabalho de conclusão de curso pois o mesmo aborda um assunto em bastante ascenção no momento, que é a web junto a linguagem de programação Java. Além de fornecer uma ferramenta extremamente necessária para o controle do trabalho em equipe. A concepção do trabalho utilizará ferramentas e linguagens de ponta, conceitos inovadores e necessitará de um amplo 3 conhecimento sobre os temas abordados, o que necessitará de uma grande dedicação de minha parte. Objeto de Estudo Este trabalho visa desenvolver uma ferramenta capaz de fazer o controle de horário de entrada e saída dos funcionários bem como o gerenciamento de projetos e suas atividades. Atualmente há uma aplicação desktop funcionando no servidor pra suprir essa necessidade, porém com o avanço da internet, viu-se a possibilidade de disponibilizar esse sistema na Web para que o acesso as informações se torne mais rápidas e de fácil acesso para todos que necessitam dessas informações, como por exemplo, funcionários que precisam informar os horários de entrada e saída mesmo quando estão em um viajem realizando tarefas em outras cidades. Com o estágio atual da Internet, mais e mais aplicações estão sendo construídas ou refeitas para que as informações sejam atualizadas e disponibilizadas praticamente em tempo real, sem longas esperas por atualizações. Assim informações podem ser incluídas, modificadas e excluidas desde que o usuário tenha um micro com acesso a internet e autorização para acessar a aplicação. Para desenvolver esse projeto, algumas tecnologias e ferramentas terão que ser estudadas a fundo pra que o trabalho atinja a qualidade esperada. Alguns conceitos devem ser plenamente entendidos, sendo assim, destaco alguns a seguir: Padrão de projeto MVC Java 2 Platform Enterprise Edition (J2EE) Sun JavaServer Pages (JSP) Struts O trabalho será desenvolvido para ser utilizado através da Internet, a rede mundial de computadores. Usará linguagem de 4 programação Java, juntamente com a tecnologia sitada acima, utilizando o paradigma de orientação a objetos. Será também necessário um sistema de gerência de banco de dados, o qual também deve prover mecanismos eficientes de armazenamento de informações. A utilização de softwares que utilizem o conceito de código-fonte aberto, os chamados softwares livres, terão preferência por serem obtidos e utilizados mais facilmente, além de terem custo baixíssimo comparado a soluções proprietárias de alguma empresa de desenvolvimento de software. Ferramentas de Desenvolvimento O sistema será desenvolvido utilizando a linguagem Java. Java é uma linguagem , de alto nível, orientada a objetos, com tipagem forte, multi processada e robusta. É similar ao Smalltalk e similar em sintaxe à C e C++, porém muito menos complexo do que C++. O servidor de aplicação Java será o JBoss, container de páginas html e JSP. O servidor de aplicação Tomcat é na verdade um framework que facilita o desenvolvimento da aplicação. Usarei como ferrmenta de desenvolvimento o Eclipse. Ferramenta de edições de código Java e C++. Interface totalmente customizável, leve, rápido e grátis. Possui uma gama enorme de plugins muito úteis. Features muito interessantes, como por exemplo debugar páginas JSP rodando no JBoss. A princípio a modelagem UML do sistema será feita utilizando a ferramenta ArgoUML, ferramenta livre construída também sobre a plataforma Java. O banco de dados a ser utilizado é o PostgreSQL, banco de dados de uso livre. 5 Metodologia de Trabalho A execução da proposta deste trabalho deverá propiciar uma aquisição maior de conhecimento sobre o tema em estudo, além de proporcionar uma oportunidade de aplicação prática dos conhecimentos adquiridos durante a formação acadêmica, dessa forma, opta-se por adotar uma metodologia de engenharia de software seguindo o paradigma de orientação a objetos, sendo que o desenvolvimento do sistema proposto terá como principais etapas: 1. Análise As pesquisas realizadas de forma mais aprofundada sobre o tema serão importantes, pois permitirão compor mais detalhadamente o conjunto de necessidades e funcionalidades exigidas pelo sistema. Ainda nesta etapa serão levantadas alternativas de implementação e as mesmas serão avaliadas quanto à viabilidade, bem como a identificação de módulos e estruturas que comporão o sistema. Por fim, é nesta etapa que será gerada toda a documentação UML. 2. Projeto Destina-se a definição pormenorizada da estrutura e módulos identificados em unidade de atividades. Em outras palavras, toda a definição da organização do projeto, dos aspectos físicos, funcionais, de interface, e etc, estarão presentes nesta etapa. Desta forma pode-se evidenciar a relevância desta etapa, visto que nela ocorrerão decisões de projeto importantes que devem ser documentadas para que futuramente possam ser consultadas, reutilizadas ou até mesmo continuadas. Por fim, é nesta etapa que iremos definir o 6 cronograma das atividades que irá validar o cronograma proposto neste. 3. Implementação Após terem sido analisadas e definidas as tecnologias, ferramentas e linguagens a serem utilizadas, a implementação se apresentará como sendo uma “transcrição natural” do conteúdo gerado pela etapa de análise para a linguagem computacional. Nesta estapa iremos gastar a maior parte de nosso tempo e é onde passaremos mais tempo em contato com a prática da programação, aprendendo dia a dia as novas tecnologias e os novos conceitos. 4. Testes Após a conclusão de cada módulo serão realizados testes para verificar as funcionalidades implementadas. Nos estágios finais do desenvolvimento serão aplicados testes mais abrangentes e complexos visando identificar e eliminar todos os problemas encontrados. Esta será uma prática constante durante todo o desenvolvimento do projeto. Cronograma de Atividades A fim de dimensionar bem o tempo para execução de todo o projeto e assim evitar futuros problemas proponho o seguinte cronograma: 1. Análise: Dois mês; 2. Projeto: Três meses; 3. Implementação: Cinco meses; 4. Testes: Duas semanas; 5. Preparação da defesa: Um mês e duas semanas. 7