projeto de graduação

66
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL CENTRO UNIVERSITÁRIO DE DOURADOS DEPARTAMENTO DE CIÊNCIAS EXATAS BACHARELADO EM ANÁLISE DE SISTEMAS Desenvolvimento de uma Ferramenta de Colaboração On- line para otimizar a comunicação com fornecedores e reduzir custos nos processos de obtenção de materiais diretos e indiretos. por Marcos Bispo de Oliveira Orientador: Prof. Fábio Montanha Ramos Banca Examinadora: Prof. André Luis Gonsales Prof. Edmir Ribeiro Terra Prof. Fábio Montanha Ramos Dissertação apresentada à Universidade Federal do Mato Grosso

Upload: marcos-bispo-de-oliveira

Post on 15-Apr-2017

127 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Projeto de graduação

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SULCENTRO UNIVERSITÁRIO DE DOURADOSDEPARTAMENTO DE CIÊNCIAS EXATAS

BACHARELADO EM ANÁLISE DE SISTEMAS

Desenvolvimento de uma Ferramenta de Colaboração On-line para otimizar a comunicação com fornecedores e reduzir custos nos processos de

obtenção de materiais diretos e indiretos.

por

Marcos Bispo de Oliveira

Orientador:

Prof. Fábio Montanha Ramos

Banca Examinadora:

Prof. André Luis GonsalesProf. Edmir Ribeiro TerraProf. Fábio Montanha Ramos

Dissertação apresentada à Universidade Federal do Mato Grosso do Sul – UFMS, Centro Universitário de Dourados, como parte dos requisitos para obtenção do grau de Bacharel em Análise de Sistemas.

Dourados/MS., Dezembro de 2003

Page 2: Projeto de graduação

Agradecimentos

Agradeço a minha mulher Rosangela, pela dedicação e compreensão, ao professor Fábio

Montanha, por sua contribuição como orientador do trabalho, e a todos que, direta ou

indiretamente, contribuíram com idéias ou sugestões.

II

Page 3: Projeto de graduação

Resumo

O objetivo deste trabalho é propor o desenvolvimento de uma ferramenta para otimizar a

comunicação com fornecedores e reduzir custos nos processos de compra de bens ou serviços,

utilizando conceitos de marketing reverso e e-procurement.

No capítulo 1 tratamos dos objetivos gerais e específicos deste trabalho, da metodologia e da

justificativa. A seguir, no capítulo 2, é dada uma breve introdução aos conceitos de marketing

reverso e e-procurement. No capítulo 3, propõe-se a solução, tratando de aspectos de

tecnologia (linguagem de programação e banco de dados) e da análise de dados e funções do

sistema. A partir do capítulo 4, é feita a modelagem do sistema, bem como o estabelecimento

de um cronograma para o desenvolvimento e teste da ferramenta.

III

Page 4: Projeto de graduação

Abstract

The objective of this work is to consider the development of a tool to optimize the

communication with suppliers and to reduce costs in the processes of purchase of goods or

services, using reverse marketing concepts and e-procurement. In chapter 1 we deal with the

general and specific objectives of this work, the methodology and the justification. After, in

chapter 2, is given one brief introduction to the reverse marketing concepts and e-

procurement. In chapter 3, we present the solution, treating technology aspects (programming

language and data base) and the analysis of the system, like data and functions. From chapter

4, the modeling of the system is made, as well as the establishment of a cronogram for the

development and test of the tool.

IV

Page 5: Projeto de graduação

Índice de texto

Lista de figuras e tabelas.........................................................................................................VI

Figuras.................................................................................................................................VI

Tabelas.................................................................................................................................VI

Lista de abreviações...............................................................................................................VII

1. Introdução.............................................................................................................................8

1.1. Objetivos........................................................................................................................81.1.1. Geral.........................................................................................................................81.1.2. Específico.................................................................................................................9

1.2. Metodologia.................................................................................................................10

1.3. Justificativa..................................................................................................................10

2. Marketing Reverso..............................................................................................................11

2.1. E-procurement............................................................................................................12

3. Solução Proposta.................................................................................................................16

3.1. Objetivos da Solução Proposta..................................................................................17

3.2. Análise dos Dados e Funções......................................................................................18

3.3. Aspectos de Tecnologia...............................................................................................193.3.1. O PHP....................................................................................................................193.3.2. O PostgreSQL........................................................................................................21

4. Modelagem da Solução Proposta.......................................................................................23

4.1. Especificação de Casos de Uso...................................................................................24

4.2. Diagrama de Classes...................................................................................................27

4.3. Diagramas de Seqüência.............................................................................................29

4.4. Diagrama de Componentes........................................................................................33

4.5. Modelagem dos Dados................................................................................................344.5.1. Lógica....................................................................................................................344.5.2. Física......................................................................................................................34

5. Interface da solução proposta.............................................................................................36

6. Cronograma de trabalho......................................................................................................43

Considerações finais................................................................................................................44

Referências Bibliográficas......................................................................................................45

V

Page 6: Projeto de graduação

Lista de figuras e tabelas

Figuras

Figura 1: Modelo de aplicação------------------------------------------------------------------------16Figura 2: Notação de diagrama de entidade-relacionamento------------------------------------24Figura 3: Primeiro caso de uso------------------------------------------------------------------------25Figura 4: Segundo caso de uso------------------------------------------------------------------------25Figura 5: Terceiro caso de uso------------------------------------------------------------------------26Figura 6: Quarto caso de uso--------------------------------------------------------------------------27Figura 7: Diagrama de Classes------------------------------------------------------------------------28Figura 8: Diagrama de Seqüência 1------------------------------------------------------------------29Figura 9: Diagrama de Seqüência 2------------------------------------------------------------------30Figura 10: Diagrama de Seqüência 3-----------------------------------------------------------------31Figura 11: Diagrama de Seqüência 4-----------------------------------------------------------------32Figura 12: Diagrama de Componentes---------------------------------------------------------------33Figura 13: DER (Diagrama de entidade-relacionamento)-----------------------------------------34Figura 14: MER (Modelo de entidade-relacionamento)-------------------------------------------35Figura 15: Tela de entrada do sistema---------------------------------------------------------------36Figura 16: Tela exibida após a entrada do usuário administrador-------------------------------37Figura 17: Tela exibida após a entrada do usuário fornecedor-----------------------------------38Figura 18: Tela de visualização da lista de processos de compra ativos------------------------39Figura 19: Tela de visualização de detalhes do processo de compra----------------------------40Figura 20: Tela de envio de lances de fornecimento------------------------------------------------41Figura 21: Tela de visualização de lances de fornecimento----------------------------------------42

Tabelas

Tabela 1: Estratégias de adoção das tecnologias de E-Procurement----------------------------14Tabela 2: Eficiências geradas com a adoção de tecnologias de E-procurement---------------15Tabela 3: Cronograma de trabalho---------------------------------------------------------------------43

VI

Page 7: Projeto de graduação

Lista de abreviações

ASP = Active server pages (Páginas ativas de servidor)

CGI = Common gateway interface (Interface comum de portadora)

DER = Diagrama de entidade-relacionamento

HTML = Hypertext markup language (Linguagem de marcação de hiper-texto)

HTTP = Hypertext transfer protocol (Protocolo de transferência de hiper-texto)

MER = Modelo de entidade-relacionamento

PHP = Hipertext pre-processor (pré-processador de hiper-texto)

SQL = Structured query language (Linguagem estruturada de consulta)

UML = Unified Modeling Language (Linguagem de modelagem unificada)

VII

Page 8: Projeto de graduação

1. Introdução

Atualmente, tanto em organizações privadas quanto em organizações públicas (ou mistas), a

necessidade de economia é um fator importantíssimo e está diretamente relacionado com a

racionalização da produção, o melhor aproveitamento de recursos humanos e o melhor

gerenciamento das compras.

Portanto, comprar bem faz parte de um conjunto de ações que fará com que a organização se

torne mais competitiva e rentável, ou mais eficiente (no caso de organizações públicas).

Para comprar bem, é necessário que a organização adote, entre outras, estratégias de

marketing reverso [LEENDERS & BLENKHORN, 1991], como é o caso do e-procurement1

[DAVILA et al., 2002], que leva o marketing reverso, do qual falaremos no capítulo 2, para a

internet.

O objetivo deste trabalho é mostrar ao leitor a viabilidade do desenvolvimento de uma

ferramenta de e-procurement para otimizar a comunicação com fornecedores e reduzir custos

nos processos de obtenção de materiais diretos e indiretos, ou seja, uma ferramenta de e-

procurement, além do projeto da ferramenta em si.

1.1. Objetivos

1.1.1. Geral

Propor um sistema de colaboração on-line via internet para ser usado por empresas ou

instituições públicas, cuja finalidade é o aumento de suas bases de fornecedores e a

otimização da comunicação entre estes fornecedores e os departamentos de compras, com o

objetivo de reduzir os custos operacionais e administrativos dos processos de licitação e/ou

compra de materiais diretos e indiretos (materiais de consumo ou matéria prima), aumentar a

eficiência destes processos e ainda promover a competição entre os fornecedores destes

materiais, reduzindo os custos de obtenção, utilizando os conceitos de marketing reverso e e-

procurement.

1.1.2. Específico

Dar o conceito de marketing reverso e e-procurement, coletar dados sobre a adoção de

sistemas de e-procurement, tanto no Brasil quanto no mundo, descrever o funcionamento da 1 Obtenção de bens/serviços através do meio eletrônico.

8

Page 9: Projeto de graduação

solução proposta, elaborar o projeto do “Sistema de Colaboração On-line”, na forma de um

web-site2 que será utilizado através da intranet e cujos objetivos são:

Promover a comunicação entre o departamento de compras e os fornecedores, onde estes

fornecedores poderão efetuar um cadastro e, mediante aprovação da comissão de compras,

passar a fazer parte da base de fornecedores e participar dos processos de compra (pregão

eletrônico);

Possibilitar ao departamento de compras criar listas de compra de materiais, constando a

data de início e a data de finalização do processo de coleta de preços e fazer com que os

fornecedores recebam eletronicamente os avisos e as listas através de mensagens que

poderão ser enviadas via e-mail3 ou consultadas no sistema;

Possibilitar aos fornecedores a participação nos processos de compra, através da utilização

do sistema para o envio de lances ou preços de seus produtos compatíveis com os

constantes das listas de materiais criadas pelos membros das comissões de compra,

criando assim uma espécie de leilão reverso, onde o objetivo é a obtenção do menor preço

(e não do maior) ou das melhores condições;

Possibilitar ao departamento de compras o acompanhamento dos lances dos fornecedores,

a inclusão e o gerenciamento das listas de materiais, a seleção dos melhores lances e o

envio do pedido ao fornecedor selecionado;

Fornecer uma interface de administração simples e poderosa para a equipe de

administração do sistema e para as comissões de compra e fornecer uma interface de

acesso para os fornecedores;

Prover um meio de classificar os bons e os maus fornecedores através de um sistema de

pontuação, onde o fornecedor que entregar os produtos no prazo e com qualidade receberá

pontos positivos e o fornecedor que não entregar os produtos no prazo e com má

qualidade receberá pontos negativos. O objetivo é fazer com que a competição entre os

fornecedores aconteça de forma sadia e responsável;

Prover segurança de dados através da implementação de nomes de usuários e senhas,

níveis de acesso e criptografia da transferência de dados entre o web-server4 que

hospedará o sistema e o browser5 cliente;

Fornecer dados estatísticos, relatórios e gráficos sobre o histórico de aquisição de

materiais em determinado período;

2 Página ou documento disponibilizado na internet.3 Mensagem eletrônica.4 Servidor de páginas ou documentos para a internet.5 Aplicativo para visualização de páginas ou documentos da internet.

9

Page 10: Projeto de graduação

1.2. Metodologia

Para a elaboração deste trabalho, planeja-se seguir o seguinte roteiro:

Realizar pesquisas sobre marketing reverso, e-procurement, e assuntos ligados à

otimização e a redução de custos de compras e também sobre as ferramentas e linguagens

que deverão ser utilizadas para a implementação do protótipo do sistema;

Organizar estes dados para serem usados no projeto de graduação;

Elaborar o projeto do sistema proposto;

Organizar todo o material coletado, resultante de pesquisas bibliográficas, dados

estatísticos e a documentação do sistema e montar relatório final;

1.3. Justificativa

Justifica-se este trabalho ao percebermos que a utilização de sistemas de e-procurement, tanto

no Brasil quanto no mundo, ainda é pequena, e que, diante da necessidade crescente de

otimização dos processos de compra e redução de custos operacionais, a popularização e a

livre distribuição deste tipo de solução só traria benefícios para as partes interessadas

(organizações públicas ou privadas).

10

Page 11: Projeto de graduação

2. Marketing Reverso

Marketing reverso. 1. Busca por parte de uma empresa de fornecedores. No modelo tradicional era o

fornecedor quem buscava o cliente. Há muitas razões para um comprador aplicar o marketing reverso,

entre elas destacam as seguintes: altos retornos, deficiências de mercado, considerações futuras,

procurações políticas, geográficas e ambientais, tecnologia, reconhecimento e valorização e tendências

atuais. 2. Maneira agressiva e imaginativa de alcançar os objetivos de suprimentos em que o

comprador toma a iniciativa de fazer as propostas, sejam para fornecedores, sejam para usuários

dentro da organização. 6

Tradicionalmente, o conceito de marketing está relacionado à venda de produtos ou serviços,

onde o fornecedor parte em busca de compradores através de campanhas publicitárias

[KOTLER, 2000], [LAMBIN, 2000]. Podemos citar vários exemplos de campanhas de

marketing que procuram persuadir os potenciais compradores: as campanhas da Coca-Cola,

da Nike e da Nestlé. Todas essas campanhas têm um único objetivo: a venda de produtos.

No marketing reverso os papéis se invertem, ou seja, é o comprador quem sai a procura de

fornecedores e boas oportunidades de compra [LEENDERS & BLENKHORN, 1991].

Antes de falarmos sobre o conceito de marketing reverso, é importante ressaltar a importância

da estratégia de suprimentos em uma organização. Toda organização, seja pública ou privada,

depende de fornecedores para suprir suas inúmeras necessidades de materiais, mercadorias ou

serviços.

Se considerarmos uma organização como um sistema de transformação insumo-produto,

veremos que o controle da aquisição de insumos é de alta importância para o bom

funcionamento do sistema como um todo [LEENDERS & BLENKHORN, 1991].

A função de suprimentos em uma organização contribui substancialmente para os objetivos e

estratégias organizacionais, quando é bem organizada e gerenciada [LEENDERS & BLENKHORN,

1991].

O bom gerenciamento deste sistema dependerá do bom gerenciamento do sistema de

suprimentos [LEENDERS & BLENKHORN, 1991].

