UNISALESIANO Centro Universitário Católico Salesiano Auxilium Curso de Tecnologia em Sistemas para Internet Bruno Allan Prado Regattieri Leandro Pavoni Alexandre de Oliveira Shopping Virtual – Cooperativa Digital para Pequenas e Médias Empresas LINS – SP 2010 BRUNO ALLAN PRADO REGATTIERI LEANDRO PAVONI ALEXANDRE DE OLIVEIRA SHOPPING VIRTUAL – COOPERATIVA DIGITAL PARA PEQUENAS E MÉDIAS EMPRESAS Trabalho de Conclusão de Curso apresentado à Banca Examinadora do Centro Universitário Católico Salesiano Auxilium, curso de Tecnologia em Sistemas para Internet, sob a orientação do(a) Prof. (ª) M.Sc Anderson Pazin LINS – SP 2010 R258s Regattieri, Bruno Allan Prado; Oliveira, Leandro Pavoni Alexandre de Shopping Virtual – Cooperativa digital para pequenas e médias empresas / Bruno Allan Prado Regattieri; Leandro Pavoni Alexandre de Oliveira. – – Lins, 2010. 79p. il. 31cm. Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium – UNISALESIANO, Lins-SP, para graduação em Tecnologia em Sistemas para Internet, 2010. Orientador: Anderson Pazin 1. Comércio eletrônico. 2. Java. 3. Vendas. 4. Internet. I Título. CDU 004 BRUNO ALLAN PRADO REGATTIERI LEANDRO PAVONI ALEXANDRE DE OLIVEIRA SHOPPING VIRTUAL – COOPERATIVA DIGITAL PARA PEQUENAS E MÉDIAS EMPRESAS Monografia apresentada ao Centro Universitário Católico Salesiano Auxilium, para obtenção do título de Tecnólogo em Sistemas para Internet. Aprovada em: _____/______/_____ Banca Examinadora: Prof(a) Orientador(a): _____________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ 1º Prof(a): ______________________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ 2º Prof(a): ______________________________________________________ Titulação: ______________________________________________________ _______________________________________________________________ Assinatura: _________________________________ I have a dream... (Eu tenho um sonho) Martin Luther King DEDICATÓRIA Dedico este trabalho primeiramente a Deus. A minha família, em especial a minha mãe, Eliane, que em nenhum momento deixou de estar ao meu lado. Ao meu irmão, André, pelo companheirismo e amizade. Aos amigos de classe, em especial, Murillo, Maria e Pedro por cada palavra de incentivo, cada ajuda e cada minuto ao meu lado. Ao meu companheiro neste trabalho, Leandro, pela confiança em mim depositada. Finalmente, aos meus professores que não mediram esforços para nos passar todo o seu conhecimento. Bruno Regattieri Dedico este trabalho a Deus que me deu forças para conseguir finalizá-lo. Aos meus pais, João Paulo e Irene, pelo apoio, dedicação, esforço e ensinamentos dedicados a mim desde a minha infância. A minha família, em especial a minha esposa Vanessa e meu enteado Igor, pela paciência e apoio imprescindíveis nesta fase de minha vida. A meus tios Edenei e Sandra, que me deram a oportunidade de trabalho, dando-me a possibilidade de cursar uma faculdade. Aos meus colegas de curso, Murillo, Pedro e Maria Eliza, pela ajuda e companheirismo, no decorrer do curso. Ao meu parceiro Bruno, pela sua colaboração para a realização deste trabalho. A todos os professores, em especial ao orientador deste trabalho Prof. M. Sc Anderson Pazin, pela ajuda e esforço em nos transmitir o conhecimento necessário para a realização deste trabalho. Leandro Pavoni AGRADECIMENTOS Agradecemos a todos que de alguma maneira colaboraram para o desenvolvimento deste trabalho. Bruno e Leandro RESUMO O presente trabalho tem como objetivo desenvolver um sistema de comércio eletrônico voltado a empresas de pequeno e médio porte que desejam, por meio da internet, ampliar seu campo de atuação no mercado. Cresce a cada dia o número de pessoas que têm acesso à rede mundial de computadores, e com isso, a possibilidade de se efetuar compras por este tipo de software. O tema voltado ao comércio eletrônico tem por razão a atual ascendência no mercado de transações de produtos feitas a partir de sites. O sistema proposto neste trabalho simula um shopping ou uma cooperativa de lojas virtuais, oferecendo um conjunto de recursos administrativos aos lojistas e diversas ferramentas aos clientes. Com este sistema, os usuários podem utilizar-se das ferramentas de busca para localizar produtos ou mercadorias desejadas; fazer uma análise das descrições e ou especificações; optarem pela forma de pagamento que lhes convier; e assim, efetivar sua compra apenas por meio da internet. Essas compras que só serão finalizadas após cadastro do cliente no site. Para os lojistas, a utilização deste sistema propiciará diminuição de seus custos, uma vez que poderá beneficiar-se de não dispor de um estabelecimento para exposição física das mercadorias. Em suma, o processo de compra e venda por meio da internet é muito benéfico, pois produz economia a ambas as partes o que eleva consideravelmente o poder de compra por parte do cliente e investimento por parte dos fornecedores. Palavras-chave: Comércio Eletrônico, Java, Vendas, Internet. ABSTRACT The present work aims to develop an e-commerce system aimed at small and medium-sized businesses that desire, through the Internet, open your business or expand its field of activity in the market. Grows every day the number of people who have access to the worldwide computer network, and thereby the ability to make purchases by such software. The topic turned to electronic commerce is why the current ascendancy of the market transactions of products made from sites. Hereby, we present a system capable of performing sales from a list of registered tenants and thus generate these reports in order to provide greater control and credibility. With this system, users can use up the search engines to locate desired products or goods, may make an analysis of the descriptions and specifications or, opt for a payment method that suits them, and thus effecting their purchase only through the Internet. Purchases that can only be finalized after registration of a client site. And yet, for suppliers, the use of this system will facilitate reduction of its costs, since it may benefit from not having a physical facility to display the good. In short, the process of buying and selling through the Internet is very beneficial because it produces savings to both parties which will increase considerably the purchasing power of the client and investment by suppliers. Keywords: E-Commerce. Java. Sales. Internet. LISTA DE FIGURAS Figura 1. Exemplo de diagrama de pacotes.................................................. 17 Figura 2. Representação gráfica de uma classe ........................................... 18 Figura 3. Exemplo de relacionamento de associação ................................... 18 Figura 4. Exemplo de diagrama de classes .................................................. 19 Figura 5. Diagrama de classes para acordos de vendas de assentos .......... 19 Figura 6. Diagrama de objetos para confirmação do diagrama da ............... 20 Figura 7. Representação de uma classe no diagrama de estrutura de composição ....................................................................................................... 21 Figura 8. Diagrama de componentes ............................................................ 21 Figura 9. Exemplo de diagrama de implantação ........................................... 22 Figura 10. Diagrama combinado de Componentes/Implantação .................... 23 Figura 11. Exemplo de diagrama de casos de uso ......................................... 24 Figura 12. Diagrama de atividade ................................................................... 25 Figura 13. Exemplo de diagrama de seqüencia .............................................. 26 Figura 14. Diagrama de máquina de estados ................................................. 26 Figura 15. Diagrama de máquina de estados do protocolo ............................ 27 Figura 16. Tela inicial do site Mercado Livre ................................................... 37 Figura 17. Tela de cadastro do site Mercado Livre ......................................... 37 Figura 18. Página inicial do site Submarino .................................................... 38 Figura 19. Diagrama de Use Case 1 – Cadastrar Usuário .............................. 44 Figura 20. Diagrama de Use Case 2 – Efetuar Login ..................................... 45 Figura 21. Diagrama de Use Case 3 – Cadastrar Produto ............................. 46 Figura 22. Diagrama de Use Case 4 – Relatório de Produtos por Loja .......... 47 Figura 23. Diagrama de Use Case 5 – Relatório de entrega .......................... 47 Figura 24. Diagrama Use Case 6 – Cliente Realiza Pedido............................ 48 Figura 25. Diagrama de Use Case 7 – Relatório de Pedidos.......................... 50 Figura 26. Diagrama de Use Case 8 – Relatório de Produtos Vendidos por Loja. .................................................................................................................. 51 Figura 27. Diagrama de Use Case 9 – Relatório de Produtos por subcategoria .......................................................................................................................... 52 Figura 28. Diagrama de Use Case 10 - Relatório de Produtos por nome....... 52 Figura 29. Diagrama de Seqüência 1 – Cadastrar Usuário ............................ 54 Figura 30. Diagrama de Sequência 2 – Efetuar Login .................................... 55 Figura 31. Diagrama de Sequência 3 – Cadastrar Produto ............................ 56 Figura 32. Diagrama de Sequência 4 – Relatório de Produtos por Loja ......... 57 Figura 33. Diagrama de Sequência 5 – Relatório de Entrega ........................ 57 Figura 34. Diagrama de Sequência 6 – Realizar Pedido ................................ 58 Figura 35. Diagrama de Sequência 7 – Relatório de Pedidos ........................ 59 Figura 36. Diagrama de Sequência 8 – Relatório de Produtos Vendidos por Loja ................................................................................................................... 60 Figura 37. Diagrama de Sequência 9 – Relatório de Produtos por Subcategoria ..................................................................................................... 61 Figura 38. Diagrama de Seqüência 10 – Relatório de Produtos por Nome .... 61 Figura 39. Diagrama de Classes .................................................................... 62 Figura 40. Tela inicial do sistema ................................................................... 68 Figura 41. Tela de cadastro de pessoa física ................................................. 69 Figura 42. Tela de cadastro de pessoa jurídica .............................................. 70 Figura 43. Tela de busca por produtos pelo nome ......................................... 70 Figura 44. Tela de carrinho de compras ......................................................... 71 Figura 45. Tela de cadastro de produtos ........................................................ 71 Figura 46. Tela de inserção de imagem do produto ....................................... 72 Figura 47. Tela inicial do perfil dos lojistas ..................................................... 73 Figura 48. Apresenta a tela de cadastro de produtos ..................................... 73 Figura 49. Tela de alteração de cadastro de pessoa jurídica ......................... 74 Figura 50. Tela de cliente logado ................................................................... 74 Figura 51. Tela de carrinho de compras vazio. ............................................... 75 Figura 52. Tela de pesquisa de produtos realizada ........................................ 75 Figura 53. Tela de alteração de cadastro de cliente ....................................... 76 LISTA DE QUADROS Quadro 1. Lista de Casos de Uso ................................................................. 43 Quadro 2. Tabela Categoria de Produtos ..................................................... 63 Quadro 3. Tabela Sub Categoria de Produtos .............................................. 63 Quadro 4. Tabela Produtos .......................................................................... 64 Quadro 5. Tabela Lojas ................................................................................ 64 Quadro 6. Regras de validação de campo da tabela Lojas .......................... 64 Quadro 7. Tabela Usuários ........................................................................... 65 Quadro 8. Tabela Clientes ............................................................................ 65 Quadro 9. Tabela Pedido.............................................................................. 66 Quadro 10. Tabela Forma de Pagamento ...................................................... 66 Quadro 11. Tabela Itens Pedidos ................................................................... 66 Quadro 12. Tabela Entrega ............................................................................ 67 LISTA DE TABELAS Tabela 1. Previsão de crescimento na internet no Brasil. .............................. 36 LISTA DE SIGLAS OU ABREVIATURAS AJAX: Asynchronous JavaScript and XML (JavaScript e XML Assíncronos) API: Application Programming Interfaces (Interfaces de Programação de Aplicativos) B2C: Business to Consumer (Negócios para Consumidores) CSS: Cascading Style Sheets (Folhas de Estilo em Cascata) DOM: Document Object Model (Documento de Modelo de Objeto) EL: Expression Language (Expressões de Linguagem) HTML: HiperText Markup Language (Linguagem de Marcação de Hipertexto) JSP: Java Server Pages (Servidor de Páginas Java) JSTL: Java Standard Tag Library (Biblioteca de Tags Padrão Java) JVM: Java Virtual Machine (Máquina Virtual Java) PDA: Personal Digital Assistant (Assistente Pessoal Digital) POO: Programação Orientada a Objetos SGBD: Sistema Gerenciador de Banco de Dados SQL: Structed Query Language (Linguagem de Consulta Estruturada) UML: Unified Modeling Language (Linguagem de Modelagem Unificada) XHTML: Extensible Hipertext Markup Language (Linguagem Extensível de Marcação de Hipertexto) XML: Extensible Markup Language (Linguagem de Marcação Extensível) XSLT: Extensible Style Sheet Language Transformation (Linguagem de Transformação de Folha de Estilos Extensiva) SUMÁRIO INTRODUÇÃO ........................................................................................................... 14 1 FUNDAMENTOS CONCEITUAIS.......................................................................... 16 1.1 UML – UNIFIED MODELING LANGUAGE .................................................................. 16 1.2 PLATAFORMAS TECNOLÓGICAS ............................................................................. 27 1.2.1 JAVA ................................................................................................................. 27 1.2.2 SISTEMA GERENCIADOR DE BANCO DE DADOS .................................................... 31 1.2.3 AJAX (ASYNCHRONOUS JAVASCRIPT AND XML) ................................................. 33 2 LEVANTAMENTO DE REQUISITOS .................................................................... 36 2.1 ANÁLISE DE MERCADO .......................................................................................... 36 2.2 DOCUMENTOS DE REQUISITOS .............................................................................. 38 2.2.1 A – VISÃO GERAL DO SISTEMA ..................................................................... 38 2.2.2 REQUISITOS FUNCIONAIS ............................................................................ 39 2.2.3 REQUISITOS NÃO FUNCIONAIS .................................................................... 42 3 ANÁLISE ORIENTADA A OBJETOS..................................................................... 43 3.1 LISTA DE CASOS DE USO ...................................................................................... 43 3.2 DIAGRAMA DE CASOS DE USO ............................................................................... 44 3.2.1 CADASTRAR USUÁRIO ........................................................................................ 44 3.2.2 EFETUAR LOGIN ................................................................................................ 45 3.2.3 CADASTRAR PRODUTO....................................................................................... 46 3.2.4 RELATÓRIO DE PRODUTOS POR LOJA.................................................................. 47 3.2.5 RELATÓRIO DE ENTREGA .................................................................................... 47 3.2.6 REALIZAR PEDIDO.............................................................................................. 48 3.2.7 RELATÓRIO DE PEDIDOS .................................................................................... 50 3.2.8 RELATÓRIO DE PRODUTOS VENDIDOS POR LOJA ................................................. 51 3.2.9 RELATÓRIO DE PRODUTOS POR SUBCATEGORIA .................................................. 52 3.2.10 RELATÓRIO DE PRODUTOS POR NOME ............................................................... 52 3.3 DIAGRAMAS DE SEQUÊNCIA .................................................................................. 54 3.3.1 CADASTRAR USUÁRIO ........................................................................................ 54 3.3.2 EFETUAR LOGIN ................................................................................................ 55 3.3.3 CADASTRAR PRODUTO ....................................................................................... 56 3.3.4 RELATÓRIO DE PRODUTOS POR LOJA.................................................................. 57 3.3.5 RELATÓRIO DE ENTREGA ................................................................................... 57 3.3.6 REALIZAR PEDIDO.............................................................................................. 58 3.3.7 RELATÓRIO DE PEDIDOS .................................................................................... 59 3.3.8 RELATÓRIO DE PRODUTOS VENDIDOS POR LOJA ................................................. 60 3.3.9 RELATÓRIO DE PRODUTOS POR SUBCATEGORIA .................................................. 61 3.3.10 RELATÓRIO DE PRODUTOS POR NOME .............................................................. 61 3.4 DIAGRAMA DE CLASSES ........................................................................................ 62 4 PROJETO DE BANCO DE DADOS ...................................................................... 63 4.1 TABELAS .............................................................................................................. 63 5 IMPLEMENTAÇÃO ORIENTADA A OBJETOS ..................................................... 68 5.1 LAYOUT DE TELAS ................................................................................................ 68 CONCLUSÃO ............................................................................................................. 77 REFERÊNCIAS .......................................................................................................... 78 14 INTRODUÇÃO Comércio eletrônico, e-commerce ou comércio virtual, define-se como qualquer tipo de transação comercial, feita por meios eletrônicos. Estes meios eletrônicos podem ser: computador, telefone fixo, celular, ou qualquer outro aparelho que possibilite transferências de dados em uma rede (COMÉRCIO ELETRÔNICO, 2009). Existem várias formas de aplicação do comércio eletrônico, não sendo este restrito as vendas via internet, embora esta seja a maneira mais popular deste tipo de comércio, e tema deste trabalho. O comércio eletrônico facilita e baixa os custos das vendas, deve-se a isso a cada vez maior popularização e aceitação desta “nova“ maneira de se comercializar produtos e serviços (COMÉRCIO ELETRÔNICO, 2009). O uso de páginas da internet para comercializar produtos e serviços está ganhando cada vez mais espaço no cenário econômico mundial e nacional. No Brasil, as vendas no varejo pela internet movimentaram em 2008 cerca de R$ 8,2 bilhões, um aumento de 28% em referência ao volume de vendas do ano anterior, a tendência é que este volume aumente a cada ano. O aumento do número de usuários de sites de vendas pela internet é notório, no Brasil são cerca de 13,2 milhões de consumidores. Número este que só vem aumentando nos últimos anos, se levarmos em consideração que em 2001 havia cerca de 1,1 milhões de usuários, um número 12 vezes menor do que o apresentado acima (E-COMMERCE, 2009). Com todas estas afirmações acima, este trabalho tem por objetivo desenvolver um sistema de comércio eletrônico, denominado “Shopping virtual – cooperativa digital para pequenas e médias empresas”. Neste sistema, somente as lojas cadastradas poderão disponibilizar produtos. Também através deste, é possível disponibilizar a venda de produtos pela internet para estas empresas, onde os usuários em geral visualizam os produtos das lojas, realizam buscas e escolhem os produtos de sua preferência. Desta forma, facilitando e aumentando as transações comerciais entre empresa e consumidor. A elaboração deste trabalho tem por justificativa a atual ascendência do 15 comércio eletrônico no país, além da necessidade de diversas empresas em estender seu campo de atuação perante seus clientes. O comércio eletrônico é hoje muito mais que uma aposta. (WEBARTIGOS, 2009). O sucesso do comércio eletrônico se dá por três fortes motivos: o primeiro, pela redução de custos com funcionários que as empresas têm; o segundo dá-se pelo fato de que tal modalidade de comércio incentiva a lei da oferta e procura o que acaba tornando os produtos mais acessíveis aos clientes; e o terceiro é a comodidade e facilidade por parte dos clientes na busca dos produtos. Enfim, tanto as empresas quanto os consumidores se beneficiam com a prática do comércio eletrônico, este último, fruto do desenvolvimento dos programadores e arquitetos de tecnologia da informação. (WEBARTIGOS, 2009) O sistema foi criado com base no perfil B2C (Business-to-Consumer), onde o vendedor atua entre fabricantes e clientes, estabelecendo uma relação individual. Durante o ano de 2001, cerca de 75 milhões de usuários individuais da Internet participaram de algum tipo de compra on-line. As receitas mundiais do B2C chegaram a cerca de 240 bilhões de dólares. (TURBAN; EFRAIN, KING; DAVID, 2004) 16 1 FUNDAMENTOS CONCEITUAIS 1.1 UML – Unified Modeling Language A UML – Unified Modeling Language, ou linguagem de modelagem unificada, é uma linguagem gráfica que possibilita ao desenvolvedor visualizar e analisar, de uma maneira geral, o desenho do software e a comunicação entre os objetos do mesmo. Esta forma de padronização de projetos foi elaborada a fim de auxiliar no processo de desenvolvimento de software, e mais ainda, para que algum outro analista/programador futuramente possa administrar e modificar o sistema desenvolvido anteriormente. A UML é um passo indispensável no processo de criação de sistemas computacionais. (DEITEL; DEITEL, 2005) As linguagens gráficas existem há muito tempo na indústria do software. O propulsor fundamental por trás de todas elas é que as linguagens de programação não estão em um nível de abstração suficientemente alto para facilitar as discussões sobre projeto. (FOWLER, 2005, p.25) As pesquisas nesta área começaram no final da década de 1960, com o pesquisador Ivar Jacobson, sendo este e sua equipe os responsáveis pelo desenvolvimento do primeiro projeto para desenvolvimento de sistemas computacionais. Este projeto foi feito para modelar um sistema de telecomunicações para a empresa Ericsson, empresa para qual Jacobson trabalhava, este utilizava o conceito de camadas de “blocos” - estes se aproximam do que conhecemos hoje como componentes, onde as camadas inferiores serviam de base para as camadas superiores. A equipe construiu os blocos de baixo nível com o que chamou de casos de tráfego – chamados de casos de uso na UML. Assim surgiram os primeiros conceitos de modelagem. (SCOTT, 2003) A ascensão das linguagens de modelagem se deu em meados da década de 1980, quando várias empresas começaram a utilizar programação orientada a objetos (POO) (DEITEL; DEITEL, 2005). Havia problemas em relação ao desenvolvimento de uma ferramenta para modelagem de sistemas, pois cada empresa foi criando sua própria ferramenta de modelagem, a partir deste ponto surgiu à necessidade de se criar uma ferramenta padrão. Esta foi 17 desenvolvida pela equipe da empresa Rational Software Corporation, e liderada pelos pesquisadores Ivar Jacobson, Grady Booch e Jim Rumbaugh. Estes lançaram em junho de 1996 a versão 0.9 da UML, no mesmo ano no mês de outubro foi lançada a versão 0.91. (MARCORATTI, 2009) Um grupo de empresas denominado UML Partners, formado pela Rational, HP, Oracle, IBM, Microsoft, entre outras, produziu a versão 1.0 da UML, em setembro de 1997. Lançaram a versão 1.1 e a ofereceram como padrão para o OMG (Object Management Group – Grupo de gestão de objetos), que a aceitou, e a partir desta assumiu a responsabilidade de manutenção e revisão constante da UML. Em março de 2003, foi lançada a versão 1.5. Atualmente a versão usa pelos desenvolvedores de sistemas orientados a objetos é UML 2.0, que marca a primeira revisão importante desde a versão 1.1. (DEITEL; DEITEL, 2005) A UML faz uso de notação de diagramas, podendo estes, representarem partes do sistema, ou funcionalidades do mesmo. Estes diagramas são agrupados, segundo suas funcionalidades, sendo assim representados: diagramas de gerenciamento de modelos, diagramas estruturais e diagramas comportamentais. (PENDER, 2004) Fonte: Elaborado pelos autores, 2009 Figura 1. Exemplo de diagrama de pacotes Os diagramas de gerenciamento de modelos usam os diagramas de pacotes, que são utilizados para exemplificar graficamente diferentes partes de um sistema, podendo identificar as relações entre as partes do sistema, estas partes podem ser subsistemas de um sistema mais complexo. Os pacotes, 18 neste diagrama são representados graficamente, com um ícone de pasta. (PENDER, 2004). A Figura 1 apresenta esse diagrama, podendo-se observar a interação entre os pacotes do sistema. No segundo grupo de diagramas, denominado diagramas estruturais, encontram-se os seguintes diagramas: de classes, de objetos, de estrutura e composição, de componentes, de implantação e combinado de componentes/implantação (PENDER, 2004) Fonte: Elaborado pelos autores, 2009 Figura 2. Representação gráfica de uma classe Os diagramas de classes são usados para modelar as classes do sistema e seus relacionamentos. Entende-se por classe como um molde para o objeto, estando à classe dividida, graficamente, em três partes, vide exemplo de classe na Figura 2, na parte superior é onde se encontra o nome da mesma, na parte mediana estão todas as características, atributos, do objeto e, por fim, na parte inferior desta estão as ações, métodos, do objeto. (PENDER, 2004) Fonte: PENDER, 2004, p.135 Figura 3. Exemplo de relacionamento de associação No diagrama de classes, representado na Figura 3 pode se perceber os relacionamentos entre as classes do sistema, podendo ser estes, relacionamentos de associação, agregação, composição e de herança. Todos estes elementos, classes e relacionamentos, compõem um diagrama de classes completo. (PENDER, 2004). 19 Fonte: NETO, 2009b Figura 4. Exemplo de diagrama de classes Na Figura 4 se tem a visualização de um diagrama de classes, onde as figuras retangulares representam as classes, as linhas retas as associações e as setas representam os relacionamentos de herança. (NETO, 2009) Fonte: PENDER, 2004, p. 177. Figura 5. Diagrama de classes para acordos de vendas de assentos Os diagramas de objeto são parecidos com os diagramas de classes, mas diferenciam-se da seguinte maneira, os diagramas de classes representam as classes genericamente, sem atribuir valores a seus atributos, já no diagrama de objetos acontece o contrário. Este diagrama visa exemplificar 20 as regras de negócio do sistema, inserindo valores aos atributos, pois através dele consegue-se enxergar alguns requisitos a mais para integrar o sistema. (PENDER, 2004) Na Figura 5 está exemplificado um diagrama de Classes simples para gerenciar as vendas de assentos e os respectivos acordos destas vendas. A classe “AcordoVendas”, tem como atributos a data inicial do acordo e também para registrar a data final. Na classe “Assento”, estão os atributos “id” e “proximaID”, e a operação “obterProximaID”, que retorna o valor do atributo proximaID, sendo que este retorno é guardado no atributo id. (PENDER, 2004) Fonte: PENDER, 2004, p. 177 Figura 6. Diagrama de objetos para confirmação do diagrama da A Figura 6 mostra o diagrama de objetos, onde foi criado um acordo de vendas e foi dado a este o número 6475, tendo a data inicial em 01/03/2003 e a data final em 31/03/2003. Este acordo de vendas atribui dois assentos, respectivamente, 2875 e 2876. Este tipo de diagrama é utilizado para testar diagramas de classes, como acima citado. (PENDER, 2004) O diagrama de estrutura de composição é novo na UML 2.0, pois este utiliza conceitos do antigo diagrama contexto de composição das versões anteriores. Este diagrama visa modelar as partes de uma classe, componente ou colaboração, ou como estes são compostos. Existem também neste diagrama os pontos de interação chamados portas e conectores, utilizados para acessar recursos da estrutura. (PENDER, 2004) A Figura 7 representa uma classe “Carro” (retângulo maior, com seu respectivo nome na parte superior deste), e algumas de suas peças e como estas se relacionam para fazer o carro andar. As peças apresentadas, motor, transmissão e bomba de combustível, são modeladas por retângulos internos, chamados partes, da classe carro. Os relacionamentos estão descritos através 21 das linhas entre as partes, e pelos pequenos quadrados nas extremidades destas, que são as portas. (PENDER, 2004) Fonte: PENDER, 2004, p. 182 Figura 7. Representação de uma classe no diagrama de estrutura de composição Para uma melhor implementação do sistema, foi criado o diagrama de componentes, onde o sistema se divide em partes (componentes), mas não como no diagrama de pacotes, que modela a parte lógica do sistema, neste diagrama é modelada a implementação do sistema. Por exemplo, uma classe “pedido” pode ser gerada como um componente JavaBean, ao passo que uma classe “entrada de pedido” pode ser gerada como uma página HTML. (PENDER, 2004) Fonte: PENDER, 2004, p. 45 Figura 8. Diagrama de componentes Na figura 8 é representado um diagrama de componentes que modela alguma aplicação para internet. Os componentes do sistema são representados pelos retângulos, e as linhas tracejadas representam as 22 dependências. O sistema modelado na Figura 8 mostra que alguma máquina cliente possui um navegador web tradicional, ou um navegador web sem fio, ambas para visualizarem o conteúdo disponibilizado pelo sistema, dependem de páginas JSP com conteúdo HTML, para o navegador tradicional, e WML, para o navegador sem fios, e estas dependem de classes JavaBeans, que podem conter as regras de negócios. (PENDER, 2004). O diagrama de implantação modela a parte física onde o sistema será implementado, visando uma melhor adaptação do software ao hardware. Esse tipo de diagrama é importante para se identificar a plataforma na qual será instalado o software e os recursos físicos, auxiliando na configuração do mesmo. (PENDER, 2004) A Figura 9 modela a parte física de um sistema desenvolvido para internet. Neste diagrama os retângulos representam os nós de implantação, partes físicas, do sistema e as linhas entre estes, representam as associações. (PENDER, 2004) Fonte: PENDER, 2004, p.47 Figura 9. Exemplo de diagrama de implantação É mais comum de ser utilizado o diagrama combinado de componentes/implantação. Este diagrama mostra os componentes, partes do sistema, inseridos dentro dos nós da parte de implantação, parte física. Esta conotação auxilia no entendimento de como estão armazenados fisicamente os componentes do sistema. (PENDER, 2004) 23 Conforme descrito acima, a Figura 10 representa os diagramas de componentes e de implantação combinados em um único diagrama. Os elementos em alto relevo – nós – representam a parte física do sistema, os elementos retangulares, ligados por setas tracejadas, representam os componentes dentro dos nós. (PENDER, 2004) Fonte: PENDER, 2004, p. 46 Figura 10. Diagrama combinado de Componentes/Implantação Outro conjunto de diagramas são os diagramas comportamentais, que se subdividem em diagrama de: casos de uso, atividades, interação, máquina de estados e o maquina de estados do protocolo. Esses diagramas visam descrever como os recursos modelados nos diagramas estruturais interagem e como são executadas suas atividades. O primeiro diagrama abordado é o de casos de uso (use case) que modela a interação dos usuários com o sistema, estes são chamados de atores. Em um diagrama de casos de uso, admitem-se relacionamentos entre casos de uso, não somente entre atores e casos de uso, este relacionamento é indicado por meio de setas de dependência. Este diagrama tem por objetivo identificar as expectativas do cliente para o sistema e os recursos oferecidos por este aos clientes. A seguir um exemplo de diagrama de casos de uso. (PENDER, 2004) Este diagrama representado na Figura 11 mostra o caso de uso de um sistema de uma clínica. Neste tipo de diagrama existem os atores, representados pela figura dos bonecos, os casos de uso, que são as ações que 24 os atores podem realizar no sistema, representados pelos círculos com suas respectivas ações descritas no seu interior, e as ligações entre os elementos do diagrama. (NETO, 2009) Fonte: NETO, 2009a Figura 11. Exemplo de diagrama de casos de uso No diagrama de atividades é modelada a lógica de qualquer parte do sistema. Este diagrama usa a notação de fluxograma para definir as ações que podem ser feitas no sistema através do fluxo de setas que passam por decisões e loops até chegar ao final do fluxo, identificando cada passo e cada etapa lógica do processo, como demonstrado na Figura 12. (PENDER, 2004) O próximo tipo de diagrama é um conjunto de diagramas, denominado diagrama de interação, que visa descrever a comunicação entre os objetos para realização de uma tarefa. Os diagramas inclusos nesta forma de diagramas são diagrama de seqüência, comunicação, visão geral de interação 25 e diagrama de tempo, esta lista de diagramas foi inserida nos diagramas de interação na atualização da UML 1.4 para UML 2.0, uma vez que, anteriormente só constavam desta os diagramas de seqüencia e colaboração. Segue abaixo um exemplo de diagrama de seqüencia. (PENDER, 2004) Fonte: PENDER, 2004 Figura 12. Diagrama de atividade Neste diagrama, exemplificado na Figura 13, são identificadas interações entre os objetos com o tempo, podendo visualizar as mensagens trocadas entre os objetos no decorrer de uma ação. A troca de mensagens é mostrada no diagrama através das setas, que seguem uma linha temporal. (PENDER, 2004) O diagrama de máquina de estados visa representar os possíveis 26 estados de algum determinado objeto, durante seu tempo de vida. No diagrama de máquina de estados de protocolo é como o diagrama acima citado e possui notação gráfica parecida. A diferença entre estes é que no primeiro caso é mostrado um evento que causa uma alteração no estado do objeto, já no segundo caso é mostrado quando tal evento tem permissão para fazê-lo, a máquina de estados define o que é possível, a máquina de estados do protocolo define o que é válido, respectivamente representado na Figura 14, e Figura 15. (PENDER, 2004) Fonte: Elaborada pelos autores, 2009 Figura 13. Exemplo de diagrama de seqüencia Fonte: PENDER, 2004, p.53 Figura 14. Diagrama de máquina de estados 27 Fonte: PENDER, 2004, p. 54 Figura 15. Diagrama de máquina de estados do protocolo Para um melhor e mais rápido desenvolvimento de um sistema, é indispensável que sejam estudados todos os itens acima descritos, desde a identificação de requisitos, até a modelagem total do sistema, pois uma análise bem feita de um sistema pode eliminar possíveis falhas, reduzir o retrabalho, ganho de tempo. Por fim assume-se que a UML é essencial para o desenvolvimento de sistemas orientados a objetos. 1.2 Plataformas Tecnológicas 1.2.1 Java Java é uma linguagem de programação orientada a objetos, que conta atualmente com mais de 6,5 milhões de desenvolvedores, em todo o mundo. É uma das principais linguagens utilizadas em todos os segmentos do mercado, desde a indústria, até, e principalmente, na internet. (JAVA (LINGUAGEM), 2009b) A linguagem Java foi criada em 1991, por uma equipe de pesquisadores da empresa Sun Microsystems, chefiados por James Gosling. A pesquisa, de codinome Green, que resultou na criação do Java, não tinha por objetivo desenvolver uma linguagem de programação, mas sim de prever o que seria tendência no mercado digital mundial, os pesquisadores acreditavam que, em um futuro próximo, qualquer tipo de dispositivo poderia ser controlado digitalmente. (JAVA (LINGUAGEM), 2009b) Para chegar a esse resultado foi preciso criar uma linguagem que 28 pudesse ser interpretada por outros dispositivos além do computador. (DEITEL; DEITEL, 2005) Inicialmente a linguagem Java enfrentou algumas dificuldades, pois o conceito de portabilidade do Java, não era o que o mercado almejava em termos de programação. Por isso diz-se que a linguagem Java era a idéia certa na época errada. Mas com a disseminação da internet, em 1993, a Sun decidiu adaptar a linguagem Java para esta plataforma, para inserir conteúdo dinâmico nas páginas da internet, uma vez que estas eram desenvolvidas com HTML estático. Após esta adaptação foi anunciado o lançamento oficial do Java em maio de 1995. (DEITEL; DEITEL, 2005) A grande vantagem do Java é o fato de esta ser uma linguagem independente de plataforma, utilizando-se do conceito “write once, run anywhere”, que significa escreva apenas, execute em qualquer lugar. Esta portabilidade se dá porque o Java não é uma linguagem compilada e sim uma linguagem interpretada, através da JVM (Java Virtual Machine, que traduzido significa máquina virtual Java), que dá a possibilidade de que um código Java escrito no sistema operacional Windows funcione da mesma maneira em qualquer outra plataforma, desde que esteja instalada a JVM específica desta plataforma. Sendo assim, os códigos Java são independentes de plataforma, mas as JVM’s não. (JAVA, 2009a) O processo de execução de um aplicativo Java se dá da seguinte maneira: inicialmente é criado o código-Fonte em qualquer editor de texto simples, e salvo com extensão “java”, feito isto este código passa pelo compilador que cria um arquivo de extensão “.class”, denominado bytecode, que será interpretado pela JVM, que faz o trabalho de traduzi-lo para uma linguagem que o computador possa entender, e dessa maneira é executado o programa. (JAVA, 2009a) A linguagem Java oferece a seus desenvolvedores, extensas bibliotecas de classes prontas, elaboradas para agilizar e facilitar o processo de desenvolvimento de software. Essas bibliotecas são conhecidas como Java API’s (Application Programming Interfaces, que traduzido significa, Interfaces de Programação de Aplicativos) (DEITEL; DEITEL, 2005). A cada versão do Java a sua API vai aumentando, disponibilizando uma quantidade maior de bibliotecas de classes. (SIERRA; BATES, 2007) 29 Segundo Souza (2009), o Java divide-se em três plataformas básicas, que estão listadas a seguir: a) Java Standard Edition: plataforma Java voltada para aplicações cliente, sendo que na máquina, onde for executada, deve se ter um bom poder de processamento e memória. b) Java Enterprise Edition: plataforma Java voltadas para o desenvolvimento de aplicações servidoras, robustas, que suportam um grande número de usuários, como as aplicações web. c) Java Micro Edition: plataforma Java voltada para o desenvolvimento de aplicações para dispositivos com baixa capacidade de processamento e memória. 1.2.1.1 Servlets e JSP (Java Server Pages) Os servlets são classes Java que trabalham do lado servidor auxiliandoo e aumentando suas funcionalidades. Estes são responsáveis pelo controle das requisições, do usuário (cliente), que vão para o servidor, e também são responsáveis pelas respostas que partem do servidor para o cliente. (DEITEL; DEITEL, 2005) Existem dois métodos de se enviar dados de um formulário contido em uma página na internet, o método “get”, e o método “post”. Estes métodos são declarados na tag de abertura do formulário (<form>) no atributo de tag “method”, contendo o valor “get” ou “post”. Para tratar estas requisições do usuário, os servlets utilizam os métodos “doGet” e “doPost”, onde cada um trata de um tipo de requisição. A diferença entre, enviar dados de um formulário web para o servidor, utilizando o método get, ou através do método post, está na forma de envio destes dados. Utilizando o método get, os dados são enviados em conjunto com a url, estando estes visíveis para o usuário. No caso do envio ser realizado através do método post os dados são enviados, de maneira escondida do link, ou seja, o usuário não terá acesso aos dados. (GSMFANS, 2009) A tecnologia dos servlets auxilia no controle dos envios e recebimentos de dados no lado servidor da aplicação, mas tratando-se das respostas do servidor para o cliente, na internet, estas podem ser páginas web ou arquivos 30 que estejam no servidor. Quando, estas respostas se tratarem de páginas web, a plataforma Java oferece a tecnologia JSP, que consiste em páginas web que disponibilizam algum conteúdo dinamicamente na internet. Isso se dá porque o JSP permite trabalhar com código Java em conjunto com tags HTML. (DEITEL; DEITEL, 2005) A tecnologia de páginas JSP foi desenvolvida pela Sun Mycrosystems, através da percepção de uma dificuldade de se desenvolver páginas HTML, utilizando os servlets. Diante do desenvolvimento desta tecnologia separou-se a criação de páginas web, dos sevlets, que ficaram responsáveis pela administração das requisições e respostas. O JSP oferece maior flexibilidade para se trabalhar com HTML, e criar páginas com melhor apresentação visual, do que os servlets. (GONÇALVES, 2007) A exibição das páginas JSP, até que esta chegue ao browser, se dá da seguinte forma: o arquivo da página é compilado no servidor de páginas, que possa interpretar a linguagem Java, e este servidor interpreta os comandos Java inseridos juntos com as tags do HTML, e retorna para o browser apenas marcações HTML. (GONÇALVES, 2007) Para se utilizar a linguagem Java nas páginas JSP, utiliza-se os sriptlets, que consistem em código Java inserido este no interior das tags <% e %>. Segundo Gonçalves (2007), existem outras formas de se utilizar esta tag, segue alguns exemplos de como fazê-lo: a) Comentários: comentário de uma linha:<%-- comentário --%>, comentário em bloco, com mais de uma linha: <%/* ... */%> b) Declaração de atributos ou métodos: <%! %> c) Impressão de resultado em tela: <%= %> d) Tags personalizadas: <%@ taglib %>, esta é uma diretiva que permite que seja importada uma biblioteca de tags para o ambiente JSP. A tecnologia JSP, foi desenvolvida para separar a camada de programação Java da camada de apresentação do sistema. Isso se deu porque em várias situações, os sistemas para a internet são desenvolvidos por equipes de programadores e web designers, onde cada um destes tem 31 responsabilidades distintas, sendo que os responsáveis pela criação de páginas para internet, nem sempre conhecem a linguagem Java. Para isso a tecnologia JSP oferece as Expression Language, expressões de linguagem (EL), e a especificação Java Server Pages Standard Tag Library, JSP biblioteca de tag padrão (JSTL). (GONÇALVES, 2007) As EL são declarações que servem para executar algumas ações que os scripts JSP realizam, mas com uma sintaxe mais simples. Desta maneira o desenvolvimento do layout se torna mais fácil para os web designers. A sintaxe consiste em se usar as expressões entre colchetes precedidas de um cifrão ou sinal de sustenido, a sintaxe é representada da seguinte maneira ${expressao}, ou #{expresso}. Havendo estas duas formas de expressões, não é recomendável utilizá-las em conjunto. (GONÇALVES, 2007). 1.2.2 Sistema Gerenciador de Banco de Dados Atualmente, há uma necessidade cada vez maior em se “digitalizar” fatos, de onde se extraem informações sobre os mesmos. Para que estas informações sejam úteis futuramente, é necessário armazená-las de alguma maneira. O armazenamento destas informações (dados) hoje é fundamental para qualquer tipo de organização, dispondo de sistemas computacionais que irão realizar o acondicionamento destes dados, são estes os SGBD’s (Sistemas Gerenciadores de Banco de Dados). (DATE, 2004). Os SGBD’s são softwares, que permitem a definição de estruturas de armazenamento e que ofereçam meios para manipular dados. Dependendo da necessidade da empresa, esta pode optar por não usar um SGBD, utilizandose de sistemas mais simples e de baixo custo, porém isto pode implicar em alguns problemas citados abaixo: a) Controle de redundância b) Compartilhamento c) Controle de acesso d) Controle de integridade e) Backup e tolerância às falhas 32 f) Integração de dados g) Múltiplas Interfaces Segundo Date (2004), “Um banco de dados é uma coleção de dados persistentes, usada pelos sistemas de aplicação de um determinado grupo”. O sistema de banco de dados nada mais é que um sistema computadorizado no qual se pode manipular registros (dados). Já o banco de dados é aquele que, efetivamente, irá guardar estes dados. A partir disto, clientes ou usuários poderão realizar diversas operações com os arquivos como: inserir novos arquivos e alterá-los quando for preciso, realizar buscas simples ou complexas nestes dados e até excluí-los caso queira. (DATE, 2004) Quando se diz que os dados em um banco de dados são persistentes, quer dizer que depois que estes são aceitos pelo SGBD (Sistema Gerenciador de Banco de Dados), eles só serão removidos após uma requisição explícita ao SGBD. (DATE, 2004). O sistema de gerenciamento de banco de dados (SGBD) é um programa que realiza todo o acesso aos dados contidos no banco de dados. Usualmente um usuário faz uma requisição de acesso usando SQL. Após isso o SGBD irá receber esta requisição e analisar todo o esquema de dados que está armazenado. Só depois o SGBD realiza as operações sobre os dados. (DATE, 2004) Oracle é um dos líderes de mercado no seguimento de SGBDs. Surgiu no final dos anos 70, quando Larry Ellison começou a estudar mais o conceito que começava a surgir de banco de dados relacional. (C. J. DATE, 2004) A Oracle criou a linguagem PL/SQL, que é a extensão da linguagem SQL, usada para aperfeiçoar e acelerar a relação Banco de Dados/Servidor. (ORACLE, 2009) Além de dividir as versões de seus programas, a Oracle também separa seus produtos em edições, para um melhor controle de licenças. Seguem algumas dessas edições: (ORACLE, 2009) a) Enterprise Edition (EE): esta versão não possui limite de memória, possui mais funcionalidades que a Standard Edition que é comumente licenciada na base de núcleos de processamento, com quatro ou mais microprocessadores. 33 b) Standard Edition (SE): é a versão mais básica para banco de dados. Normalmente licenciada para usuários com até quatro microprocessadores. Se esse número exceder a quatro, o cliente terá de licenciar a edição Enterprise. c) Express Edition (XE): introduzida no mercado em 2005, é totalmente livre para distribuição nas plataformas Windows e Linux. Armazena até 4GB de dados do usuário. 1.2.3 AJAX (Asynchronous JavaScript and XML) AJAX acrônimo da língua inglesa para Asynchronous JavaScript and XML, que traduzido significa JavaScript e XML Assíncronos. Como o próprio nome diz Ajax não é uma tecnologia única, e sim um conjunto de tecnologias utilizadas para garantir uma maior interatividade do usuário com os sistemas web. Para tal interatividade ocorrer, o AJAX trabalha principalmente com JavaScript e XML (extensible Markup Luanguage, traduzido, Linguagem extensível de marcação), em conjunto com outras tecnologias, tais como: XHTML (Extensible Hipertext Markup Language, Linguagem extensível de marcação de hipertexto), CSS (Cascading Style Sheets, Folha de estilos em cascata), DOM (Document Object Model, Documento de modelo de objeto), XSLT (Extensible Stylesheet Language Transformation, Linguagem de transformação de folha de estilos extensiva), e o objeto XMLHttpRequest, todas estas tecnologias serão explicadas posteriormente. (GONÇALVES, 2006) O termo AJAX foi utilizado pela primeira vez em fevereiro de 2005, por Jesse James Garret, em um artigo on-line intitulado “Ajax: A New Approach to Web Applications”, que traduzido significa, Ajax: uma nova abordagem para aplicações web. Na realidade, as tecnologias que compõem o AJAX não são uma novidade no desenvolvimento de sistemas para internet, porém esta é uma nova maneira de se trabalhar com o conjunto de tecnologias citadas acima, haja vista que estas já eram utilizadas anteriormente ao termo AJAX, somente não lhes foi atribuído um nome. (GONÇALVES, 2006) As principais tecnologias que compõem o AJAX são descritas brevemente a seguir: 34 a) JavaScript: linguagem de scripts desenvolvida pela empresa Netscape, para ser inserida internamente nos aplicativos web. Esta linguagem auxilia nas validações de formulários HTML, oferece maior interatividade com o usuário, é o ponto central do AJAX, uma vez que é através do JavaScript que se relacionam todas as tecnologias que compõem o AJAX. (CRANE, PASCARELLO, JAMES, 2007) b) XML: linguagem de marcação que utiliza tags, “etiquetas”, que referenciam os elementos e atributos da mesma forma como acontece no HTML. Mas apesar destas semelhanças as duas tecnologias têm finalidades distintas, uma vez que o HTML tem função de apresentação de algum conteúdo, o XML tem por objetivo organizar o conteúdo, oferecendo a flexibilidade da criação de tags próprias, mas com regras muito mais rígidas do que o HTML, sendo que não é permitido o uso de tags desordenadas. (GONÇALVES, 2006) c) XHTML: é uma revisão do HTML, baseada no XML, combinando os elementos do HTML, com regras do XML. O objetivo desta revisão é o de possibilitar a acessibilidade das páginas desenvolvidas neste padrão, em diversos dispositivos, sendo totalmente independente de plataforma. (XHTML, 2009) d) CSS: uma linguagem para definir a aparência das páginas XHTML. A primeira versão foi lançada no mercado em 1996 (CSS 1), e dois anos depois, em 1998, fora lançada a segunda versão (CSS 2). As principais vantagens do CSS são: a reutilização de estilos, simplificação do código HTML, inovação para a definição da aparência das páginas, uma vez que esta tecnologia oferece maiores possibilidades visuais do que a linguagem HTML. (GONÇALVES, 2006) e) DOM: Uma tecnologia que visa organizar de forma estruturada os elementos de uma página HTML. O DOM disponibiliza esta estrutura para um mecanismo JavaScript manipulá-la. Com o JavaScript pode-se adicionar elementos à pagina, ou remove-los, alterar suas propriedades dinamicamente, sem a necessidade de 35 se carregar novamente a página. O DOM armazena os elementos da página em uma estrutura de árvore onde a raiz é o nó “document” – cada nó representa um elemento no DOM, pois todos os outros nós encontram-se dentro de document. (CRANE; PASCARELLO; JAMES, 2007). 36 2 LEVANTAMENTO DE REQUISITOS 2.1 Análise de Mercado O cenário do comércio eletrônico ainda é muito novo, sobretudo no Brasil. Muita desconfiança com relação à segurança ainda paira sobre os usuários de internet. Ainda sim, devido o crescente número de pessoas que a cada dia passam a usar a internet, este meio virtual tem evoluído muito. Hoje mais do que apostar, as empresas têm o dever de se adentrar na internet para obter maiores lucros com vendas. A tabela 1 apresenta uma prospecção do crescimento de usuários na internet aqui no Brasil: (E-Commerce, 2009) (em milhões) Pessimista Intermediário Cresc. anual 12% Total Cresc. anual 16% % Otimista Cresc. Anual 20% % % Ano População Internautas Pop Internautas Pop Internautas Pop 2001 172,3 12.0 6,9% 12.0 6,9% 12.0 7,0% 37.2 18,7% 52.9 26,5% 74.3 37,2% 2011 199,9 Fonte: Felipini, 2002 Tabela 1. Previsão de crescimento na internet no Brasil. Segundo E-Commerce (2009), atualmente o Brasil possui cerca de 50 milhões de usuários de internet. Algumas pesquisas apontam que dentro de 5 anos este número possa chegar ao 75 milhões, devido a facilidade cada vez maior de acesso a internet. Com base nisto, pode-se afirmar que serviços como o de venda de produtos ou prestação de serviços pela internet será cada vez mais comum. (E-Commerce, 2009). Quando se cria uma loja virtual, deve-se ter em mente que esta não possuirá vendedores. Portanto, todos os argumentos que realmente importam têm de ser colocados da forma mais simples possível para o usuário. Outro ponto extremamente importante é transmitir confiança ao usuário para finalizar a transação. (E-Commerce, 2009). Na maioria das lojas existentes, o usuário tem livre acesso pelo site e pesquisar os produtos, não sendo necessário nenhum tipo de cadastro para 37 poder navegar. Na página inicial são dispostas as imagens e os preços de algumas mercadorias. No menu são exibidas as categorias dos produtos cadastrados. Conforme Figura 16. Fonte: Mercado Livre, 2009. Figura 16. Tela inicial do site Mercado Livre Caso queira realizar a compra, este usuário deve preencher um cadastro com seus principais dados, tais como nome e sobrenome, estado, cidade, país, apelido (nome de usuário no site) e e-mail. A Figura 17 refere-se à página de cadastro de usuários no site: Fonte: Mercado Livre, 2009. Figura 17. Tela de cadastro do site Mercado Livre 38 No Mercado Livre as compras funcionam em um sistema muito parecido com um leilão, onde os usuários interessados podem fazer perguntas e dar lances no produto. O lance que mais agradar ao usuário que está vendendo será o escolhido. Só após todo este processo o e-mail do usuário que vendeu o produto será liberado para o comprador. (MERCADO LIVRE, 2009). Outro exemplo é o site Submarino, que surgiu em 1996 e contava com apenas três seguimentos de produtos (Livros, Cd’s e Brinquedos), hoje depois de se fundir com o site Americanas.com é líder no ramos de vendas virtuais no Brasil. (SUBMARINO, 2009). A Figura 18 mostra como é a interface do site hoje. Fonte: Submarino, 2009. Figura 18. Página inicial do site Submarino 2.2 Documentos de Requisitos 2.2.1 A – VISÃO GERAL DO SISTEMA O sistema de comércio eletrônico Shopping Virtual – Cooperativa Digital para Pequenas e Médias Empresas funciona como um Shopping Center Virtual, onde várias lojas podem ser cadastradas no sistema, permitindo a estas vender seus produtos pela internet. Cada loja poderá gerenciar os seus produtos com suas respectivas categorias. A categorização dos produtos serve 39 para facilitar a busca do cliente por determinado produto. Esse sistema gerencia também toda a transação de venda, desde a escolha dos diversos produtos, sendo colocados em um carrinho de compras virtual, até o processo do seu pagamento. 2.2.2 REQUISITOS FUNCIONAIS 2.2.2.1 – Lançamentos diversos O sistema Shopping Virtual é dividido em perfis, sendo estes, o perfil público, administrativo, de pessoa física (Clientes) e de pessoa jurídica (Lojista). Cada perfil deve disponibilizar um conjunto de recursos específicos a seus usuários, descritos abaixo. As seguintes características são apresentadas aos usuários que pertençam ao perfil público: a) O sistema deve permitir a inclusão, alteração e remoção de usuários, podendo estes serem clientes ou lojas, com os seguintes atributos: código do usuário, login, nome, senha, data de cadastro do usuário, rua, número da casa, bairro, cep, cidade, estado, telefone, email. No caso dos clientes incluem-se os atributos CPF, RG. No caso de lojas incluem-se os atributos nome fantasia, razão social, CNPJ, inscrição estadual, reputação e disponibilidade de entrega. A partir do momento em que é realizado o cadastro de usuário, este é redirecionado para seu correspondente perfil. b) O sistema deve apresentar, para o usuário, uma relação de produtos contendo os nove itens mais baratos cadastrados no shopping, assim que este acesse o sistema, contendo a imagem do produto, o seu respectivo nome, preço e um link para o usuário visualizar os detalhes do produto. c) O sistema deve permitir ao usuário visualizar os detalhes dos produtos disponibilizados a venda, contendo os seguintes dados do produto selecionado, nome, código, marca, preço, descrição e reputação da Loja e um botão para adicionar o produto a um carrinho de compras, possibilitando ao usuário, mesmo sem efetuar 40 o login, simular situações de compra. Mas a compra só poderá ser concretizada após o usuário estar logado e este ser um cliente. d) O sistema deve possibilitar a busca de produtos por subcategoria, através de um menu, onde o usuário selecionará. e) O sistema deve permitir a impressão de um relatório de produtos por subcategoria, que será exibido quando o usuário selecionar uma subcategoria de produtos, contendo a imagem, nome e o preço dos produtos da categoria escolhida, como também um botão para visualização dos detalhes do produto. Também haverá um menu de paginação do resultado da pesquisa, caso haja mais de cinco produtos relacionados. f) O sistema deve possuir um mecanismo onde o usuário informe o nome de algum produto para que seja realizada uma busca no sistema, podendo o usuário informar se a busca deve ser feita em todo o sistema, ou em uma sub categoria específica de produtos. Sendo efetuada a busca, será exibida uma listagem de produtos, contendo as mesmas características da resposta do relatório de produtos por categoria, acima citado. g) O sistema deve oferecer ao usuário do perfil público um ambiente de login, onde este possa informar seu login e senha a fim de efetuar o login. As seguintes características são apresentadas aos usuários que pertençam ao perfil administrativo: h) O sistema deve permitir a inclusão, alteração e remoção de categorias de produtos, com os seguintes atributos: código da categoria e nome da categoria. i) O sistema deve permitir a inclusão, alteração e remoção de subcategorias de produtos, com os seguintes atributos: código da subcategoria, (código da categoria a qual pertence a subcategoria), nome. j) O sistema deve permitir a inserção alteração e remoção das formas de pagamento, com os seguintes atributos: código da forma de 41 pagamento, tipo da forma de pagamento, podendo ser de 1X no cartão, até 12X no cartão. As seguintes características são apresentadas aos usuários que pertençam ao perfil de pessoas físicas (Clientes): k) O sistema deve permitir a inclusão de pedidos, com os seguintes atributos: número do pedido, código do cliente que realizou o pedido, forma de pagamento, data da realização do pedido, valor total da venda, valor do frete, uma lista de itens pedidos e uma lista de entrega de produtos. A cada vez que seja realizado um pedido, o sistema deve alterar a quantidade em estoque dos produtos contidos neste. l) O sistema deve permitir a inserção, alteração e remoção dos itens pedidos, com os seguintes atributos: número do pedido, código do produto, quantidade pedida, valor unitário do produto, e o valor da venda do produto que é o resultado da multiplicação da quantidade pedida pelo valor unitário do item pedido. m) O sistema deve permitir o processamento das entregas de produtos, com os seguintes atributos: código da entrega, número do pedido, data do pagamento, data de despacho das mercadorias, CEP do cliente, rua do cliente, número da casa do cliente, cidade onde o cliente reside, e status da entrega. n) O sistema deve permitir a impressão de um relatório de pedidos realizados por cliente, contendo o número do pedido, data da compra, valor total do pedido, e forma de pagamento. Neste relatório deve haver um link, em cada item do relatório, para que o cliente possa visualizar a listagem dos produtos adquiridos, valores unitários dos produtos. o) O sistema deve permitir a impressão de um relatório de entrega de produtos para os clientes, contendo o número do pedido, relação de produtos adquiridos, com o valor unitário de cada um, valor total do pedido, data da compra, data da efetuação do pagamento e data do despacho das mercadorias. 42 As seguintes características são apresentadas aos usuários que pertençam ao perfil de pessoas jurídicas (Lojas): p) O sistema deve permitir a inclusão, alteração e remoção de produtos, com os seguintes atributos: código do produto, nome do produto, código da subcategoria (a qual pertence o produto), descrição, quantidade em estoque, preço, especificação do caminho onde a imagem do produto está guardada, marca e situação (disponível, indisponível, fora de estoque, bloqueado). q) O sistema deve permitir a impressão de uma listagem dos produtos cadastrados de cada loja, contendo o código do produto, nome, preço, e quantidade em estoque, marca e as opções de excluir ou alterar o cadastro de produtos. r) O sistema deve permitir a impressão de um relatório de produtos vendidos por loja, em determinado mês, dando a opção ao lojista de selecionar, o ano e o mês para visualização das vendas, entre os meses em que este faça parte do sistema. Este relatório deve conter o número do pedido, relação dos produtos a entregar, data máxima da entrega, segundo a disponibilidade de entrega informada no cadastro da loja, e a opção do lojista visualizar dados da entrega de cada produto. s) O sistema deve permitir a impressão dos detalhes da entrega de produtos contidos nos relatórios de produtos vendidos, contendo o número e data do pedido, nome e endereço do cliente que efetuou o pedido, código, nome e quantidade pedida do produto em questão, assim como, à data da entrega do produto. 2.2.3 REQUISITOS NÃO FUNCIONAIS 2.2.3.1 Confiabilidade t) O sistema deve fornecer facilidades para a realização de backups dos arquivos do sistema. u) O sistema deve ser compatível com diferentes navegadores web, tais como: Internet Explorer 7 ou superior, Mozilla Firefox 3. 43 v) O sistema deve possuir senhas de acesso e identificação para diferentes tipos de usuários: funcionários das lojas e clientes que têm acesso ao sistema no shopping. Apesar de serem descritas acima, as características do perfil administrativo, as quais não constam na lista de casos de uso porque o ambiente administrativo ficou como um trabalho futuro. 3 ANÁLISE ORIENTADA A OBJETOS 3.1 Lista de Casos de Uso Nº 01 Descrição do Evento Usuário solicita Cadastro Evento Dados Usuário Use Case Cadastrar Usuário Resposta Msg01 02 Usuário efetua login Dados Usuário Logar Msg02 03 Lojista cadastra Produto Dados Produto Cadastrar Produto Msg03 Dados Relatório Produtos/Loja Relatório Produtos por Loja Rel01 Dados Relatório Entrega Relatório Entrega Rel02 04 05 Lojista solicita Relatório de produtos cadastrados Cliente solicita Relatório de entrega de produtos 06 Cliente realiza pedido Dados Pedido Realizar Pedido Msg04 07 Cliente solicita Relatório de pedidos realizados Dados Relatório Pedido Relatório Pedido Rel03 08 Lojista solicita relatório de produtos vendidos Dados Relatório Produtos vendidos por Loja Relatório Produtos Vendidos por Loja Rel04 09 Usuário solicita relatório de produtos por subcategoria Dados Relatório Produtos por subcategoria Relatório Produtos por subcategoria Rel05 10 Usuário solicita relatório de Produtos informando nome do Produto Dados Relatório Produtos/nome Relatório Produtos por nome Rel06 Fonte: Elaborado pelos autores, 2010 Quadro 1. Lista de Casos de Uso 44 3.2 Diagrama de Casos de Uso 3.2.1 Cadastrar Usuário Fonte: Elaborado pelos autores, 2010 Figura 19. Diagrama de Use Case 1 – Cadastrar Usuário CURSO NORMAL: 1- Usuário solicita cadastro; 2- Sistema exibe tela de cadastro de usuários com as opções de cadastro de pessoa física (Clientes), ou pessoa jurídica (Lojas); 3- Usuário solicita cadastro de pessoa física; 4- Sistema exibe tela de cadastro de pessoa física; 5- Usuário informa seus dados; 6- Sistema verifica se usuário já está cadastrado; 7- Caso o usuário não esteja cadastrado; 8- Usuário informa demais dados e confirma cadastro; 9- Sistema cria instância de usuário e clientes 10- Sistema redireciona para página de Clientes; CURSO ALTERNATIVO 1 - USUÁRIO SOLICITA CADASTRO DE PESSOA JURÍDICA 3.1- Sistema exibe tela de cadastro de pessoa jurídica; 3.2- Usuário informa seus dados; 3.3- Sistema verifica se usuário já está cadastrado; 3.4- Caso usuário não esteja cadastrado; 3.5- Usuário informa demais dados e confirma o Cadastro; 3.6- Sistema cria instancia de cliente redireciona para página de Lojistas; 45 CURSO ALTERNATIVO 2 - CLIENTE JÁ CADASTRADO NO SISTEMA 7.1- Caso o usuário esteja cadastrado; 7.2- Sistema envia Msg01 "CPF já cadastrado"; CURSO ALTERNATIVO 3 – LOJISTA JÁ CADASTRADO NO SISTEMA 3.4.1- Caso usuário já esteja cadastrado; 3.4.2- Sistema exibe Msg01 "CNPJ já cadastrado"; 3.2.2 Efetuar Login Fonte: Elaborado pelos autores, 2010 Figura 20. Diagrama de Use Case 2 – Efetuar Login CURSO NORMAL: 1- Usuário informa login e senha para logar; 2- Sistema verifica se existe usuário relacionado ao login informado; 3- Caso exista usuário sistema verifica se a senha informada está correta; 4- se a senha estiver correta, sistema verifica se usuário é pessoa física (Cliente), ou jurídica (Loja); 5- Caso usuário seja cliente, sistema registra instancias de usuário e de clientes na sessão; 6- Sistema exibe Msg02 "Olá [nome do Usuário]"; CURSO ALTERNATIVO 1 - CASO NÃO EXISTA USUÁRIO COM O LOGIN INFORMADO OU SENHA ESTEJA INCORRETA 3.1- Sistema exibe Msg02 "Usuário ou senha incorretos"; CURSO ALTERNATIVO 3 - CASO USUÁRIO SEJA LOJA 5.1- Sistema direciona para página de Lojas, e registra loja na sessão; 5.2- Sistema exibe Msg02 "Olá [nome do Usuário]"; 46 3.2.3 Cadastrar Produto Fonte: Elaborado pelos autores, 2010 Figura 21. Diagrama de Use Case 3 – Cadastrar Produto CURSO NORMAL: 1- Lojista solicita tela de cadastro de produtos; 2- Sistema busca Categorias de Produtos cadastradas; 3- Sistema mostra tela de cadastro; 4- Lojista informa categoria escolhida; 5- Sistema busca subcategorias de produto associadas a categoria informada; 6- Sistema exibe listagem de subcategorias; 7- Lojista informa subcategoria e demais dados do produto; 8- Lojista informa se deseja adicionar uma imagem do produto e confirma cadastro; 9- Caso Lojista decida adicionar imagem, sistema exibe tela de upload de imagem; 10- Lojista informa o arquivo para upload; 11- Sistema efetua upload; 12- Sistema cria instancia de produto; 13- Sistema envia Msg03 "Produto Cadastrado"; CURSO ALTERNATIVO 1 - LOJISTA ESCOLHE NÃO ADICIONAR IMAGEM AO PRODUTO 9.1- Sistema cria instância de produto, definindo uma imagem padrão para o mesmo e envia Msg03 "Produto Cadastrado"; 47 3.2.4 Relatório de Produtos por Loja Fonte: Elaborado pelos autores, 2010 Figura 22. Diagrama de Use Case 4 – Relatório de Produtos por Loja CURSO NORMAL: 1- Lojista solicita relatório de produtos cadastrados; 2- Sistema verifica se existe produtos associados a Loja; 3- Caso existam produtos associados à Loja; 4- Sistema envia Rel01, contendo, no máximo, 10 produtos organizados por ordem alfabética de seus respectivos nomes, e um menu de navegação para visualização dos demais produtos, caso existam; CURSO ALTERNATIVO 1- NÃO EXISTE PRODUTO ASSOCIADO A LOJA 3.1- Sistema exibe Rel01 "Sua Loja não possui produtos cadastrados"; 3.2.5 Relatório de entrega Fonte: Elaborada pelos autores, 2010 Figura 23. Diagrama de Use Case 5 – Relatório de entrega CURSO NORMAL: 1- Cliente solicita relatório de entrega e informa o número do pedido; 2- Sistema busca itens associados ao pedido; 3- Sistema busca cada produto associado a item no pedido; 48 4- Sistema busca dados de entrega associada ao item; 5- Sistema envia Rel02; 3.2.6 Realizar Pedido Fonte: Elaborada pelos autores, 2010 Figura 24. Diagrama Use Case 6 – Cliente Realiza Pedido CURSO NORMAL: 1- Usuário solicita Visualizar Carrinho; 2- Sistema verifica se existe pedido registrado na sessão; 3- Se sim, sistema busca itens associados ao pedido; 4- Sistema busca produtos associados a itens; 5- Sistema busca formas de pagamentos possíveis de acordo com o valor do pedido; 6- Sistema exibe tela de carrinho de compras; 7- Usuário seleciona forma de pagamento; 8- Usuário solicita finalizar compra; 9- Sistema verifica se usuário está registrado na sessão (logado); 10- Se sim, Sistema busca dados do cliente; 11- Sistema registra dados de cliente no pedido; 12- Sistema cria instância de pedido; 13- Sistema cria instâncias de entregas de itens; 14- Sistema cria instância de itens pedidos; 15-Sistema envia msg05 "Compra finalizada". 49 CURSO ALTERNATIVO 1 – USUÁRIO NÃO ESTÁ LOGADO 9.1- Sistema redireciona para página de login; 9.2- Usuário efetua login; 9.3- Sistema finaliza compra e envia Msg05 “Compra Finalizada”; CURSO ALTERNATIVO 2 - NÃO EXISTE INSTANCIA DE PEDIDO NA SESSÃO 3.1- Sistema exibe Msg05 "Seu Carrinho se encontra vazio", seguida de um botão que redireciona para a página principal. CURSO ALTERNATIVO 3 - USUÁRIO SELECIONA PRODUTOS 2.1- Cliente seleciona produto; 2.2- Sistema exibe tela de detalhes do produto; CURSO ALTERNATIVO 4 - USUÁRIO ADICIONA PRODUTO AO CARRINHO 3.1- Usuário solicita adicionar produto ao carrinho; 3.2- Sistema verifica se o produto já está adicionado a lista de itens do pedido; 3.3- Caso o produto não esteja adicionado, sistema adiciona produto a lista de itens pedidos; 3.4- Sistema exibe tela do carrinho de compras; CURSO ALTERNATIVO 5 - PRODUTO JÁ ESTÁ ADICIONADO A LISTA DE ITENS DO PEDIDO 3.1.1- Sistema exibe Msg05 "Este produto já está no carrinho! Deseja adicionar um item a quantidade pedida", dando as opções de escolha "SIM", ou "NÃO"; 3.1.2- Caso o usuário escolha "SIM", sistema altera quantidade pedida do item; 3.1.3- Sistema exibe tela do carrinho de compras com os valores atualizados; CURSO ALTERNATIVO 6 – USUÁRIO ESCOLHE NÃO ALTERAR A QUANTIDADE PEDIDA DO PRODUTO SELECIONADO 3.1.2.1- Caso o cliente escolha "NÃO", nenhuma ação será efetuada; CURSO ALTERNATIVO 7 - USUÁRIO SOLICITA ALTERAR QUANTIDADE PEDIDA DE PRODUTO 4.1- Usuário solicita alterar quantidade pedida de produto; 50 4.2- Sistema altera quantidade pedida do item a ser alterado; 4.3- Sistema atualiza valores subtotal e total do pedido; 4.4- Sistema exibe tela do carrinho de compras com os valores atualizados; CURSO ALTERNATIVO 8 - USUÁRIO RETIRA PRODUTO DO CARRINHO 5.1- Usuário solicita retirar produto do carrinho de compras; 5.2- Sistema remove o item da lista de itens pedidos; 5.3- Sistema exibe tela do carrinho de compras; CURSO ALTERNATIVO 9 - USUÁRIO NÃO SELECIONOU FORMA DE PAGAMENTO E SOLICITOU FINALIZAR COMPRA 6.1- Sistema exibe Msg05 "Selecione uma forma de pagamento"; 3.2.7 Relatório de Pedidos Fonte: Elaborada pelo autor, 2010 Figura 25. Diagrama de Use Case 7 – Relatório de Pedidos CURSO NORMAL: 1- Cliente solicita relatório de pedidos; 2- Sistema verifica se existem pedidos associados ao Cliente; 3- Se sim, sistema busca forma de pagamento associada a cada pedido realizado. 4- Sistema envia Rel03; CURSO ALTERNATIVO 1 - NÃO EXISTE PEDIDO ASSOCIADO AO CLIENTE 3.1- Sistema envia Rel03 "Nenhum pedido foi realizado por você"; CURSO ALTERNATIVO 2 - CLIENTE SOLICITA DETALHAR PEDIDO 2.1- Cliente solicita detalhar pedido e informa o código do pedido; 51 2.2- Sistema busca itens associados a pedido; 2.3- Sistema busca cada produto associado a item no pedido; 2.4- Sistema exibe tela de detalhes do pedido; 3.2.8 Relatório de Produtos Vendidos por Loja Fonte: Elaborado pelos autores, 2010 Figura 26. Diagrama de Use Case 8 – Relatório de Produtos Vendidos por Loja. CURSO NORMAL: 1- Lojista solicita relatório de produtos vendidos, e informa o período em que se deseja visualizar as vendas; 2- Sistema busca produtos associados à Loja; 3- Sistema verifica se produtos estão relacionados a itens pedidos; 4- se sim, sistema busca pedidos relacionados a cada instância de itens pedidos, e que ocorreram no período informado; 5- Caso produtos estejam relacionados a itens pedidos, sistema envia Rel04; CURSO ALTERNATIVO 1 - CASO PRODUTOS NÃO ESTEJAM RELACIONADOS A ITENS PEDIDOS 4.1- Sistema exibe Rel04 "Nenhuma venda registrada para esta Loja, neste período"; CURSO ALTERNATIVO 2 - LOJISTA SOLICITA DETALHAR ENTREGA DE PRODUTO 2.1- Sistema busca dados relacionados ao produto vendido e seu respectivo pedido; 52 2.2- Sistema busca dados do cliente que comprou o produto; 2.3- Sistema busca data da entrega do produto; 2.4- Sistema exibe tela de detalhes da entrega; 3.2.9 Relatório de Produtos por subcategoria Fonte: Elaborada pelos autores, 2010 Figura 27. Diagrama de Use Case 9 – Relatório de Produtos por subcategoria CURSO NORMAL: 1- Usuário solicita relatório de produtos por subcategoria e informa o código da subcategoria de produtos; 2- Sistema busca subcategoria associada ao código informado; 3- Sistema verifica se existem produtos associados a subcategoria; 4- Caso existam produtos associados ao código, Sistema envia Rel05; CURSO ALTERNATIVO 1 - CASO NÃO EXISTAM PRODUTOS ASSOCIADOS AO CÓDIGO 4.1- Sistema envia Rel05 "Esta categoria não contém produtos"; 3.2.10 Relatório de Produtos por nome Fonte: Elaborada pelos autores, 2010 Figura 28. Diagrama de Use Case 10 - Relatório de Produtos por nome 53 CURSO NORMAL: 1- Usuário solicita relatório de produtos informando o nome completo, ou apenas uma parte do nome, do produto; 2- Caso usuário informe a subcategoria em que será realizada a busca pelos produtos com o nome informado; 3- Sistema verifica se existem produtos associados a categoria e que seus nomes contenham o nome informado; 4- Caso sejam encontrados produtos, sistema envia Rel06 CURSO ALTERNATIVO 1 - USUÁRIO NÃO INFORMA SUBCATEGORIA PARA BUSCA DE PRODUTOS 2.1- Sistema verifica se existem produtos cujos nomes contenham o nome informado em quaisquer subcategorias 2.2- Caso sejam encontrados produtos, sistema envia Rel06 CURSO ALTERNATIVO 2 - CASO NÃO SEJAM ENCONTRADOS PRODUTOS 4.1- Sistema envia Rel06 "Não existem produtos com este nome". 54 3.3 Diagramas de Sequência 3.3.1 Cadastrar Usuário Fonte: Elaborado pelos autores, 2010 Figura 29. Diagrama de Seqüência 1 – Cadastrar Usuário 55 3.3.2 Efetuar Login Fonte: Elaborado pelos autores, 2010 Figura 30. Diagrama de Sequência 2 – Efetuar Login 56 3.3.3 Cadastrar produto Fonte: Elaborada pelos autores, 2010 Figura 31. Diagrama de Sequência 3 – Cadastrar Produto 57 3.3.4 Relatório de Produtos por Loja Fonte: Elaborado pelos autores, 2010 Figura 32. Diagrama de Sequência 4 – Relatório de Produtos por Loja 3.3.5 Relatório de Entrega Fonte: Elaborado pelos autores, 2010 Figura 33. Diagrama de Sequência 5 – Relatório de Entrega 58 3.3.6 Realizar Pedido Fonte: Elaborado pelos autores, 2010 Figura 34. Diagrama de Sequência 6 – Realizar Pedido 59 3.3.7 Relatório de Pedidos Fonte: Elaborado pelos autores, 2010 Figura 35. Diagrama de Sequência 7 – Relatório de Pedidos 60 3.3.8 Relatório de Produtos Vendidos por Loja Fonte: Elaborado pelos autores, 2010 Figura 36. Diagrama de Sequência 8 – Relatório de Produtos Vendidos por Loja 61 3.3.9 Relatório de Produtos por Subcategoria Fonte: Elaborado pelos autores, 2010 Figura 37. Diagrama de Sequência 9 – Relatório de Produtos por Subcategoria 3.3.10 Relatório de Produtos por Nome Fonte: Elaborada pelo autor, 2010 Figura 38. Diagrama de Seqüência 10 – Relatório de Produtos por Nome 62 3.4 Diagrama de Classes Fonte: Elaborada pelos autores, 2010 Figura 39. Diagrama de Classes 63 4 PROJETO DE BANCO DE DADOS 4.1 Tabelas Tabela: Categoria Produtos Chave-Primária (PK): CodCategoria. Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodCategoria Número 04 Não Nome Texto 50 Não Fonte: Elaborado pelos Autores, 2010 Quadro 2. Tabela Categoria de Produtos Tabela: Sub Categoria Produtos Chave-Primária (PK): CodSubCatetegoria Chave-Estrangeira (FK): FkCategoria (CategoriaProdutos.codCategoria) Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodSubCategoria Número 04 Não Nome Texto 50 Não FkCategoria Número 100 Não Fonte: Elaborado pelos Autores, 2010 Quadro 3. Tabela Sub Categoria de Produtos Tabela: Produtos Chave-Primária (PK): código Chave-Estrangeira (FK): FkSubcategoria (SubCategoriaProdutos.codSubCategoria), FkLoja(Lojas.codUsuario) (continua) Nome do Campo Tipo de Dado Tamanho Permite Nulo? Código Número 08 Não Nome Texto 50 Não Descrição Texto 100 Sim QtdeEstoque Número 10 Não Preço Número 07 Não FkSubcategoria Número 100 Não 64 (conclusão) FkLoja Número 06 Não Marca Texto 50 Não CaminhoImagem Texto 200 Não Situação Texto 14 Não Fonte: Elaborado pelos Autores, 2010 Quadro 4. Tabela Produtos Tabela: Lojas Chave-Primária (PK): CodUsuario Chave-Estrangeira (FK): CodUsuario (Usuários.código) Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodUsuario Número 06 Não NomeFantasia Texto 50 Não Razão Social Texto 50 Não CNPJ Texto 18 Não InscEstadual Texto 15 Não Reputação Número 02 Sim DispEntrega Número 01 Não Fonte: Elaborado pelos Autores, 2010 Quadro 5. Tabela Lojas Outras Regras de Validação de Campo: Nome do Campo: Restrição: Reputação Valores de 0 a 10 DispEntrega Valores de 1 a 7 Fonte: Elaborado pelos Autores, 2010 Quadro 6. Regras de validação de campo da tabela Lojas Tabela: Usuários Chave-Primária (PK): código (continua) Nome do Campo Tipo de Dado Tamanho Permite Nulo? Código Número 06 Não Nome Texto 70 Não 65 (conclusão) Login Texto 30 Não Senha Texto 10 Não Data Cadastro Data - Não Rua Texto 30 Não NumCasa Texto 05 Não Bairro Texto 30 Não Cidade Texto 30 Não CEP Texto 10 Não Telefone Texto 13 Sim Estado Texto 02 Não Email Texto 70 Não Fonte: Elaborado pelos Autores, 2010 Quadro 7. Tabela Usuários Tabela: Clientes Chave-Primária (PK): CodUsuario Chave-Estrangeira (FK): CodUsuario (Usuários.código) Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodUsuario Número 06 Não RG Texto 12 Não CPF Texto 14 Não Fonte: Elaborado pelos autores, 2010 Quadro 8. Tabela Clientes Tabela: Pedido Chave-Primária (PK): NumPedido Chave-Estrangeira (FK): CodCliente (Cliente.CodUsuario), FkFormaPgto (FormaPagamento.código) (continua) Nome do Campo Tipo de Dado Tamanho Permite Nulo? NumPedido Número 08 Não CodCliente Número 06 Não DataPedido Data - Não 66 (conclusão) DataPagamento Data - Sim FkFormaPgto Número 04 Não ValorTotalVenda Número 07 Não VlTotalFrete Número 07 Sim Fonte: Elaborado pelos autores, 2010 Quadro 9. Tabela Pedido. Tabela: Forma Pagamento Chave-Primária (PK): CodFPgto Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodFPgto Número 04 Não TipoPgto Texto 50 Não Fonte: Elaborado pelo Autor, 2010 Quadro 10. Tabela Forma de Pagamento Tabela: Itens Pedidos Chave-Primária (PK): NumPedido, CodProduto Chave-Estrangeira (FK): NumPedido(Pedido.Número Pedido), CodProduto(Produtos.código) Nome do Campo Tipo de Dado Tamanho Permite Nulo? NumPedido Número 08 Não CodProduto Número 08 Não QtdePedida Número 03 Não VlUnitário Número 05 Não ValorVenda Número 05 FkEntrega Número 08 Não Fonte: Elaborado pelo Autor, 2010 Quadro 11. Tabela Itens Pedidos Tabela: Entrega Chave-Primária (PK): CodPedido (continua) Nome do Campo Tipo de Dado Tamanho Permite Nulo? CodEntrega Número 08 Não DataPgto Data - Não DataDespacho Data - Não 67 (conclusão) Status Texto 50 Não VlFrete Número 05 Sim Fonte: Elaborado pelos Autores, 2010 Quadro 12. Tabela Entrega 68 5 IMPLEMENTAÇÃO ORIENTADA A OBJETOS 5.1 Layout de Telas Neste capítulo são apresentados os layouts das telas que compõe o sistema e uma explicação sobre a funcionalidade de cada tela. As seguintes telas apresentadas são exibidas aos usuários que pertençam ao perfil público: Fonte: Elaborado pelos Autores, 2010 Figura 40. Tela inicial do sistema A Figura 40 representa a tela inicial do sistema, que possui na parte superior direita os campos de login e senha, para que lojistas e clientes possam efetuar login e realizar as tarefas administrativas. A esquerda, possui um menu com as categorias dos produtos disponíveis para venda. Ao centro, contém a foto e uma pequena descrição dos produtos vendidos pelos lojistas. O sistema exibe, nesta tela, os nove produtos com menor preço cadastrados no sistema. Logo acima destes, encontra-se o campo de busca, onde qualquer usuário pode digitar o nome do produto desejado e o sistema buscará no banco de dados os produtos com o mesmo nome do pesquisado. À direita, possui banners para cadastro de usuário e outros para publicidade. Após se cadastrar, o sistema efetua o login do usuário, após isto será direcionado para o perfil de sua conta (administrador, cliente ou lojista). 69 Fonte: Elaborado pelos Autores, 2010 Figura 41. Tela de cadastro de pessoa física A figura 41 representa o cadastro de pessoa física, onde são inseridos os dados da pessoa. A princípio, os campos para preenchimento não aparecem, mas com o uso da tecnologia AJAX, ao clicar no botão “pessoa física”, os campos aparecem sem que seja necessário recarregar a página. Após isto, o usuário deve preencher cada campo. No campo login, o sistema verificará automaticamente se o mesmo está disponível ou não e avisará o usuário. Caso não preencha algum campo obrigatório, ou o preencha de forma errada, será exibida a mensagem para que o usuário retorne e preencha novamente estes campos. Ao clicar em limpar, o sistema limpa todos os dados da tela, para que possam ser inseridos novos dados. Ao clicar em enviar, o sistema verifica se existe algum campo sem ser preenchido. Caso os campos estejam todos preenchidos o sistema envia os dados ao servidor, para que possam ser salvos no banco de dados. Todos os campos são validados antes de serem salvos, por meio do uso da tecnologia Java Script, garantindo maior segurança para guardar os dados do usuário no banco de dados. 70 Fonte: Elaborado pelos Autores, 2010 Figura 42. Tela de cadastro de pessoa jurídica A Figura 42 mostra a tela de cadastro de pessoa jurídica, onde são inseridos os dados da empresa. Contém os demais campos para pessoa jurídica, como CNPJ, razão social e inscrição estadual. Este cadastro também segue as mesmas regras do cadastro de Pessoa Física. Fonte: Elaborado pelos autores, 2010 Figura 43. Tela de busca por produtos pelo nome 71 Fonte: Elaborado pelos autores, 2010 Figura 44. Tela de carrinho de compras A Figura 43 mostra a tela de busca de produtos, onde após o usuário digitar o nome do produto que deseja são exibidos todos aqueles cujo nome coincide com o do campo de busca. As seguintes telas apresentadas são exibidas aos usuários que pertençam ao perfil lojista: Fonte: Elaborado pelos Autores, 2010 Figura 45. Tela de cadastro de produtos 72 Na Figura 44 representa o carrinho de compras já com produtos inseridos. No carrinho o cliente pode ver a foto, o nome do produto, o preço, escolher qual quantidade deseja e o subtotal. Na imagem semelhante a um “X” ele pode, ao clicar, remover o produto do carrinho de compras. A Figura 45 exibe a tela de cadastro de produtos, onde constam todos os campos com as informações que serão armazenadas no banco de dados. A Figura 46 representa a tela em que são cadastrados os produtos que os lojistas irão vender. O lojista deve escolher a categoria do seu produto. Irá colocar a marca, o nome, a quantidade em estoque e o preço de venda. Após isso, pode adicionar uma imagem do produto que será exibida ao cliente. Para isso, basta selecionar “Sim” onde aparece “Deseja inserir imagem?”, com essa afirmação será exibida uma tela onde o lojista poderá encontrar a imagem do produto, conforme a Figura 47. A Figura 48 mostra a tela inicial para os lojistas, assim que eles realizam o login no sistema. São dispostos os produtos cadastrados para venda, bem como algumas informações referentes a eles. Na Figura 49, é apresentada a tela que se abre após o lojista clicar em ”Alterar”. O lojista vê todas as características atuais, podendo editá-las. Após isso, clica-se em Enviar. Fonte: Elaborado pelos Autores, 2010 Figura 46. Tela de inserção de imagem do produto 73 Na Figura 50 podemos ver a tela em que, após o login, é exibido o nome do usuário logado no sistema e, logo abaixo dos produtos, uma lista das compras efetuadas por este usuário, se houver. Fonte: Elaborado pelos Autores, 2010 Figura 47. Tela inicial do perfil dos lojistas Fonte: Elaborado pelos Autores, 2010 Figura 48. Apresenta a tela de cadastro de produtos 74 Fonte: Elaborado pelos autores, 2010 Figura 49. Tela de alteração de cadastro de pessoa jurídica As seguintes telas apresentadas são exibidas aos usuários que pertençam ao perfil cliente: Na Figura 51 aparece o carrinho de compras ainda vazio, logo após o cliente ter feito o login. Fonte: Elaborado pelos autores, 2010 Figura 50. Tela de cliente logado 75 Fonte: Elaborado pelos autores, 2010 Figura 51. Tela de carrinho de compras vazio. Na Figura 52, pode-se ver uma busca feita pelo cliente. O sistema exibe todos os produtos que tenham o mesmo nome que foi digitado pelo usuário. Fonte: Elaborado pelos autores, 2010 Figura 52. Tela de pesquisa de produtos realizada Na Figura 53 encontram-se os campos com os dados referentes ao cliente logado. Para exibi-la, assim que logar, o cliente deve clicar em “Alterar minha conta” localizada na parte superior direita da tela. Após preencher os dados, clica-se em Enviar. 76 Fonte: Elaborado pelos autores, 2010 Figura 53. Tela de alteração de cadastro de cliente 77 CONCLUSÃO A proposta deste trabalho foi desenvolver uma aplicação para a compra e venda de produtos por meio da internet, com o objetivo de oferecer a pequenos e médios comerciantes a possibilidade de participarem desse processo, além de facilitar aos clientes a busca por produtos, oferecendo a estes consumidores, a comodidade de efetuar a compra do bem estimado, esteja onde estiver. Foram utilizadas para o desenvolvimento deste sistema as tecnologias: UML, Java, AJAX, bem como o banco de dados Oracle. Com essas tecnologias, pode-se trazer não só interação, mas uma aplicação atual e de fácil comercialização. O sistema de comércio eletrônico Shopping Virtual apresentado realiza boa parte das transações entre lojistas e clientes. Os lojistas cadastrados fazem a inserção de produtos para que clientes, também cadastrados, possam realizar a compra. O Shopping Virtual não foi inteiramente concluído. Há funcionalidades que podem ser implementadas futuramente, tais como: cálculo de frete e emissão de boleto para pagamento, o perfil administrativo do sistema, questões sobre segurança nas transferências de dados dos clientes e lojistas, gerenciamento de logística de entrega das mercadorias, implementação de segurança nas transações financeiras, avaliação dos lojistas, entre outras. Com o desenvolvimento deste sistema, concluiu-se que este tipo de aplicação exige grande esforço por parte dos desenvolvedores devido à grande dificuldade de proporcionar segurança aos usuários. Mesmo que a aplicação possua elementos de segurança, todos os usuários desta devem ter alguma noção do seu funcionamento. Esta modalidade de comércio é extremamente benéfica a ambas as partes, pois se faz economia tanto para os lojistas que podem despender seu investimento em outras diretrizes, como também para os clientes, que podem realizar pesquisa de preços e, eventualmente, adquirir produtos com muita comodidade. 78 REFERÊNCIAS AMERICANAS. Americanas.com, [s.d.]. Disponível <http://www.americanas.com/>. Acesso em: 22 nov. 2009. em: CRANE, D.; PASCARELLO, E.; JAMES, D.; Ajax em ação: traduzido por Edson Furmankiewicz e Carlos Schanfranski. São Paulo: Pearson Prentice Hall, 2007. COMÉRCIO ELETRÔNICO. Comércio eletrônico (e-commerce), Brasil, [s.d.]. Disponível em: <http://pt.wikipedia.org/wiki/Com%C3%A9rcio_eletr%C3%B4nico>. Acesso em: 21 ago. 2009. DEITEL, H.M; DEITEL, P.J. Java como programar. Tradução Edson Furmankiewicz. 6. ed. São Paulo: Pearson Prentice Hall, 2005. E-COMMERCE. Dados Estatísticos sobre a Internet e Comércio Eletrônico, Brasil, [s.d.]. Disponível em:<http://e-commerce.org.br/stats.php>. Acesso em: 21 ago 2009. FELIPINI. O que o futuro reserva para o e-Commerce no Brasil? - Parte 1. Brasil, 15 abr. 2002. Disponível em: <http://www.ecommerce.org.br/artigos/ecommerce_brasil1.php>. Acesso em: 21 nov. 2009. FOWLER, M. ; KOBRYN, C. ; BOOCH , G. UML Essencial .3ª Edição, Porto Alegre: Bookman,2005 GONÇALVES, E. Desenvolvendo Aplicações web com JSP Servlets, Java Server Faces, Hibernate, EJB3 Persistence e Ajax. Rio de Janeiro: Ed. Ciência Moderna, 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: Editora Ciência Moderna Ltda., 2006 GSMFANS. Diferenças entre POST e GET. Brasil, 25 mar. 2009. Disponível em: <http://www.gsmfans.com.br/index.php?topic=26356.0>. Acesso em: 21 nov. 2009 JAVA. Saiba mais sobre a tecnologia Java. Brasil, [s. d.]. Disponível em: < http://www.java.com/pt_BR/about/>. Acesso em: 18 nov. de 2009. JAVA (LINGUAGEM). Java (linguagem de programação). Brasil, [s. d.]. Disponível em: <http://pt.wikipedia.org/wiki/Java_(linguagem_de_programa%C3%A7%C3%A3 o)>. Acesso em: 18 nov. de 2009b. MAGALHÃES, R. J. O Twitter no Comércio Eletrônico. Veja como utilizar o Twitter em sua loja virtual. Brasil, [s.d.]. Disponível em: 79 <http://www.tendenciasdigitais.com.br/artigos/twitter_comercio_eletronico.asp>. Acesso em: 22 ago 2009. MARCORATTI, J. C. UML conceitos básicos. Brasil, [s.d.]. Disponível em: < http://www.macoratti.net/vb_uml2.htm>. Acesso em: 19 set. 2009. MERCADO LIVRE. Mercado livre – Onde comprar e vender de tudo. Brasil, [s.d.]. Disponível em: <http://www.mercadolivre.com.br/>. Acesso em: 22 nov. 2009. NETO, E. R. Diagrama de Casos de Uso. Brasil [s. d.]. Disponível em: < http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/usecases/usecases.htm>, 2007a. ______. Diagrama de Classes. Brasil [s. d.]. Disponível em: <http://www.dsc.ufcg.edu.br/~sampaio/cursos/2007.1/Graduacao/SIII/Uml/diagramas/classes/images/especificacao_exemplo_banco.GIF>, 2007b. ______. UML – Unilied Modeling Language. Brasil, [s.d.]. Disponível em: <www.dsc.ufcg.edu.br>. Acesso em 23 out. 2009. PENDER, T. UML: A Bíblia. Traduzido por Daniel Vieira. Rio de Janeiro: Elsevier, 2004 – 2ª Reimpressão SCOTT, K. O processo unificado explicado. Traduzido por Ana M. de Alencar Price. Porto Alegre: Bookman, 2003. SIERRA, K.; BATES, B. Use a cabeça Java. Tradução Aldir José Coelho. 2ª ed. Rio de Janeiro: Alta Books, 2007. SOUZA, B. P. F. Uma palavrinha sobre as versões do Java. Brasil [s. d.]. Disponível em: <http://www.javaman.com.br/artigos/versoesJava.html>. Acesso em 21 nov. 2009. SUBMARINO. Submarino.com.br, [s.d.]. Disponível <http://www.submarino.com.br/>. Acesso em: 22 nov. 2009. em: SUBMARINO (EMPRESA). Submarino (empresa). Brasil, [s.d.]. Disponível em: <http://pt.wikipedia.org/wiki/Submarino_(empresa)>. Acesso em: 22 nov. 2009. TURBAN; EFRAIN, KING; DAVID. Comércio Eletrônico – Estratégia e Gestão. Tradução Arlete Simille Marques. São Paulo: Pearson Prentice Hall, 2004. WEBARTIGOS. Webartigos.com, [s.d.]. <http://www.webartigos.com/articles/34307/1/ComercioEletronico/pagina1.html>. Acesso em: 22 nov. 2009. Disponível XHTML. XHTML. Brasil, [s.d.]. Disponível <http://pt.wikipedia.org/wiki/XHTML>. Acesso em: 31 out 2009. em: em: