SlideShare uma empresa Scribd logo
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 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
II
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.
III
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.
IV
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.
V
Índice de texto
Lista de figuras e tabelas.......................................................................................................VII
Figuras................................................................................................................................VII
Tabelas...............................................................................................................................VII
Lista de abreviações..............................................................................................................VIII
1. Introdução.............................................................................................................................9
1.1. Objetivos........................................................................................................................9
1.1.1. Geral.........................................................................................................................9
1.1.2. Específico.................................................................................................................9
1.2. Metodologia.................................................................................................................11
1.3. Justificativa..................................................................................................................11
2. Marketing Reverso..............................................................................................................12
2.1. E-procurement............................................................................................................13
3. Solução Proposta................................................................................................................17
3.1. Objetivos da Solução Proposta..................................................................................18
3.2. Análise dos Dados e Funções......................................................................................19
3.3. Aspectos de Tecnologia...............................................................................................20
3.3.1. O PHP....................................................................................................................20
3.3.2. O PostgreSQL........................................................................................................22
4. Modelagem da Solução Proposta.......................................................................................24
4.1. Especificação de Casos de Uso...................................................................................25
4.2. Diagrama de Classes...................................................................................................28
4.3. Diagramas de Seqüência ............................................................................................30
4.4. Diagrama de Componentes........................................................................................34
4.5. Modelagem dos Dados................................................................................................35
4.5.1. Lógica.....................................................................................................................35
4.5.2. Física......................................................................................................................35
5. Interface da solução proposta............................................................................................37
6. Cronograma de trabalho.....................................................................................................44
Considerações finais................................................................................................................45
Referências Bibliográficas......................................................................................................46
VI
Lista de figuras e tabelas
Figuras
Figura 1: Modelo de aplicação...............................................................................................17
Figura 2: Notação de diagrama de entidade-relacionamento..............................................25
Figura 3: Primeiro caso de uso...............................................................................................26
Figura 4: Segundo caso de uso...............................................................................................26
Figura 5: Terceiro caso de uso................................................................................................27
Figura 6: Quarto caso de uso..................................................................................................28
Figura 7: Diagrama de Classes...............................................................................................29
Figura 8: Diagrama de Seqüência 1.......................................................................................30
Figura 9: Diagrama de Seqüência 2.......................................................................................31
Figura 10: Diagrama de Seqüência 3.....................................................................................32
Figura 11: Diagrama de Seqüência 4.....................................................................................33
Figura 12: Diagrama de Componentes...................................................................................34
Figura 13: DER (Diagrama de entidade-relacionamento)....................................................35
Figura 14: MER (Modelo de entidade-relacionamento)........................................................36
Figura 15: Tela de entrada do sistema...................................................................................37
Figura 16: Tela exibida após a entrada do usuário administrador.......................................38
Figura 17: Tela exibida após a entrada do usuário fornecedor............................................39
Figura 18: Tela de visualização da lista de processos de compra ativos...............................40
Figura 19: Tela de visualização de detalhes do processo de compra....................................41
Figura 20: Tela de envio de lances de fornecimento.............................................................42
Figura 21: Tela de visualização de lances de fornecimento..................................................43
Tabelas
Tabela 1: Estratégias de adoção das tecnologias de E-Procurement....................................15
Tabela 2: Eficiências geradas com a adoção de tecnologias de E-procurement..................16
Tabela 3: Cronograma de trabalho.........................................................................................44
VII
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)
VIII
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.
9
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;
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.
10
• Fornecer dados estatísticos, relatórios e gráficos sobre o histórico de aquisição de
materiais em determinado período;
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).
11
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
12
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
13
• 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
8
Organização com faturamento anual acima de 10 bilhões de dólares.
14
atual de desenvolvimento do e-procurement, mas não estão destinando os recursos (37%),
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
15
níveis que incentivam alocação significativa de recursos. As companhias que usam
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
16
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;
9
Aplicação desenvolvida para a internet.
17
• Módulo de Gerenciamento de Lances de Transporte;
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;
18
• Permitir ao fornecedor enviar lances contendo preço do produto e condições de
pagamento e entrega para itens de listas de compras;
• 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;
10
Qualquer coisa do mundo real, que possa ser quantificada e/ou catalogada.
19
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
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
11
Active Server Pages, linguagem para criação de páginas dinâmicas para a internet, criada pela Microsoft.
20
funcionalidade é tão semelhante ao produto/conceito, ou o que quer que seja, da Microsoft
[CONVERSE & PARK, 2001].
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;
21
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
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
22
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
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).
23
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:
24
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.
25
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
26
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.
27
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.
28
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..1
0..*
1..1
0..*
Categoria_produto
+
+
categoria_produto
nome
: 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_produto
nome
: 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_compra
status
inicio
fim
tipo
obs
: 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_fornecedor
data_hora
valor
vencedor
status
condicoes
: 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
+
+
modulo
nome
: 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
+
+
+
+
+
+
usuario
nome
login
senha
nivel
ativo
: 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_compra
descricao_produto
quantidade
unidade
valor_unitario
obs
: 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_entrega
quantidade
data_entrega
forma
: 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_transportador
data_hora
valor
vencedor
status
: 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_acesso
acessar
incluir
alterar
apagar
tudo
: 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_juridica
razao_social
nome_fantasia
site
cnpj
insc_estadual
fax
: 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
+
+
+
cidade
nome
cep
: 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
+
+
+
estado
nome
sigla
: 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
+
+
bairro
nome
: 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
+
+
+
logradouro
tipo
nome
: 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
+
+
+
+
endereco
numero
complemento
cx_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
+
+
+
+
+
contato
nome
telefone
celular
email
: 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_bancaria
num_banco
nome_banco
agencia
nome_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
+
+
fornecedor
pontos_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
+
+
transportador
pontos_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
29
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.
30
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.
31
Figura 10: Diagrama de Seqüência 3
32
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
33
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
34
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.
35
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_produto
categoria_produto
nome
INT4
VARCHAR(100)
<pk>
Sub_categoria_produto
sub_categoria_produto
categoria_produto
nome
INT4
INT4
VARCHAR(100)
<pk>
<fk>
Processo_compra
processo_compra
pessoa_juridica
comprador
status
inicio
fim
tipo
obs
INT4
INT4
INT4
INT2
DATE
DATE
VARCHAR(10)
CHAR
<pk>
<fk>
<fk>
Lance_fornecedor
lance_fornecedor
item_processo_compra
pessoa_juridica
fornecedor
data_hora
valor
vencedor
status
condicoes
INT4
INT4
INT4
INT4
DATE
NUMERIC(18,2)
INT2
INT2
VARCHAR(200)
<pk>
<fk2>
<fk1>
<fk1>
Modulo
modulo
nome
INT4
VARCHAR(100)
<pk>
Usuario
usuario
pessoa_juridica
nome
login
senha
nivel
ativo
INT4
INT4
VARCHAR(100)
VARCHAR(50)
VARCHAR(50)
INT2
INT2
<pk>
<fk>
Item_processo_compra
item_processo_compra
sub_categoria_produto
processo_compra
descricao_produto
quantidade
unidade
valor_unitario
obs
INT4
INT4
INT4
VARCHAR(200)
NUMERIC(18,2)
CHAR(10)
NUMERIC(18,2)
CHAR
<pk>
<fk2>
<fk1>
Programacao_entrega
programacao_entrega
item_processo_compra
endereco
quantidade
data_entrega
forma
INT4
INT4
INT4
NUMERIC(18,2)
DATE
INT2
<pk>
<fk2>
<fk1>
Lance_transportador
lance_transportador
item_processo_compra
pessoa_juridica
transportador
data_hora
valor
vencedor
status
INT4
INT4
INT4
INT4
DATE
NUMERIC(18,2)
INT2
INT2
<pk>
<fk2>
<fk1>
<fk1>
Direito_acesso
direito_acesso
usuario
modulo
acessar
incluir
alterar
apagar
tudo
INT4
INT4
INT4
INT2
INT2
INT2
INT2
INT2
<pk>
<fk1>
<fk2>
Pessoa_juridica
pessoa_juridica
razao_social
nome_fantasia
site
cnpj
insc_estadual
fax
INT4
VARCHAR(100)
VARCHAR(100)
VARCHAR(200)
VARCHAR(50)
VARCHAR(50)
VARCHAR(50)
<pk>
Cidade
cidade
estado
nome
cep
INT4
INT4
VARCHAR(100)
CHAR(8)
<pk>
<fk>
Estado
estado
nome
sigla
INT4
VARCHAR(100)
CHAR(2)
<pk>
Bairro
bairro
cidade
nome
INT4
INT4
VARCHAR(100)
<pk>
<fk>
Logradouro
logradouro
tipo
nome
INT4
VARCHAR(10)
VARCHAR(100)
<pk>
Endereco
endereco
logradouro
bairro
estado
cidade
numero
complemento
cx_postal
INT4
INT4
INT4
INT4
INT4
INT4
VARCHAR(50)
VARCHAR(20)
<pk>
<fk1>
<fk4>
<fk2>
<fk3>
Contato
contato
pessoa_juridica
nome
telefone
celular
email
INT4
INT4
VARCHAR(100)
VARCHAR(50)
VARCHAR(50)
VARCHAR(100)
<pk>
<fk>
Inf_bancaria
inf_bancaria
pessoa_juridica
num_banco
nome_banco
agencia
nome_titular
INT4
INT4
VARCHAR(10)
VARCHAR(100)
VARCHAR(50)
VARCHAR(100)
<pk>
<fk>
Fornecedor
pessoa_juridica
fornecedor
pontos_fornecimento
INT4
INT4
INT4
<pk,fk>
<pk>
Comprador
pessoa_juridica
comprador
INT4
INT4
<pk,fk>
<pk>
Transportador
pessoa_juridica
transportador
pontos_transporte
INT4
INT4
INT4
<pk,fk>
<pk>
Fornecedor_sub_categoria_produto
sub_categoria_produto
pessoa_juridica
fornecedor
capac_fornecimento
INT4
INT4
INT4
INT4
<pk,fk2>
<pk,fk1>
<pk,fk1>
Pessoa_juridica_endereco
pessoa_juridica_endereco
endereco
pessoa_juridica
INT4
INT4
INT4
<pk>
<fk1>
<fk2>
Figura 14: MER (Modelo de entidade-relacionamento)
36
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
37
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
38
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
39
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
40
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
41
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
42
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
43
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
Semanas
1 2 3 4 5 6 7 8 9 10 11 12
1
2
3
4
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;
44
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.
45
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.
46