Surge daí a importância de uma estratégia de marketing voltada às compras, onde o principal

objetivo é a detecção de boas oportunidades de aquisição de insumos bem como a firmação de

boas parcerias com fornecedores internos ou externos.

6 Definição de marketing reverso, disponível em http://www.ric.com.br/dicionario_r.asp, acessado em 15/10/2003

11

Page 12: Projeto de graduação

O marketing reverso é um método agressivo e criativo que faz parte da estratégia de

suprimentos de uma organização, onde o comprador toma a iniciativa, em vez do vendedor.

Este método inclui pesquisas de preços com fornecedores variados visando as melhores

condições para a aquisição imediata de suprimentos, a firmação de parcerias de fornecimento

com fornecedores estratégicos ou ainda a criação de subdivisões dentro da organização

responsáveis pela produção e fornecimento de produtos [LEENDERS & BLENKHORN,

1991].

2.1. E-procurement

O termo e-procurement surgiu após a explosão da internet e está diretamente relacionado ao

marketing reverso. O e-procurement consiste em utilizar a rede mundial para fazer marketing

reverso.

Conceito que transfere para a Web o processo e gerenciamento de compras de suprimentos, aliviando a

carga de trabalho e os custos dessa área nas corporações. O e-procurement traz a eliminação do

papel, uma cotação de preços mais abrangente e a possibilidade de acompanhar melhor a performance

dos fornecedores. Num outro estágio, amplia a integração da cadeia de relacionamento. Desenvolvidos

em linguagem Web, os sistemas podem elaborar cadastros eletrônicos, onde é possível analisar

produtos e preços, indicando as melhores opções de compra de acordo com parâmetros pré-

estabelecidos. 7

Um serviço de e-procurement procura integrar de forma eficiente os departamentos de

compras das empresas com seus fornecedores. Por meio do e-procurement o processo de

seleção e aprovação das compras das empresas é automatizado na internet. Com isso o custo

de cotação e compra de um produto fica muito mais barato. O trabalho de cotar com duas

empresas, por exemplo é o mesmo do que se comunicar com 100 empresas. Isso resulta em

uma maior possibilidade de encontrar melhores preços e prazos na obtenção de diversos

produtos além de obter uma redução nos custos do processo.

Podemos citar alguns grandes utilizadores de serviços de e-procurement no Brasil:

A prefeitura de Curitiba, no estado do Paraná, utiliza um sistema de e-procurement para

realizar processos de compras cujo valor não ultrapasse o limite de R$8.000,00;

7 Definição de e-procurement, disponível em http://www.me.com.br/Faq.asp#20, acessado 31/10/2003

12

Page 13: Projeto de graduação

A AGCO, líder mundial em fabricação e distribuição de equipamentos agrícolas e peças

de reposição, utiliza em suas subsidiárias brasileiras sistemas de e-procurement para

agilizar os processos de compras, reduzir custos de aquisição e reduzir o nível de estoque;

O Grupo Electrolux, líder mundial na produção e comercialização de eletrodomésticos

para uso em ambientes internos e externos, utiliza sistemas de e-procurement para redução

de custos operacionais e agilização dos processos de compras;

Dentre as vantagens do e-procurement, podemos citar:

Redução de custos dos processos de compra (papel, deslocamento, telefone, etc);

Maior controle sobre os processos de compra, com a mensuração de dados (comparações

de preços de produtos e prazos de atendimento, desempenho de fornecedores, histórico de

compras, etc);

Redução de nível de estoques;

Agilização dos processos de cotação de preços, aprovação de requisições de compra e

fechamento de pedidos;

Maior competição entre fornecedores, possibilitando maior redução do preço final de

produtos;

Uma pesquisa realizada por Antonio Davila, Mahendra Gupta e Richard J. Palmer [DAVILA

et al., 2002], utilizando respostas de 168 organizações da América do Norte (Estados Unidos e

Canadá), traça o estado atual da adoção e utilização das tecnologias de e-procurement na

América do Norte.

Os resultados da pesquisa indicam que as tecnologias de e-procurement estão ainda em seus

estágios adiantados de desenvolvimento - um estágio em que existem diferentes soluções

tecnológicas disponíveis no mercado, e estas competem entre si para resolver as diferentes

necessidades existentes nas organizações, antes que um padrão dominante de tecnologia seja

adotado. A maioria dos entrevistados que usam tecnologias de e-procurement são usuários

relativamente novos, somente 34% dos entrevistados estão envolvidos com iniciativas

tecnológicas relacionadas ao e-procurement há um ano ou mais. Das organizações que

compram software de e-procurement, 61% são corporações; destas, 71% são do tamanho da

Fortune 5008.

A tabela 1, segundo a pesquisa [DAVILA et al., 2002], descreve as várias estratégias que as

companhias estão adotando para tecnologias de e-procurement. A maioria (70%) está

adotando uma estratégia do tipo "esperar para ver". Estas companhias estão cientes do estágio

atual de desenvolvimento do e-procurement, mas não estão destinando os recursos (37%),

8 Organização com faturamento anual acima de 10 bilhões de dólares.

13

Page 14: Projeto de graduação

nem investindo seletivamente, ou seja, esperando até que o melhor modelo de e-procurement

possa ser identificado (33%). Não obstante, estão seguindo de perto os desenvolvimentos

destas tecnologias, estão reconhecendo a relevância destas tecnologias para seu futuro e

investindo bastante para compreendê-las e amadurece-las.

Tabela 1: Estratégias de adoção das tecnologias de E-Procurement

Obs.: A tabela reflete a estratégia das organizações, como segue:

1 = Observam o e-procurement, sem experimentações. 2 = Estão cientes do estágio atual do e-procurement, mas não destinam maiores recursos.3 = Investem seletivamente até que o melhor modelo de e-procurement possa ser identificado e adotado.4 = Movem-se rapidamente para o e-procurement.5 = Investem pesadamente para ganhar liderança competitiva no setor.

Uma pequena parte das organizações (4%) está adotando uma estratégia mais passiva da

observação sem experimentação, um número moderado das organizações (27%) está adotando

uma estratégia agressiva para a adoção da tecnologia de e-procurement - declarando que estão

investindo significativamente em e-procurement para ganhar a liderança perante seus

concorrentes [DAVILA et al., 2002].

Outro aspecto importante da pesquisa relata os benefícios que estas organizações observam

com a adoção de soluções de e-procurement. Espera-se que estes benefícios acelerem a taxa

de adoção destas tecnologias, uma vez que as incertezas que remanescem são reduzidas aos

níveis que incentivam alocação significativa de recursos. As companhias que usam

14

Page 15: Projeto de graduação

tecnologias de e-procurement relatam economias de 42% custos da transação de compra. Esta

redução de custos é associada com a menor utilização de papel, que traduz em poucos erros e

em um processo mais eficiente de compra. A simplificação do processo de compra com a

utilização do e-procurement também favorece a redução do ciclo de compra. Quando não

diretamente quantificável em dólares, um tempo de ciclo mais rápido fornece mais

flexibilidade e uma informação mais atualizada no momento de abrir uma ordem de compra.

Os usuários das tecnologias de e-procurement relatam também uma redução no número de

fornecedores – aliado aos benefícios associados do custo de uma complexidade gerencial mais

baixa, de preços mais baixos, e de redução na quantidade de pessoas envolvidas no processo

de compra [DAVILA et al., 2002]. A tabela 2, segundo a pesquisa [DAVILA et al., 2002],

relata os resultados da pesquisa.

Tabela 2: Eficiências geradas com a adoção de tecnologias de E-procurement

15

Page 16: Projeto de graduação

3. Solução Proposta

Baseando-se nos conceitos de marketing reverso e e-procurement citados no capítulo anterior,

propõe-se com este trabalho a especificação de um sistema de e-procurement do tipo leilão

reverso, onde fornecedores cadastrados têm acesso a listas de compra criadas pelos

compradores, podendo assim enviar suas propostas de fornecimento (lances de fornecimento)

e ainda transportadores cadastrados, da mesma forma, têm acesso às listas de compra,

podendo então enviar suas propostas de transporte (lances de transporte) dos produtos.

A solução proposta é baseada no conceito de web-application9, conforme mostra a figura 1,

ou seja, aplicação desenvolvida para a internet, onde a aplicação servidora fica armazenada

em um servidor de internet e é acessada através de um software cliente, o navegador de

internet, através do protocolo HTTP (Hypertext transfer protocol).

Figura 1: Modelo de aplicação

A aplicação deverá ser composta dos seguintes módulos:

Módulo de Gerenciamento geral;

Módulo de Gerenciamento de Processos de Compras;

Módulo de Gerenciamento de Lances de Fornecimento;

Módulo de Gerenciamento de Lances de Transporte;9 Aplicação desenvolvida para a internet.

16

Page 17: Projeto de graduação

O módulo de Gerenciamento Geral será utilizado pelo usuário administrador do Sistema de

Compras, e este fornecerá acesso a todos os cadastros do sistema, e também o controle de

usuários e de permissões de acesso.

O Módulo de Gerenciamento de Processos de Compra será utilizado pelo usuário comprador,

permitindo a abertura e encerramento de processos de compra, aprovação de lances de compra

e de lances de transporte, envio de pedidos de compra e de transporte.

O Módulo de Gerenciamento de Lances de Fornecimento será utilizado pelo usuário

fornecedor, e permitirá ao fornecedor visualizar processos de compras, enviar ou cancelar

lances de fornecimento, visualizar o ranking de lances e estabelecer comunicação com outros

usuários do sistema.

O Módulo de Gerenciamento de Lances de Transporte será utilizado pelo usuário

transportador e permitirá a este visualizar processos de compras, gerenciar seus lances de

transporte, visualizar o ranking de lances de transporte e estabelecer comunicação com outros

usuários do sistema.

3.1. Objetivos da Solução Proposta

A aplicação proposta tem como objetivo atender aos seguintes requisitos:

Permitir ao administrador do sistema gerenciar todos os dados de compradores,

fornecedores, transportadores, processos de compra, lances de transporte e de

fornecimento, incluindo dados auxiliares, dados de usuários e controle de acesso;

Permitir ao comprador criar listas de compras, constando os itens de produtos e suas

respectivas categorias;

Permitir ao comprador especificar uma programação de entrega, contando local e data,

para cada item de um processo de compra;

Permitir ao comprador, ao criar listas de compras, especificar quais fornecedores ou quais

categorias de fornecedores deverão ser avisados sobre a abertura de novo processo de

compra;

Permitir ao fornecedor visualizar listas de compras e itens de listas de compras;

Permitir ao fornecedor enviar lances contendo preço do produto e condições de

pagamento e entrega para itens de listas de compras;

17

Page 18: Projeto de graduação

Permitir ao transportador visualizar listas de compras e itens de listas de compras,

incluindo a programação de entrega do produto;

Permitir ao transportador enviar lances contendo preço do frete e condições de pagamento

para itens de listas de compras;

Permitir ao comprador visualizar os lances enviados por fornecedores e transportadores;

Permitir ao comprador selecionar os melhores lances de fornecimento e transporte;

Permitir ao comprador, após eleger os melhores lances de fornecimento e transporte,

enviar o pedido de compra ao fornecedor e o pedido de transporte ao transportador;

3.2. Análise dos Dados e Funções

Analisando o escopo da aplicação, identificamos as seguintes entidades10 principais:

Pessoa jurídica;

Comprador;

Fornecedor;

Transportador;

Processo de compra;

Item de processo de compra;

Lance de fornecedor;

Lance de transportador;

Endereço;

Local de entrega;

Programação de entrega;

Usuário;

Módulo de sistema;

Categoria de produto;

Sub-categoria de produto;

Para todas as entidades envolvidas com o sistema, deverá haver funções de inclusão,

alteração, exclusão, emissão de relatórios, consultas e geração de gráficos estatísticos.

Deverão ser implementadas funções de envio de avisos de abertura e encerramento de

processos de compras e de avisos de lances vencedores por e-mail para os usuários

10 Qualquer coisa do mundo real, que possa ser quantificada e/ou catalogada.

18

Page 19: Projeto de graduação

transportadores ou fornecedores, através da integração do sistema com servidores de e-mail.

Além das funções citadas, devem ser implementadas funções para envio de lances de

transporte e lances de fornecimento, abertura e encerramento de processos de compra, eleição

de lances, além de funções para obtenção de fornecedores compatíveis com as categorias de

produtos constantes do processo de compra.

3.3. Aspectos de Tecnologia

Propõe-se a utilização da linguagem de scripts PHP (Hipertext pre-processor) para o

desenvolvimento do código das classes e também da interface da aplicação, juntamente com

HTML (Hypertext markup language), e a utilização do sistema de gerenciamento de banco de

dados PostgreSQL para a implementação da base de dados.

As tecnologias citadas foram escolhidas por se tratarem de tecnologias abertas, ou seja, são

ferramentas disponíveis gratuitamente e com o código-fonte incluso, o que garante o baixo

custo na implantação, no que diz respeito à aquisição de licenças de software. A seguir,

damos uma breve descrição do PHP e do PostgreSQL.

3.3.1. O PHP

O objetivo deste trabalho não é estudar ou especificar a linguagem PHP, porém deve-se

destacar alguns dos seus recursos, uma vez que ela é um dos componentes de tecnologia

empregados na especificação do código das classes.

PHP significa: Hypertext Preprocessor (pré-processador de hipertexto) e é uma linguagem de

criação de scripts que executam no servidor e são embutidos em HTML [CONVERSE &

PARK, 2001]. Converse cita o PHP como sendo o ASP11 (Active server pages) de código-

fonte aberto:

PHP é uma linguagem de criação de scripts embutida em HTML no servidor. Os produtos patenteados

nesse nicho de mercado são as Active Server Pages da Microsoft, o ColdFusion da Allaire e as Java

Server Pages da Sun. PHP é às vezes chamado de “o ASP de código-fonte aberto” porque sua

funcionalidade é tão semelhante ao produto/conceito, ou o que quer que seja, da Microsoft

[CONVERSE & PARK, 2001].

11 Active Server Pages, linguagem para criação de páginas dinâmicas para a internet, criada pela Microsoft.

19

Page 20: Projeto de graduação

Podemos pensar no PHP como uma coleção de supertags de HTML que permitem adicionar

funções do servidor às páginas da internet. Por exemplo, você pode utilizar PHP (Hipertext

pre-processor) para montar instantaneamente uma complexa página da internet ou

desencadear um programa que automaticamente execute o débito no cartão de crédito quando

um cliente realizar uma compra [CONVERSE & PARK, 2001].

Falando estritamente, o PHP tem pouca relação com layout, eventos ou qualquer coisa

relacionada à aparência de uma página Web. De fato, a maior parte do que o PHP realiza é

invisível para o usuário final. Alguém visualizando uma página de PHP não será capaz de

