CENTRO ESTADUAL DE ENSINO TECNOLÓGICO “PAULA SOUZA” FACULDADE DE TECNOLOGIA DE LINS CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS LÍVIA GARCIA ALVES DE SOUZA SISTEMA PARA ACADEMIA DE GINÁSTICA MUNDO LIVRE LINS/SP 1º SEMESTRE/2011 2 CENTRO ESTADUAL DE ENSINO TECNOLÓGICO “PAULA SOUZA” FACULDADE DE TECNOLOGIA DE LINS CURSO SUPERIOR DE TECNOLOGIA EM BANCO DE DADOS LÍVIA GARCIA ALVES DE SOUZA SISTEMA PARA ACADEMIA DE GINÁSTICA MUNDO LIVRE Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins para obtenção do Título de Tecnóloga em Banco de Dados. Orientador: Prof. Me. Fábio Lucio Meira. LINS/SP 1º SEMESTRE/2011 3 LÍVIA GARCIA ALVES DE SOUZA SISTEMA PARA ACADEMIA DE GINÁSTICA MUNDO LIVRE Trabalho de Conclusão de Curso apresentado à Faculdade de Tecnologia de Lins, como parte dos requisitos necessários para a obtenção do título de Tecnóloga em Bando de Dados sob orientação do Prof. Me. Fábio Lucio Meira. ____________________________ Orientador: Fábio Lúcio Meira ______________________________ Examinador 1: Gisele Molina Becari ______________________________ Examinador 2: Naylor Garcia Bachiega Data de aprovação: ___/___/___ 4 Aos meus pais, Zuleica Garcia Alves de Souza, in memorian e José Pereira de Souza. Ao meu irmão José Pedro Garcia Alves de Souza e ao meu namorado Fernando Silva pelo apoio e incentivo. 5 AGRADECIMENTOS Nesta oportunidade em que é alcançada uma meta importante na minha vida profissional, quero expressar os meus sinceros agradecimentos, primeiramente, a Deus, pois sem fé Nele, nada seria possível. Obrigada pela conclusão de mais essa etapa da minha vida, com muita saúde para eu poder continuar e mostrar minha capacidade no decorrer da vida. A toda minha família, principalmente aos meus pais, José e Zuleica (in memorian), por terem me dado momentos de carinho e conselhos, além de apoio, paciência e compreensão; e ao meu irmão, José Pedro, por me alegrar nos momentos difíceis dessa trajetória. Obrigada por confiarem em mim e investirem na minha carreira. Agradeço também ao meu namorado, Fernando Silva, pela amizade e companheirismo nessa corrida etapa da minha vida. A todos os amigos de classe, em especial, Adriano Castro, Brunna Linhares, Daiane Areco, Eduardo Bertin, Endrius Estevan, Luciana Pereira, Matheus de Caires e Susane Pontes, que sempre me incentivaram a insistir e persistir. Aos professores Adriana de Bortoli, Elaine Valencise, Luciane Noronha, Mario Pardo e Ygor Gonzaga, pela ajuda, compreensão e amizade. Ao meu orientador, Professor Me. Fábio Lúcio Meira, pela ajuda tão necessária ao desenvolvimento e realização desse trabalho. 6 RESUMO Esta pesquisa tem como objetivo geral informatizar os processos rotineiros (básicos) da academia de ginástica Mundo Livre. Dentre os objetivos específicos estão: cadastrar clientes, funcionários e fichas de exercícios; informar aos professores sobre os exercícios de cada cliente; mostrar os aniversariantes do mês; administrar o pagamento das mensalidades; controlar o fluxo de caixa. Focaliza-se, primeiramente, o estudo das principais tecnologias utilizadas no desenvolvimento do software, por exemplo, Java, JSP e JSF além do armazenamento dos dados no banco de dados Oracle 10g. Após o estudo, fez-se a análise do documento visão, segundo a aplicação da metodologia de Gonçalves (2006), Gonçalves (2007); Gonçalves (2008) e Geary e Horstmann (2007), essenciais para o desenvolvimento do trabalho. Em seguida, procedeu-se à criação dos diagramas, elaboração da prototipação das telas do sistema e a implementação do software. O estudo mostra a necessidade dos programadores buscarem mais informações sobre ferramentas e tecnologias que os auxiliam a desenvolver softwares e esclarecer se a utilização de um sistema de informações traz resultados positivos para uma empresa de pequeno porte como, por exemplo, a academia de ginástica Mundo Livre. Quanto à implementação e implantação do sistema na academia Mundo Livre, verificou-se ainda a viabilidade de aperfeiçoar o sistema de acordo com as exigências do gerente da academia. Palavras-chave: Tecnologia. UML. Sistema de informação. Software. Academia de ginástica. 7 ABSTRACT This research aims to computerize the general routine processes (basic) the gym Mundo Livre. Specific goals include: registering customers, employees and records of exercises; informing teachers about the exercises for each client; showing the month‟s birthdays; administering the payment of fees; monitor cash flow. It focuses, first, the study of the main technologies used in software development, for example, Java, JSP and JSF beyond the storage of data in Oracle Database 10g. After the study, did the analysis of vision document, according to the application of the methodology of Gonçalves (2006), Gonçalves (2007), Gonçalves (2008) and Geary and Horstmann (2007), essential for the development work. Then, proceeded to the creation of diagrams, preparation of the prototyping system screens and software implementation. The study shows programmers‟ need seeking more information about tools and technologies that help them develop software and to clarify whether the use of an information system brings positive results for a small business, for example, the gym Mundo Livre. The implementation and deployment of the Free World in the gym, there was also the feasibility of improving the system in accordance with the requirements of the manager and teachers of the academy. Keywords: Technology. UML. Information system. Software. Fitness center. 8 LISTA DE FIGURAS Figura 1. NetBeans IDE........................................................................................... 26 Figura 2. Diagrama de Caso de Uso.......................................................................... 40 Figura 3. Diagrama de Atividades – Manter Fichas – Cadastrar............................... 43 Figura 4. Diagrama de Atividades – Manter Fichas – Atualizar................................. 44 Figura 5. Diagrama de Atividades – Manter Funcionários – Cadastrar..................... 45 Figura 6. Diagrama de Atividades – Manter Funcionários – Atualizar....................... 46 Figura 7. Diagrama de Atividades – Manter Clientes – Cadastrar............................. 47 Figura 8. Diagrama de Atividades – Manter Clientes – Atualizar............................... 48 Figura 9. Diagrama de Atividades – Manter Recebimentos....................................... 49 Figura 10. Diagrama de Atividades – Controlar Fluxo de Caixa..............................50 Figura 11. Diagrama de Atividades – Gerar Promoção........................................... 51 Figura 12. Diagrama de Classe............................................................................... 52 Figura 13. Diagrama MVC – Controle Ficha Exercícios.......................................... 53 Figura 14. Diagrama MVC – Controle Funcionários................................................ 54 Figura 15. Diagrama MVC – Controle Endereços....................................................55 Figura 16. Diagrama MVC – Controle Clientes........................................................55 Figura 17. Diagrama MVC – Controle Mensalidades...............................................56 Figura 18. Diagrama MVC – Controle Fluxo Caixa..................................................56 Figura 19. Diagrama de Sequência – Criar Ficha de Exercícios............................. 57 Figura 20. Diagrama de Sequência – Atualizar Ficha de Exercícios.......................57 Figura 21. Diagrama de Sequência – Listar Ficha de Exercícios............................ 58 Figura 22. Diagrama de Sequência – Criar Funcionários........................................58 Figura 23. Diagrama de Sequência – Atualizar Funcionários..................................59 Figura 24. Diagrama de Sequência – Listar Funcionários.......................................59 Figura 25. Diagrama de Sequência – Criar Endereços........................................... 60 Figura 26. Diagrama de Sequência – Atualizar Endereços..................................... 60 Figura 27. Diagrama de Sequência – Listar Endereços.......................................... 61 Figura 28. Diagrama de Sequência – Criar Clientes................................................61 Figura 29. Diagrama de Sequência – Atualizar Clientes......................................... 62 Figura 30. Diagrama de Sequência – Listar Clientes...............................................62 Figura 31. Diagrama de Sequência – Criar Mensalidades...................................... 63 Figura 32. Diagrama de Sequência – Atualizar Mensalidades................................ 63 Figura 33. Diagrama de Sequência – Listar Mensalidades..................................... 64 Figura 34. Diagrama de Sequência – Criar Fluxo de Caixa.....................................64 Figura 35. Diagrama de Sequência – Atualizar Fluxo de Caixa...............................65 Figura 36. Diagrama de Sequência – Listar Fluxo de Caixa....................................65 Figura 37. Tela de Login do Sistema....................................................................... 66 Figura 38. Tela Home.............................................................................................. 67 Figura 39. Opções Clientes, Ficha de Exercícios e Funcionários............................68 Figura 40. Cadastro de Clientes.............................................................................. 68 Figura 41. Cadastro de Pessoas..............................................................................69 Figura 42. Cadastro de Endereços.......................................................................... 69 Figura 43. Lista de Endereços................................................................................. 70 Figura 44. Visualização de Endereços.....................................................................71 Figura 45. Atualização de Endereços...................................................................... 71 Figura 46. Selecionar Cliente ou Funcionário..........................................................72 Figura 47. Cadastro de Funcionários.......................................................................73 9 Figura 48. Cadastro de Ficha de Exercícios............................................................73 Figura 49. Cadastro de Membros............................................................................ 74 Figura 50. Cadastro de Mensalidades......................................................................74 Figura 51. Cadastro de Fluxo de Caixa................................................................... 75 Figura 52. Menu do Sistema....................................................................................75 Figura 53. Relatório de Aniversariantes do Mês......................................................76 10 LISTA DE QUADROS Quadro 1. O Problema da Empresa.........................................................................34 Quadro 2. Posição do Produto.................................................................................36 Quadro 3. Responsabilidades dos Cargos.............................................................. 36 Quadro 4. Necessidades e Recursos...................................................................... 38 11 LISTA DE ABREVIATURAS E SIGLAS AJAX – Asyndhronus JavaScript and XML ARPA – Advanced Research and Projects Agency API – Application Programming Interface BD – Banco de Dados CEP – Código de Endereçamento Postal CNPJ – Cadastro Nacional de Pessoa Jurídica CPF – Cadastro de Pessoa Física CSS – Cascading Style Sheet GUI – Interface Gráfica do Usuário HTML – HyperText Markup Language IDE – Integrated Development Environment ISP – Internet Service Providers JDBC – Java Database Connectivity JS – JavaScript JSF – Java Server Faces JSP – Java Server Pages NSF – National Science Foundation MER – Modelo Entidade-Relacionamento MVC – Modelo-Visão-Controle RG – Registro Geral SGBD – Sistema Gerenciador de Banco de Dados SO – Sistema Operacional SPC – Serviço de Proteção ao Crédito SQL – Structured Query Language UML – Unified Modeling Language W3C – World Wide Web Consortium 12 SUMÁRIO INTRODUÇÃO .......................................................................................................... 14 1. FUNDAMENTAÇÃO TEÓRICA ............................................................................. 17 1.1. UMA BREVE HISTÓRIA DA INTERNET ............................................................ 17 1.1.1. A evolução da Web ......................................................................................... 18 1.2. UML .................................................................................................................... 19 1.3. PROCESSO UNIFICADO .................................................................................. 20 1.3.1. Características do processo unificado ............................................................. 21 1.3.2. Fases do processo unificado ........................................................................... 21 1.3.3. Workflows ........................................................................................................ 22 1.4. TECNOLOGIAS.................................................................................................. 24 1.4.1. Java ................................................................................................................. 24 1.4.2. NetBeans......................................................................................................... 25 1.4.3. HTML............................................................................................................... 27 1.4.4. CSS ................................................................................................................. 27 1.4.5. Servlets ........................................................................................................... 28 1.4.6. Java Persistence API (JPA) ............................................................................ 28 1.4.7. Java Server Pages (JSP) ................................................................................ 29 1.4.8. Java Server Faces (JSF) ................................................................................. 29 1.5. BANCO DE DADOS ........................................................................................... 30 1.5.1. JDBC ............................................................................................................... 31 1.5.2. Oracle 10g ....................................................................................................... 32 2. DOCUMENTO VISÃO DA ACADEMIA MUNDO LIVRE ........................................ 34 2.1. POSICIONAMENTO........................................................................................... 34 2.1.1. Instrução do problema ..................................................................................... 34 2.2. INSTRUÇÃO SOBRE A POSIÇÃO DO PRODUTO ........................................... 35 2.3. DESCRIÇÕES DO ENVOLVIDO........................................................................ 36 2.3.1. Resumo do envolvido ...................................................................................... 36 2.3.2. Ambiente do usuário........................................................................................ 37 2.4. VISÃO GERAL DO PRODUTO .......................................................................... 37 2.4.1. Perspectiva do produto.................................................................................... 37 2.5. PREMISSAS E DEPENDÊNCIAS ...................................................................... 37 2.6. NECESSIDADES E RECURSOS ....................................................................... 38 2.7. OUTROS REQUISITOS DO PRODUTO ............................................................ 38 3. DIAGRAMAS ......................................................................................................... 40 3.1. DIAGRAMA DE CASO DE USO......................................................................... 40 3.2. ESPECIFICAÇÃO DE HISTÓRIAS .................................................................... 41 3.2.1. Manter fichas de exercícios (gerente e professor)........................................... 41 3.2.2. Manter funcionários (gerente) ......................................................................... 41 3.2.3. Manter clientes (gerente)................................................................................. 41 3.2.4. Manter recebimentos (gerente) ....................................................................... 41 3.2.5. Controlar fluxo de caixa (gerente) ................................................................... 42 3.2.6. Gerar promoções (gerente) ............................................................................. 42 3.3. DIAGRAMAS DE ATIVIDADES .......................................................................... 43 3.4. DIAGRAMA DE CLASSE ................................................................................... 52 3.5. DIAGRAMAS MVC (MODELO-VISÃO-CONTROLE) ......................................... 53 3.6. DIAGRAMAS DE SEQUÊNCIA .......................................................................... 57 13 4. PROTÓTIPO ......................................................................................................... 66 4.1. LAYOUT DAS TELAS ........................................................................................ 66 CONCLUSÃO ............................................................................................................ 77 GLOSSÁRIO ............................................................................................................. 79 REFERÊNCIAS ......................................................................................................... 80 ANEXOS ................................................................................................................... 83 14 INTRODUÇÃO As empresas buscam permanentemente meios de informação para obter resultados confiáveis e conseguirem sucesso nas tomadas de decisões, de forma a aumentar a competitividade entre suas atividades, satisfazendo as expectativas dos clientes. Desta maneira, os empresários adotam instrumentos que permitam maior flexibilidade, velocidade, inovação e integração para atuarem em ambientes com constantes mudanças, pois sabem que um sistema de informação é algo essencial para uma empresa que queira valorizar e otimizar sua tomada de decisões. Importante ressaltar também que, para uma empresa conseguir resultados positivos em seu processo estratégico, ela precisará preestabelecer objetivos. Assim, para Padoveze apud Santos (2010, p.17), sistema de informação é definido como Um conjunto de recursos humanos, materiais, tecnológicos e financeiros agregados segundo uma sequência lógica para o processamento de dados e tradução em informações, para, com seu produto, permitir as organizações o cumprimento de seus objetivos principais. Ou seja, sistema de informação é uma visão interativa do todo para buscar uma solução de obter resultados positivos para a empresa. A busca por esses resultados faz com que as empresas procurem constantemente informações que envolvam seus processos operacional, administrativo e estratégico. Oliveira (2000) define sistema de informação como um conjunto de normas e procedimentos que objetivam transmitir, através de um meio qualquer, informações sobre pessoas ou órgãos. Já, de acordo com Laudon e Laudon (2004, p.7), Um sistema de informação pode ser definido tecnicamente como um conjunto de componentes inter-relacionados que coleta, processa, 15 armazena e distribui informações destinadas a apoiar a tomada de decisões, a coordenação e o controle de uma organização. Sabendo que um sistema de informação (software) pode alterar significativamente a vida da empresa, a academia Mundo Livre, que trabalha no ramo de ginástica desde 2006 com uma administração manual, resolveu informatizar seus processos e procedimentos e investir em um sistema de informações (software) adequado para otimizar sua administração. A academia Mundo Livre apresenta alguns problemas na gerência de cadastros de funcionários, clientes e ficha de exercícios. Além disso, o gerente da academia pretende saber quais são os aniversariantes do mês para oferecer promoções com o objetivo de fidelizar os clientes. Assim, tendo vista esses problemas, a empresa resolveu investir em tecnologia da informação (em um sistema de informação) para sanar todos os problemas, aprimorando o processo de cadastramento, acelerando o processo de visualização dos aniversariantes do mês, facilitando o processo de recebimento de pagamento, informando aos professores sobre os exercícios dos clientes e controlando melhor o fluxo de caixa. Dessa forma, o objetivo geral neste trabalho é desenvolver um sistema para informatizar os processos rotineiros (básicos) da academia Mundo Livre. Dentre os objetivos específicos, estão: cadastrar clientes, funcionários e fichas de exercícios; informar os professores sobre os exercícios dos clientes; mostrar os aniversariantes do mês; administrar o pagamento das mensalidades; controlar o fluxo de caixa. O trabalho está embasado em autores renomados como, Gonçalves (2006), Gonçalves (2007), Gonçalves (2008), Medeiros (2004), Padoveze apud Santos (2010), Oliveira (2000), Laudon e Laudon (2004), Meira (2010), Geary e Horstmann (2007) entre outros. O resultado da pesquisa é apresentado, nesta monografia, em quatro capítulos. 16 No primeiro deles, tecem-se considerações gerais sobre a história da Internet juntamente com a evolução da Web. Apresentam-se, também, as contribuições de Gonçalves (2006), Medeiros (2004) e Meira (2010) para fundamentar sobre as tecnologias UML e Processo Unificado. Logo em seguida, tratam-se as tecnologias que serão utilizadas no desenvolvimento do software, como, Java, NetBeans, HTML, CSS, Servlet, JPA, JSP, JSF. E finaliza com o estudo do banco de dados Oracle 10g. No segundo capítulo, aborda-se a análise de negócios, ou seja, o documento visão que contém dados sobre a academia Mundo Livre e suas necessidades, como informatizar a administração da academia controlando o cadastro de clientes, funcionários e ficha de exercícios, administrar o pagamento das mensalidades, mostrar os aniversariantes do mês e controlar o fluxo de caixa. O terceiro capítulo trata os diagramas necessários para o desenvolvimento do software para a academia Mundo Livre. Entre eles estão diagrama de caso de uso, especificação de histórias, diagramas de atividades, diagrama de classe, diagramas de Modelo-Visão-Controle (MVC) e diagramas de sequência. E, no quarto capítulo, abordou-se a prototipação do software que são as telas do sistema, explicando-as (opções) para o usuário do sistema, no caso, o gerente. Conclui-se a monografia retomando as questões que a motivaram e avaliando se os objetivos foram alcançados. E, para finalizar, levantam-se as lacunas deixadas, sugerindo continuidade em pesquisas desta natureza que contribuam para o conhecimento e aperfeiçoamento do software com as tecnologias e ferramentas apresentadas. 17 1. FUNDAMENTAÇÃO TEÓRICA Este capítulo abordará a breve história da Internet, a UML (Unified Modeling Language) e o processo unificado. Além disso, tratará as tecnologias necessárias para o desenvolvimento do software para a academia Mundo Livre como Java, NetBeans, HTML, CSS, servlets, Java Persistence API (JPA), Java Server Pages (JSP) e Java Server Faces (JSF). 1.1. UMA BREVE HISTÓRIA DA INTERNET A história da Internet, segundo Gonçalves (2006), teve início com a ARPANET, ARPA significa Advanced Research and Projects Agency - Agência de Pesquisas em Projetos Avançados. Essa agência tinha o objetivo de investigar e ajudar no desenvolvimento do Departamento de Defesa dos Estados Unidos da América. Naquela época, eram proibidos conteúdos ou comunicação que tivessem o foco comercial. Na década de 80, a ARPANET começou a ser ligada a outras redes de universidades e de grandes empresas; por exemplo, a HP, com o objetivo de se tornar mais dinâmica. Já no final dessa década, a ARPANET passou a responsabilidade de manter e aumentar o backbone1, ou seja, a rede principal pela qual os dados de todos os clientes da Internet passam, para a NSF (National 1 Backbone significa a interconexão central de uma rede de Internet, ou seja, é como uma espinha dorsal de conexões que interliga pontos distribuídos de uma rede, formando uma grande via que trafegam informações. (GONÇALVES, 2006) 18 Science Foundation – Fundação Nacional de Ciências). Então, a NSF desenvolveu a rede nos EUA. Gonçalves (2006) afirma que, ainda nos anos 80, começaram a aparecer os primeiros ISP (Internet Service Providers – Provedores de Serviços de Internet), possibilitando o acesso a empresas particulares. No início dos anos 90, devido à criação de suas próprias infra-estruturas por parte dos operadores privados, a NSF começou a perder o controle do backbone. E foi nesse período que as restrições à comercialização da Internet foram retiradas. Assim, desde 1969, várias aplicações para Internet foram criadas e se tornaram cada vez mais amigáveis ao usuário. Algumas como: Gopher, Veronica, WAIS, FTP, BBS, entre outras. E em 1990, com o aparecimento da World Wide Web, a utilização de browsers dominou o mercado da Internet pois diminuíram os custos de acesso, aumentaram gradativamente o conteúdo, fazendo com que a Internet tivesse um crescimento exponencial. 1.1.1. A evolução da Web Com a abertura da Internet, criou-se uma revolução, pois houve a possibilidade de comunicação em massa. A partir de então, as pessoas queriam expor suas ideias, conhecimentos e começaram a se comunicar. Grandes empresas apostaram na Internet como uma nova forma de comercialização, criando meios mais sofisticados para o acesso à informação. (GONÇALVES, 2006) O principal meio de acesso, o browser, passou por muitas mudanças, sempre acrescentando mais capacidade de interatividade. E com essa interatividade, diversas tecnologias foram inventadas e aperfeiçoadas com o objetivo de diminuir o tempo de carregamento das informações vindas do servidor. Segundo Gonçalves (2006, p.3), os primeiros meios a tentar interagir com o usuário sem a necessidade de ter que carregar a página diversas vezes foram os Frames e o JavaScript. A empresa Netscape, com seu navegador Netscape Navigator, contribuiu significativamente para essa evolução. 19 1.2. UML A UML (Unified Modeling Language que quer dizer Linguagem de Modelagem Unificada) é a linguagem padrão para especificar, visualizar, documentar e construir artefatos de um sistema e pode ser utilizada com todos os processos ao longo do ciclo de desenvolvimento e através de diferentes tecnologias de implementação. (FURLAN, 1998) Conforme Medeiros (2004, p. 10), “a UML (Unified Modeling Language que quer dizer Linguagem de Modelagem Unificada) não nos indica como devemos fazer um software. Ela indica apenas as formas que podem ser utilizadas para representar um software em diversos estágios de desenvolvimento.” Ou seja, a UML é uma ferramenta que possibilita aos desenvolvedores a visualização dos resultados de seus trabalhos em diagramas padronizados. Medeiros (2004, p. 10) ainda afirma que “o „L‟ de Language refere-se a uma linguagem de comunicação entre duas partes e não a uma linguagem de computador.” Partes essas que indicam que UML não é um processo, mas sim a forma de comunicação que um processo utilizará. Conforme Silva e Videira (2001, p. 117 e 118), “UML (Unified Modeling Language) é uma linguagem para especificação, construção, visualização e documentação de artefatos de um sistema de software.” Para os autores (SILVA e VIDEIRA, 2001), a UML apresenta algumas particularidades principais: a) semântica e notação para trabalhar com grande número de tópicos atuais de modelagem; b) semântica para tratar tópicos de modelagem futura, relacionados com a computação distribuída, frameworks, a tecnologia de componentes e Internet; c) facilidades em trocar os modelos entre ferramentas distintas; d) mecanismos que possibilitam que futuras notações de modelagem possam continuar a ser desenvolvidas sobre a UML. 20 A UML permite uma ampla utilização para aplicações como, por exemplo, a modelagem de sistemas concorrentes, distribuídos, para a Web, sistemas de informações geográficas, entre outras. Para a OMG2 (2011), “a UML ajuda a especificar, visualizar e modelar os documentos de sistemas de software, incluindo sua estrutura e design de forma que atenda todos os requisitos traçados para o projeto”. Por ser flexível, a UML permite modelar praticamente qualquer tipo de aplicação, compilada em qualquer tipo de combinação hardware, sistema operacional, linguagem de programação e de rede. Assim, a UML é importante independentemente do tipo de projeto, seja ele de pequeno, médio ou grande porte. 1.3. PROCESSO UNIFICADO Conforme Meira (2010, p. 59), Open UP ou processo unificado “é um processo de desenvolvimento de software livre de ferramentas e de baixo formalismo que pode ser estendido a uma variedade gama de tipos de projetos e não apenas desenvolvimento de software.” Ou seja, é o desenvolvimento de software livre que serve para várias áreas envolvendo projetos. Para o desenvolvimento do software livre são aplicadas as abordagens iterativa e incremental, informando também a filosofia ágil e pragmática com o foco na natureza colaborativa do desenvolvimento do software. (MEIRA, 2010) A abordagem iterativa quer dizer que os processos são subdivididos de acordo com as principais atividades a serem realizadas. Essas atividades são chamadas de iteração. Já a abordagem incremental, significa que alguns membros da equipe de desenvolvedores esforçam-se para atingir os objetivos da iteração. Assim, com essas abordagens, a equipe consegue ter um “feedback”, direcionandoos as decisões tomadas ao término de cada iteração. 2 http://www.omg.org/gettingstarted/what_is_uml.htm http://www.uml.org 21 1.3.1. Características do processo unificado Para Medeiros (2004, p. 11), “o processo unificado é dirigido por casos de uso.” Ou seja, descrições de casos de uso e seus diagramas embasam a construção de um software. Outra característica é que o processo unificado é centrado em arquitetura, ou seja, preocupa-se com o software como um todo, como por exemplo, pensam-se nas tecnologias, orçamentos e ambientes de software. Medeiros (2004, p. 11) ressalta que a arquitetura de um sistema pode ser descrita com os seguintes documentos e diagrama: o documento visão, o diagrama de caso de uso, diagramas de componentes e implantação, diagrama de interação e o MER dão-nos as perspectivas da arquitetura do software. Isso quer dizer que os diagramas e seus documentos são importantes para o melhor desenvolvimento da arquitetura do software. E, também, o processo unificado é iterativo e incremental, ou seja, quando uma versão do sistema é liberada quer dizer que a iteração está concluída. E, claro, aprende-se muito com a entrega feita por meio de análises post-mortem (após a conclusão e entrega) que são realizadas em cada iteração. Assim, Medeiros (2004, p. 12) conclui que “se uma entrega promoveu uma melhora, ela incrementou algo no sistema, daí o chamarmos de iterativo e incremental.” 1.3.2. Fases do processo unificado Medeiros (2004, p. 12) ressalta que o processo unificado contêm 4 fases: Concepção, Elaboração, Construção e Transição. a) Concepção 22 Na fase Concepção, pensa-se na visão do software (em que um documento com o mesmo nome é construído), avaliam-se as tecnologias disponíveis, relacionam-se os riscos principais ou mais aparentes e detectam-se as áreas críticas a serem tratadas. É nessa fase que se inicia os documentos Nomenclatura e Glossário (que serão utilizados por todas as fases do processo). Essa fase termina quando todos os envolvidos no projeto concordam com o escopo descoberto e o validam. b) Elaboração Na fase de Elaboração, os requisitos (que aparecem no conjunto dos casos de uso) das áreas críticas são levantados e estudados. Essa fase repete-se ao longo do desenvolvimento, ou seja, o ciclo de vida do software. c) Construção Na Construção, pensa-se em protótipos, nos relacionamento dos campos com o banco de dados e nas funções que devem conversar com os componentes em Servlets ou EJB. É nessa fase, ainda, que deve-se realizar os testes e eliminar os erros. d) Transição Para Medeiros (2004, p. 14), “quando parte do software pode ser avaliado como versão de produção, significa que estamos na fase de Transição.” Ou seja, é nessa fase que os erros devem ser mínimos e quando chegar à homologação da parte que está sendo avaliada significa que o ciclo terminou. 1.3.3. Workflows 23 Medeiros (2004) afirma que o processo unificado contém 5 workflows: Requisitos, Análise, Projeto, Implementação e Testes. Para o autor (MEDEIROS, 2004, p. 14), “o termo workflow tem, aqui, o significado de um conjunto de atividades com um objetivo comum.” a) Requisitos É necessário obter todos os requisitos para desenvolver os casos de uso. No futuro, se necessário, o software poderá se amparar nessa documentação para corrigir erros, melhorar sua performance ou até mesmo para implementação. b) Análise Para Medeiros (2004, p. 15), “quando identificamos quem realizará um caso de uso ou um de seus cenários principais, em termos de classes de forma conceitual, estamos dentro do workflow de análise.” Ou seja, e nesse workflow que as classes precisam ser bem definidas para seguir em frente o projeto. c) Projeto Medeiros (2004, p. 15) ainda afirma que “quando saímos de uma visão conceitual da construção de classes e diagramas de sequência, na abstração requerida, estamos dentro do workflow de projeto.” O projeto envolve a passagem dos conceitos adquiridos para a prática, desenvolvimento do software. d) Implementação Nesse workflow são realizadas as codificações e compilações do sistema. Medeiros (2004, p.15) afirma que “a própria construção de uma página HTML e sua colocação em funcionamento é sinal de que estamos executando esse workflow dentro de alguma fase.” Ou seja, a transformação dos diagramas em códigos do sistema representa este workflow. 24 e) Testes Esse workflow envolve o modelo de testes, ou seja, descreve por quais testes a implementação deve passar. Segundo Medeiros (2004, p. 15) “a compilação dos resultados desses testes (que devem ser anotados e identificados por data e condição de teste) servirá em análises post-mortem.” Ou seja, os resultados dos testes ajudarão para corrigir erros ou mudar características na implementação. Assim, um workflow trata uma sequência pré-definida de atividades que são desempenhadas por papéis de atividades e que geram artefatos (ou produtos de trabalho) como resultado. 1.4. TECNOLOGIAS As tecnologias são as várias formas que existem à disposição para criação de Intranet3, Extranet4 e Internet de uma empresa. Ou seja, como afirma Medeiros (2004, p.137), “isso se deve ao fato de que hoje temos poucas oportunidades de criar softwares clientes-servidores puros, como fazíamos aos montes na época em que os navegadores eram muito insipientes.” No início da história da Internet, havia uma única alternativa para publicar (pois tinha o sentido de revista, livro ou jornal) assuntos para as outras pessoas, o HTML. 1.4.1. Java 3 Para Vescio (2009), Intranet é uma rede privada onde os usuários não podem trocar informações com usuários que não estejam nessa rede. É ainda uma ferramenta eficaz para combater o desperdício de tempo, esforço e materiais dentro de uma empresa, pois gera comunicação e oportunidades para colaboração e produtividade pessoal. 4 Vercio (2009) ainda afirma que a Extranet é uma rede corporativa, assim como a Intranet, mas que utiliza da Internet para se comunicar e conectar com outras empresas e fornecedores, clientes, parceiros e outros para compartilhar informações. 25 Em 1995, ocorreu um grande marco na história das linguagens. Foi quando Java foi anunciado pela empresa Sun Microsystems que lançava, naquele momento, uma linguagem de programação trabalhada em sites produzidos na World Wide Web. Java era (e ainda é) portável para outros sistemas operacionais. Além disso, Java possibilitava fazer diversas coisas, como animações, que até então não eram possíveis em páginas existentes na World Wide Web. Seu tamanho também era um fator importante, pois era pequeno o que facilitava a visualização dos aplicativos. Com o passar dos anos, Java amadureceu e muitas implementações foram criadas, como por exemplo, hoje em dia, podem-se usar aplicativos desktop, páginas para Internet e até mesmo aplicativos para pequenos celulares, todos com a linguagem Java. De acordo com Gonçalves (2007, p. 7), a linguagem Java nos dias de hoje é utilizada por grandes bancos, pois fornece extrema segurança. Também é utilizada por grandes empresas que desejam trafegar uma grande quantidade de dados e necessita de estabilidade e portabilidade entre outras empresas. Por isso, milhões de pessoas aprenderam a usar essa linguagem e, até mesmo grandes empresas estão fazendo uso dela, como por exemplo, a NASA, IBM, ESPN, entre outras. 1.4.2. NetBeans Para Gomes (2008, p. 12), “o NetBeans é a IDE (Integrated Development Environment, ou seja, um ambiente integrado para desenvolvimento de software) oficial da Sun Microsystems para desenvolvimento em Java”, conforme mostra a figura 1. O NetBeans é o ambiente ideal para implementar aplicações Web utilizando as tecnologias citadas mais à frente. 26 Esses ambientes de desenvolvimento (por exemplo, o NetBeans) são muito populares entre os programadores. Segundo Geary e Horstmann (2007, p.17), “o suporte ao preenchimento automático, à refabricação e ao debugging5, entre outros fatores, pode aumentar drasticamente a produtividade dos programadores em grandes projetos.” Figura 1. NetBeans IDE Fonte: Elaborada pela autora. Geary e Horstmann (2007, p.18) ainda afirmam que o NetBeans é gratuito e apresenta um suporte nativo ao JSF muito bom. O NetBeans oferece o preenchimento automático de páginas JSF e arquivos de configuração. Com ele, fica muito fácil iniciar ou fazer o debug de aplicações JSF apenas clicando em botões situados em barras de ferramentas. 5 Segundo o dicionário Michaelis (2009), debug significa “depurar, eliminar erros e enganos de uma programação de computadores”, ou seja, do código. 27 1.4.3. HTML Segundo Medeiros (2004, p. 138), HTML (HyperText Markup Language) é uma linguagem de marcação que prevê marcas em um texto; chamamos essas marcas de tags. Esta linguagem de marcação é considerada não estruturada, porque nem todas as tags de abertura têm a sua tag de fechamento. Ou seja, HTML é uma linguagem utilizada para a necessidade básica de publicação de textos e que apenas mostra textos e figuras. É regida pela W3C (World Wide Web Consortium). 1.4.4. CSS Para Gonçalves (2006, p. 4), “CSS é a sigla em inglês para Cascading Style Sheet, que em português foi traduzido para folha de estilo em cascata.” Segundo Macedo (2006, p. 4), o CSS permite uma maior versatilidade no desenvolvimento de design para sites sem aumentar o seu tamanho. Basicamente, o CSS permite ao designer um controle maior sobre os atributos tipográficos de um site, como tamanho e cor de fontes, espaçamento entre linhas e caracteres, margem de texto, entre outros. Ou seja, CSS é um mecanismo simples para adicionar estilo para os documentos Web, como por exemplo, cores, espaçamentos, fontes, entre outros. O projeto CSS iniciou-se em 1994 por Hakon Wium Lie e Bert Bos. Em 1995, segundo Gonçalves (2006, p. 4), “o W3C – World Wide Web Consortium – estava acabando de nascer e se interessou pelo projeto, resolvendo então criar uma equipe.” As folhas de estilo em cascata são, nos dias de hoje, um padrão no desenvolvimento de páginas Web. Segundo Macedo (2006) e Gonçalves (2006) algumas vantagens de usar a CSS são: 28 a) reutilização dos estilos – o conjunto de páginas existentes no site poderá utilizar os estilos criados; b) simplificação do código HTML – o código CSS fica armazenado em outro documento, diminuindo assim o código HTML; c) inovação – o CSS adiciona características às páginas HTML, deixando-as mais atraentes pelas formatações de cores, tabelas e imagens; d) liberdade – por ter seu domínio público, o CSS pode ser usado por qualquer pessoa em qualquer situação; e) estabilidade – sites feitos com esse padrão permanecerão compatíveis com outros ambientes; f) acessibilidade – utiliza-se o CSS em outros ambientes que não sejam o navegador padrão para evitar a duplicidade de conteúdo; g) facilidade de criação e manutenção – o conteúdo da apresentação está separado da formatação, o que facilita na organização dos documentos. 1.4.5. Servlets Segundo Gonçalves (2006, p.335), servlets são classes Java (desenvolvidas de acordo com uma estrutura bem definida) que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas (recebidas pelos clientes) por meio do protocolo HTTP. Assim, os Servlets são usados, basicamente, no desenvolvimento de conteúdo dinâmico. Servlets não possuem interface gráfica e suas instâncias são executadas dentro de um ambiente Java denominado de Container, que é um gerenciador de instâncias dos Servlets e provedor dos serviços de rede necessários para a requisição de respostas. 1.4.6. Java Persistence API (JPA) 29 Para Gonçalves (2008), o JPA (Java Persistence API, ou seja, API de Persistência Java) faz o uso de renomados frameworks de persistência para padronizar o mapeamento objeto/relacional em Java. O que significa que as entidades (que são os objetos persistidos em Java com JPA) fazem a representação de um conjunto de dados persistido no banco de dados. Além disso, as entidades são definidas por classes Java comuns, ou seja, elas podem ser abstratas ou herdarem de outras classes, sem restrições. O mapeamento objeto-relacional é um componente importante do JPA e também oferece soluções para desafios, pois integram a persistência em aplicações corporativas sem afetar a comunicação com o banco de dados. (KEITH; SCHINICARION, 2009) 1.4.7. Java Server Pages (JSP) Para Gonçalves (2006, p.346), “Java Server Pages (JSP) são páginas HTML embebidas em código Java. Dessa forma a página dinâmica é gerada pelo código JSP.” O container carrega a página JSP pela primeira vez e o código Java é compilado gerando um Servlet que será executado. As próximas chamadas são enviadas diretamente ao Servlet, não havendo mais a recopilação do código Java. 1.4.8. Java Server Faces (JSF) Segundo Gonçalves (2008, p.11), “Java Server Faces (JSF) é o framework (ou seja, uma ferramenta facilitadora de ações manuais de código) de aplicações Web Java Oficial da Sun Microsystems. Esse framework foi desenhado para simplificar o desenvolvimento de aplicações Web, através do conceito baseado em componentes.” 30 Ou seja, na prática, o JSF facilita o desenvolvimento através de componentes de interface de usuário (GUI), algo que possibilita a conexão dos componentes com os objetos de negócios de uma maneira mais simplificada. A responsabilidade do Java Server Faces é de se interar com os dispositivos clientes e fornecer as ferramentas para unir a apresentação visual, a lógica da aplicação e a lógica de negócios de uma aplicação Web. De acordo com Geary e Horstmann (2007, p. 24 e 25) o JSF oferece alguns serviços importantes, como: a) arquitetura modelo-visão-controle – todas as aplicações em software permitem que os usuários manipulem certos dados, como carrinhos de compras virtuais. Esses dados são chamados de modelo. A interface gráfica (HTML e CSS) é a visão. O JSF conecta a visão ao modelo, ou seja, opera como o controlador que reage ao usuário, processando eventos de ação e de mudança de valores. Assim, o JSF implementa a clássica arquitetura modelovisão-controle; b) conversão de dados – o JSF facilita a conversão de dados, como um formulário que contém objetos de negócios que exigem dados em forma de números, texto, data ou outros tipos; c) validação e manipulação de erros – o JSF facilita a tarefa de vincular regras de validação a campos do tipo “este campo é obrigatório” ou “este campo deve ser um número”. Além disso, o JSF permite a exibição de mensagens de erro apropriadas quando o usuário digita dados inválidos. Assim, o JSF elimina boa parte dessa tarefa de programação; d) componentes customizados – desenvolvedores podem criar componentes sofisticados que podem ser arrastados para dentro das páginas pelos webdesigners; e) suporte a ferramentas – o JSF é otimizado para o uso com ferramentas automatizadas. À medida que elas amadurecem, acredita-se que o JSF se tornará o framework padrão para o desenvolvimento de interfaces Web com Java. 1.5. BANCO DE DADOS 31 Hoje em dia, os bancos de dados estão provocando um grande impacto no mercado dos computadores. Eles têm papel importante em várias áreas em que os computadores são utilizados, como por exemplo, negócios, comércio eletrônico, engenharia, medicina, direito, educação, ciências da informação, entre outras. (ELMASRI e NAVATHE, 2005, p. 4) Para Elmasri e Navathe (2005, p. 4), um banco de dados é uma coleção de dados relacionados. Os dados são fatos que podem ser gravados e que possuem um significado implícito. Por exemplo, considere nomes, números telefônicos e endereços de pessoas que você conhece. Esses dados podem ter sido escritos em uma agenda de telefones ou armazenados em um computador, por meio de programas como o Microsoft Access ou Excel. Essas informações são uma coleção de dados com um significado implícito, conseqüentemente, um banco de dados. Ou seja, um banco de dados é um minumundo, pois representa algumas partes do mundo real. As mudanças que são feitas no minimundo são alteradas no banco de dados. Elmasri e Navathe (2005, p. 4) ressaltam que um banco de dados “é uma coleção lógica e coerente de dados com algum significado inerente”. Outras características de um banco de dados é que ele é projetado, construído e povoado atendendo a uma proposta específica; possui um grupo de usuários definidos; pode ser de qualquer tamanho e de complexidade variável; e pode ser gerado e mantido manualmente ou pode ser automatizado (computadorizado). Conforme os autores, “um sistema gerenciador de banco de dados (SGBD) é uma coleção de programas que permite aos usuários criar e manter um banco de dados”. (ELMASRI e NAVATHE, 2005, p. 4) Ou seja, o SGBD é um sistema que facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações. Assim, o banco de dados, junto com o software SGBD, é conhecido como sistema de banco de dados. 1.5.1. JDBC 32 Para Gonçalves (2006, p. 347), “JDBC (Java Database Connectivity) é uma API (Application Programming Interface ou Interface de Programação de Aplicações) incluída dentro da linguagem Java para o acesso a banco de dados.” Ou seja, o JDBC contém um conjunto de classes e interfaces escritas em Java que oferecem uma completa API para a programação com banco de dados. O autor ainda afirma que JDBC é uma especificação formada por uma coleção de interfaces e classes abstratas que devem implementar todos os fabricantes de drivers que queiram realizar uma implementação Java com um JDBC compatível. O JDBC oferece uma grande vantagem por ser completamente escrito em Java, então não é necessário escrever um programa para cada tipo de banco de dados; uma mesma aplicação escrita utilizando JDBC poderá trabalhar com banco de dados como Oracle, Sybase, SQL Server, MySQL, Firebird, Oracle 10g, entre outros. 1.5.2. Oracle 10g O Oracle 10g6 é um sistema gerenciador de banco de dados (SGBD) que surgiu no final dos anos 70, quando Larry Ellison “vislumbrou uma oportunidade que outras empresas não tinham percebido, ele 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.” Por ser um modelo de banco de dados relacional e ter um grande potencial de performance, suas principais características são melhorias de gerenciamento (recursos de auto-ajuste); desempenho e melhorias de escalabilidade; capacidade de transporte de tabela para vários tipos de máquina (por exemplo, Windows para Linux); criptografia transparente de dados; entre outras. (Oracle 10g) Segundo Tavares (2006, p. 12), a arquitetura do Oracle 10g é “composta de uma ou mais base de dados e uma instância.” 6 http://www.oracle.com/us/corporate/history/index.html 33 Um banco de dados é uma coleção de dados em disco. No Oracle 10g, esses dados podem estar em um ou mais arquivos de dados no servidor de banco de dados. O autor (TAVARES, 2006) ainda afirma que além dos arquivos de dados, o banco de dados é composto de outros dois tipos de arquivos: o arquivo de controle e o arquivo de redo log. Tavares (2006, p. 12) explica que o arquivo de controle é essencial para o funcionamento da base de dados, ele é continuamente escrito e contém metadados sobre a base e seu status atual. Os arquivos de redo log são indispensáveis para a recuperação da base em caso de falha, pois neles são guardados os históricos das operações na base de dados. Esse capítulo abordou sobre a história do Java até chegar nas tecnologias utilizadas no desenvolvimento do sistema para a academia Mundo Livre. O capítulo 3 apresentará o documento visão, explicando os problemas e as possíveis soluções para a academia. 34 2. DOCUMENTO VISÃO DA ACADEMIA MUNDO LIVRE Este capítulo apresenta o documento com uma visão geral sobre a academia Mundo Livre, seus problemas e o possível trabalho de solução, mostrando a análise de negócios desenvolvida para a implementação do sistema. 2.1. POSICIONAMENTO 2.1.1. Instrução do problema Quadro 1. O Problema da Empresa O problema de O controle do processo da academia de ginástica Mundo Livre precisa ser aprimorado, pois a empresa está perdendo muito tempo com questões como: a) cadastro de clientes; b) cadastro de funcionários; c) cadastro da ficha de exercícios. Falta um controle dos aniversariantes do mês, já que o gerente da academia não tem nenhum programa para oferecer promoções aos clientes, o que aumentará a fidelização com eles. Por exemplo, no mês do aniversário do cliente o gerente oferece um desconto na mensalidade. A academia pretende melhorar o controle do recebimento das mensalidades e o controle do fluxo de caixa, pois o gerente tem dificuldades para saber qual cliente já pagou, qual irá pagar e qual é inadimplente, além de não 35 saber se a academia está gerando lucros ou prejuízos. O objetivo dessa ferramenta é apresentar os principais requisitos não funcionais do sistema, bem como, possíveis regras de negócio de maior complexidade que os definem. E, para facilitar a visão dos professores em relação aos exercícios dos clientes, é importante ter uma ficha de exercícios detalhada, mostrando quais atividades cada aluno deverá fazer, juntamente com a série, repetição e carga. Afeta Principalmente o gerente da academia, dificultando o processo administrativo da mesma. O impacto é a) A perda de clientes para concorrentes próximos; b) Prejuízo no processo de administração da academia; c) Prejuízo resultante da inadimplência; d) Falta de controle mais preciso do fluxo de caixa; e) Falta de informação aos professores sobre os exercícios que cada aluno irá executar; f) Não fidelizar mais os clientes. Uma solução sucedida seria bem- A criação de um sistema de informações visando sanar todos os problemas acima listados, aprimorando o processo de cadastramento, acelerando o processo de visualização dos aniversariantes do mês, facilitando o processo de recebimento de pagamento e informando os professores sobre as atividades que cada cliente deverá executar. Fonte: Elaborado pela autora. 2.2. INSTRUÇÃO SOBRE A POSIÇÃO DO PRODUTO 36 Quadro 2. Posição do Produto Para Academia Mundo Livre. Que O (nome produto) Assim como as demais academias de ginástica no mercado carecem de uma solução integrada que atinja todos os seus processos de negócio. do Sistema para Academia de Ginástica Mundo Livre. Que Busca integrar todas as ações de processos da Academia Mundo Livre. A menos que A empresa aceite mudar e customizar alguns processos de negócios que são chaves. Nosso produto Atingirá os objetivos de forma concisa. Fonte: Elaborado pela autora. 2.3. DESCRIÇÕES DO ENVOLVIDO 2.3.1. Resumo do envolvido Quadro 3. Responsabilidades dos Cargos Nome Descrição Gerente Pessoa responsável pela recepção do cliente, por efetuar os cadastros, receber mensalidades e administrar o fluxo de caixa da academia. Professores ginástica Responsabilidades O gerente será o usuário principal do sistema, responsável pelos processos de cadastro de clientes, funcionários, ficha de exercícios juntamente com as atualizações, bem como, é responsável por administrar as entradas e saídas da empresa e, ainda, o recebimentos das mensalidades (pagamentos). de Pessoa responsável pela Os professores serão usuários ficha de ginástica (exercícios) secundários do sistema, sendo dos clientes. sua obrigação administrar a ficha de exercícios de cada cliente e modificá-la de acordo com o ritmo de treinamento de cada um. Fonte: Elaborado pela autora. 37 2.3.2. Ambiente do usuário A academia Mundo Livre conta com um apoio profissional que envolve professores de educação física, estagiários de educação física, nutricionista, terapeuta e outros funcionários, em turnos variados ao decorrer do dia e em seis dias por semana, de segunda a sexta das 5h:30min da manhã às 00h e aos sábados das 7h às 12h. Todo controle é manual através de fichas catalográficas armazenadas em pastas, conforme mostra os anexos A, B e C. Para o cadastro de funcionários, clientes e ficha de exercícios, são anotados todos os dados na ficha e, os dados mais importantes para o gerente, são armazenados em uma planilha no Excel (por exemplo: nome, data de nascimento, endereço, telefone, dia de vencimento da mensalidade, entradas, justificativa das entradas, saídas, justificativa de saídas e dia do pagamento, ou seja, controle simples de um fluxo de caixa). É função do sistema em desenvolvimento automatizar e integrar todos os processos de negócio acima descritos, bem como, facilitar todos esses processos. 2.4. VISÃO GERAL DO PRODUTO 2.4.1. Perspectiva do produto O lançamento desse produto pode ser considerado uma oportunidade de crescimento e desenvolvimento para a empresa, fazendo-a participar mais, devido à tecnologia, do mercado competitivo. É uma ferramenta dinâmica capaz de se comunicar com outras tecnologias. 2.5. PREMISSAS E DEPENDÊNCIAS 38 A empresa pretende investir apenas em arquitetura física e em software de sistemas operacionais, não desejando investir em sistemas gerenciadores de banco de dados. É desejado, no caso, o uso do SO Windows, e, utilizar a plataforma Java para Web e o banco de dados Oracle 10g, já que é uma ferramenta livre. 2.6. NECESSIDADES E RECURSOS Quadro 4. Necessidades e Recursos Necessidade Prioridade Recursos Cadastro de clientes. O cliente será Alta cadastrado no momento da aceitação da entrada na academia. Análise, Arquitetura, SGBD Cadastro de funcionários. O Alta funcionário será cadastrado pelo empresário no momento da contratação. Análise, Arquitetura, SGBD Funcionalidade de com os clientes. Análise, Arquitetura, SGBD relacionamento Alta Controle dos exercícios musculação de cada aluno. de Alta Análise, Arquitetura, SGBD Fonte: Elaborado pela autora. 2.7. OUTROS REQUISITOS DO PRODUTO a) Internet banda larga – A empresa deseja uma alta capacidade de comunicação e que seja confiável, rápida e segura; b) uso de um gerenciador de banco de dados confiável, que forneça fácil implementação, que ofereça fácil manutenção e, de preferência, que seja free; c) uso de interface amigável e intuitiva. 39 Este capítulo abordou os principais problemas da academia Mundo Livre juntamente com algumas possíveis propostas para soluções. Mostrou ainda a instrução sobre a posição do produto (sistema) que será desenvolvido, uma visão geral do produto incluindo as necessidades, recursos e requisitos para a sua implantação. Apresentou também as decisões das pessoas envolvidas com o sistema, o ambiente do usuário e o cronograma da monografia. O capítulo 3 abordará os diagramas necessários para o desenvolvimento do sistema, entre eles o diagrama de caso de uso, especificação de histórias, diagramas de atividades, diagrama de classe, diagramas de MVC e diagramas de sequência. 40 3. DIAGRAMAS Este capítulo abordará os diagramas necessários para auxiliar o desenvolvimento do sistema para a academia Mundo Livre. Dentre os diagramas, o de caso de uso, de atividades, de classe, de Modelo-Visão-Controle (MVC) e o de sequência serão tratados. 3.1. DIAGRAMA DE CASO DE USO Figura 2. Diagrama de Caso de Uso Fonte: Elaborada pela autora. 41 3.2. ESPECIFICAÇÃO DE HISTÓRIAS 3.2.1. Manter fichas de exercícios (gerente e professor) O gerente e professor deverão logar no sistema com seu usuário e senha. Após realizar esta operação, abrirá o menu principal, onde eles selecionarão a opção ficha de exercícios. Nesta opção, eles poderão criar, atualizar ou listar os exercícios dos clientes, conforme a necessidade. 3.2.2. Manter funcionários (gerente) O gerente deverá logar no sistema com seu usuário e senha. Quando realizar esta operação, abrirá o menu principal, onde ele deverá selecionar a opção de cadastros de funcionários (mas, antes de cadastrar um funcionário, o usuário deverá cadastrar um endereço e depois uma pessoa). Nessa opção, ele poderá criar, atualizar ou listar funcionários de acordo com sua necessidade. 3.2.3. Manter clientes (gerente) O gerente deverá logar no sistema com seu usuário e senha. Quando realizar esta operação, abrirá o menu principal, onde ele deverá selecionar a opção de cadastros de clientes (mas, antes de cadastrar um cliente, o usuário deverá cadastrar um endereço e depois uma pessoa). Nessa opção, ele poderá criar, atualizar ou listar clientes de acordo com sua necessidade. 3.2.4. Manter recebimentos (gerente) 42 O gerente deverá logar no sistema com seu usuário e senha. Quando realizar esta operação, abrirá o menu principal, onde ele deverá selecionar a opção mensalidades, local onde ele efetuará o recebimento das mensalidades, podendo criar, atualizar ou listar as mensalidades recebidas. As mensalidades serão recebidas até o dia de vencimento cadastrado para cada cliente e, o recebimento deverá ser em dinheiro. 3.2.5. Controlar fluxo de caixa (gerente) O gerente deverá logar no sistema com seu usuário e senha. Quando realizar esta operação, abrirá o menu principal, onde ele selecionará a opção fluxo de caixa. Ao acessar, abrirá um cadastro de fluxo de caixa e, ao selecionar a opção “Listar”, abrirá uma lista de todas as entradas e saídas do caixa, onde o gerente fará a administração das receitas e despesas da academia para verificar se a academia está lucrando ou tendo prejuízos. O recebimento de mensalidades é efetuado somente através de dinheiro, ou seja, o cliente pagará e entrará imediatamente o dinheiro no caixa. E o pagamento de contas em dinheiro significa que o dinheiro sairá imediatamente do caixa. 3.2.6. Gerar promoções (gerente) O gerente deverá logar no sistema com seu usuário e senha. Quando realizar esta operação, abrirá o menu principal, onde ele selecionará a opção que emitirá um relatório (formulário) com clientes aniversariantes do mês atual. Após verificar quem são os aniversariantes daquele mês, o gerente deverá dar um desconto (de valor fixo, por exemplo, R$ 10,00) no valor da mensalidade daquele mês no momento em que o cliente efetuar o pagamento da mensalidade. 43 3.3. DIAGRAMAS DE ATIVIDADES Figura 3. Diagrama de Atividades – Manter Fichas - Cadastrar Fonte: Elaborada pela autora. 44 Figura 4. Diagrama de Atividades – Manter Fichas - Atualizar Fonte: Elaborada pela autora. 45 Figura 5. Diagrama de Atividades – Manter Funcionários - Cadastrar Fonte: Elaborada pela autora. 46 Figura 6. Diagrama de Atividades – Manter Funcionários - Atualizar Fonte: Elaborada pela autora. 47 Figura 7. Diagrama de Atividades – Manter Clientes - Cadastrar Fonte: Elaborada pela autora. 48 Figura 8. Diagrama de Atividades – Manter Clientes - Atualizar Fonte: Elaborada pela autora. 49 Figura 9. Diagrama de Atividades – Manter Recebimentos Fonte: Elaborada pela autora. 50 Figura 10. Diagrama de Atividades – Controlar Fluxo de Caixa Fonte: Elaborada pela autora. 51 Figura 11. Diagrama de Atividades – Gerar Promoção Fonte: Elaborada pela autora. 52 3.4. DIAGRAMA DE CLASSE Figura 12. Diagrama de Classe Fonte: Elaborada pela autora. 53 3.5. DIAGRAMAS MVC (MODELO-VISÃO-CONTROLE) Figura 13. Diagrama MVC – Controle Ficha Exercícios Fonte: Elaborada pela autora. 54 Figura 14. Diagrama MVC – Controle Funcionários Fonte: Elaborada pela autora. 55 Figura 15. Diagrama MVC – Controle Endereços Fonte: Elaborada pela autora. Figura 16. Diagrama MVC – Controle Clientes Fonte: Elaborada pela autora. 56 Figura 17. Diagrama MVC – Controle Mensalidades Fonte: Elaborada pela autora. Figura 18. Diagrama MVC – Controle Fluxo Caixa Fonte: Elaborada pela autora. 57 3.6. DIAGRAMAS DE SEQUÊNCIA Figura 19. Diagrama de Sequência – Criar Ficha de Exercícios Fonte: Elaborada pela autora. Figura 20. Diagrama de Sequência – Atualizar Ficha de Exercícios Fonte: Elaborada pela autora. 58 Figura 21. Diagrama de Sequência – Listar Ficha de Exercícios Fonte: Elaborada pela autora. Figura 22. Diagrama de Sequência – Criar Funcionários Fonte: Elaborada pela autora. 59 Figura 23. Diagrama de Sequência – Atualizar Funcionários Fonte: Elaborada pela autora. Figura 24. Diagrama de Sequência – Listar Funcionários Fonte: Elaborada pela autora. 60 Figura 25. Diagrama de Sequência – Criar Endereços Fonte: Elaborada pela autora. Figura 26. Diagrama de Sequência – Atualizar Endereços Fonte: Elaborada pela autora. 61 Figura 27. Diagrama de Sequência – Listar Endereços Fonte: Elaborada pela autora. Figura 28. Diagrama de Sequência – Criar Clientes Fonte: Elaborada pela autora. 62 Figura 29. Diagrama de Sequência – Atualizar Clientes Fonte: Elaborada pela autora. Figura 30. Diagrama de Sequência – Listar Clientes Fonte: Elaborada pela autora. 63 Figura 31. Diagrama de Sequência – Criar Mensalidades Fonte: Elaborada pela autora. Figura 32. Diagrama de Sequência – Atualizar Mensalidades Fonte: Elaborada pela autora. 64 Figura 33. Diagrama de Sequência – Listar Mensalidades Fonte: Elaborada pela autora. Figura 34. Diagrama de Sequência – Criar Fluxo de Caixa Fonte: Elaborada pela autora. 65 Figura 35. Diagrama de Sequência – Atualizar Fluxo de Caixa Fonte: Elaborada pela autora. Figura 36. Diagrama de Sequência – Listar Fluxo de Caixa Fonte: Elaborada pela autora. Este capítulo abordou os diagramas necessários para o melhor desenvolvimento do sistema. O capítulo 4 explicará cada tela que conterá no sistema da academia Mundo Livre. 66 4. PROTÓTIPO Este capítulo mostrará e explicará as telas que existem no sistema da academia Mundo Livre com o objetivo de facilitar o entendimento do sistema para o usuário (gerente da academia). 4.1. LAYOUT DAS TELAS Figura 37. Tela de Login do Sistema Fonte: Elaborada pela autora. 67 A figura 37 mostra a tela inicial do sistema, ou seja, a tela de Login. Nela, o usuário informa o LoginName (nome) e o Password (senha) e seleciona a opção Efetuar Login. Caso esses dados não forem validados, o sistema retorna para a mesma tela (figura 37), isso significa que o nome e senha não foram encontrados no banco de dados. Mas, se o usuário digitar nome e senha válidos e selecionar a opção Efetuar Login, o sistema valida o acesso e direciona o usuário para a seguinte tela (figura 38), que mostra o menu principal do sistema com as opções Home, Cadastros/Consultas, Aniversariantes do Mês, Mensalidades, Fluxo de Caixa e Sair. Figura 38. Tela Home Fonte: Elaborada pela autora. Ao passar o mouse em cima da opção Cadastros/Consultas, no menu do sistema, na tela home (figura 38), abrirá outro menu (ao lado direito) com as opções Clientes, Ficha de Exercícios e Funcionários, como mostra a figura 39. O usuário selecionará a opção desejada conforme sua necessidade. 68 Figura 39. Opções Clientes, Ficha de Exercícios e Funcionários Fonte: Elaborada pela autora. Ao selecionar a opção Clientes, abrirá a tela de Cadastro de Clientes, conforme a figura 40. Mas, antes de cadastrar um cliente, o usuário deverá selecionar a opção Cad. Pessoa (na tela de Cadastro de Clientes) e depois a opção Cad. Endereço (na tela de Cadastro de Pessoas), como mostra as figuras 40 e 41. Figura 40. Cadastro de Clientes Fonte: Elaborada pela autora. 69 Figura 41. Cadastro de Pessoas Fonte: Elaborada pela autora. Após seguir os passos, o usuário estará na tela de Cadastro de Endereços, conforme mostra a figura 42. Figura 42. Cadastro de Endereços Fonte: Elaborada pela autora. 70 O usuário preencherá com todos os dados do Cadastro de Endereços e escolherá a opção Criar para efetuar o cadastro. Os dados serão guardados no banco de dados e poderá ser listados, visualizados e atualizados. Após cadastrar um Endereço, ao selecionar a opção Listar (na tela de Cadastro de Endereços), o sistema direcionará o usuário para a tela Lista de Endereços, conforme mostra a figura 42. Figura 43. Lista de Endereços Fonte: Elaborada pela autora. Ao selecionar a opção Visualizar, o sistema buscará todos os dados daquele endereço no banco de dados e mostrará na tela, conforme mostra a figura 44. E, ao escolher a opção atualizar, o sistema abrirá a tela de Atualização de Endereços, conforme apresentado na figura 45. O usuário atualizará os dados necessários e selecionará a opção Atualizar. Após essa operação, o sistema se comunica com o banco de dados e salva as alterações nele. E, ao selecionar a opção Listar, o sistema volta para a tela de Lista de Endereços (figura 43). No final da tela de Lista de Endereços tem a opção Voltar. Ao selecioná-la, o sistema retorna a página de Cadastro de Pessoas, apresentada na figura 46. 71 Figura 44. Visualização de Endereços Fonte: Elaborada pela autora. Figura 45. Atualização de Endereços Fonte: Elaborada pela autora. 72 Ao finalizar o cadastro de endereços, preenchendo com todos os dados e selecionando a opção Criar, o usuário deverá voltar uma tela e efetuar o Cadastro de Pessoas, conforme a figura 46. Ao cadastrar uma pessoa, o usuário poderá escolher a opção cliente ou funcionário para gerar um novo cadastro de acordo com sua necessidade, conforme mostra a figura 46. Figura 46. Selecionar Cliente ou Funcionário Fonte: Elaborada pela autora. Se o usuário optar pela opção Cliente, o sistema retorna à página de Cadastro de Clientes, conforme mostra a figura 40. Mas, se o usuário escolher a opção Funcionário na figura 46, o sistema abrirá a tela de Cadastro de Funcionários, que o usuário deverá preencher todos os campos e selecionar a opção Criar, conforme figura 47. 73 Figura 47. Cadastro de Funcionários Fonte: Elaborada pela autora. Ao selecionar a opção Cadastro / Consulta e escolher a opção Ficha de Exercícios, o sistema direcionará o usuário a tela de Cadastro de Ficha de Exercícios, conforme mostra a figura 48. Figura 48. Cadastro de Ficha de Exercícios Fonte: Elaborada pela autora. 74 Mas, antes de cadastrar uma Ficha de Exercícios, o usuário deve selecionar a opção Cad. Membro e efetuar o cadastro, preenchendo com os dados e selecionando a opção Criar, de acordo com a figura 49. Figura 49. Cadastro de Membros Fonte: Elaborada pela autora. Há também, no sistema, os cadastros de Mensalidades e Fluxo de Caixa, conforme apresentado nas figuras 50 e 51. Figura 50. Cadastro de Mensalidades Fonte: Elaborada pela autora. 75 Figura 51. Cadastro de Fluxo de Caixa Fonte: Elaborada pela autora. Ao selecionar a opção Aniversariantes do Mês no menu, conforme apresentado na figura 52, o sistema abrirá um relatório dos aniversariantes do mês atual em outra página da Internet, conforme figura 53. Figura 52. Menu do Sistema Fonte: Elaborada pela autora. 76 Figura 53. Relatório de Aniversariantes do Mês Fonte: Elaborada pela autora. Esse relatório informa o dia e mês atual, atualiza a frase Aniversariantes de Julho conforme o mês que estiver e busca, do banco de dados, o dia e o nome dos aniversariantes do mês atual. E, ao selecionar a opção Sair, no menu do sistema, conforme apresentado na figura 52, o sistema retornará para a tela de Login, apresentada na figura 37. Todos os cadastros do sistema têm as opções Criar, Listar, Visualizar e Atualizar que desempenham as mesmas funções descritas nas figuras 42, 43, 44 e 45. Este capítulo explicou os componentes de cada tela existentes no sistema da Academia Mundo Livre, abordando as especificações dos campos e funcionalidades dos botões. 77 CONCLUSÃO Atualmente, a boa administração de empresas leva-as ao sucesso e, para auxiliar o trabalho dos gerentes, sistemas de informações são utilizados para facilitar, agilizar e melhorar essa administração. A academia Mundo Livre apresentava vários problemas de gerência, como a falta de controle dos cadastros, dos aniversariantes do mês, do pagamento das mensalidades e do fluxo de caixa. Para sanar esses problemas, pensou-se em desenvolver um sistema para controlar os processos rotineiros (básicos) da academia Mundo Livre, buscando agilizar e facilitar essa gerência administrativa. Diante disso, neste trabalho foram estudadas as tecnologias necessárias para o desenvolvimento do sistema como, Java, HTML, CSS, Servlets, JPA, JSP e JSF, além dos softwares para a construção do sistema (NetBeans) e do banco de dados (Oracle 10g). Para embasar este trabalho utilizam-se autores renomados como Gonçalves (2006), Laudon e Laudon (2004), Medeiros (2004), Meira (2010), entre outros. Verificaram-se também as necessidades da academia de ginástica Mundo Livre, apontando possíveis soluções; a análise dos diagramas, base para a construção do software e as técnicas utilizadas para o desenvolvimento do software. A informatização dos processos rotineiros da academia Mundo Livre, incluindo cadastrar clientes, funcionários e fichas de exercícios; informar aos professores sobre os exercícios de cada cliente; mostrar os aniversariantes do mês; administrar o pagamento das mensalidades e controlar o fluxo de caixa são de extrema relevância para tornar o trabalho dos gerentes mais fácil e ágil. Por isso, esta monografia, apresenta estudos sobre as tecnologias, análise de requisitos (documento visão), construção de diagramas e técnicas para o desenvolvimento do software, adotando-se a pesquisa qualitativa baseada em artigos científicos, revistas, livros, monografias, sites da Internet, técnicas para o desenvolvimento de software e análises feitas pela autora. Após os estudos, análises, criações e desenvolvimento do software, concluiuse que o sistema desenvolvido facilitou e agilizou os processos rotineiros da academia Mundo Livre, ou seja, atendeu as necessidades da academia e sanou os problemas pré-definidos. Cumpre ressaltar que sanou os problemas com cadastro 78 de clientes, funcionários e ficha de exercícios, controle dos aniversariantes do mês, gerência do pagamento das mensalidades e fluxo de caixa. Portanto, este software não está acabado, ou seja, poderá ser melhorado e implementado. Desta forma, verificou ao longo deste trabalho, oportunidades de melhorias, tanto de tecnologias quanto de software e assim sendo, implementações futuras são necessárias para melhorar ainda mais o desempenho do software como a inclusão de máscaras e validação dos campos do sistema, o cadastro de fornecedores e produtos, o pagamento das mensalidades utilizando cartões de crédito e débito, instalação de catraca com carteirinhas possivelmente com leitor de código de barras que será vinculado ao software para o controle da frequência dos clientes na academia Mundo Livre, que aumentará a segurança do ambiente, entre outras. 79 GLOSSÁRIO Termo Descrição Clientes São os alunos matriculados na academia. Ginástica É a arte ou ato de exercitar o corpo para desenvolvê-lo e fortificá-lo. Envolve vários tipos de ginástica, como aeróbica, rítmica, localizada, etc. Musculação São os exercícios para fortificar os músculos. Usuário É a pessoa que utilizará o sistema, ou seja, o gerente da academia. 80 REFERÊNCIAS ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. São Paulo: Pearson Addison Wesley, 2005. FURLAN, J. D. Modelagem de objetos através da UML: the unified modeling languagem. São Paulo: Pearson Makron Books, 1998. GEARY, D.; HORSTMANN, C.. Core Java Server Face: fundamentos. Segunda edição. Rio de Janeiro: Alta Books, 2007. GOMES, Y. M. P. Java na web com JSF, spring, hibernate e NetBeans 6. Rio de Janeiro: Ciência Moderna Ltda., 2008. GONÇALVES, E. Desenvolvendo aplicações web com JSP, servlets, Java Server Faces, hibernate, EJB 3 persistence e AJAX. Rio de Janeiro: Ciência Moderna Ltda., 2007. ___________. Dominando AJAX: as melhores práticas ligadas a aplicações web escritas tanto em Java como em PHP 5 utilizando Ajax. Rio de Janeiro: Ciência Moderna Ltda., 2006. ___________. Dominando Java Server Faces e facelets utilizando spring 2.5, hibernate e JPA. Rio de Janeiro: Ciência Moderna Ltda., 2008. KEITH, M.; SCHNICARIOL M. Pro JPA 2: mastering the Java™ Persistence API. United States of America: Apress, 2009. LAUDON, K. C.; LAUDON, J. P. Sistemas de informação gerenciais: administrando a empresa digital. 5 ed. São Paulo: Prentice Hall, 2004. MACEDO, M. S. CSS (folhas de estilo): dicas e truques. Rio de Janeiro: Ciência Moderna Ltda., 2006. 81 MACHADO, F. N. R. Bando de dados: projeto e implementação. 2 ed. São Paulo: Érica, 2008. MEDEIROS, E. Desenvolvendo software com UML 2.0 definitivo. São Paulo: Pearson Makron Books, 2004. MEIRA, F. L. Processo unificado aberto: um processo ágil de desenvolvimento de software. .net Magazine. Grajaú, ed. 75, ano VI, p. 58-66, 2010. OLIVEIRA, J. F. Sistemas de informação: um enfoque gerencial inserido no contexto empresarial e tecnológico. 4. ed. São Paulo: Érica, 2000. OMG. Introduction to OMG’s: unified modeling language™ (UML®). 2011. Disponível em: <http://www.omg.org/gettingstarted/what_is_uml.htm> Acesso em: 25 mai. 2011. ORACLE. Oracle's history: innovation, leadership, results. 2011. Disponível em: <http://www.oracle.com/us/corporate/history/index.html> Acesso em: 25 mai. 2011. PADOVEZE, C. L. Sistemas de informações contábeis: fundamentos e análise. 4. ed. São Paulo: Atlas, 2004. SANTOS, A. R. P. Administração dos sistemas de informações. Lins: Unisalesiano, 2010. SILVA, A. M. R.; VIDEIRA, C. A. E. UML, metodologias e ferramentas CASE: linguagem de modelação UML, metodologias e ferramentas CASE na concepção e desenvolvimento de software. Portugal: Edições Centro Atlântico, 2001. TAVARES, M. A. C. Administração de sistemas de gerenciamento de banco de dados: um estudo no Oracle 10g. 2006. Dissertação (Graduação em Ciência da Computação) – Universidade Federal de Pernambuco, Recife. 82 UML. UML® resource page. 2011. Disponível em: <http://www.uml.org> Acesso em: 25 mai. 2011. VESCIO, A. M. A utilidade da Intranet e Extranet nas empresas – Estudo de caso: BBS – Brazilian Business School. 2009. Dissertação – Faculdade de Informática com Ênfase em Gestão de Negócios – Centro Paula Souza da Zona Leste, São Paulo. Disponível em: <http://www.fateczl.edu.br/TCC/2009-2/tcc-05.pdf> Acesso em: 01 jul. 2011. WEISZFLOG, W. MICHAELIS: moderno dicionário da língua portuguesa. São Paulo: Companhia Melhoramentos, 2009 - (Dicionários Michaelis). 2288p. 83 ANEXOS 84 ANEXO A – Ficha para cadastro de alunos 85 ANEXO B – Ficha de musculação I 86 ANEXO C – Ficha de musculação II