Especificação UML de plataforma de comércio electrónico B2C modelo de classes - PDF
Especificação UML de plataforma de comércio electrónico B2C modelo de classes
Download "Especificação UML de plataforma de comércio electrónico B2C modelo de classes"
Adelina Palmeira Sá
1 Especificação UML de plataforma de comércio electrónico B2C modelo de classes Patrícia Capelas Mestrado em Informática, Universidade de Trás-os-Montes e Alto Douro Quinta de Prados, Apartado 1013, Vila Real, Portugal Vânia Pereira Mestrado em Informática, Universidade de Trás-os-Montes e Alto Douro Quinta de Prados, Apartado 1013, Vila Real, Portugal Ramiro Gonçalves Departamento de Engenharias, Universidade de Trás-os-Montes e Alto Douro Quinta de Prados, Apartado 1013, Vila Real, Portugal João Varajão Departamento de Engenharias, Universidade de Trás-os-Montes e Alto Douro Quinta de Prados, Apartado 1013, Vila Real, Portugal RESUMO A exigência das plataformas que suportam a realização de negócios na Internet tem aumentado significativamente nos últimos anos, sendo fundamental existirem modelos que possam ser utilizados na concepção e desenvolvimento de novas soluções. Neste artigo é apresentado um modelo de classes para o desenvolvimento de uma plataforma de comércio electrónico business-to-consummer e um protótipo de um sistema desenvolvido com base nesse mesmo modelo. Palavras-chave: Comércio Electrónico, B2C, UML, diagrama de classes. 1. INTRODUÇÃO Na última década houve um crescimento significativo da World Wide Web (WWW) e do comércio electrónico, o qual pode ser definido como qualquer forma de transacção de negócio na qual as partes interagem electronicamente, ao invés de compras físicas ou de contacto físico directo [1, 5]. O comércio electrónico, na prática, deve ser descrito como um daqueles casos onde a mudança das necessidades e das novas tecnologias surge conjuntamente com a revolução da forma como os negócios são conduzidos. O comércio electrónico permite que as empresas sejam mais eficientes e versáteis nas suas operações internas, trabalhem mais próximo dos seus fornecedores e sejam mais ágeis na resposta às necessidades e expectativas dos seus clientes. Permite ainda seleccionar melhor os fornecedores, independentemente da sua localização geográfica. O comércio electrónico é normalmente classificado como B2C (business to consumer), B2B (business to business), B2A (business to administration) e C2C (consumer to consumer) [8, 2]. É no comércio electrónico B2C que se enquadra o modelo do sistema que propomos neste artigo. O comércio electrónico B2C consiste em disponibilizar aos consumidores finais o acesso a produtos e serviços, sem interrupções, com o mínimo de fronteiras temporais e geográficas. Isto normalmente é feito criando uma interface de interacção, ou seja, uma loja virtual, que reúne componentes como, por exemplo, um catálogo de produtos, um carrinho de compras e mecanismos de pagamento electrónico. As aplicações Web providenciam soluções de negócio que possibilitam apresentar produtos e serviços com valor acrescentado, aumentar a velocidade dos serviços de envio e reduzir os custos das operações de negócio. Contudo, muitas tentativas no desenvolvimento de aplicações Web
2 falham porque os sistemas são muito complexos e os requisitos dos utilizadores estão constantemente a ser alterados [7]. A comunicação ineficiente entre o utilizador final e a equipa que está a desenvolver o sistema é outro factor que contribui para que as aplicações Web falhem [7]. É assim extremamente importante a existência de modelos que possam ser utilizados como referência para o desenvolvimento das aplicações deste tipo. Neste artigo é apresentado um modelo de classes de um sistema de comércio electrónico B2C que tem como característica fundamental o facto de ser versátil e configurável. De seguida, na secção 2, são apresentados globalmente os requisitos do sistema que propomos. Na secção 3 é apresentado um modelo de classes que suporta os requisitos identificados. Na secção 4 é discutido o protótipo de um sistema desenvolvido com base no modelo de classes proposto. Finalmente, na secção 5, são tecidas algumas considerações finais. 2. REQUISITOS DO SISTEMA Nesta secção apresentam-se diversos requisitos de uma solução de comércio electrónico B2C. Um requisito é uma funcionalidade ou característica considerada relevante no sistema. A identificação de requisitos é um aspecto crítico para o sucesso de um projecto de desenvolvimento de software dado que uma falha nesta actividade pode levar a que todo o projecto falhe. Os requisitos para o sistema foram identificados através de uma revisão bibliográfica, através da análise de diversas lojas virtuais actualmente existentes, através de entrevistas com utilizadores e através de reuniões de brainstorming. Tal deu origem a uma lista de requisitos que representa, no seu conjunto, a reunião dos vários requisitos identificados. De seguida apresentamos uma lista global de requisitos, organizados segundo requisitos de front-end e requisitos de back-end. 2.1 Requisitos de front-end Os requisitos de front-end, referem-se ao conjunto de serviços presentes na loja, que deverão estar disponíveis para os utilizadores (clientes). Estrutura global da loja de comércio electrónico: Na página de entrada da loja virtual o utilizador (cliente) deverá poder visualizar os serviços que estão ao seu dispor. Existem determinados serviços que apenas se deverão encontrar na página de entrada, sendo estes ver promoções da página de entrada, visualizar produto da semana e visualizar ranking de produtos. Deverá haver um conjunto de serviços que deverão estar sempre disponíveis: visualizar publicidade, visualizar contactos, visualizar assistência técnica, visualizar notícias, visualizar perguntas frequentes, visualizar «quem somos», visualizar modos de pagamento, visualizar recrutamento, visualizar as promoções e alterar password. Conforme os serviços escolhidos, o utilizador deverá ter a possibilidade de imprimir a informação apresentada ou então enviá-la via para um determinado destinatário. Consultar catálogo de produtos: O catálogo engloba todos os produtos que se encontram disponíveis na loja. O catálogo de produtos deverá estar estruturado em categorias e subcategorias e estas, por sua vez, em tipos de produtos. Um utilizador (cliente) deverá poder consultar o catálogo como um todo e as características de cada produto em detalhe. Efectuar pesquisas: O utilizador (cliente) deverá poder efectuar pesquisas na loja de comércio electrónico. Adicionar produtos ao carrinho de compras: O utilizador (cliente) deverá poder adicionar a um carrinho de compras os produtos que pretende adquirir. Editar encomenda: O utilizador (cliente) deverá poder efectuar várias acções sobre uma encomenda que deseje colocar. Estas poderão ser: a remoção de um artigo que já tenha sido adicionado à encomenda; a alteração da quantidade de um produto; a efectivação da encomenda, ou seja, a finalização de uma encomenda. Após a finalização deverá ser apresentada uma factura ao utilizador. Outra opção que deverá ser disponibilizada é a anulação de uma encomenda. Efectuar registo: O utilizador (cliente) deverá poder registar-se na loja, ficando assim com acesso às funcionalidades que se destinam apenas a utilizadores registados. Login: O utilizador (cliente) deverá poder autenticar-se no sistema para aceder às funcionalidades reservadas exclusivamente aos utilizadores registados.
3 Visualizar estado da encomenda: O utilizador (cliente) deverá poder consultar o estado de uma encomenda que efectue. Editar dados pessoais: O utilizador (cliente) deverá poder visualizar e editar os seus dados pessoais que tenha registado previamente. Logout: O utilizador (cliente) deverá poder terminar uma sessão em que se autentique. 2.2 Requisitos de back-end Os requisitos de back-end, destinam-se à manutenção de informação presente na loja e devem ser do acesso exclusivo dos administradores da loja. Login: O administrador da loja deverá poder autenticar-se no sistema para aceder às funcionalidades reservadas à manutenção da loja. Logout: O administrador deverá poder terminar uma sessão em que se autentique. Efectuar pesquisa: O administrador deverá poder efectuar pesquisas na loja de comércio electrónico. Efectuar a manutenção de categorias de produtos: O administrador deverá poder alterar, eliminar, inserir e consultar diferentes categorias de produtos. Efectuar a manutenção de tipos de produtos: O administrador deverá poder alterar, eliminar, inserir e consultar diferentes tipos de produtos. Efectuar a manutenção de produtos: O administrador deverá poder alterar, consultar, eliminar, inserir produtos de diferentes tipos. Efectuar a manutenção de encomendas: O administrador deverá poder consultar os pedidos de encomenda dos clientes e efectuar o seu processamento, com a actualização de estados. Efectuar a manutenção de clientes: O administrador deverá poder editar dados de clientes, acrescentar observações sobre clientes ou remover clientes do sistema. Efectuar a manutenção de administradores: O sistema deverá possibilitar alterar dados de administradores, adicionar novos administradores ou remover administradores do sistema. Audit trail: O sistema deverá possibilitar a manutenção de um histórico de transacções efectuadas no sistema. Efectuar a manutenção de publicidade: O administrador deverá poder efectuar a actualização de banners e de publicidade. Efectuar a manutenção de promoções: O administrador deverá poder fazer a gestão das promoções, ou seja, modificar, remover ou colocar novos produtos em promoção. E o mesmo deverá acontecer relativamente a produtos da semana. Efectuar a manutenção de notícias: O administrador deverá poder fazer a gestão das notícias, isto é, alterar, criar ou eliminar notícias. Efectuar a manutenção de perguntas frequentes: O administrador deverá poder fazer a gestão das perguntas frequentes, isto é, alterar, criar ou eliminar perguntas frequentes e as respectivas respostas. Efectuar a manutenção de facturas: O administrador deverá poder fazer a gestão das facturas referentes a encomendas, isto é, alterar, criar ou eliminar facturas. 3. MODELO DE CLASSES DO SISTEMA Com base nos requisitos apresentados na secção anterior, nesta secção apresenta-se um modelo de classes UML para o desenvolvimento de uma solução de comércio electrónico B2C. A UML é uma linguagem de modelação que utiliza uma notação padrão para especificar, construir, visualizar e documentar sistemas de informação e de software [3]. A UML permite ainda responder a requisitos técnicos relevantes para uma evolução dos sistemas informáticos, como a arquitectura da aplicação informática (software), a capacidade de reutilização dos componentes desenvolvidos e a independência em relação ao equipamento [9]. Dado que os sistemas de software que são correctamente modelados tendem a ser sistemas mais robustos e fáceis de manter, no contexto deste trabalho foram utilizados diagramas de classes para desenvolver a modelação do sistema. A criação de um modelo de classes resulta de um processo de abstracção através do qual se identificam os objectos (entidades e conceitos) relevantes no contexto que se pretende modelar e se procuram descrever características comuns em termos de propriedades (atributos) e de
4 comportamento (operações). Assim, as classes descrevem objectos através de atributos e operações comuns e servem dois propósitos: permitem compreender o mundo real naquilo que é relevante para o sistema de informação que se pretende desenvolver e fornecem uma base prática para posterior implementação [10]. Nas figuras 1, 2 e 3, pode ser consultado o modelo de classes desenvolvido. Cada uma das figuras representa uma vista parcial do modelo total, de modo a facilitar a sua leitura e apresentação. A perspectiva estática fornecida pelo diagrama de classes tem como objectivo suportar os requisitos funcionais do sistema que foram previamente identificados. Cada uma das figuras é explicitada de seguida. Figura 1 Modelo de classes diagrama parcial Catálogo de produtos Na figura 1 encontram-se as classes que possibilitam suportar o catálogo de produtos. O modelo possibilita a criação de diversos tipos de produtos (classe Tipo_Produto ). Um tipo de produto (classe Tipo_Produto exemplo computador ) pertence a uma determinada categoria (classe Categoria_Produto exemplo hardware ) e pode possuir diversas características (classe Tipo_Prod_Caract exemplos processador e memória RAM ). Pode também ser criada uma hierarquia de categorias (através das classes Categoria_Produto e Categoria_Pai ). Os produtos são definidos através das classes Produto (por exemplo, computador C1 ), Produto_Carac_valor (por exemplo, para o Tipo_Prod_Caract com valor processador, o Produto_Carac_Valor pode ser Pentium IV ) e Produto_Foto (exemplo, computadorc1.jpg ) do
5 tipo Tipo_Foto (exemplo, Foto principal/thumbnail ). Será ainda possível definir diversos preços para um produto através das classes Produto_Preco (exemplo, 20 USD ) e Tipo_Preco (exemplo, preço promocional ). Também é possível indicar se um produto se encontra em destaque, através das classes Produto_Destaque (exemplo, de a ) e Tipo_Destaque (exemplo, página principal ). Na figura 2 encontram-se as classes relacionadas com os utilizadores e as encomendas. O modelo possibilita que, para cada utilizador, sejam mantidos dados individuais (classe Utilizador_Registado exemplo cliente José Silva ), endereços (classe Morada exemplo Rua X, localidade Y e classe Tipo_Morada exemplo morada profissional ) e contactos (classe Contacto exemplo e classe Tipo_Contacto exemplo telefone ). Utilizador Registado 1 nome bilheteid nrcontribuinte username Tem password 1 nrcliente estatuto alterardados alterarpassword criarpergunta efectuarpedidoassistencia efectuarregisto enviarcurriculim verhistórico Morada codmorada morada localidade codpostal pais estadoprovincia pertence 1..* 1 tem Tipo_Morada codtipomorada designacao observacoes adicionartipomorada alterartipomorada removertipomorada pertence Contacto codcontacto valor 1..* Tipo_Contacto codtipo designacao observacoes adicionartipocontacto alterartipocontacto removertipocontacto Embrulho codembrulho descricao foto custo adicionarembrulho alterarembrulho removerembrulho tem efectua Item_encomenda quantidade valorunitário imposto desconto codigoitem designacaoproduto disponibilidadeentrega mensagemenc alterardesconto alterarimposto alterarquantidade calculartotal removeritemencomenda tem 1..* Tem Mensagem codmensagem descricao estado adicionarmensagem alterarmensagem removermensagem Encomenda identificador data embrulhar indicacoesentrega nomefacturacao nrcontribuinte expedicaoparcial custosexpedicao calculartotal cancelarencomenda efectuarencomenda removerencomenda verestadoencomenda 1 possui Encomenda_Pagamento numcartao validadecartao nomecartao codsegurancacartao codtipopag designacao possui 1..* Tipo_Pagamento adicionartipopagamento alterartipopagamento removertipopagamento Figura 2 Modelo de classes diagrama parcial Utilizadores e encomendas Um utilizador pode efectuar diversas encomendas (classe Encomenda ), podendo cada encomenda ser respeitante a vários produtos (classe Item_encomenda ). Cada produto que faz parte de uma encomenda pode ter uma mensagem associada (classe Mensagem ) e um determinado tipo de embrulho (classe Embrulho ). Uma encomenda tem ainda associado um pagamento (classe Encomenda_Pagamento ), sendo este de um terminado tipo (classe Tipo_Pagamento ). Na figura 3 encontram-se mais classes relacionadas com utilizadores e com encomendas. Relativamente aos utilizadores, encontramos dois tipos distintos: cliente (subclasse Cliente ) e administrador (subclasse Administrador ). É mantido um log das transacções efectuadas pelos utilizadores registados (classe AuditTrail ). Intimamente relacionadas com as encomendas, estão os documentos factura (classe Factura e classe Item_Factura ). A figura 3 identifica também as associações existentes entre as classes Item_encomenda e Produto.
6 Figura 3 Modelo de classes diagrama parcial Utilizadores e facturas No seu conjunto os três diagramas apresentados constituem o modelo de classes para o sistema B2C. 4. PROTÓTIPO DO SISTEMA O protótipo do sistema que propomos foi desenvolvido recorrendo às tecnologias da Microsoft Microsoft.NET, Visual Studio 2005, ASP.NET 2.0 C# e Microsoft SQL Server O Microsoft Windows.NET Framework é um modelo de programação para construir, distribuir e correr Web services e aplicações. Consiste em duas partes principais: a Common Language Runtime; e um conjunto especial de bibliotecas de classes incluindo a ASP.NET [6]. Procurou-se desenvolver um sistema de uma solução de comércio electrónico B2C parametrizável, ou seja, que possibilitasse a definição de qualquer categoria de produtos, qualquer tipo de produto, qualquer produto e quaisquer características de um produto. Isto de modo a que a aplicação possa ser usada em diversas áreas de negócio. Um dos maiores benefícios do sistema proposto está no facto de este ser dinâmico, ou seja, praticamente todos os aspectos referentes ao catálogo de produtos e de encomendas são configuráveis. Assim conseguiu-se que elementos como, por exemplo, novas categorias de produtos, produtos ou características de produtos, possam ser suportados pelo sistema sem que seja necessário o desenvolvimento de novo código ou de qualquer alteração na aplicação. O facto da aplicação ter um elevado grau de parametrização, torna o seu desenvolvimento bastante mais complexo. Para ilustrar esta ideia, apresentamos na figura 4 um excerto do modelo de dados do sistema.
7 Figura 4 Excerto do modelo de dados do sistema Vejamos um breve exemplo. A tabela PRODUTO, que está relacionada com a tabela TIPO_PRODUTO e esta por sua vez relacionada com a tabela CATEGORIA_PRODUTO, contém os dados sobre produtos. As características que se referem a cada um dos produtos estão distribuídas por várias tabelas que se relacionam entre si, como é o caso das tabelas PRODUTO_CARAC_VALOR e PRODUTO_FOTO. Embora esta seja solução mais complexa em termos de implementação, tem como vantagem ser uma solução muito versátil. Uma alternativa à solução apresentada seria o desenvolvimento de uma solução rígida no que respeita à acomodação de novos requisitos. Neste caso, a solução teria como vantagem um desenvolvimento mais facilitado, menos complexo e com um menor grau de risco, dado o número de entidades e relacionamentos ser significativamente menor. A grande desvantagem desta solução seria o facto de ser consideravelmente mais limitada dado que seria rígida, por exemplo, em termos da hierarquia de produtos e das características que cada produto poderia ter. 5. CONCLUSÕES O crescimento da Internet abriu vários caminhos para a utilização do comércio electrónico. Hoje em dia, utiliza-se a Internet não só como meio de comunicação, mas também como um meio de fazer negócios, surgindo assim o conceito de comércio electrónico. No que diz respeito ao comércio electrónico, existem vários conceitos que necessitam ser entendidos pelas empresas de modo a serem bem sucedidas nas suas iniciativas de comércio. Conquistar a confiança de um cliente, a ponto dele, por exemplo, fazer um pedido, enviar o seu número de cartão de crédito e autorizar a compra, pode ser muito difícil. É preciso muita divulgação, trabalho, planeamento, estratégia, produtos de qualidade e preços competitivos [4]. Para além disso, é fundamental que as plataformas tecnológicas
8 suportem devidamente os requisitos de negócio e sejam configuráveis, robustas e escaláveis. Neste artigo apresentamos um modelo de classes para o desenvolvimento de uma solução de comércio electrónico B2C. O objectivo central do trabalho realizado residiu na proposta de uma especificação de um sistema altamente configurável, que possa ser utilizado em várias áreas de negócio e que suporte catálogos de produtos com estruturas heterogéneas. 6. REFERÊNCIAS [1] Anacom, O Comércio Electrónico em Portugal O Quadro Legal e o Negócio. (acedido em 15 de Junho de 2006) [2] Anacom, Comércio Electrónico Introdução 02 (acedido em 15 de Junho de 2006) [3] Booch, G., Jacobson, I., Rumbaugh, J., The Unified Modeling Language User Guide, Addison Wesley. [4] Bernardino, A., Castro, A., Bernardino, E., Relvão, R., 2004, Tecnologias para o Comércio Electrónico Autenticação, Mestrado e Curso de Especialização, Universidade do Minho. [5] Ernest & Young, ecommerce in New Zealand First Annual Study Results, Wellington, United Nations Center for Facilitation of Procedures and Practices for Acquisition, Commerce and Transport. [6] Evjen, B., Hanselman, S., Muhammad, F., Sivakumar, S., Rader, D., Professional ASP.NET 2.0, Wiley Publishing, Indiana. ISBN: [7] Frederik, S., Kshamta, J., Pilskalns, O., Young-Jik, K. Woo-Hun, K., Hong Chung, Case Study: B2B E-Commerce System Specifications and Implementation Employing Use-Case Diagrams, Digital Signatures and XML, IEEE Proc. International Symp. Multimedia Software Engineering (MSE 2002), , Newport Beach. [8] Gonçalves, R., Modelo Explicativo das Iniciativas de Comércio Electrónico, Tese de Doutoramento, Universidade de Trás-os-Montes e Alto Douro, Portugal. [9] Nunes, M., O Neil, H., Fundamental da UML, 3ª ed., FCA. ISBN: [10] Rumbaugh, J., Blaha, M., Premerlani, W., Eddi, F., Lorensen, W., Object-Oriented Modeling and Design, Prentice-Hall International.