dizer que não foi escrita em HTML, porque o resultado final do PHP é HTML (Hypertext

markup language) [CONVERSE & PARK, 2001].

O PHP é um módulo oficial do servidor de internet Apache, o líder do mercado de servidores

de internet de código-fonte aberto utilizados na rede mundial. Isso significa que o mecanismo

de script do PHP pode ser construído no próprio servidor, tornando a manipulação de dados

mais rápida. Assim como o servidor Apache, o PHP é compatível com várias plataformas, o

que significa que ele executa em seu formato original em várias versões do UNIX e do

Windows. Todos os projetos sob a égide da Apache Software Foundation – incluindo o PHP –

são software de código-fonte aberto [CONVERSE & PARK, 2001].

As várias versões do PHP foram aclamadas e premiadas nos últimos anos. O PHP versão 3 foi

o finalista em 1999 no LinuxWorld Editor´s Choice Awards (na categoria de

biblioteca/ferramentas de programação) e ganhou o segundo lugar, perdendo só para o

ColdFusion, em 1998 no Cnet Builder.com Product Awards, ao passo que a combinação

PHP3/MySQL ganhou prêmio de banco de dados do ano no Web98. Nada mau para um

software sem relações públicas, sem publicidade e sem uma significativa exposição na mídia

[CONVERSE & PARK, 2001].

O PHP é muito parecido com a linguagem C, porém com algumas facilidades, por exemplo:

Não é necessário declarar uma variável para usa-la, basta atribuir um valor à variável que

o PHP irá cria-la automaticamente;

O conteúdo de variáveis pode ser incluído automaticamente em atribuições, sem a

necessidade de operadores de concatenação;

Conversão automática de tipos, ou seja, o PHP converte automaticamente o conteúdo de

variáveis de acordo com o contexto;

O código do PHP é embutido no código das páginas HTML, e a página HTML é pré-

processada pelo interpretador do PHP antes de ser enviada para o navegador pelo servidor

20

Page 21: Projeto de graduação

web. Para que o interpretador do PHP possa diferenciar o código PHP do código HTML são

utilizados tag de escape do tipo “<?” e “?>”. Exemplo:

<html><head><title>PHP</title></head><body>

<? // Saímos do modo HTML e passamos para o modo PHP Echo(‘<p>Seu navegador: ‘.$HTTP_USER_AGENT.’</p>’);?>

</body></html>

Basicamente, qualquer coisa que pode ser feita por algum programa CGI (Common gateway

interface) pode ser feita também com PHP (Hipertext pre-processor), como coletar dados de

um formulário ou gerar páginas dinamicamente.

PHP também tem como uma das características mais importantes o suporte a um grande

número de bancos de dados, como dBase, Interbase, mSQL, mySQL, Oracle, Sybase,

PostgreSQL e vários outros. Construir uma página baseada em um banco de dados torna-se

uma tarefa extremamente simples com PHP.

O PHP é distribuído livremente em pacotes que incluem binários e código-fonte, e é mantido

por uma comunidade de programadores ao redor do mundo que contribuem utilizando e

efetuando melhorias no software.

3.3.2. O PostgreSQL

O PostgreSQL é um sistema de gerenciamento de banco de dados objeto-relacional

(ORDBMS) baseado no POSTGRES, versão 4.21, desenvolvido nos Estados Unidos, na

universidade da Califórnia no departamento de Ciências da Computação de Berkeley. O

projeto POSTGRES, conduzido pelo professor Michael Stonebraker, foi patrocinado pelo

DARPA (Defense Advanced Research Projects Agency), pelo Army Research Office (ARO),

pelo National Science Foundation (NSF), e pela ESL, Inc. PostgreSQL é uma versão de

código-fonte aberto descendente do código original de Berkeley. Ele fornece suporte ao

padrão SQL (Structured query language) 92 e 99 e outras características modernas. Os

sistemas tradicionais de gerenciamento de banco de dados relacional (RDBMS) suportam um

modelo de dados que consiste em uma coleção de relações nomeadas, contendo atributos de

um tipo de dado específico. Em sistemas comerciais atuais, os tipos possíveis incluem

21

Page 22: Projeto de graduação

números de ponto flutuante, inteiros, cadeias de caracteres, números decimais e datas.

Reconhece-se geralmente que este modelo é inadequado para as aplicações de processamento

de dados futuras. O PostgreSQL oferece poder adicional incorporando os seguintes conceitos

adicionais de tal maneira que os usuários podem facilmente estender o sistema:

Herança;

Tipos de dados;

Constraints;

Triggers;

Regras;

Integridade transacional;

Estas características fizeram com que o PostgreSQL se posicionasse na categoria de bases de

dados objeto-relacional [THE POSTGRESQL GLOBAL DEVELOPMENT GROUP, 2001].

Além dessas características, o PostgreSQL tem suporte nativo na linguagem PHP (Hipertext

pre-processor).

22

Page 23: Projeto de graduação

4. Modelagem da Solução Proposta

A modelagem da solução foi feita com base na notação UML (Unified Modeling Language)

[FURLAN, 1998]. Esta notação está se tornando a linguagem padrão para a modelagem de

sistemas de software baseados no paradigma de orientação a objetos (OOP – Object Oriented

Programming). A UML foi portanto eleita para a modelagem do sistema pois é desejado que a

implementação esteja de acordo com o paradigma OOP.

A UML é uma linguagem gráfica para visualização, especificação, construção e

documentação de sistemas complexos de software. Essa linguagem proporciona uma forma

padrão para a preparação de planos para a arquitetura de projetos de sistemas, incluindo

aspectos conceituais, tais como processos de negócios e funções do sistema, além de itens

concretos, como as classes escritas em uma determinada linguagem de programação, e

esquemas de bancos de dados e componentes de software reutilizáveis [FURLAN, 1998].

A modelagem do sistema será apresentada basicamente através de 4 dos diagramas

disponíveis na UML:

O diagrama de casos de uso, que descreve a funcionalidade do sistema percebida por

atores externos. Um ator interage com o sistema podendo ser um usuário, dispositivo ou

outro sistema.

O diagrama de classes, que denota a estrutura estática do sistema onde cada classe

representa coisas ou entidades que serão manipulados pelo sistema, mostrando também o

relacionamento existente entre elas;

O diagrama de seqüência vai abranger as operações do sistema, permitindo uma idéia

mais objetiva do funcionamento do mesmo, explicitando as relações entre as classes.

O diagrama de componentes fornecerá uma visão geral dos módulos do sistema;

Na modelagem da solução também foram utilizados alguns conceitos da análise estruturada

moderna de Yourdon [YOURDON, 1990] para a representação dos modelos de dados, e as

ferramentas de diagramação que utilizaremos são o diagrama de entidade-relacionamento e o

modelo de entidade-relacionamento.

Utilizaremos o diagrama de entidade-relacionamento para detalhar a estrutura e a organização

dos dados que o sistema irá tratar. O diagrama de entidade-relacionamento utiliza a seguinte

notação, de acordo com a figura 2:

23

Page 24: Projeto de graduação

Figura 2: Notação de diagrama de entidade-relacionamento

Onde:

Entidade (qualquer coisa do mundo real que possa ser quantificada ou catalogada) é

representada por um retângulo;

Relacionamento entre entidades é representado por uma linha e;

A cardinalidade dos relacionamentos é representada por marcações “pés-de-galinha” nas

extremidades da linha que representa o relacionamento;