Mais conteúdo relacionado

Mais procurados

Apostila introducao a_informatica_e_windows_csu
Apostila introducao a_informatica_e_windows_csuApostila introducao a_informatica_e_windows_csu
Apostila introducao a_informatica_e_windows_csu
Wesclay Oliveira
 
Apostila latex
Apostila latexApostila latex
Apostila latex
Gentil Serra Jr.
 
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM SocialTrabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
Juliana Fideles
 
Condo master
Condo masterCondo master
Condo master
Matheus Ferreira
 
Programando em java
Programando em javaProgramando em java
Programando em java
Victor Hugo
 
E-learning : estudo sobre as componentes mais usadas pelos intervenientes
E-learning : estudo sobre as componentes mais usadas pelos intervenientesE-learning : estudo sobre as componentes mais usadas pelos intervenientes
E-learning : estudo sobre as componentes mais usadas pelos intervenientes
Joao Vagarinho
 
3867 criando macros vba excel
3867 criando macros vba excel3867 criando macros vba excel
3867 criando macros vba excel
nicomedesdamiao
 
Apostila lpt
Apostila lptApostila lpt
Apostila dev c++
Apostila dev c++Apostila dev c++
Apostila dev c++
Rafael Mota
 
Apostila de excel avançado com vba
Apostila de excel avançado com vbaApostila de excel avançado com vba
Apostila de excel avançado com vba
Denis Santos
 
