Sistema Web Para Aluguel de Roupas

download Sistema Web Para Aluguel de Roupas

of 51

Transcript of Sistema Web Para Aluguel de Roupas

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    1/51

    UNIVERSIDADE TECNOLGICA FEDERAL DO PARANCURSO SUPERIOR DE TECNOLOGIA EM ANLISE E DESENVOLVIMENTO DE

    SISTEMAS

    CSSYO JUNIOR REBONATO KIST

    SISTEMA WEB PARA LOJAS DE ALUGUEL E VENDA DE ROUPAS

    TRABALHO DE CONCLUSO DE CURSO

    PATO BRANCO2012

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    2/51

    CSSYO JUNIOR REBONATO KIST

    SISTEMA WEB PARA LOJAS DE ALUGUEL E VENDA DE ROUPAS

    Trabalho de Concluso de Curso degraduao, apresentado disciplina deTrabalho de Diplomao, do Curso Superiorde Tecnologia em Anlise e Desenvolvimentode Sistemas, da Universidade TecnolgicaFederal do Paran, Cmpus Pato Branco, comorequisito parcial para obteno do ttulo deTecnlogo.

    Orientadora: Profa. Beatriz Terezinha Borsoi

    PATO BRANCO2012

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    3/51

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    4/51

    RESUMO

    KIST, Cssyo Junior Rebonato. Sistema web para lojas de aluguel e venda de roupas. 2012.50 f. Trabalho de concluso de curso - Curso Superior de Tecnologia em Anlise e

    Desenvolvimento de Sistemas, Universidade Tecnolgica Federal do Paran, Cmpus PatoBranco. Pato Branco, 2012.

    As aplicaes web facilitam o acesso dos usurios porque as exigncias bsicas para usodessas aplicaes um computador com acesso Internet e com um navegador webinstalado.Esse tipo de aplicao tambm til para empresas que possuem filiais. Com uso da Internetno h necessidade de uma rede dedicada para conectar os computadores da matriz e dasfiliais. Considerando esse contexto, verificou-se que o desenvolvimento de um sistema webpoderia ser relevante para o gerenciamento de uma empresa de aluguel e venda de roupas quepossua filiais. A implementao desse sistema tambm tem o objetivo de apresentar a formade uso das tecnologias empregadas, destacando-se a linguagem Java para web, osframeworks

    Hibernate e PrimeFaces e a biblioteca JQuery.

    Palavras-chave: Java para web. Aplicaes web. PrimeFaces. JQuery

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    5/51

    ABSTRACT

    KIST, Cssyo Junior Rebonato. Web application to manage rental and sale of clothes. 2012.50 f. Relatrio de Estgio Supervisionado - Curso Superior de Tecnologia em Anlise e

    Desenvolvimento de Sistemas, Universidade Tecnolgica Federal do Paran, Cmpus PatoBranco. Pato Branco, 2012.

    The web applications provide easy access for users because the basic requirement to accessthese applications is a computer with Internet access and a web browser installed. This type ofapplication is also useful for companies that have branches. With use of the Internet there isno need for a dedicated network to connect computers and array of subsidiaries. Consideringthis context, it was found that the development of a web-based system could be relevant to themanagement of a company that rents and sells clothes and has offices. The implementationaims to show how to use the technologies employed, especially Java web and the frameworksPrimeFaces and Hibernate, and the JQuery library.

    Keywords: JavaEE. Web applications. PrimeFaces. JQuery.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    6/51

    LISTA DE FIGURAS E QUADROS

    Figura 1 - Apresentao das camadas e dos contineres ....................................................... 13

    Figura 2 Arquitetura MVC com JSP.................................................................................. 16Figura 3 Diagrama de casos de uso.................................................................................... 26Figura 4 Diagrama de classes do sistema........................................................................... 27Figura 5 Diagrama de sequncia para o processo de aluguel de roupas.............................. 28Figura 6 Diagrama de sequncia para login no sistema............................... ....................... 28Figura 7 Diagrama de sequncia para cadastro de clientes.......................... ....................... 29Figura 8 Diagrama de sequncia para cadastro de uma despesa ......................................... 29Figura 9 Diagrama de sequncia para a venda de roupas ................................................... 30Figura 10 Diagrama de sequncia para cadastrar uma roupa no sistema............................. 30Figura 11 Tela de login no sistema.................................................................................... 31Figura 12 Tela inicial do sistema....................................................................................... 31Figura 13 Cadastro de usurio ........................................................................................... 32

    Figura 14 Tela de cadastro de usurios.............................................................................. 32Figura 15 Cadastro de Aluguel.......................................................................................... 33Figura 16 Tela para efetuar aluguis.................................................................................. 33

    Quadro 1 Suporte a tributos de qualidade em JavaEE utilizando MVC.............................. 15Quadro 2 Tecnologias utilizadas na definio, implementao e execuo do sistema....... 19

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    7/51

    LISTAGENS DE CDIGO

    Listagem 1 Cdigo para login ao sistema .......................................................................... 34Listagem 2 Classe Form.................................................................................................... 35

    Listagem 3 Login ao sistema............................................................................................. 36Listagem 4 Cdigo para consulta de usurio ao banco de dados ........................................ 37Listagem 5 Cdigo para cadastro de usurio...................................................................... 38Listagem 6 Cdigo para salvar o cadastro de usurio......................................................... 39Listagem 7 Cdigo para chamar mtodos de incluso, excluso e edio de objetos .......... 39Listagem 8 Cdigo para salvar cadastro ............................................................................ 40Listagem 9 Cdigo para efetuar aluguel ............................................................................ 43Listagem 10 Cdigo do Managed Bean para efetuar o aluguel e outras funcionalidades .... 45Listagem 11 Cdigo para chamar mtodos de listagem, desativao, ativao e efetuao doaluguel e autocomplete do cliente......................................................................................... 45Listagem 12 Cdigo para efetuar o aluguel no banco de dados ................... ....................... 46

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    8/51

    LISTA DE SIGLAS

    API Application Programming InterfaceCGI Common Gateway Interface

    CSS Cascading Style SheetDAO Data Access ObjectsDDL Data Definition LanguageDOM Document Object ModelEIS Executive Information SystemEJB Enterprise JavaBeansEJB Enterprise Java BeansFTP File Transfer ProtocolHTML Hyper Text Markup LanguageIBM International Business MachinesIDE Integrated Development EnvironmentIIS Internet Information Services

    JavaEE Java Enterprise EditionJDBC Java Database ConnectivityJIT Just Int TimeJNDI Java Naming and Directory InterfaceJSF Java Server FacesJSP Java Server PageJTA Java Transaction APIJVM Java Virtual MachineMVC Model-View-ControllerPHP PHP Hypertext PreprocessorRIA Rich Internet ApplicationSQL Structured Query LanguageUML Unified Modeling LanguageURL Uniform Resource LocatorW3C World Wide Web ConsortiumXHTML eXtensible Hyper Text Markup LanguageXML eXtensible Markup LanguageXSD XML Schema Document

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    9/51

    SUMRIO

    1 INTRODUO.........................................................................................................91.1 CONSIDERAES INICIAIS ........................................................................................91.2 OBJETIVOS.................................................................................................................. 101.2.1 Objetivo Geral............................................................................................................. 101.2.2 Objetivos Especficos .................................................................................................. 101.3 JUSTIFICATIVA .......................................................................................................... 111.4 ESTRUTURA DO TRABALHO ................................................................................... 112 JAVA PARA WEB .................................................................................................132.1 A PLATAFORMA JAVAEE ......................................................................................... 132.2 Padro de projetos MVC................................................................................................ 153 MATERIAIS E MTODO........................................................................................183.1 MATERIAIS.................................................................................................................. 183.1.1 Astah Community ....................................................................................................... 19

    3.1.2 IDE Eclipse................................................................................................................. 193.1.3 Linguagem Java .......................................................................................................... 193.1.4 JavaServer Faces......................................................................................................... 203.1.5 PrimeFaces.................................................................................................................. 203.1.6 jQuery ......................................................................................................................... 203.1.7 MySQL....................................................................................................................... 213.1.8 Hibernate .................................................................................................................... 213.1.9 Apache Tomcat ........................................................................................................... 223.1.10 DeZign For Database v6............................................................................................ 223.2 MTODO...................................................................................................................... 234 RESULTADO.........................................................................................................254.1 APRESENTAO DO SISTEMA ................................................................................ 25

    4.2 MODELAGEM DO SISTEMA...................................................................................... 264.3 DESCRIO DO SISTEMA......................................................................................... 314.4 IMPLEMENTAO DO SISTEMA............................................................................. 345 CONCLUSO........................................................................................................ 47REFERNCIAS.........................................................................................................49

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    10/51

    9

    1 INTRODUO

    Este captulo apresenta o contexto do sistema desenvolvido como resultado deste

    trabalho, os seus objetivos e a sua justificativa. E por fim est a organizao dos captulos que

    compem o texto.

    1.1 CONSIDERAES INICIAIS

    Uma empresa que fabrica e aluga roupas, comumente denominada de atelier de costura

    ou de locao, geralmente disponibiliza um grande nmero de peas para que seus clientes

    possam escolher. Alm de locar peas prontas e de solicitar a confeco de peas que

    adquirir, o cliente pode solicitar a confeco de uma pea que alugar. A solicitao de

    confeco pelo cliente de uma pea que ele alugar definida como primeira locao.

    Para as peas locadas importante manter o histrico das locaes para que o cliente

    possa ser informado dos usos anteriores da respectiva pea. Para determinadas peas,

    especialmente confeces de vesturio feminino, necessrio haver um controle para que a

    locao no se torne repetida em eventos semelhantes ou eventos de pblico semelhante, por

    exemplo.

    A existncia de matriz e filiais nesse tipo de negcio aumenta a vida til das peas a

    serem locadas. Isso porque as peas que j foram alugadas em uma das lojas podem ser

    disponibilizadas para aluguel em outras lojas, proporcionando maior rentabilidade para o

    empresrio.

    O gerenciamento das peas locadas e mesmo da confeco, quando a empresa possui

    matriz e filiais, pode ser facilitado pelo uso de um sistema web. Assim, este trabalho se refere

    ao desenvolvimento de um sistema webcontar com um servidor (computador na matriz) que

    disponibilizar acesso aos terminais (cliente web) nas filiais. O controle de estoque e o

    gerenciamento do banco de dados so centralizados, mas o acesso e a manuteno do sistema

    so distribudos. A manuteno, nesse caso, se refere s operaes realizadas no banco de

    dados, como os cadastros e o controle das locaes.

    O sistema desenvolvido composto basicamente de cadastros, controle de aluguel e de

    distribuio das peas entre a matriz e as filiais da empresa. A implementao do sistema est

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    11/51

    10

    baseada no padro de projetos MVC (Model-View-Controller). Esse padro ser usado para

    facilitar a implementao e mesmo a manuteno, em termos de cdigo, do sistema

    desenvolvido. Os dados para a modelagem do sistema so provenientes de uma empresa de

    aluguel e confeco de roupas que possui matriz e filiais.

    O desenvolvimento desse sistema uma oportunidade de aprendizado pelas

    tecnologias utilizadas na implementao, destacando-se a linguagem Java, os frameworks

    Hibernate e PrimeFaces, a biblioteca JQuery e o padro de projetos MVC. Alm de fornecer

    uma forma de controle e gerenciamento para empresas de aluguel e venda de roupas sob

    medida.

    1.2 OBJETIVOS

    O objetivo geral se refere ao resultado principal a ser obtido com a realizao deste

    trabalho. Os objetivos especficos complementam o objetivo geral.

    1.2.1 Objetivo Geral

    Implementar um sistema web para gerenciar aluguel e venda de roupas de umaempresa com matriz e filiais utilizando a linguagem Java.

    1.2.2 Objetivos Especficos

    Dentre os objetivos especficos, destacam-se:

    Apresentar a forma de uso do padro de projetos MVC no desenvolvimento deuma aplicao Java para web.

    Apresentar a forma de uso das tecnologias de suporte ao desenvolvimento Javapara web, incluindo oframeworkPrimeFaces e a biblioteca JQuery.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    12/51

    11

    1.3 JUSTIFICATIVA

    O desenvolvimento de um sistema webpara uma empresa de aluguel e de venda de

    roupas se justifica fortemente quando a empresa composta por matriz e filiais. Com um

    sistema web, a comunicao entre elas fica mais eficaz. Alm da comunicao, o controle das

    operaes realizadas e a viso geral do negcio se tornam mais fceis e efetivas. tambm

    uma possibilidade de aumentar a vida til das peas locadas porque elas podem ser

    redistribudas entre a matriz e as filiais.

    Para o desenvolvimento de aplicaes para web, diversas tecnologias podem ser

    utilizadas incluindo dos CGIs (Common Gateway Interface) com HTML (HyperText Markup

    Language) s aplicaes Internet ricas. As linguagens de programao tambm so distintas,

    como, por exemplo, .Net, Java e PHP (PHP Hypertext Preprocessor).Para a implementao do sistema resultado deste trabalho, optou-se pela linguagem

    Java pelas funcionalidades que a mesma oferece no desenvolvimento de sistemas para web.

    Essas funcionalidades esto, tambm, relacionadas s tecnologias agregadas ao uso da

    linguagem. Dentre essas tecnologias esto osframeworkse os padres de projeto.

    Os padres de projeto, embora sejam conceituais, definem a forma de empregar

    tecnologias na resoluo de determinados problemas. Esses padres no esto relacionados

    linguagem, mas fornecem uma maneira de resolver problemas recorrentes em programao,

    otimizando o uso dos recursos que as linguagens e as tecnologias possuem.Para o desenvolvimento deste trabalho sero utilizados os frameworksPrimeFaces e

    Hibernate, a biblioteca JQuery para interface e o padro de projetos MVC. Eles sero

    utilizados visando agilizar a implementao do sistema e prover facilidade de interatividade

    do usurio.

    Este trabalho est centrado na implementao do sistema, uma primeira verso da

    modelagem foi desenvolvida como trabalho de estgio. No estgio tambm foram

    implementados alguns cadastros, mas houve mudanas nas tecnologias e toda a codificao

    foi refeita.

    1.4 ESTRUTURA DO TRABALHO

    Este trabalho est organizado em captulos, dos quais este o primeiro. O Captulo 2

    apresenta o referencial terico que fundamenta as tecnologias e os conceitos utilizados no

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    13/51

    12

    desenvolvimento do trabalho. O Captulo 3 apresenta os materiais e o mtodo empregado na

    modelagem e na implementao do sistema. No Captulo 4 est a modelagem e a

    implementao obtidas como resultado da realizao deste trabalho. No Captulo 5 est a

    concluso e por fim esto as referncias utilizadas.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    14/51

    13

    2 JAVA PARA WEB

    Este captulo apresenta os conceitos relacionados plataforma JavaEE (Java

    Enterprise Edition) no desenvolvimento de aplicaes webe ao padro de projetos MVC, que

    so utilizados na implementao do sistema resultado deste trabalho.

    2.1 A PLATAFORMA JAVAEE

    A plataforma JavaEE, tambm conhecida como J2EE ou JEE, est voltada para o

    desenvolvimento de aplicaes multicamadas, baseadas em componentes que so executadosem um servidor de aplicaes. A plataforma JavaEE considerada um padro de

    desenvolvimento porque necessrio seguir determinadas regras para que o produto de

    software gerado seja compatvel com JavaEE. O desenvolvimento de software para esse

    ambiente realizado por meio da linguagem de programao Java e de um conjunto de

    ferramentas de desenvolvimento e de tecnologias associadas.

    A plataforma JavaEE multicamadas, cujas camadas podem estar distribudas em

    vrias mquinas. Geralmente conhecida como trs camadas, mas no necessariamente

    somente trs. Por exemplo: camada cliente que executa na mquina do cliente; camada webque executa no servidor JavaEE; camada de negcio que executa no servidor JavaEE; e

    camada EIS (Executive Information System) que executa no servidor EIS. A Figura 1

    apresenta uma viso geral das camadas tpicas desse padro.

    Figura 1 - Apresentao das camadas e dos contineresFonte: Adaptado de Miranda e Silva (2006).

    Camada deapresentao

    Servidor JavaEE

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    15/51

    14

    A plataforma JavaEE trabalha com o conceito de continer de componentes. Um

    continer fornece servios aos componentes, tais como, segurana. Dentre os exemplos de

    continer esto o servidor JavaEE; continer EJB (Enterprise JavaBeans); continer web;

    continer aplicao cliente; e continer applet.

    A plataforma JavaEE aberta, baseada em padres, independente de hardwaree de

    sistema operacional que as aplicaes desenvolvidas executaro. As aplicaes webbaseadas

    na plataforma JavaEE usam o padro de projetos MVC que composto por trs componentes

    arquiteturais (GAMMA et al., 2000):

    a) lgica de apresentao que define a viso e est relacionada a exibir os dados ou

    informaes da aplicao.

    b) lgica de controle - coordena o modelo e a viso e exibe a interface.

    c) lgica de negcio que representada pelo modelo. O modelo encapsula os dadosdo aplicativo e as regras de negcio.

    Para Prajapati e Dabhi (2009), aplicaes webdesenvolvidas em plataforma JavaEE

    possuem alta qualidade e atendem mudanas de requisitos de negcio e do cliente. Chung e

    Lee (2003) exemplificam o desenvolvimento de aplicaes webcom o uso da linguagem Java

    e de tecnologias relacionadas a XML (eXtensible Markup Language). Para a camada de

    apresentao eles citam o uso de: eXtensible Hyper Text Markup Language (XHTML),

    Cascading Style Sheet (CSS), JavaScript, XML, XML Schema Document (XSD) e Java

    Server Page(JSP). Para a camada de negcios citam o uso de JavaBean. E para a camada deacesso a dados, o MySQL como sistema de gerenciamento de banco de dados e o driver

    Database Connectivity. Como servidor webeles incluem o Apache, JSP e Tomcat.

    Como a tecnologia Java orientada a objetos e independente de plataforma,

    caractersticas, como escalabilidade, portabilidade, reusabilidade, segurana, alto desempenho

    e flexibilidade so inerentes as suas classes e componentes (PRAJAPATI; DABHI, 2009).

    Servlet, componentes JavaBeans e EJB (Enterprise Java Beans), por exemplo, so classes

    Java. A linguagem de script JSP usada para criar pginas web. Esses elementos so

    utilizados para implementar o padro de projetos MVC na plataforma JavaEE.O Quadro 1 apresenta uma anlise de como os atributos de qualidade de

    componentes so atendidos na plataforma JavaEE, considerando o padro de projetos MVC.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    16/51

    15

    Atributos Suporte para atributos de qualidade para componentes MVCModelo Viso Controle

    Desempenho Compilador JIT (Just Int Time) para compilao rpida de byte code. Separathreadpara requisio de usurios. Componentes EJB locais para melhorardesempenho.

    Extensibilidade Todos os componentes so orientados a objetos.Escalabilidade Componentes EJB so

    acessveis por meio daviso/controle

    Usa mscara URL(Uniform ResourceLocator)

    Segurana paracomponentes Servletrealizada porprogramao

    Robustez Componentes executam sob o controle de JVM (Java Virtual Machine), asclasses so carregadas e byte code verificado dinamicamente.

    Flexibilidade Usa JNDI (JavaNaming and

    Directory Interface)baseada emconfigurao de acessoa banco de dados

    Usa pginas principais,incluso dearquivos/pginas.

    Usa mtodos derequisio e resposta ecadeias de filtros.

    Modularidade MdulosjarEJB Bibliotecas de tags Filtros.Reuso Suporte a objetos EJB

    remotosBiblioteca de tagscustomizadas, inclusode pginas/arquivos elinks.

    Usando mtodos derequisio e resposta ecadeias de filtros

    Quadro 1 Suporte a tributos de qualidade em JavaEE utilizando MVC

    Fonte: traduzido de Prajapati e Dabhi (2009, p. 1668).

    2.2 Padro de projetos MVC

    Uma aplicao JavaEE usa o modelo trs camadas: apresentao, negcio e

    persistncia. Na camada de apresentao esto as pginas JSP, a camada de negcio contm a

    modelagem do domnio do problema e a camada de persistncia contm as classes com

    conhecimento sobre a persistncia de objetos no banco de dados.

    O Model-View-Controller um padro de arquitetura que divide a aplicao em

    controladores que tratam as entradas dos usurios, no modelo que prove as funcionalidades

    principais e nas vises que apresentam as informaes para os usurios (SOUZA, 2008).

    Em aplicaes complexas, que enviam uma srie de dados para o usurio, odesenvolvedor frequentemente necessita separar os dados (model) da interface (view).

    Utilizando MVC, alteraes feitas na interface no afetaro a manipulao dos dados e estes

    podero ser reorganizados sem alterar a interface do usurio. O MVC resolve esse problema

    por meio da separao das tarefas de acesso aos dados e a lgica do negcio da apresentao e

    da interao com o usurio. Isso feito por meio da insero de um componente entre modele

    wiew. Esse componente o controller.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    17/51

    16

    O objetivo bsico do padro de projeto MVC separar dados ou lgica de negcios

    (model) da interface do usurio (view) e do fluxo da aplicao (controller). Assim, uma

    mesma lgica de negcios pode ser acessada e visualizada por interfaces distintas. Na

    arquitetura MVC, a lgica de negcios (modelo) no sabe quantas nem quais interfaces com o

    usurio esto exibindo seu estado. A Figura 2 apresenta um esquema de representao da

    arquitetura MVC utilizando JSP para a camada de interface.

    Figura 2 Arquitetura MVC com JSP

    Fonte: traduzido de Khin (2009, p. 280).

    Na Figura 2, os nmeros indicam (KHIN, 2009):

    1) A requisio enviada pelo usurio por meio de um navegador web(o browser),para o controle que tratar essa requisio.

    2) O controle (servlet) instancia o modelo, realiza as aes necessrias e faz asdevidas conexes com o JavaBean para obter as informaes solicitadas.

    3) O controle envia a representao para a viso por meio das pginas JSP, com asrespostas conforme a solicitao do usurio.

    4) A pgina JSP atualizada ou composta com informaes provenientes do modelo.5) A resposta enviada ao cliente por meio de uma pgina JSP, com todos os dados

    que os mtodos produziram ao executar o cdigo do sistema.

    De acordo com a representao da Figura 2, o servlet age como o controle e estencarregado do processamento das requisies e da criao de quaisquer beans ou objetos

    usados pelo JSP, bem como decidir, dependendo das aes do usurio, quais pginas JSP

    devem ser encaminhadas para atender a requisio solicitada. Neste modelo no h lgica de

    processamento na pgina JSP. Esta simplesmente responsvel por recuperar qualquer objeto

    ou beanque pode ter sido previamente criado pelo servlete extrair o contedo dinmico do

    servletpara insero em modelos (templates) estticos. Essa abordagem resulta tipicamente

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    18/51

    17

    na separao da apresentao do contedo, deixando clara a delimitao dos papis e

    responsabilidades dos programadores e dos projetistas das pginas (KHIN, 2009).

    Na Figura 2, o browserrepresenta a viso definida em JSP e fornece a interao do

    usurio com a viso elaborada em JSP. A viso envia informaes para o controlador

    (controller) que altera o modelo. O modelo (model) representa a lgica de negcio e envia

    eventos para a viso (view) indicando as mudanas.

    As funcionalidades de cada uma das trs partes do modelo MVC, de acordo com

    Bianchini (2008), Prajapati e Dabhi (2009) e Wang (2011) so:

    a) Modelo - representa os dados da aplicao e a sua lgica de negcio que determina

    o acesso aos dados. O modelo mantm o estado persistente dos dados e fornece ao controlador

    a possibilidade de acesso s funcionalidades da aplicao. Essas funcionalidades so

    encapsuladas pelo prprio modelo. O modelo notifica a viso que recebe solicitaes dealteraes e l o contedo do modelo para ser atualizada.

    b) Viso - a camada de interface com o usurio. Nesta camada o usurio v o estado

    do modelo e pode manipular a interface para ativar a lgica do negcio. A viso apresenta o

    contedo de um modelo, coleta os dados para o modelo, especifica como esses dados devem

    ser apresentados e encaminha para o controlador as aes do usurio.

    c) Controle - o componente que define o comportamento da aplicao. Ele recebe e

    interpreta as aes do usurio e as traduz para aes de atualizao do modelo que, por

    exemplo, ativam processos da lgica de negcio ou alteram o estado do modelo. Ocontrolador se encarrega de selecionar a visualizao que ser mostrada a partir da interao

    com o usurio, atualizando a viso apresentada ao usurio. O controlador transforma eventos

    gerados pela interface em aes de negcio, alterando o modelo.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    19/51

    18

    3 MATERIAIS E MTODO

    Neste captulo esto os materiais e o mtodo utilizados no desenvolvimento deste

    trabalho. Os materiais se referem s tecnologias e s ferramentas utilizadas na modelagem e

    na implementao do sistema e o mtodo apresenta a sequncia das principais atividades

    realizadas para desenvolvimento do trabalho.

    3.1 MATERIAIS

    As seguintes ferramentas e tecnologias foram utilizadas para modelar e exemplificar a

    implementao do sistema:

    a) Astah* Community (ASTAH, 2012) para a documentao da modelagem que

    baseada na UML (Unified Modeling Language).

    b) Eclipse (ECLIPSE, 2012) IDE (Integrated Development Environment) para

    desenvolvimento.

    c) Linguagem Java (JAVA, 2012) para a implementao do sistema, complementada

    por HTML por ser desenvolvimento para web.

    d) JavaServer Faces 2.0 (JSF, 2012) para controle entre as classes Java e os JSPs.

    e) PrimeFaces (PRIMEFACES, 2012) para desenvolvimento da interface.

    d) Jquery (JQUERY, 2012) componentes para os scriptsda interface.

    f) MySQL 5 (MYSQL, 2012) como banco de dados.

    g) Hibernate (HIBERNATE, 2012) frameworkpara o mapeamento objeto relacional.

    h) Apache Tomcat (TOMCAT, 2012) como continer/servidor web.

    i) DeZign (DEZIGN, 2012) para modelagem do banco de dados.

    O Quadro 2 apresenta as tecnologias utilizadas para modelagem, implementao e

    execuo do sistema. Elas esto distribudas nas camadas de interface, aplicao (lgica de

    negcio) e dados.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    20/51

    19

    Modelagem Implementao ExecuoInterface (viso) No realizada IDE Eclipse

    JSF, PrimeFaces,JQuery, (JavaScript,HTML, CSS)

    Navegador web comsuporte a HTML eJavaScript

    Lgica de negcio(controle)

    Astah Community IDE EclipseJava,

    Apache Tomcat

    Banco de dados(modelo)

    DeZign for Databasev6

    MySQLHibernate

    MySQL AdminApache Tomcat

    Quadro 2 Tecnologias utilizadas na definio, implementao e execuo do sistema

    3.1.1 Astah Community

    A ferramenta Astah Commuity a sucessora da ferramenta Jude Community. uma

    ferramenta para modelagem de sistemas com suporte para a UML 2.1 (ASTAH, 2012). Os

    diagramas podem ser impressos ou exportados como imagem.

    3.1.2 IDE Eclipse

    A IDE Eclipse (ECLIPSE, 2012) uma ferramenta de desenvolvimento de cdigo

    aberto para a construo de programas de computador desenvolvida em Java pela empresa

    IBM (International Business Machines). Com o uso deplugins, a IDE Eclipse pode ser usada

    no somente para desenvolver em Java, mas tambm em, por exemplo, C, C++, PHP,

    ColdFusion, Python e Flex.

    3.1.3 Linguagem Java

    Java uma linguagem de programao orientada a objetos, sendo assim, a maior parte

    dos elementos de um programa Java so objetos (JAVA, 2012). Dentre os elementos que no

    so objetos esto os tipos bsicos, como o inte ofloat. O cdigo organizado em classes, que

    permite somente relacionamentos de herana simples entre si.

    Chamadas a funes de acesso remoto (sockets) e os protocolos Internet mais comuns

    (HTTP, FTP (File Transfer Protocol), Telnet, etc.) so suportados em Java, facilitando a

    implementao de aplicativos baseados na arquitetura cliente/servidor e o desenvolvimento de

    aplicaes web. Em aplicaes web, a camada de interao com o usurio geralmente

    desenvolvida em tecnologias agregadas como, por exemplo, JSF (Java Server Faces), Flex ou

    HTML.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    21/51

    20

    3.1.4 JavaServer Faces

    JavaServer Faces (JSF) um frameworkpadro orientado a componentes de interface

    com o usurio para a plataforma JavaEE e comumente referenciando como um framework

    webbaseado em Java (JSF, 2012).

    A tecnologia JavaServer Faces simplifica a construo de interfaces com o usurio

    para aplicaes JavaServer. Isso porque os desenvolvedores podem construir aplicaes web

    por meio da composio de componentes de interface com o usurio reusveis, conectar esses

    componentes com um banco de dados e vincular os eventos gerados no cliente com os

    manipuladores de eventos que esto no servidor (GLASSFISH, 2012).

    3.1.5 PrimeFaces

    PrimeFaces uma sute de componentes de cdigo fonte aberto para Java Server Faces

    2.0 com um conjunto de mais de cem componentes JSF para o desenvolvimento de interfaces

    ricas (PRIMEFACES, 2012). Dentre as caractersticas de PrimeFaces, destacam-se

    (PRIMEFACES, 2012):

    a) Possui um conjunto de componentes de interface grfica para implementao de

    Rich Internet Application(RIA), como, por exemplo,DataTable,AutoComplete,HtmlEditore

    Charts(grficos).b) No h necessidade de configurao XML extra e no h dependncias requeridas

    de outras tecnologias.

    c) A construo de Ajax baseada no padro JSF 2.0 Ajax APIs (Application

    Programming Interface).

    d) Possui um skinning Frameworkcom mais de 25 temas.

    3.1.6 jQuery

    jQuery (JQUERY, 2012) uma biblioteca JavaScript que simplifica a identificao de

    tagsem documentos HTML, a manipulao de eventos, o desenvolvimento de animao e de

    interaes Ajax, facilitando o desenvolvimento web. jQuery possui as seguintes caractersticas

    (SILVA, 2010):

    a) Uso de seletores CSS para localizar elementos da estrutura de marcao HTML da

    pgina;

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    22/51

    21

    b) Arquitetura compatvel com instalao depluginse extenses em geral;

    c) Indiferena s inconsistncias de renderizao entre navegadores;

    d) Oferece interao implcita, isto , no h necessidade de construo de estruturas

    de repetio para localizao de elementos no documento;

    e) Admite programao encadeada, ou seja, cada mtodo retorna um objeto;

    f) extensvel, permite a criao e a insero de novas funcionalidades em bibliotecas

    existentes.

    jQuery se destina a adicionar interatividade e dinamismo s pginas webe proporciona

    facilidades como: adicionar efeitos visuais e animaes; acessar e manipular o DOM

    (Document Object Model); buscar informaes no servidor sem necessidade de recarregar a

    pgina; prover interatividade; alterar contedos; modificar apresentao e estilo; e simplificar

    tarefas especficas de JavaScript.jQuery foi criada com a preocupao de ser uma biblioteca em conformidade com os

    padres web, ou seja, compatvel com qualquer sistema operacional, navegador e com suporte

    total para a biblioteca CSS3. Essa biblioteca foi criada e est em acordo com as diretrizes do

    W3C (World Wide Web Consortium), mas cabe ao desenvolvedor escrever os scripts de

    maneira a atender essa conformidade (SILVA, 2010).

    3.1.7 MySQL

    O MySQL um servidor e gerenciador de banco de dados relacional, que utiliza a

    linguagem SQL (MYSQL, 2012). O MySQL possui licena como software livre e licena

    paga. Atualmente esse servidor e gerenciador de banco de dados atende tambm aplicaes de

    grande porte, embora tenha sido inicialmente projetado e desenvolvido para aplicaes de

    pequeno porte.

    3.1.8 Hibernate

    O Hibernate (HIBERNATE, 2012) um framework para o mapeamento objeto-

    relacional escrito na linguagem Java e tambm disponibilizado em .Net com o nome

    NHibernate. Esse framework facilita o mapeamento dos atributos entre uma base de dados

    relacional e o modelo de objetos de uma aplicao por meio do uso de arquivos XML.

    O Hibernate visa minimizar a complexidade dos programas Java baseados no modelo

    orientado a objeto que trabalham com banco de dados no modelo relacional. O Hibernate

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    23/51

    22

    transforma os dados tabulares de um banco de dados em um grafo de objetos definido pelo

    desenvolvedor. Sua principal caracterstica a transformao das classes Java para tabelas de

    dados e dos tipos de dados Java para tipos SQL (Structured Query Language). O Hibernate

    gera as sentenas SQL, mantendo o programa portvel para qualquer banco de dados padro

    SQL.

    Em aplicaes construdas para serem executadas em servidores, o gerenciamento das

    transaes realizado segundo o padro JTA (Java Transaction API). Nas aplicaes desktop,

    o tratamento transacional realizado pelo driver JDBC (Java Database Connectivity).

    Hibernate pode ser utilizado em aplicaes Java desktopou em aplicaes JavaEE, utilizando

    servletou sesses EJB.

    3.1.9 Apache Tomcat

    O Apache Tomcat (TOMCAT, 2012) um continer servlet,ou seja, um servidor de

    aplicaes utilizado para interpretar aplicaes escritas em Java para web. Ele no implementa

    um continer EJB, mas abrange parte da especificao JEE com tecnologias como servlete

    JSP e tecnologias de apoio relacionadas, como segurana, JNDIResources(API para acesso a

    diretrios) e JDBCDataSources.

    O Tomcat pode atuar tambm como servidor web, ou pode funcionar integrado a um

    servidor web dedicado como o Apache ou o IIS (Internet Information Services). Comoservidor web, ele prov um servidor HTTP puramente em Java. O servidor inclui ferramentas

    para configurao e gerenciamento, o que tambm pode ser feito editando-se manualmente

    arquivos de configurao formatados em XML.

    3.1.10 DeZign For Database v6

    DeZign for Databases (DEZIGN, 2012) uma ferramenta para projeto de banco de

    dados que auxilia a criar e a manter bancos de dados. Essa ferramenta utiliza diagramas deentidade e relacionamentos para projetar e gerar bases de dados graficamente e sentenas

    SQLs.

    Os principais recursos da ferramenta DeZign for Databases so (DEZIGN, 2012):

    a) Modelar visualmente bancos de dados a modelagem feita graficamente por meio

    de diagramas de entidades e relacionamentos. O projeto pode ser apresentado em nveis de

    detalhes distintos.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    24/51

    23

    b) Gerar bancos de dados gerar scriptsDDL (Data Definition Language) completos

    para criar o banco de dados ou ger-lo diretamente.

    c) Importar base de dados derivar um modelo grfico a partir de um banco de dados

    existente. A engenharia reversa feita diretamente a partir do banco de dados ou importada de

    scriptsSQL.

    d) Sincronizar modelos ou bancos de dados as funcionalidades de sincronizao e

    comparao so possveis para todos os casos de uso: do modelo para a base de dados, do

    modelo para script, da base de dados para o modelo, do scriptpara o modelo e do modelo

    para o modelo.

    3.2 MTODO

    No mtodo utilizado para o desenvolvimento do sistema so consideradas as trs

    fases anlise, projeto e implementao propostas por Rumbaugh, et al. (1997) e as fases de

    anlise, projeto, codificao e testes do modelo sequencial linear de Pressman (2005).

    Contudo, so acrescentadas outras denominaes e mesmo fases visando explicitar as

    atividades realizadas. As fases definidas para o desenvolvimento do projeto foram:

    a) Reviso da modelagem

    A modelagem do sistema foi realizada como trabalho de estgio. Para o trabalho de

    concluso de curso essa modelagem foi revisada e ajustes foram realizados. A reviso teve

    como base os processos de negcio de uma empresa de confeco e locaoderoupas.

    A definio dos requisitos foi baseada nas necessidades e interesse de uma empresa

    (loja) que fabrica e aluga roupas. No foram realizadas entrevistas formais ou mesmo

    questionrios porque o autor desse trabalho conhece os procedimentos dessa empresa. E

    conversas informais foram realizadas com o proprietrio e com outros funcionrios.

    b) Implementao

    Para o trabalho de estgio, alm da modelagem, tambm foram implementados alguns

    cadastros visando estudar as tecnologias que eram, basicamente, Java com VRaptor. No

    trabalho de estgio foi utilizado o VRaptor para o controle entre as classes Java e os JSPs.

    Contudo, no prosseguimento da implementao, como trabalho de concluso de curso, muitas

    dificuldades foram encontradas com o uso do VRaptor. Assim, fez-se um levantamento de

    outrosframeworksque poderiam ser utilizados. As pesquisas indicaram que o uso de JSF com

    PrimeFaces, IceFaces ou RichFaces facilitaria a implementao.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    25/51

    24

    Optou-se pelo uso de PrimeFaces juntamente com JSF pelos vrios comentrios

    favorveis postados em blogs tcnicos, ou seja, de programadores. Com o desenvolvimento

    do trabalho percebeu-se que, efetivamente, o uso do PrimeFaces relativamente mais fcil, se

    comparado com o VRaptor. Assim, os cadastros implementados como trabalho de estgio

    foram completamente refeitos.

    c) Testes

    Em termos de testes eles estiveram centrados em verificar o cdigo e foram realizados

    pelo prprio autor deste trabalho. Os testes de requisitos e mesmo de usurio sero realizados

    posteriormente. Isso porque h interesse em implantar esse sistema em uma empresa de

    confeco e aluguel de roupas. Essa empresa serviu de base para a definio dos requisitos.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    26/51

    25

    4 RESULTADO

    Este captulo apresenta o sistema obtido como resultado da realizao deste trabalho.

    4.1 APRESENTAO DO SISTEMA

    O sistema gerenciar os aluguis de roupas da empresa. As roupas de aluguis podem

    ser fabricadas sob medida, mas, neste caso, o valor do primeiro aluguel da roupa mais

    elevado. As roupas para locao tambm podem ser ajustadas s medidas do cliente.

    Depois de realizada uma locao, o cliente tem trs dias para cancelar o aluguel. Se a

    locao for cancelada aps esse perodo ser cobrado 50% do valor da locao. As roupas

    disponibilizadas para locao podero ser vendidas, caso o cliente deseje compr-las. No caso

    de venda, h cobrana de juros se houver atraso no pagamento.

    Ao ser efetuado um aluguel definido um valor de entrada. Esse valor destinado

    para compra de materiais, quando o primeiro aluguel ou simplesmente como garantia. O

    restante do pagamento realizado na entrega da pea ao cliente. A data de devoluo

    informada pelo cliente. Se essa data ultrapassar um final de semana, o cliente dever pagar

    mais um aluguel da roupa, podendo ser 30% a menos, caso a roupa no tenha sido reservada

    para locao para outro cliente. Se na devoluo a roupa retornar com danos, como rasgos e

    manchas impossveis de serem retiradas, ser cobrado o valor da roupa do cliente, aps ser

    feita uma avaliao dos danos.

    O sistema contar com um controle de estoque das roupas j confeccionadas, as roupas

    tero referncia prpria e dados adicionais como cor e tamanho (um vestido curto ou longo,

    por exemplo).

    O controle financeiro da empresa ser tratado pelo sistema como entradas e sadas.

    Contando com um cadastro de contas, boletos, tarifas e despesas em geral. O sistema emitir

    um alerta (por email) para o cliente das contas a serem pagas com at uma semana de

    antecedncia e o informar tambm sobre contas vencidas.

    O sistema gerenciar tambm a devoluo de roupas danificadas que no tenham

    conserto. Haver uma opo para dar baixa na roupa e tir-la do cadastro de aluguis. Porm

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    27/51

    26

    ficar gravado no sistema qual foi o cliente responsvel pelo dano, a data e o valor da roupa,

    alm da identificao da roupa e do valor pago pelo cliente.

    O acesso ao sistema ser feito por meio de login. O cadastro dos usurios realizado

    pelo administrador do sistema.

    4.2 MODELAGEM DO SISTEMA

    A Figura 3 contm o diagrama de casos de uso definido para o sistema. Esse diagrama

    tambm mostra que todas as operaes sero feitas aps o usurio estar logado no sistema.

    Por meio desse diagrama possvel, tambm, verificar que o gerente da empresa herda todasas funcionalidades da classe funcionrio e assim tem acesso a todas as funcionalidades do

    sistema.

    Figura 3 Diagrama de casos de uso

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    28/51

    27

    A Figura 4 contm o diagrama de classes do sistema. Por meio desse diagrama

    possvel verificar que a nica maneira de acesso ao sistema por login. O acesso realizado

    por meio da classe login. Por questo de segurana somente podero fazer loginos usurios

    que forem cadastrados pelo gerente da empresa usuria. O gerente tem permisses de

    administrador do sistema.

    Figura 4 Diagrama de classes do sistema

    O sistema implementado realiza processos para chegar a resultados. Para exemplificaras funes representadas por esses processos foram utilizados diagramas de sequncia. A

    Figura 5 contm o diagrama de sequncia do processo de aluguel de roupas.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    29/51

    28

    Figura 5 Diagrama de sequncia para o processo de aluguel de roupas

    A Figura 6 ilustra o processo para efetuar loginno sistema. Se o loginest correto, o

    sistema realiza o logine informa que o mesmo foi efetuado.

    Figura 6 Diagrama de sequncia para login no sistema

    Na Figura 7 est o processo de registro do cliente. Nesse processo, o cliente informa

    os seus dados ao funcionrio que o cadastra no sistema. O sistema faz a verificao se o

    cliente j est cadastrado, caso ele no esteja permitido o cadastro do mesmo.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    30/51

    29

    Figura 7 Diagrama de sequncia para cadastro de clientes

    O diagrama da Figura 8 mostra o processo para cadastro de uma despesa. O gerente da

    empresa foi tratado como um funcionrio neste diagrama, porm somente o gerente poder

    cadastrar estas despesas. O sistema recebe os dados da despesa, verifica se ela j existe, caso

    no exista permite o cadastro da mesma.

    Figura 8 Diagrama de sequncia para cadastro de uma despesa

    O diagrama da Figura 9 representa a venda de uma roupa. Nessa venda o cliente

    informa a roupa e o cliente. Se o cliente no estiver cadastrado, o sistema solicita seu registro

    e aps isso solicitada a data da compra da roupa para registrar a venda no sistema.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    31/51

    30

    Figura 9 Diagrama de sequncia para a venda de roupas

    Na Figura 10 est o diagrama que representa a sequncia de aes para o registro deuma roupa. Para cadastrar uma roupa, o funcionrio informa os dados e o sistema verificar se

    a mesma j est cadastrada. Caso no esteja, permitir fazer o cadastro da mesma, informando

    se o cadastro foi efetuado com sucesso.

    Figura 10 Diagrama de sequncia para cadastrar uma roupa no sistema

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    32/51

    31

    4.3 DESCRIO DO SISTEMA

    Ao acessar o sistema apresentada uma tela de login. Nessa tela, o usurio informa

    os dados para acesso que so o identificador do usurio (login) e a respectiva senha. A Figura

    11 apresenta a tela de login.

    Figura 11 Tela de login no sistema

    Caso os dados informados para login estejam corretos, o sistema redirecionar o

    usurio para a tela inicial do sistema (Figura 12). Nessa tela h um menu de opes que

    apresentam as funcionalidades disponveis do sistema.

    Figura 12 Tela inicial do sistema

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    33/51

    32

    A Figura 13 apresenta a forma de cadastro de usurio. Para isso basta estar logado

    com um usurio administrador (Admin) e selecionar a opo Usurios - Cadastrar que o

    sistema mostrar a tela de cadastro de usurio.

    Figura 13 Cadastro de usurio

    Nesta tela aps serem informados os dados do usurio e clicar em Salvar, o sistema

    efetuar o processo de incluso do usurio no banco de dados. Caso este processo tenha sido

    efetuado sem nenhum problema, o sistema redirecionar o contedo da pgina via Ajax para a

    listagem de usurios cadastrados e ser emitida uma mensagem de que o usurio foi

    cadastrado com sucesso, como mostra a Figura 14.

    Figura 14 Tela de cadastro de usurios

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    34/51

    33

    A Figura 15 apresenta a forma de cadastro de aluguel. Para isso basta estar logado

    com um usurio administrador (Admin) ou um usurio (User).

    Figura 15 Cadastro de Aluguel

    Para efetuar um aluguel (Figura 16) basta selecionar o cliente, digitando as iniciais

    do nome. Se o cliente estiver cadastrado aparecer no auto-complete do campo as opes

    para selecionar. Em seguida necessrio escolher a filial que o usurio deseja efetuar o

    aluguel. Selecionados cliente e filial, clicando no cone com o smbolo + acima da tabela

    podem ser adicionadas as peas para aluguel. Depois de adicionadas todas as peas desejadas,

    basta clicar em Efetuar Aluguel que o sistema salvar o registro do aluguel.

    Figura 16 Tela para efetuar aluguis

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    35/51

    34

    4.4 IMPLEMENTAO DO SISTEMA

    As listagens de cdigo a seguir visam exemplificar a forma de implementao dosistema. O objetivo mostrar o uso das tecnologias empregadas na implementao do

    sistema. A Listagem 1 apresenta o cdigo para login ao sistema. Na tela de login so

    informados dados para acesso ao sistema.

    Login

    Bem Vindo, informe seu usurio e senha para entrar no sistema.

    Listagem 1 Cdigo para login ao sistema

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    36/51

    35

    O cdigo da Listagem 1 est em HTML, com sua estrutura bsica head e body.

    Todos os cdigos relacionados ao sistema so colocados na tagbody. O formulrio que est

    denominado com a tagformnecessita de um actione um method,que por padro o POST,

    para funcionar. Os campos Login e Senha usaro uma caixa de texto com a estrutura

    HTML , para que o usurio informe os respectivos dados. No action

    informado o caminho que o sistema acessar a pgina. O methodespecifica a forma que os

    dados sero transferidos para o servidor, podendo ser post ou get. Neste projeto foi optado

    pelo postporque os dados no so mostrados na URL. Desta forma, eles no ficam visveis

    para o usurio e mantido o conceito de URL clean, que se baseia em manter a URL o mais

    legvel possvel.

    Na tag h uma varivel chamada messages. Essa varivel

    interpretada pelo PrimeFaces, que carrega uma mensagem de retorno que includa navarivel FacesContextdo JSF na classe Managed Bean. Na tag do logine da

    senha informado um value.Esse value informado para que o JSF vincule os dados com

    umform(Listagem 2), que nada mais que uma classe com os getse setsdos atributos que a

    pgina conversa com o Managed Bean, o real motivo do form existir e manter os dados

    encapsulados noManaged Beanque contem os mtodos das conexes com o banco de dados

    para capturar os dados da tabela User.

    packagebr.com.usandoprimefaces.form.user;

    importjava.io.Serializable;

    importbr.com.usandoprimefaces.bean.user.User;publicclassUserForm extendsUser implementsSerializable{

    /**

    *

    */

    privatestaticfinallongserialVersionUID = 1L;

    publicUserForm() {

    super();

    }

    }

    Listagem 2 Classe Form

    A Listagem 3 apresenta o cdigo responsvel por apanhar os dados informados na

    tela do login e verificar no banco de dados se esses dados esto corretos, para assim ser

    possvel o acesso ao sistema.

    publicString login() {

    User usuarioLogado = null;

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    37/51

    36

    try{

    LoginDAO dao = newLoginDAOImpl();

    usuarioLogado = dao.efetuaLogin(lf);

    if(usuarioLogado != null) {

    HttpSession session = (HttpSession) FacesContext

    .getCurrentInstance().getExternalContext()

    .getSession(false);session.setAttribute("usuarioLogado", usuarioLogado);

    return"/protected/index.xhtml";

    } else

    FacesContext.getCurrentInstance().addMessage(null,

    newFacesMessage("Usurio no autenticado!"));

    }

    } catch(Exception e) {

    e.getMessage();

    }

    returnnull;

    }

    Listagem 3 Login ao sistema

    No cdigo apresentado na Listagem 3, as informaes de loginso enviadas para o

    mtodo que carregado da classe DAOImpl. Esse mtodo espera como parmetro um objeto

    do tipo usere verifica se ele est correto. Caso o mtodo carregado retorne null, significa que

    o loginou a senha informados so invlidos. E ento o mtodo redireciona o usurio para a

    pgina do logindo sistema com uma mensagem de erro. Se as informaes de login esto

    corretas, o usurio adicionado em uma session com o nome de usuarioLogado e

    redirecionado para a pgina index, que a tela inicial do sistema. Nessa listagem de cdigo

    tambm so efetuados os tratamentos de erros que podem ser gerados. Caso um erro ocorrauma mensagem adicionada na FacesContextdo JSF e o usurio redirecionado para a tela

    de logindo sistema.

    Na Listagem 4 est o cdigo que cria a queryde consulta para verificao dos dados

    e retorna o usurio caso encontrado, ou uma mensagem de erro.

    packagebr.com.usandoprimefaces.daoimpl.login;

    importorg.hibernate.Session;

    importorg.hibernate.SessionFactory;

    importorg.hibernate.criterion.Restrictions;

    importbr.com.usandoprimefaces.bean.user.User;importbr.com.usandoprimefaces.dao.login.LoginDAO;

    importbr.com.usandoprimefaces.form.login.LoginForm;

    importbr.com.usandoprimefaces.util.HibernateUtils;

    publicclassLoginDAOImpl implementsLoginDAO {

    /* Mtodo que verifica o usuario no banco */

    @Override

    publicUser efetuaLogin(LoginForm form) {

    User usuario = null;

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    38/51

    37

    SessionFactory session = HibernateUtils.getSessionFactory();

    Session sess = session.openSession();

    try{

    sess.beginTransaction();

    usuario = (User) sess.createCriteria(User.class)

    .add(Restrictions.eq("usuario", form.getUsuario()))

    .add(Restrictions.eq("senha", form.getSenha()))

    .uniqueResult();

    sess.getTransaction().commit();

    } catch(Exception ex) {

    System.out.println("Erro ao conectar "+ ex.getMessage());

    sess.close();

    } finally{

    if(sess != null) {

    sess.close();

    }

    }

    returnusuario;

    }

    }

    Listagem 4 Cdigo para consulta de usurio ao banco de dados

    No cdigo apresentado na Listagem 4 est o tratamento do mtodo que carrega a

    classe DAOImpl.Nesse mtodo verificado se o usurio informado est correto. Primeiro,

    utiliza-se uma varivel usuario do tipo User e uma SessionFactory do Hibernate para

    pesquisar no banco de dados. Com a criteria query criado o cdigo SQL de consulta no

    banco para verificar se os dados do usurio esto corretos. Em seus parmetros so passados

    os dados recuperados da pgina que foram informados pelo usurio e adicionado em forma de

    restrictions, e esperado um UniqueResultque ir retornar um resultado nico do banco dedados. Se atender essas condies, as excees so tratadas e o usuario retornado.

    Na Listagem 5 apresentado o cdigo para capturar os dados informados pelo

    usurio Administrador, para assim ser efetuado o cadastro do usurio.

    Cadastro e Edio de Usurio

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    39/51

    38

    Listagem 5 Cdigo para cadastro de usurio

    O cdigo constante na Listagem 5 segue o mesmo padro da Listagem 1 Cdigo

    para loginao sistema. Para cada campo do cadastro de usurios foi utilizado um labelpara

    informar o campo e um inputpara informar ao usurio e uma caixa de texto para informar os

    dados. Essa caixa contm um nome e um valuepara ser utilizado peloManage Beane para

    que esses dados possam ser utilizados na pgina JSF.

    Na Listagem 6 informado o cdigo em que o usurio passado para a classe

    responsvel por chamar os mtodos que salvam o usurio no banco de dados.

    publicString salvar() {

    UserDAO dao = newUserDAOImpl();

    User user = newUser();

    HttpSession session = (HttpSession) FacesContext.getCurrentInstance()

    .getExternalContext().getSession(false);

    User usuario = (User) session.getAttribute("usuarioLogado");

    try{

    // Funo usada para passar os dados do Object UserForm para o User

    if(usuario.getRole().name().equalsIgnoreCase(Role.ADMIN.name())) {

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    40/51

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    41/51

    40

    Na Listagem 8 est o cdigo do mtodo para salvar o cadastro invocado.@Override

    publicUser save(User user) {

    SessionFactory session = HibernateUtils.getSessionFactory();

    Session sess = session.openSession();try{

    sess.beginTransaction();

    sess.merge(user);

    sess.getTransaction().commit();

    returnuser;

    } catch(HibernateException ex) {

    System.out.println("Erro ao salvar objeto: "+

    ex.getMessage());

    sess.getTransaction().rollback();

    sess.close();

    } finally{

    if(sess != null) {

    sess.close();

    }}

    returnnull;

    }

    Listagem 8 Cdigo para salvar cadastro de usurio invocado

    Na Listagem 8 est o mtodo saveinvocado na Listagem 6. Esse mtodo inicia uma

    transao com o banco de dados por meio de uma SessionFactorydoHibernate. Na execuo

    dessa transao atribuda a entidade User, que foi passada por parmetro na chamada do

    mtodo. Aps isso utilizado o mergepara gravar no banco de dados. O mergeverifica se o

    registro sendo salvo j est no banco. Se no estiver o mesmo cadastrado e realizado umcommitda transao, retornando o registro que foi cadastrado.

    Na Listagem 9 apresentado o cdigo para capturar os dados informados pelo

    usurio do sistema para ser efetuado o cadastro do aluguel.

    A

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    42/51

    41

    A

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    43/51

    42

    E

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    44/51

    43

    Listagem 9 Cdigo para efetuar aluguel

    No cdigo da Listagem 9, o actiondo boto Efetuar Aluguel na pgina JSF contm

    oManaged beane o nome do mtodo que existe nele e responsvel para efetuar o aluguel.

    Logo aps o mtodo ser invocado, o sistema verifica se o usurio conectado um

    administrador (Admin) ou um usurio (User), caso seja executada uma funo da

    BeanUtils.copyProperties que apanha os dados do forme os passa para o objeto aluguel. Em

    seguida so atribudos valores aos campos e chamado o mtodo efetuarALuguel da classe

    DAO que recebe como parmetro o aluguel que foi criado e populado. Em seguida

    adicionada a mensagem de sucesso no cadastro e ento o sistema redireciona o usurio atravs

    do return para a pgina de listagem de aluguis ativos e pendentes que o padro dos novos

    aluguis.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    45/51

    44

    Na Listagem 10 informado o cdigo em que o aluguel passado para a classe

    responsvel por chamar os mtodos que efetuam o aluguel no banco de dados.

    A()

    ADAO = ADAOI();EDAO E = EDAOI();

    A = A();

    H = (H) FC.C().EC().(); = () .A("L");

    /** ADMIN E */

    (.().().IC(.AD.()) .().().IC(.E.())) // F O AF // // AB.(, );

    // .(());.().A(());.C(C);.E(E.BI(.E().I()));

    .P();.D();

    // E .A();

    FC.C().M(,FM("E !!!"));"///AAP."; FC.C().M(,

    FM(" !!!"));

    (IAE ) FC.C().M(,FM("N : "+ .M())); (IE ) FC.C().M(,

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    46/51

    45

    FM("N : "+ .M()));

    ;

    Listagem 10 Cdigo do Managed Bean para efetuar o aluguel e outras funcionalidades

    No cdigo apresentado na Listagem 10 criada uma instncia de Aluguel para

    armazenar os dados recebidos da pgina JSF, uma instncia do DAO para acessar os mtodos

    existentes e uma HttpSession para obter o usurio logado.

    O cdigo apresentado na Listagem 11 responsvel por chamar os mtodos para as

    listagens, auto-complete do cliente, efetuao de aluguis, desativao de aluguis e

    ativao de aluguis. No pacote DAO esto todas as interfaces do sistema. Na interface

    apresentada na Listagem 11 invocado o mtodo efetuarALuguelpara salvar o aluguel no

    banco de dados.

    publicbr.com.usandoprimefaces.dao.aluguel;

    importjava.util.List;

    importbr.com.usandoprimefaces.bean.aluguel.Aluguel;importbr.com.usandoprimefaces.bean.cliente.Cliente;

    publicinterfaceAluguelDAO {publicList listarAtivoPendente();publicList listarAtivoBaixado();publicList listarDesativados();publicList autoCompleteCliente(String strPesquisa);publicAluguel efetuarAluguel(Aluguel aluguel);publicvoiddesativarAluguel(Aluguel aluguel);publicvoidativarAluguel(Aluguel aluguel);publicvoidbaixarAluguel(Aluguel aluguel);

    }Listagem 11 Cdigo para chamar mtodos de listagem, desativao, ativao e efetuao do aluguel eautocomplete do cliente

    Na Listagem 12 representado o mtodo efetuarALuguel invocado na Listagem 11.

    Esse mtodo inicia uma transao com o banco de dados por meio de uma SessionFactorydo

    Hibernate. Na execuo dessa transao atribuda a entidade Aluguel, que foi passada por

    parmetro na chamada do mtodo. Aps isso utilizado o mergepara gravar no banco de

    dados. O mergeverifica se no local em que ser salvo o aluguel no banco no h registro. Se

    no houver cadastra e faz um commitda transao, retornando o aluguel que foi cadastrado.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    47/51

    46

    @OA A(A )

    F = H.F(); = .();

    .();.();.().();; (HE ) ..("E : "+ .M());.().();.(); ( != ) .();;

    Listagem 12 Cdigo para efetuar o aluguel no banco de dados

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    48/51

    47

    5 CONCLUSO

    O objetivo deste trabalho de concluso de curso foi a implementao de um sistema

    para aluguel e venda de roupa. A aplicao desenvolvida voltada para web, utilizando

    recursos que caracterizam uma aplicao Internet como rica, as denominadas RIAs. Dessa

    forma, o referencial terico do trabalho esteve centrado em conceitos relacionados a esse tipo

    de aplicao e tecnologias para o seu desenvolvimento.

    Como estgio, o autor deste trabalho fez uma primeira verso da modelagem e

    implementou alguns cadastros. Com o decorrer do desenvolvimento, especialmente para

    funcionalidades mais complexas, ou seja, no cadastros simples, muitas dificuldades foram

    encontradas na implementao. Assim, decidiu-se buscar alternativas tecnolgicas para a

    implementao do sistema. Optou-se pelo uso de JSF com PrimeFaces pelas muitas

    referncias favorveis ao uso dessas tecnologias encontradas na Internet e pelas opinies de

    programadores conhecidos. Desta forma, a codificao do sistema teve que ser reiniciada.

    Com as mudanas realizadas em termos de tecnologias, para o desenvolvimento do

    sistema foram utilizadas as tecnologias Java para web, com frameworks que facilitam o

    desenvolvimento como o Hibernate para persistncia de dados no banco, Java Server Faces

    2.0 que procura encapsular toda a API e PrimeFaces que disponibiliza uma grande facilidade

    para implementao da interface utilizando Java Script, Ajax e Jquery, assim como suas

    validaes.

    Optou-se pelo desenvolvimento para webpelo fato da facilidade de interligar as filiais

    e a matriz e por ter um nico banco de dados para toda a rede de lojas. Isso porque a empresa

    que utilizar esse sistema composta por matriz e filiais. Assim, os gerentes podem fazer

    consultas e anlises da sua loja sem precisar entrar em contato direto com outras pessoas,

    agilizando o processo.

    Com o decorrer do desenvolvimento deste projeto foi adquirido muito conhecimento

    em Java para web e nas outras tecnologias utilizadas. A necessidade de pesquisar sobre astecnologias que foram utilizadas permitiu analisar os cdigos elaborados de outra maneira.

    Verificou-se nessa busca pelo aprendizado que uma boa maneira de melhorar a elaborao do

    prprio cdigo utilizar APIs, sem esquecer que importante o conhecimento dos conceitos

    fundamentais. Dentre esses conceitos destacam-se os relacionados orientao a objetos e das

    prprias linguagens, incluindo o Jquery e JavaScript.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    49/51

    48

    Com o desenvolvimento deste trabalho percebeu percebeu-se que muitas vezes

    necessrio projetar o desenvolvimento do restante do sistema para que as interferncias entre

    as funcionalidades sejam visualizadas e analisadas.

    Como trabalhos futuros, destacam-se especialmente a implementao de todas as

    funcionalidades definidas para o sistema, inclusive as que surgiro com a realizao dos

    testes. Os testes de usurios sero realizados pela empresa que utilizar o sistema. Os testes

    para verificar consistncia e validaes do sistema sero realizados pelo prprio autor deste

    trabalho.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    50/51

    49

    REFERNCIAS

    ASTAH. Astah community. Disponvel em: . Acesso em: 08 ago. 2012.

    BIANCHINI, Sandro. Avaliao de mtodos de desenvolvimento de aplicaes web.Dissertao ICMC/USP, 2008.

    CHUNG, Sam; LEE, Yun-Sik. Modeling web applications using Java and XML relatedtechnologies. Proceedings of the 36th Hawaii International Conference on System Sciences(HICSS03), 2003, p. 322-331.

    DEZIGN. DeZign for databases. Disponvel em:. Acesso em: 25 ago. 2012.

    ECLIPSE. Eclipse IDE. Disponvel em: . Acesso em: 05 set. 2012.

    GAMMA, Erich; JOHNSON, Ralph; HELM, Richard; VLISSIDES, John. Padres deprojeto: solues reutilizveis de software orientado a objetos.Porto Alegre: Bookman,2000.

    GLASSFISH. JavaServer Faces specification. Disponvel em: . Acesso em: 10 ago. 2012.

    HIBERNATE, Hibernate - JBoss community. Disponvel em: .Acesso em: 02 ago. 2012.

    JAVA. Java. Disponvel em: http://www.oracle.com/us/technologies/java/index.html. Acesso

    em: 12 ago. 2012.JQUERY, Jquery. Disponvel em: . Acesso em: 12 ago. 2012.

    JSF. JavaServer Faces. Disponvel em: . Acesso em: 20set. 2012.

    KHIN, Su Su. Business processes solution with apache struts framework. 2009International Conference on Computer Engineering and Technology (ICCET). IEEEComputer Society, 2009, p. 280-282.

    MIRANDA, Divino Gomes; SILVA, Marcos Alberto Lopes da. Novos recursos paradesenvolvimento na plataforma JavaEE 5 com a especificao EJB 3.0 , 2006. Disponvelem: http://www.linhadecodigo.com.br/Artigo.aspx?id=1085. Acesso em: 09 jul. 2012.

    MYSQL. MySQL. Disponvel em: . Acesso em: 10 de set. 2012.

    PRAJAPATI, Harshad B.; DABHI, Vipul K. High quality web-application development onJavaEE platform. IEEE International Advance Computing Conference (IACC 2009), 2009,p. 1664-1669.

    PRESSMAN, Roger. Engenharia de software. Rio de Janeiro: MacGraw-Hill, 2005.

  • 8/12/2019 Sistema Web Para Aluguel de Roupas

    51/51

    50

    PRIMEFACES. PrimeFaces quickstart tutorial-part1. Disponvel em:http://java.dzone.com/articles/primefaces-quickstart-tutorial. Acesso em: 18 ago. 2012.

    RUMBAUGH, James; BLAHA, Michael; PREMERLANI, William; EDDY, Frederick;LORENSEN, William. Modelagem e projetos baseados em objetos. Rio de Janeiro:

    Campus, 1997.SILVA, Maurcio Samy. JQuery. A biblioteca do programador JavaScript. Novatec, 2010.

    SOUZA, Vtor. Introduo ao desenvolvimento web em Java, 2008. Disponvel em:http://creativecommons.org/licenses/by-nc-sa/2.5/deed.pt. Acesso em: 7 set. 2011.

    TOMCAT. Apache Tomcat. Disponvel em: . Acesso em: 12 set.2011.

    WANG, Guanhua. Application of lightweight MVC-like structure in PHP. 2011International Conference on Business Management and Electronic Information (BMEI 2011),IEEE, 2011, p. 74-78.