Usaremos também o Modelo de Entidade-Relacionamento (MER), onde temos a

representação das entidades e a descrição de nome e tipo dos campos que as compõem e ainda

temos o nome lógico dos relacionamentos entre as entidades, representando assim a estrutura

física dos dados.

Todos os diagramas foram desenhados utilizando uma versão de demonstração da ferramenta

de modelagem PowerDesigner™, versão 9.5.2, desenvolvida pela Sybase, Inc.

Nas próximas seções serão apresentados os diagramas e respectivas descrições.

4.1. Especificação de Casos de Uso

Na especificação de casos de uso apresentamos uma visão geral do sistema e das entidades

externas (atores) que estarão interagindo com o sistema.

Na figura 3, mostramos a interação que deverá ocorrer no momento em que o administrador

do sistema define permissões de acesso para o usuário (comprador, transportador ou

fornecedor) e gerencia todos os cadastros do sistema. O ato de gerenciar os cadastros está

relacionado ao fato de que todos as entidades do sistema precisam ser cadastradas, alteradas

ou excluídas, função que deverá ser empenhada principalmente pelo administrador.

24

Page 25: Projeto de graduação

Figura 3: Primeiro caso de uso

A seguir, conforme mostra a figura 4, representamos a interação que deverá ocorrer quando o

usuário comprador, transportador ou fornecedor, neste caso representado pelo ator “Pessoa

jurídica”, obtêm informações complementares, como informações bancárias e contatos.

Figura 4: Segundo caso de uso

25

Page 26: Projeto de graduação

O próximo caso de uso, representado pela figura 5, mostra todas as interações que deverão

ocorrer entre o sistema e o usuário comprador, como por exemplo, o ato de eleger um lance de

fornecimento para um item de produto constante de um processo de compra.

Figura 5: Terceiro caso de uso

E por fim, conforme mostramos na figura 6, apresentamos as interações entre o usuário

fornecedor ou transportador e o sistema.

26

Page 27: Projeto de graduação

Figura 6: Quarto caso de uso

4.2. Diagrama de Classes

No diagrama de classes, conforme representado pela figura 7, definimos as entidades

envolvidas com o sistema de acordo com o paradigma da orientação a objeto, onde se

representa a classe com seus atributos e operações.

O modelo de classes é obtido a partir da análise das especificações de requisitos do sistema e

da análise dos casos de uso. Entende-se por atributo uma característica de uma entidade do

mundo real, tomemos como exemplo o nome da pessoa, e por operação, a capacidade que esta

entidade, representada por uma classe, tem de manipular dados.

27

Page 28: Projeto de graduação

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

0..*

0..*

1..1

0..*

1..1

0..*

1..1

0..*

1..1

1..1

0..*

1..1 0..*

0..*

0..*

1..1

0..*

1..1

0..*

0..1

0..*

1..10..*

1..1

0..*

Categoria_produto++

categoria_produtonome

: long: String

+++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_subcategorias ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Sub_categoria_produto++

sub_categoria_produtonome

: long: String

+++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_fornecedores ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Processo_compra++++++

processo_comprastatusiniciofimtipoobs

: long: short: Date: Date: String: String

+++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Abrir ()Encerrar ()Obter_itens ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Lance_fornecedor++++++

lance_fornecedordata_horavalorvencedorstatuscondicoes

: long: Date: double: boolean: boolean: String

+++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Eleger ()Deseleger ()Cancelar ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Modulo++

modulonome

: long: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Usuario++++++

usuarionomeloginsenhanivelativo

: long: String: String: String: short: boolean

+++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_permissoes ()Dar_permissao ()Remover_permissao ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: boolean: boolean: void: void: void: void: void: boolean: boolean

Item_processo_compra++++++

item_processo_compradescricao_produtoquantidadeunidadevalor_unitarioobs

: long: String: double: String: double: String

+++++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_lances_transporte ()Obter_lances_fornecimento ()Dar_lance_transporte ()Dar_lance_fornecimento ()Obter_programacao_entrega ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: array: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Programacao_entrega++++

programacao_entregaquantidadedata_entregaforma

: long: double: Date: short

+++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_endereco_entrega ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Lance_transportador+++++

lance_transportadordata_horavalorvencedorstatus

: long: Date: double: boolean: boolean

+++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Eleger ()Deseleger ()Cancelar ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Direito_acesso++++++

direito_acessoacessarincluiralterarapagartudo

: long: boolean: boolean: boolean: boolean: boolean

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Pessoa_juridica+++++++

pessoa_juridicarazao_socialnome_fantasiasitecnpjinsc_estadualfax

: long: String: String: String: String: String: String

++++++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_contatos ()Obter_inf_bancaria ()Obter_usuarios ()Obter_enderecos ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: array: array: array: void: void: void: void: void: boolean: boolean

Cidade+++

cidadenomecep

: long: String: String

+++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_bairros ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Estado+++

estadonomesigla

: long: String: String

+++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_cidades ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: void: void: void: void: void: boolean: boolean

Bairro++

bairronome

: long: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Logradouro+++

logradourotiponome

: long: String: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Endereco++++

endereconumerocomplementocx_postal

: long: long: String: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Contato+++++

contatonometelefonecelularemail

: long: String: String: String: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Inf_bancaria+++++

inf_bancarianum_banconome_bancoagencianome_titular

: long: String: String: String: String

++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Fornecedor++

fornecedorpontos_fornecimento

: long: int

+++++++++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_subcategorias ()Pontuar ()Obter_pontuacao ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: boolean: int: boolean: boolean

Comprador+ comprador : long+++++++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Obter_processos ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: array: boolean: boolean

Transportador++

transportadorpontos_transporte

: long: int

++++++++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Pontuar ()Obter_pontuacao ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: boolean: array: boolean: boolean

Fornecedor_sub_categoria_produto+ capac_fornecimento : long++++-----++

Inserir ()Atualizar ()Excluir ()Obter_do_bd ()Adicionar_erro ()Limpar_erro ()Remover_excesso ()Adicionar_escape ()Remover_escape ()Esta_valido ()Esta_vazio ()

: boolean: boolean: boolean: boolean: void: void: void: void: void: boolean: boolean

Figura 7: Diagrama de Classes

28

Page 29: Projeto de graduação

4.3. Diagramas de Seqüência

Para cada caso de uso, conforme mostrado na seção 2.4, foi elaborado um diagrama de

seqüência, que mostra as operações correspondentes às classes, sendo iniciadas pelos atores,

mostrando também os parâmetros que deverão ser recebidos por cada operação e os valores

de retorno. Para as operações que retornam um valor booleano (verdadeiro ou falso), o valor

de retorno é mostrado como “TRUE ou FALSE” e para as operações que retornam dados ou

blocos de dados, o valor de retorno é mostrado como sendo o nome de uma entidade (vetor ou

variável).

A figura 8 mostra o diagrama de seqüência relacionado ao primeiro caso de uso, onde

mostramos a interação que deverá ocorrer no momento em que o administrador do sistema

define permissões de acesso para o usuário (comprador, transportador ou fornecedor) e

gerencia todos os cadastros do sistema.

Figura 8: Diagrama de Seqüência 1

A figura 9 apresenta o diagrama de seqüência relacionado ao segundo caso de uso, onde

representamos a interação que deverá ocorrer quando o usuário comprador, transportador ou

fornecedor, neste caso representado pelo ator “Pessoa jurídica”, obtêm informações

complementares, como informações bancárias e contatos.

29

Page 30: Projeto de graduação

Figura 9: Diagrama de Seqüência 2