Manual ms word
Manual ms wordManual ms word
Manual ms word
Luis Santiago
 
Marta Ferreirinha - Enq. Teorico
Marta Ferreirinha - Enq. TeoricoMarta Ferreirinha - Enq. Teorico
Marta Ferreirinha - Enq. Teorico
Luis Pedro
 
Manual de redação academica a9 rc.tmp
Manual de redação academica a9 rc.tmpManual de redação academica a9 rc.tmp
Manual de redação academica a9 rc.tmp
IPA METODISTA
 
Projeto integrado – agência expresso
Projeto integrado – agência expressoProjeto integrado – agência expresso
Projeto integrado – agência expresso
Loise Vitalino Del Dono
 
Cheila marques motivações da participação do cidadão nos media
Cheila marques motivações da participação do cidadão nos mediaCheila marques motivações da participação do cidadão nos media
Cheila marques motivações da participação do cidadão nos media
Cheila Sofia Marques
 
Tutorial professor (1)
Tutorial   professor (1)Tutorial   professor (1)
Tutorial professor (1)
Filomeno Santos
 

Mais procurados (16)

Apostila introducao a_informatica_e_windows_csu
Apostila introducao a_informatica_e_windows_csuApostila introducao a_informatica_e_windows_csu
Apostila introducao a_informatica_e_windows_csu
 
Apostila latex
Apostila latexApostila latex
Apostila latex
 
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM SocialTrabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
Trabalho de Graduação - Desenvolvimento de Ferramenta Móvel de CRM Social
 
Condo master
Condo masterCondo master
Condo master
 
Programando em java
Programando em javaProgramando em java
Programando em java
 
E-learning : estudo sobre as componentes mais usadas pelos intervenientes
E-learning : estudo sobre as componentes mais usadas pelos intervenientesE-learning : estudo sobre as componentes mais usadas pelos intervenientes
E-learning : estudo sobre as componentes mais usadas pelos intervenientes
 
3867 criando macros vba excel
3867 criando macros vba excel3867 criando macros vba excel
3867 criando macros vba excel
 
Apostila lpt
Apostila lptApostila lpt
Apostila lpt
 
Apostila dev c++
Apostila dev c++Apostila dev c++
Apostila dev c++
 
Apostila de excel avançado com vba
Apostila de excel avançado com vbaApostila de excel avançado com vba
Apostila de excel avançado com vba
 
Manual ms word
Manual ms wordManual ms word
Manual ms word
 
Marta Ferreirinha - Enq. Teorico
Marta Ferreirinha - Enq. TeoricoMarta Ferreirinha - Enq. Teorico
Marta Ferreirinha - Enq. Teorico
 
Manual de redação academica a9 rc.tmp
Manual de redação academica a9 rc.tmpManual de redação academica a9 rc.tmp
Manual de redação academica a9 rc.tmp
 
Projeto integrado – agência expresso
Projeto integrado – agência expressoProjeto integrado – agência expresso
Projeto integrado – agência expresso
 
Cheila marques motivações da participação do cidadão nos media
Cheila marques motivações da participação do cidadão nos mediaCheila marques motivações da participação do cidadão nos media
Cheila marques motivações da participação do cidadão nos media
 
Tutorial professor (1)
Tutorial   professor (1)Tutorial   professor (1)
Tutorial professor (1)
 