A figura 10 mostra o diagrama de seqüência relacionado ao terceiro caso de uso, onde

mostramos todas as interações que deverão ocorrer entre o sistema e o usuário comprador,

como por exemplo, o ato de eleger um lance de fornecimento para um item de produto

constante de um processo de compra.

30

Page 31: Projeto de graduação

Figura 10: Diagrama de Seqüência 3

31

Page 32: Projeto de graduação

A figura 11 apresenta o diagrama de seqüência relacionado ao quarto caso de uso, onde mostramos as relações que devem ocorrer entre o usuário

fornecedor ou transportador e o sistema.

Figura 11: Diagrama de Seqüência 4

32

Page 33: Projeto de graduação

4.4. Diagrama de Componentes

O diagrama de componentes, conforme mostrado na figura 12, nos dá uma visão de como o

sistema deverá estar organizado. Cada componente representa uma divisão do sistema, onde

podemos ver que a interface do usuário, contida no componente “Front-end” necessita dos

componentes “Gerenciamento”, “Processos de compra”, “Lances de transporte” e “Lances de

fornecimento”, e estes por sua vez necessitam do componente “Classes” que utiliza o

componente “Utilitários” para fazer acesso a banco de dados, validações e leitura de

configurações. Pode-se observar o nome do script ou dos scripts em PHP (Hipertext pre-

processor) que está contido no módulo.

Figura 12: Diagrama de Componentes

33

Page 34: Projeto de graduação

4.5. Modelagem dos Dados

4.5.1. Lógica

No DER (Diagrama de entidade-relacionamento), representado pela figura 13, apresentamos a

estrutura lógica de armazenamento dos dados que o sistema deverá tratar. Nota-se que no

DER mostramos apenas a estrutura de entidades (que futuramente se tornarão tabelas de

banco de dados) e os seus relacionamentos, e não nos preocupamos em mostrar os atributos

ou campos de cada entidade.

Figura 13: DER (Diagrama de entidade-relacionamento)

4.5.2. Física

No MER (Modelo de entidade-relacionamento), enfatizamos a estrutura física das entidades e

seus inter-relacionamentos, mostrando para cada entidade, todos os seus campos e tipos de

dados e para cada relacionamento, o nome físico do mesmo, e ainda todas as chaves primárias

e estrangeiras de cada entidade, conforme apresentado na figura 14.

A estrutura física dos dados foi formatada e especificada para ser compatível com o

gerenciador de banco de dados PostgreSQL.

34

Page 35: Projeto de graduação

FK_FORNECED_SUBCATPRO_SUB_CATE

FK_FORNECED_FORNECEDO_FORNECED

FK_PROGRAMA_ITEM_LOCA_ITEM_PRO

FK_PROGRAMA_ENDERECO__ENDERECO

FK_SUB_CATE_CATEGORIA_CATEGORI

FK_ITEM_PRO_SUBCAT_IT_SUB_CATE

FK_LANCE_FO_ITEM_LANC_ITEM_PRO

FK_LANCE_TR_ITEM_LANC_ITEM_PRO

FK_LANCE_FO_FORNECEDO_FORNECED

FK_LANCE_TR_TRANSPORT_TRANSPOR

FK_ITEM_PRO_PROCESSO__PROCESSO

FK_PROCESSO_COMPRADOR_COMPRADO

FK_ENDERECO_BAIRRO_EN_BAIRRO

FK_ENDERECO_CIDADE_EN_CIDADE

FK_ENDERECO_ESTADO_EN_ESTADO

FK_ENDERECO_LOGRADOUR_LOGRADOU

FK_CIDADE_ESTADO_CI_ESTADO

FK_BAIRRO_CIDADE_BA_CIDADE

FK_PESSOA_J_PESSOA_JU_PESSOA_JFK_PESSOA_J_PESSOA_JU_ENDERECO

FK_DIREITO__MODULO_DA_MODULO

FK_DIREITO__USUARIO_D_USUARIO

FK_USUARIO_PESSOAJ_U_PESSOA_J

FK_INF_BANC_PESSOAJ_I_PESSOA_J

FK_CONTATO_PESSOAJ_C_PESSOA_J

FK_FORNECED_I_PESSOA__PESSOA_J

FK_TRANSPOR_I_PESSOA__PESSOA_J

FK_COMPRADO_I_PESSOA__PESSOA_J

Categoria_produtocategoria_produtonome

INT4VARCHAR(100)

<pk>

Sub_categoria_produtosub_categoria_produtocategoria_produtonome

INT4INT4VARCHAR(100)

<pk><fk>

Processo_compraprocesso_comprapessoa_juridicacompradorstatusiniciofimtipoobs

INT4INT4INT4INT2DATEDATEVARCHAR(10)CHAR

<pk><fk><fk>

Lance_fornecedorlance_fornecedoritem_processo_comprapessoa_juridicafornecedordata_horavalorvencedorstatuscondicoes

INT4INT4INT4INT4DATENUMERIC(18,2)INT2INT2VARCHAR(200)

<pk><fk2><fk1><fk1>

Modulomodulonome

INT4VARCHAR(100)

<pk>

Usuariousuariopessoa_juridicanomeloginsenhanivelativo

INT4INT4VARCHAR(100)VARCHAR(50)VARCHAR(50)INT2INT2

<pk><fk>

Item_processo_compraitem_processo_comprasub_categoria_produtoprocesso_compradescricao_produtoquantidadeunidadevalor_unitarioobs

INT4INT4INT4VARCHAR(200)NUMERIC(18,2)CHAR(10)NUMERIC(18,2)CHAR

<pk><fk2><fk1>

Programacao_entregaprogramacao_entregaitem_processo_compraenderecoquantidadedata_entregaforma

INT4INT4INT4NUMERIC(18,2)DATEINT2

<pk><fk2><fk1>

Lance_transportadorlance_transportadoritem_processo_comprapessoa_juridicatransportadordata_horavalorvencedorstatus

INT4INT4INT4INT4DATENUMERIC(18,2)INT2INT2

<pk><fk2><fk1><fk1>

Direito_acessodireito_acessousuariomoduloacessarincluiralterarapagartudo

INT4INT4INT4INT2INT2INT2INT2INT2

<pk><fk1><fk2>

Pessoa_juridicapessoa_juridicarazao_socialnome_fantasiasitecnpjinsc_estadualfax

INT4VARCHAR(100)VARCHAR(100)VARCHAR(200)VARCHAR(50)VARCHAR(50)VARCHAR(50)

<pk>

Cidadecidadeestadonomecep

INT4INT4VARCHAR(100)CHAR(8)

<pk><fk>

Estadoestadonomesigla

INT4VARCHAR(100)CHAR(2)

<pk>

Bairrobairrocidadenome

INT4INT4VARCHAR(100)

<pk><fk>

Logradourologradourotiponome

INT4VARCHAR(10)VARCHAR(100)

<pk>

Enderecoenderecologradourobairroestadocidadenumerocomplementocx_postal

INT4INT4INT4INT4INT4INT4VARCHAR(50)VARCHAR(20)

<pk><fk1><fk4><fk2><fk3>

Contatocontatopessoa_juridicanometelefonecelularemail

INT4INT4VARCHAR(100)VARCHAR(50)VARCHAR(50)VARCHAR(100)

<pk><fk>

Inf_bancariainf_bancariapessoa_juridicanum_banconome_bancoagencianome_titular

INT4INT4VARCHAR(10)VARCHAR(100)VARCHAR(50)VARCHAR(100)