Semelhante a Projeto de graduação

Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Antonio Luiz S. Isabel
 
Impressora 3D no ensino de Física.pdf
Impressora 3D no ensino de Física.pdfImpressora 3D no ensino de Física.pdf
Impressora 3D no ensino de Física.pdf
IgoHenrique1
 
monografia_andre_paro
monografia_andre_paromonografia_andre_paro
monografia_andre_paro
Andre Luiz Catini Paro
 
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Adriano Teixeira de Souza
 
Rastreamento
RastreamentoRastreamento
Rastreamento
Yuri Dantas
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
Renata Tibiriçá
 
Monografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos VisuaisMonografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos Visuais
Marcelo Henrique
 
Relatório de fim de curso
Relatório de fim de cursoRelatório de fim de curso
Relatório de fim de curso
Daniel Cláudio Angelino
 
MOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
MOODLE: Avaliação de Usabilidade da Criação de Cursos na WebMOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
MOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
Roseane Martins
 
000419993
000419993000419993
000419993
Auberto Macie
 
Ferramentas de Recomendação - Detalhe
Ferramentas de Recomendação - DetalheFerramentas de Recomendação - Detalhe
Ferramentas de Recomendação - Detalhe
Joao Alqueres
 
Maple 7 na resolução de cálculos algébricos
Maple 7 na resolução de cálculos algébricosMaple 7 na resolução de cálculos algébricos
Maple 7 na resolução de cálculos algébricos
marcusantonioportovelho
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Marcelo Ramos
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
JoelManuel8
 
Desenvolvimento de um modelo de simulação social da cidade de Mandirituba
Desenvolvimento de um modelo de simulação social da cidade de MandiritubaDesenvolvimento de um modelo de simulação social da cidade de Mandirituba
Desenvolvimento de um modelo de simulação social da cidade de Mandirituba
Leonardo Alcantara
 
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURAESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
Sabrina Mariana
 
Matemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasilMatemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasil
silvinha331
 
Matemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasilMatemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasil
silvinha331
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
UNIEURO
 
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
João Gabriel, Itil / Cobit / ISO 27001 / ISO 20000
 

Semelhante a Projeto de graduação (20)

Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
Trabalhodegraduaoengenhariadesoftware 140703173419-phpapp01
 
Impressora 3D no ensino de Física.pdf
Impressora 3D no ensino de Física.pdfImpressora 3D no ensino de Física.pdf
Impressora 3D no ensino de Física.pdf
 
monografia_andre_paro
monografia_andre_paromonografia_andre_paro
monografia_andre_paro
 
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
Aplicação de Integração Contínua para viabilizar a rastreabilidade de artefat...
 
Rastreamento
RastreamentoRastreamento
Rastreamento
 
Monografia - Padrões Web
Monografia - Padrões WebMonografia - Padrões Web
Monografia - Padrões Web
 
Monografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos VisuaisMonografia - Qualidade Afetiva de Elementos Visuais
Monografia - Qualidade Afetiva de Elementos Visuais
 
Relatório de fim de curso
Relatório de fim de cursoRelatório de fim de curso
Relatório de fim de curso
 
MOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
MOODLE: Avaliação de Usabilidade da Criação de Cursos na WebMOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
MOODLE: Avaliação de Usabilidade da Criação de Cursos na Web
 
000419993
000419993000419993
000419993
 
Ferramentas de Recomendação - Detalhe
Ferramentas de Recomendação - DetalheFerramentas de Recomendação - Detalhe
Ferramentas de Recomendação - Detalhe
 
Maple 7 na resolução de cálculos algébricos
Maple 7 na resolução de cálculos algébricosMaple 7 na resolução de cálculos algébricos
Maple 7 na resolução de cálculos algébricos
 
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos MunicipaisUsabilidade e Arquitetura de Informação de Websites de Governos Municipais
Usabilidade e Arquitetura de Informação de Websites de Governos Municipais
 
sistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdfsistemas_operacionais-livro.pdf
sistemas_operacionais-livro.pdf
 
Desenvolvimento de um modelo de simulação social da cidade de Mandirituba
Desenvolvimento de um modelo de simulação social da cidade de MandiritubaDesenvolvimento de um modelo de simulação social da cidade de Mandirituba
Desenvolvimento de um modelo de simulação social da cidade de Mandirituba
 
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURAESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
ESTRATÉGIA DE REAÇÃO EM CALL CENTER: UMA PROPOSTA DE ARQUITETURA
 
Matemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasilMatemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasil
 
Matemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasilMatemática orientações para o professor saeb_prova brasil
Matemática orientações para o professor saeb_prova brasil
 
SIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de AtividadeSIQA - Sistema Indicador de Qualidade de Atividade
SIQA - Sistema Indicador de Qualidade de Atividade
 
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
76223807 analise-e-modelagem-de-uma-ferramenta-para-ensino-de-criptografia
 

Projeto de graduação

  • 1. 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 do Sul – UFMS, Centro Universitário de Dourados, como parte dos requisitos para obtenção do grau de Bacharel em Análise de Sistemas.
  • 3. 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. III
  • 4. 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. IV
  • 5. 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. V
  • 6. Índice de texto Lista de figuras e tabelas.......................................................................................................VII Figuras................................................................................................................................VII Tabelas...............................................................................................................................VII Lista de abreviações..............................................................................................................VIII 1. Introdução.............................................................................................................................9 1.1. Objetivos........................................................................................................................9 1.1.1. Geral.........................................................................................................................9 1.1.2. Específico.................................................................................................................9 1.2. Metodologia.................................................................................................................11 1.3. Justificativa..................................................................................................................11 2. Marketing Reverso..............................................................................................................12 2.1. E-procurement............................................................................................................13 3. Solução Proposta................................................................................................................17 3.1. Objetivos da Solução Proposta..................................................................................18 3.2. Análise dos Dados e Funções......................................................................................19 3.3. Aspectos de Tecnologia...............................................................................................20 3.3.1. O PHP....................................................................................................................20 3.3.2. O PostgreSQL........................................................................................................22 4. Modelagem da Solução Proposta.......................................................................................24 4.1. Especificação de Casos de Uso...................................................................................25 4.2. Diagrama de Classes...................................................................................................28 4.3. Diagramas de Seqüência ............................................................................................30 4.4. Diagrama de Componentes........................................................................................34 4.5. Modelagem dos Dados................................................................................................35 4.5.1. Lógica.....................................................................................................................35 4.5.2. Física......................................................................................................................35 5. Interface da solução proposta............................................................................................37 6. Cronograma de trabalho.....................................................................................................44 Considerações finais................................................................................................................45 Referências Bibliográficas......................................................................................................46 VI
  • 7. Lista de figuras e tabelas Figuras Figura 1: Modelo de aplicação...............................................................................................17 Figura 2: Notação de diagrama de entidade-relacionamento..............................................25 Figura 3: Primeiro caso de uso...............................................................................................26 Figura 4: Segundo caso de uso...............................................................................................26 Figura 5: Terceiro caso de uso................................................................................................27 Figura 6: Quarto caso de uso..................................................................................................28 Figura 7: Diagrama de Classes...............................................................................................29 Figura 8: Diagrama de Seqüência 1.......................................................................................30 Figura 9: Diagrama de Seqüência 2.......................................................................................31 Figura 10: Diagrama de Seqüência 3.....................................................................................32 Figura 11: Diagrama de Seqüência 4.....................................................................................33 Figura 12: Diagrama de Componentes...................................................................................34 Figura 13: DER (Diagrama de entidade-relacionamento)....................................................35 Figura 14: MER (Modelo de entidade-relacionamento)........................................................36 Figura 15: Tela de entrada do sistema...................................................................................37 Figura 16: Tela exibida após a entrada do usuário administrador.......................................38 Figura 17: Tela exibida após a entrada do usuário fornecedor............................................39 Figura 18: Tela de visualização da lista de processos de compra ativos...............................40 Figura 19: Tela de visualização de detalhes do processo de compra....................................41 Figura 20: Tela de envio de lances de fornecimento.............................................................42 Figura 21: Tela de visualização de lances de fornecimento..................................................43 Tabelas Tabela 1: Estratégias de adoção das tecnologias de E-Procurement....................................15 Tabela 2: Eficiências geradas com a adoção de tecnologias de E-procurement..................16 Tabela 3: Cronograma de trabalho.........................................................................................44 VII
  • 8. 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) VIII
  • 9. 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. 9
  • 10. 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; 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. 10
  • 11. • Fornecer dados estatísticos, relatórios e gráficos sobre o histórico de aquisição de materiais em determinado período; 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). 11
  • 12. 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 12
  • 13. 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 13
  • 14. • 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 8 Organização com faturamento anual acima de 10 bilhões de dólares. 14
  • 15. atual de desenvolvimento do e-procurement, mas não estão destinando os recursos (37%), 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 15
  • 16. níveis que incentivam alocação significativa de recursos. As companhias que usam 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 16
  • 17. 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; 9 Aplicação desenvolvida para a internet. 17
  • 18. • Módulo de Gerenciamento de Lances de Transporte; 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; 18
  • 19. • Permitir ao fornecedor enviar lances contendo preço do produto e condições de pagamento e entrega para itens de listas de compras; • 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; 10 Qualquer coisa do mundo real, que possa ser quantificada e/ou catalogada. 19
  • 20. 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 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 11 Active Server Pages, linguagem para criação de páginas dinâmicas para a internet, criada pela Microsoft. 20
  • 21. funcionalidade é tão semelhante ao produto/conceito, ou o que quer que seja, da Microsoft [CONVERSE & PARK, 2001]. 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; 21
  • 22. 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 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 22
  • 23. 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 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). 23
  • 24. 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: 24
  • 25. 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. 25
  • 26. 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 26
  • 27. 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. 27
  • 28. 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. 28
  • 29. 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..1 0..* 1..1 0..* Categoria_produto + + categoria_produto nome : 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_produto nome : 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_compra status inicio fim tipo obs : 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_fornecedor data_hora valor vencedor status condicoes : 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 + + modulo nome : 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 + + + + + + usuario nome login senha nivel ativo : 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_compra descricao_produto quantidade unidade valor_unitario obs : 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_entrega quantidade data_entrega forma : 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_transportador data_hora valor vencedor status : 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_acesso acessar incluir alterar apagar tudo : 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_juridica razao_social nome_fantasia site cnpj insc_estadual fax : 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 + + + cidade nome cep : 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 + + + estado nome sigla : 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 + + bairro nome : 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 + + + logradouro tipo nome : 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 + + + + endereco numero complemento cx_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 + + + + + contato nome telefone celular email : 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_bancaria num_banco nome_banco agencia nome_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 + + fornecedor pontos_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 + + transportador pontos_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 29
  • 30. 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. 30
  • 31. 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. 31
  • 32. Figura 10: Diagrama de Seqüência 3 32
  • 33. 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 33
  • 34. 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 34
  • 35. 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. 35
  • 36. 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_produto categoria_produto nome INT4 VARCHAR(100) <pk> Sub_categoria_produto sub_categoria_produto categoria_produto nome INT4 INT4 VARCHAR(100) <pk> <fk> Processo_compra processo_compra pessoa_juridica comprador status inicio fim tipo obs INT4 INT4 INT4 INT2 DATE DATE VARCHAR(10) CHAR <pk> <fk> <fk> Lance_fornecedor lance_fornecedor item_processo_compra pessoa_juridica fornecedor data_hora valor vencedor status condicoes INT4 INT4 INT4 INT4 DATE NUMERIC(18,2) INT2 INT2 VARCHAR(200) <pk> <fk2> <fk1> <fk1> Modulo modulo nome INT4 VARCHAR(100) <pk> Usuario usuario pessoa_juridica nome login senha nivel ativo INT4 INT4 VARCHAR(100) VARCHAR(50) VARCHAR(50) INT2 INT2 <pk> <fk> Item_processo_compra item_processo_compra sub_categoria_produto processo_compra descricao_produto quantidade unidade valor_unitario obs INT4 INT4 INT4 VARCHAR(200) NUMERIC(18,2) CHAR(10) NUMERIC(18,2) CHAR <pk> <fk2> <fk1> Programacao_entrega programacao_entrega item_processo_compra endereco quantidade data_entrega forma INT4 INT4 INT4 NUMERIC(18,2) DATE INT2 <pk> <fk2> <fk1> Lance_transportador lance_transportador item_processo_compra pessoa_juridica transportador data_hora valor vencedor status INT4 INT4 INT4 INT4 DATE NUMERIC(18,2) INT2 INT2 <pk> <fk2> <fk1> <fk1> Direito_acesso direito_acesso usuario modulo acessar incluir alterar apagar tudo INT4 INT4 INT4 INT2 INT2 INT2 INT2 INT2 <pk> <fk1> <fk2> Pessoa_juridica pessoa_juridica razao_social nome_fantasia site cnpj insc_estadual fax INT4 VARCHAR(100) VARCHAR(100) VARCHAR(200) VARCHAR(50) VARCHAR(50) VARCHAR(50) <pk> Cidade cidade estado nome cep INT4 INT4 VARCHAR(100) CHAR(8) <pk> <fk> Estado estado nome sigla INT4 VARCHAR(100) CHAR(2) <pk> Bairro bairro cidade nome INT4 INT4 VARCHAR(100) <pk> <fk> Logradouro logradouro tipo nome INT4 VARCHAR(10) VARCHAR(100) <pk> Endereco endereco logradouro bairro estado cidade numero complemento cx_postal INT4 INT4 INT4 INT4 INT4 INT4 VARCHAR(50) VARCHAR(20) <pk> <fk1> <fk4> <fk2> <fk3> Contato contato pessoa_juridica nome telefone celular email INT4 INT4 VARCHAR(100) VARCHAR(50) VARCHAR(50) VARCHAR(100) <pk> <fk> Inf_bancaria inf_bancaria pessoa_juridica num_banco nome_banco agencia nome_titular INT4 INT4 VARCHAR(10) VARCHAR(100) VARCHAR(50) VARCHAR(100) <pk> <fk> Fornecedor pessoa_juridica fornecedor pontos_fornecimento INT4 INT4 INT4 <pk,fk> <pk> Comprador pessoa_juridica comprador INT4 INT4 <pk,fk> <pk> Transportador pessoa_juridica transportador pontos_transporte INT4 INT4 INT4 <pk,fk> <pk> Fornecedor_sub_categoria_produto sub_categoria_produto pessoa_juridica fornecedor capac_fornecimento INT4 INT4 INT4 INT4 <pk,fk2> <pk,fk1> <pk,fk1> Pessoa_juridica_endereco pessoa_juridica_endereco endereco pessoa_juridica INT4 INT4 INT4 <pk> <fk1> <fk2> Figura 14: MER (Modelo de entidade-relacionamento) 36
  • 37. 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 37
  • 38. 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 38
  • 39. 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 39
  • 40. 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 40
  • 41. 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 41
  • 42. 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 42
  • 43. 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 43
  • 44. 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 Semanas 1 2 3 4 5 6 7 8 9 10 11 12 1 2 3 4 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; 44
  • 45. 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. 45
  • 46. 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. 46