<pk><fk>

Fornecedorpessoa_juridicafornecedorpontos_fornecimento

INT4INT4INT4

<pk,fk><pk>

Compradorpessoa_juridicacomprador

INT4INT4

<pk,fk><pk>

Transportadorpessoa_juridicatransportadorpontos_transporte

INT4INT4INT4

<pk,fk><pk>

Fornecedor_sub_categoria_produtosub_categoria_produtopessoa_juridicafornecedorcapac_fornecimento

INT4INT4INT4INT4

<pk,fk2><pk,fk1><pk,fk1>

Pessoa_juridica_enderecopessoa_juridica_enderecoenderecopessoa_juridica

INT4INT4INT4

<pk><fk1><fk2>

Figura 14: MER (Modelo de entidade-relacionamento)

35

Page 36: Projeto de graduação

5. Interface da solução proposta

Neste capítulo, serão mostrados os desenhos de algumas das principais telas de interface com

o usuário. As telas foram elaboradas usando ferramentas de edição de HTML (Hypertext

markup language). Todas as telas foram capturadas a partir do navegador de internet.

A figura 15 mostra a tela de entrada do sistema, ou seja, a primeira tela que deverá ser

visualizada. Esta interface apresenta um formulário para que o usuário possa inserir seu nome

e senha entrar no sistema. Também apresenta o menu “Cadastre-se” com opções que

possibilitam o usuário não cadastrado fazer seu cadastro como comprador, fornecedor ou

transportador.

Figura 15: Tela de entrada do sistema

36

Page 37: Projeto de graduação

A próxima tela, conforme mostra a figura 16, deverá ser apresentada após o usuário

administrador do sistema ter efetuado login. Esta tela apresenta o menu “Gerenciamento”,

com as entradas para gerenciamento de compradores, transportadores, fornecedores,

permissões de acesso, processos de compra e dados auxiliares. Apresenta ainda o menu

“Opções”, com entradas para a exibição de estatísticas de utilização do sistema e mensagens.

Figura 16: Tela exibida após a entrada do usuário administrador

37

Page 38: Projeto de graduação

A seguir, conforme mostra a figura 17, é apresentada a tela que será exibida para o usuário

fornecedor, logo após a sua entrada. Esta tela contém o menu “Menu Principal”, contendo

entradas para listagem de processos de compra abertos e encerrados, e lances de

fornecimento. No menu “Opções”, são exibidas entradas para estatísticas e mensagens.

Figura 17: Tela exibida após a entrada do usuário fornecedor

38

Page 39: Projeto de graduação

Abaixo, conforme mostra a figura 18, é exibida a lista de processos de compra ativos, para o

usuário fornecedor. Neste momento ele poderá selecionar um processo de compra para

visualizar mais detalhes, como a lista de itens de produto.

Figura 18: Tela de visualização da lista de processos de compra ativos

39

Page 40: Projeto de graduação

Na figura 19, conforme é mostrado abaixo, o fornecedor tem acesso à lista de produtos

constantes no processo de compra. Para cada item da lista, existe a opção “Dar lance”, que

possibilitará ao fornecedor enviar lances de fornecimento.

Figura 19: Tela de visualização de detalhes do processo de compra

40

Page 41: Projeto de graduação

Abaixo, conforme mostra a figura 20, é apresentada a tela de envio de lances de fornecimento

onde o fornecedor poderá enviar sua proposta contendo o valor unitário para o produto e as

condições de entrega/pagamento.

Figura 20: Tela de envio de lances de fornecimento

41

Page 42: Projeto de graduação

A seguir, a figura 21 mostra a tela de visualização dos lances de fornecimento, onde o usuário

comprador poderá selecionar (eleger) o melhor lance para o item de produto. A lista apresenta

o nome do fornecedor que enviou lance, o valor e as condições, e o botão “Selecionar”.

Figura 21: Tela de visualização de lances de fornecimento

42

Page 43: Projeto de graduação

6. Cronograma de trabalho

Para que o protótipo do sistema esteja disponível e possa ser colocado “em produção”, é

necessário desenvolver, além das classes, a interface do usuário e os módulos de

gerenciamento, utilizando as tecnologias citadas na seção 3.3.1, e ainda realizar todos os

testes de implementação. Diante disso, foi estabelecido um cronograma de trabalho para a

implementação do projeto como um todo, conforme mostra a tabela 3.

Tabela 3: Cronograma de trabalho

Etapas

Semanas1 2 3 4 5 6 7 8 9 10 11 12

1234

Etapas do cronograma:

1) Desenvolvimento do código das classes;2) Desenvolvimento da interface do usuário;3) Desenvolvimento dos módulos de gerenciamento e módulos utilitários;4) Testes de implementação e correção de erros;

43

Page 44: Projeto de graduação

Considerações finais

Procurou-se, com este trabalho, propor o desenvolvimento de uma ferramenta de e-

procurement, do tipo leilão-reverso, através da análise e a modelagem do sistema. Espera-se

que o trabalho tenha contribuído para popularização deste tipo de ferramenta, uma vez que a

popularização e o aumento da utilização das tecnologias de e-procurement no Brasil, tanto em

organizações privadas, quanto públicas, pode trazer benefícios significativos.

Finalmente, deve-se ressaltar que, apesar de todos os benefícios que a adoção de sistemas de

e-procurement pode trazer, uma solução de e-procurement não é a solução para todos os

problemas de uma organização. Uma solução de e-procurement é uma ferramenta que vai

ajudar na otimização do processo de cotação e compra, porém, este processo deve fazer parte

de uma política de compras organizada e devidamente implementada. Se a organização for

um caos organizacional, com certeza a adoção de um sistema de e-procurement não será a

solução para todos os problemas, e ainda poderá ajudar a piorar a situação.

44

Page 45: Projeto de graduação

Referências Bibliográficas

[CONVERSE & PARK, 2001] Converse, Tim & Park, Joyce. PHP 4: A bíblia. Tradução de Edson Furmankiewicz, Joana Figueiredo – Rio de Janeiro: Campus, 2001.

[DAVILA et al., 2002] Davila, Antonio; Gupta, Mahendra; Palmer, Richard J.. Moving Procurement Systems to the Internet: The Adoption and Use of E-Procurement Technology Models. Research paper no. 1742. Graduate School of Business. Stanford University, June 2002.

[FURLAN, 1998] Furlan, José Davi. Modelagem de Objetos através da UML – the Unified Modeling Language. São Paulo: Makron Books, 1998.

[KOTLER, 2000] Kotler, Philip. Administração de Marketing. 10ª ed., São Paulo: Prentice-Hall, 2000.

[LAMBIN, 2000] Lambin, Jean-Jaques. Marketing Estratégico. 4ª ed., São Paulo: McGraw-Hill, 2000.

[LEENDERS & BLENKHORN, 1991] Leenders, Michiel R. & Blenkhorn, David L.. Marketing Reverso: Um novo conceito no relacionamento comprador-vendedor. Tradução de Bárbara Theoto Lambert; revisão técnica Dílson Gabriel dos Santos – São Paulo: Makron, McGraw-Hill, 1991.

[THE POSTGRESQL GLOBAL DEVELOPMENT GROUP, 2001] The PostgreSQL Global Development Group. PostgreSQL 7.2 Administrator’s Guide. University of California, 2001.

[YOURDON, 1990] Yourdon, Edward. Análise estruturada moderna. tradução de Dalton Conde de Alencar – Rio de Janeiro: Campus, 1990.

45