06/02 Documentação Adequações inovações no sistema SISBLOQ

Transcrição

06/02 Documentação Adequações inovações no sistema SISBLOQ
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
RELATÓRIO DE ESTÁGIO SUPERVISIONADO
DOCUMENTAÇÃO, ADEQUAÇÕES E INOVAÇÕES NO
SISTEMA DE CONTROLE E BLOQUEIO (SISBLOQ)
PAULO HENRIQUE GARCIA
CUIABÁ – MT
Ano 2014
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
RELATÓRIO DE ESTÁGIO SUPERVISIONADO
DOCUMENTAÇÃO, ADEQUAÇÕES E INOVAÇÕES NO
SISTEMA DE CONTROLE E BLOQUEIO (SISBLOQ)
PAULO HENRIQUE GARCIA
Relatório
apresentado
ao
Instituto
de
Computação da Universidade Federal de
Mato Grosso, para obtenção do título de
Bacharel em Sistemas de Informação.
CUIABÁ – MT
Ano 2014
UNIVERSIDADE FEDERAL DE MATO GROSSO
COORDENAÇÃO DE ENSINO DE GRADUAÇÃO EM
SISTEMAS DE INFORMAÇÃO
PAULO HENRIQUE GARCIA
Relatório de Estágio Supervisionado apresentado à Coordenação do Curso de
Sistemas de Informação como uma das exigências para obtenção do título de
Bacharel em Sistemas de Informação da Universidade Federal de Mato Grosso
Aprovado por:
Prof. Msc. Nilton Hideki Takagi
Instituto de Computação
(Coordenador de Estágios)
Prof. MSc. Allan Gonçalves de Oliveira
Instituto de Computação
(ORIENTADOR)
Prof. MSc. Raphael de Souza Rosa Gomes
Instituto de Computação
(CONVIDADO)
3
DEDICATÓRIA
A Deus por permitir a concretização de mais um sonho e por saber a hora certa
para que isso ocorra.
À minha família pelo apoio, pela paciência, pela dedicação e carinho com que me
tratou nesse tempo todo de dedicação quase que exclusiva aos estudos.
À minha esposa, filha e meus pais, que abriram mão de muito tempo da minha
companhia para que eu pudesse concretizar mais este sonho.
Aos meus amigos que sempre me apoiaram e incentivaram durante essa trajetória.
4
AGRADECIMENTOS
Agradeço especialmente a minha esposa que sempre me incentivou e
encorajou a continuar os estudos que por vários anos foi um projeto que ficou
engavetado, que me deu forças e apoio para chegar ao final e também agradeço a
todos os professores, técnicos e funcionários da UFMT que sempre me trataram com
respeito e me proporcionaram um bom aprendizado.
5
SUMÁRIO
LISTA DE FIGURAS .......................................................................................................................... 7
LISTA DE SIGLAS E ABREVIATURAS ......................................................................................... 8
RESUMO .............................................................................................................................................. 9
INTRODUÇÃO .................................................................................................................................. 10
1.
REVISÃO DE LITERATURA ................................................................................................ 12
1.1.
LEI 12.737 DE 30 DE NOVEMBRO DE 2012. ......................................................................... 12
1.2.
UML (UNIFIED MODELING LANGUAGE). ........................................................................... 13
1.2.1. Diagrama de Casos de Uso. ......................................................................................... 14
1.2.2. Diagrama de Fluxo de Dados. ..................................................................................... 15
1.2.3. Dicionário de Dados. ................................................................................................... 17
1.2.4. Diagrama de Entidades e Relacionamento. ................................................................. 17
1.3.
HTML. .............................................................................................................................. 19
1.4.
PHP. .................................................................................................................................. 20
1.5.
CSS. .................................................................................................................................. 21
1.6.
MYSQL. ............................................................................................................................ 22
2.
MATERIAS, TÉCNICAS E MÉTODOS ............................................................................... 24
2.1.
LEI 12.737 DE 30 DE NOVEMBRO DE 2012. ......................................................................... 24
2.2.
UML (UNIFIED MODELING LANGUAGE). ........................................................................... 24
2.2.1. Diagrama de Casos de Uso. ......................................................................................... 25
2.2.2. Descrição de Casos de Uso. ......................................................................................... 25
2.2.3. Diagrama de Fluxo de Dados. ..................................................................................... 26
O DFD Sistema de bloqueio. ...................................................................................................... 26
O DFD Liberação do sistema por senha. ................................................................................... 26
Os DFDs Diversos. ..................................................................................................................... 26
2.2.4. Dicionário de Dados. ................................................................................................... 26
2.2.5. Diagrama de Entidades e Relacionamento. ................................................................. 26
3.
RESULTADOS ......................................................................................................................... 28
4.
DIFICULDADES ENCONTRADAS ...................................................................................... 34
5.
CONCLUSÕES ......................................................................................................................... 36
6.
REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................... 37
7.
APÊNDICES E/OU ANEXOS ................................................................................................. 38
7.1.
APÊNDICE – PROJETO SISBLOQ. ................................................................................... 38
6
LISTA DE FIGURAS
FIGURA 1 - PROCESSO DE LEVANTAMENTO E ANÁLISE DE REQUISITOS.................................................. 14
FIGURA 2 - CASO DE USO DE EXEMPLO ................................................................................................. 15
FIGURA 3 - DFD NÍVEL 1 DE EXEMPLO ................................................................................................. 16
FIGURA 4 - DD DE EXEMPLO ................................................................................................................. 17
FIGURA 5 - DER DE EXEMPLO ............................................................................................................... 18
FIGURA 6 - EXEMPLO DE CÓDIGO HTML (IMAGENS GOOGLE.COM.BR) .............. ERRO! INDICADOR NÃO
DEFINIDO.
FIGURA 7 - CÓDIGO PHP DE EXEMPLO .................................................................................................. 20
FIGURA 8 - CODIGO CSS DE EXEMPLO .................................................................................................. 21
FIGURA 9 - CODIGO SQL DE EXEMPLO .................................................................................................. 23
FIGURA 10 - ALTERAR DIAS PARA BLOQUEIO AUTOMÁTICO .................................................................. 28
FIGURA 11 - TELA EXECUTÁVEL TEMPORÁRIO COM OS DADOS DE CONFIGURAÇÃO .............................. 29
FIGURA 12 - SISTEMA DE LIBERAÇÃO COM SENHA ................................................................................ 29
FIGURA 13 - SITE - TELA HOME ............................................................................................................ 30
FIGURA 14 - SITE - TELA QUEM SOMOS E TELA MISSÃO ...................................................................... 30
FIGURA 14 - SITE - TELA QUEM SOMOS E TELA MISSÃO .................. ERRO! INDICADOR NÃO DEFINIDO.
FIGURA 16 - SITE - TELA PRODUTOS E TELA FALE CONOSCO ............................................................... 30
FIGURA 15 - SITE - TELA PRODUTOS E TELA FALE CONOSCO ........... ERRO! INDICADOR NÃO DEFINIDO.
FIGURA 18 - SITE - TELA CADASTRO DE REGISTROS ............................................................................. 31
FIGURA 19 - TELAS ENTRAR E LOGIN ................................................................................................... 31
FIGURA 17 - TELAS ENTRAR E LOGIN ............................................... ERRO! INDICADOR NÃO DEFINIDO.
FIGURA 21 - TELA ÁREA RESTRITA ADM ............................................................................................ 32
FIGURA 22 - TELA ÁREA RESTRITA USU .............................................................................................. 32
FIGURA 23 - TELAS AGENDA ................................................................................................................ 32
FIGURA 20 - TELAS AGENDA ............................................................ ERRO! INDICADOR NÃO DEFINIDO.
FIGURA 25 - TELAS CADASTRO USUÁRIOS............................................................................................ 33
FIGURA 26 - TELA MANUTENÇÃO REGISTRO ........................................................................................ 33
FIGURA 22 - TELA MANUTENÇÃO REGISTRO .................................... ERRO! INDICADOR NÃO DEFINIDO.
FIGURA 28 - TECLAS DE NAVEGAÇÃO ................................................................................................... 33
FIGURA 29 - STRUCT DATA ................................................................................................................... 34
FIGURA 30 - FUNÇÃO IDENTIFICAÇÃO DO ANO BISSEXTO ..................................................................... 34
FIGURA 31 - DIFERENÇA ENTRE DATAS ................................................................................................. 35
FIGURA 32 – IDENTIFICAÇÃO DA DATA ATUAL...................................................................................... 35
7
LISTA DE SIGLAS E ABREVIATURAS
Tabela 1 - Lista de Siglas
ABNT
Associação Brasileira de Normas Técnicas.
CPU
Central Processing Unit – Unidade Central de Processamento.
UML
Unified Modeling Language - Linguagem unificada de modelagem
DCU
Diagrama de Casos de uso
DFD
Diagrama de fluxo de dados
DD
Dicionário de dados
DER
Diagrama de entidade e relacionamento
MER
Modelo entidade e relacionamento (Modelo Conceitual)
C
Linguagem de programação
C++
Linguagem de programação
HTML
Hyper Text Markup Language
PHP
Um acrônimo recursivo para PHP: Hypertext Preprocessor
CSS
Cascading Style Sheets
DevC++
Ambiente de desenvolvimento integrado livre que suporta as
linguagens C e C++.
NotePad++
É um editor de texto e de código fonte de código aberto sob a licença
GPL
WWW
World Wide Web
8
RESUMO
Este relatório trata da implementação de melhorias e da criação da
documentação de um sistema de controle de clientes chamado SisBloq que foi
desenvolvido e é de propriedade da empresa WebCel – Garcia e Mendonça Ltda. A
WebCel trabalha com representação e suporte de sistemas ERP no estado de Mato
Grosso entre outras áreas de atuação. O SisBloq tem como função o bloqueio do
sistema ERP do cliente e o seu monitoramento, composto por três aplicativos
desenvolvidos em C++, um site web e um banco de dados. Dos aplicativos, um deles
é usado apenas no instante da instalação do sistema para inclusão de alguns dados,
sendo o mesmo excluído ao termino da instalação outro usado no caso de liberação
do sistema ERP através de senha que se altera diariamente e só é fornecida pela
WebCel. A sua execução é feita através de um atalho que fica na área de trabalho do
cliente, e o outro é executado na máquina do cliente, toda vez que a máquina é
reiniciada, com a função de bloquear, liberar e atualizar informações no servidor da
WebCel. O site, desenvolvido em HTML e PHP com CSS, tem várias páginas,
Home, missão, produtos, contato e área restrita, home, missão e produtos trazem
informações da empresa, contato é utilizada para comunicação através de e-mail com
a empresa e a área restrita é utilizada para gerenciar e monitorar o SisBloq, sendo
que para isso se faz necessário estar logado através de login e senha com controle de
sessão. Tanto o login como a senha passam por regras de validação. Por fim, o banco
de dados MySQL que fica instalado no servidor da WebCel. O foco deste relatório é
a parte do controle e bloqueio do sistema do cliente, por tanto se abordará detalhes
técnicos apenas da página da área restrita, desconsiderando a parte da agenda e
demais páginas do site. O resultado deste projeto foi satisfatório, pois o mesmo
atingiu todas as expectativas, reduzindo em cerca de 95% a inadimplência,
alcançando todos os objetivos e ainda abrindo caminho para novas ideias a serem
pesquisadas e colocadas em prática.
Palavras chaves: SisBloq, WebCel, Sistema ERP, DCU, DD, DFD e DER.
9
Introdução
No mercado de desenvolvimento de sistemas, no início o software era
desenvolvido especificamente para atender à solicitação de um ou de poucos clientes.
O sistema era vendido com os fontes por preços bem altos o que dificultava muito
sua comercialização.
Com o tempo passaram a vender o direito de uso e fazer contratos de
manutenção e suporte mensal, onde se teria produto com custo menor e um ganho
mensal.
Depois começaram a terceirizar a representação e o suporte do sistema,
diminuindo assim os custos da software house, pois poderia diminuir os setores
comercial e de suporte. Nesta época a negociação de venda era feita pelo
representante que também prestava o suporte aos clientes, mas o pagamento era feito
diretamente a software house que repassava uma pequena parte ao representante.
Hoje está se tornando uma tendência de mercado a comercialização das
licenças de uso diretamente com o representante e assim que a licença é ativada a
software house começa a cobrar uma mensalidade do representante. O representante
negocia a licença de uso diretamente com o cliente final e fecha com ele um contrato
de suporte, assim a responsabilidade de recebimento é do representante e não mais da
software house. Desta forma ela reduz novamente seu custo pois diminui
drasticamente seus setores comercial e financeiro.
Neste contexto, percebe-se que não há a devida valorização por parte do
cliente em relação aos recursos de Tecnologia da Informação (Ti), pelo contrário,
todo o dinheiro direcionado para o setor é considerado apenas como gasto e não
investimento. Com isso, aumentam cada vez mais os casos de inadimplência por
parte dos clientes em relação aos contratos firmados com o representante, cerca de 60
a 65% do total de clientes. Nesses casos, a ferramenta mais eficaz para resolver o
problema seria o bloqueio do sistema ERP. Geralmente o controle é feito
internamente ao sistema, o qual acessa uma base de dados do fornecedor e faz a
verificação do contrato, nesse caso, é necessária uma conexão com a internet, e caso
não se tenha, o controle não pode ser feito.
10
Diante disso, faz-se necessário então um sistema que seja capaz de fazer o
controle dos contratos firmados entre fornecedor e cliente, verificando os casos de
inadimplência dos contratos. Esse sistema deve ainda poder verificar se a conexão
com a internet foi interrompida e caso tenha sido, bloquear o sistema após um
determinado período sem acesso à internet para nova verificação.
Nesse contexto, a empresa WebCel – Garcia e Mendonça Ltda, que trabalha
com suporte e comercialização de Licença de uso de software ERP específico para
área de drogarias, farmácia e áreas afins além de outras especialidades viu a
necessidade de se desenvolver um sistema para esse controle.
Foi desenvolvido o sistema de controle (SisBloq) que tem como objetivo
fazer o controle dos contratos de licença de uso de software fornecidos pela WebCel.
Este trabalho apresenta o relatório de estágio supervisionado desenvolvido
pelo aluno no decorrer do desenvolvimento do sistema SisBloq.
O objeto deste trabalho é a implementação de melhorias e modificações no
sistema já existente, assim como a criação de sua documentação.
Neste relatório serão detalhadas as atividades realizadas no período do
estágio, bem como as técnicas e ferramentas utilizadas para que as mesmas fossem
possíveis.
O relatório está organizado como segue: O capítulo 1 apresenta a revisão da
literatura que contribuiu para o desenvolvimento do trabalho. No capítulo 2 são
apresentados os materiais, técnicas e métodos utilizados. O capítulo 3 apresenta os
resultados alcançados no desenvolvimento. Posteriormente são apresentadas as
dificuldades encontradas no decorrer do estágio supervisionado bem como as
soluções encontradas e as conclusões do trabalho.
11
1. REVISÃO DE LITERATURA
Como prevenção de eventuais problemas jurídicos, procurou-se conhecer a
legislação vigente que trata da área de crimes informáticos, pois se fará o bloqueio
do sistema ERP do cliente e isto pode ser interpretado como invasão. Nas pesquisas
foi encontrado a lei Carolina Dieckmann descrita no item 1.1 que proporcionou a
tomada de decisão em relação a forma que o SisBloq irá atuar.
1.1. Lei 12.737 de 30 de novembro de 2012.
A lei Carolina Dieckmann, lei 12.737 de 30 de novembro de 2012 dispõe
sobre a tipificação criminal de delitos informáticos e altera o decreto-Lei nº2.848, de
07 de dezembro de 1940 (Código Penal) acrescentando os artigos 154-A e 154-B que
tratam respectivamente da “invasão de dispositivo informático” e “ação penal”.
O artigo 154-A diz ser contra a lei a invasão de máquinas por qualquer que
seja a forma ou meio sem autorização expressa do titular, seja para fins de obter,
alterar ou destruir dados deste, conforme destacado abaixo.
“Art. 154-A. Invadir dispositivo informático alheio, conectado ou não à
rede de computadores, mediante violação indevida de mecanismo de
segurança e com o fim de obter, adulterar ou destruir dados ou informações
sem autorização expressa ou tácita do titular do dispositivo ou instalar
vulnerabilidades para obter vantagem ilícita.” (BRASIL 2012).
O artigo 154-B trata da ação penal dos crimes definidos no artigo 154-A.
12
Em relação a documentação, ou seja o projeto do SisBloq, adotou-se o padrão
UML para montagem e execução deste projeto, por tanto usou-se a metodologia e
técnicas descritas do item 1.2 em diante.
1.2. UML (Unified Modeling Language).
É uma linguagem visual utilizada para modelar softwares baseados no
paradigma de orientação a objetos.
“A UML formalizou um conjunto de conceitos composto por elementos
(classes,
interfaces
e
componentes),
relacionamentos
(associação,
generalização e dependências) e tipos de diagramas, que permitiu a
unificação na representação de modelos orientados a objetos de sistemas
computacionais.”
(www.devmedia.com.br/introducao-sobre-uml-mecanis
mos-gerais-revista-sql-magazine-91/22261#ixzz3RNAm4tO0).
Essa linguagem foi criada em 1996, como o resultado da integração dos
métodos orientados a objetos propostos por Booch (1994), Rumbaugh (1991) e
Jacobson (1993), padronizando as notações utilizadas. Na versão 1.1, foi aprovada
como linguagem padrão para a modelagem orientada a objetos pela OMG (Object
Management Group) em 1997.
A definição da UML encontra-se na "Especificação de Modelagem Unificada
da OMG", no site da OMG, com o objetivo de descrever qualquer tipo de sistema,
em termos de diagramas orientados a objetos. A versão 2.0 da UML foi adotada pela
OMG em 2004, possuindo 13 diferentes tipos de diagramas, mais elementos e maior
formalismo. A versão corrente é 2.4 (beta), de março de 2011. (Fonte: Revista SQL
Magazine 91).
A modelagem UML independe da linguagem de programação que o sistema
será desenvolvido.
A engenharia de software vai de encontro com a engenharia de requisitos
onde tem-se os termos de aquisição, estruturação e análise de informações. Mesmo
tomando-se muito cuidado o grande volume de informações e suas particularidades
podem ocasionar ambiguidades. Assim, torna-se uma tarefa muito difícil modelar
problemas do mundo real para serem solucionados por sistemas de computação, uma
vez que é preciso verificar quais serão os problemas tratados. Quase sempre,
13
constitui-se uma tarefa árdua essa decisão, pois geralmente são problemas de grande
complexidade.
Depois da elicitação de requisitos usa-se a modelagem através de gráficos e
diagramas como por exemplo o diagrama de casos de uso, o diagrama de fluxo de
dados e outros.
A figura abaixo apresenta todo o processo de elicitação de requisitos,
inclusive as etapas que se repetem ao longo desse levantamento.
Figura 1 - Processo de levantamento e análise de requisitos.
Fonte: SOMMERVILLE (2003).
1.2.1. Diagrama de Casos de Uso.
O diagrama de casos de uso é utilizado para descrever graficamente as
funcionalidades apontadas pelo levantamento de requisitos através da ótica do
usuário.
“Um caso de uso descreve um conjunto particular de funcionalidades do
sistema, modelando o diálogo que uma entidade externa, chamada ator,
realiza com o sistema.
Um caso de uso especifica o comportamento de um sistema ou parte dele. É
também uma descrição do conjunto de passos que o sistema executará para
desempenhar suas funções.
14
Um caso de uso identifica eventos que podem ocorrer e descreve a resposta
do sistema para estes eventos.” (Rodrigo Oliveira Spínola - DevMedia
2012).
Assim é possível descrever graficamente as funcionalidades que um sistema
desempenhará, como no exemplo (abaixo) de uma máquina de SelfService, que tem
como atores, o cliente, o repositor e o coletor que executam as tarefas de comprar,
reabastecer e coletar o dinheiro:
Figura 2 - Caso de Uso de exemplo
Fonte: http://www.dsc.ufcg.edu.br/ (2007)
1.2.2. Diagrama de Fluxo de Dados.
O diagrama de fluxo de dados (DFD) é uma representação gráfica do
"fluxo" de dados através de um sistema de informação. (Fonte: Iseg 2007).
O diagrama de fluxo de dados mostra o sistema como uma rede de
informações onde se mostra cada processo desde sua origem até o seu destino, passo
a passo.
O DFD mostra todas as relações entre os dados, os processos que
transformam os dados e o limite entre o que é do sistema e o que está fora dele.
15
O DFD pode ser nível 0, 1 ou 2, o nível 0 engloba vários processos, o nível 1
mostras os processos um a um e o nível 2 detalha os processos e os dados
transportados entre eles. Abaixo temos um exemplo de um DFD de um sistema de
reservas, no nível 1.
Figura 3 - DFD Nível 1 de exemplo
Fonte: http://www.gta.ufrj.br/ (2007)
16
1.2.3. Dicionário de Dados.
Detalham os atributos de todas as tuplas das tabelas, ou seja, como são
formados cada um dos campos das tabelas no banco de dados. (Fonte: Disciplina de
Análise e Projeto de Sistemas 2).
Este documento, permite que os analistas obtenham informações sobre todos
os objetos do modelo de forma textual, contendo explicações que podem ser muitas
vezes difíceis de incluir no diagrama. É válido lembrar que o objetivo do documento
é ser claro e consistente.
Existem vários formas e modelos de dicionário de dados, mas todos com a
mesma proposta, abaixo segue o exemplo de um:
Figura 4 - DD de exemplo
Fonte: http://labeee.ufsc.br/ (2014).
1.2.4. Diagrama de Entidades e Relacionamento.
Quando se inicia o desenvolvimento de um novo sistema, ou mesmo de uma
nova funcionalidade para um sistema existente, um dos primeiros passos a ser
executado é o estudo e levantamento dos requisitos necessários para a construção do
17
produto final. Durante essa análise, identifica-se as principais partes e objetos
envolvidos, suas possíveis ações e responsabilidades, suas características e como elas
interagem entre si. (Fonte: Disciplina de Análise e Projeto de Sistemas 2).
Não que não se possa implementar diretamente, mas o levantamento é uma
boa prática.
A partir das informações obtidas, pode-se desenvolver um modelo conceitual
que será utilizado para orientar o desenvolvimento propriamente dito, fornecendo
informações sobre os aspectos relacionados ao domínio do projeto em questão.
Enquanto o MER é um modelo conceitual, o Diagrama Entidade
Relacionamento (DER) é a sua representação gráfica. Em situações práticas, o
diagrama é tido muitas vezes como sinônimo de modelo, uma vez que sem uma
forma de visualizar as informações, o modelo pode ficar abstrato demais para
auxiliar no desenvolvimento do sistema. Dessa forma, quando se está modelando um
projeto, o mais comum é já criar sua representação gráfica, seguindo algumas regras.
O diagrama facilita ainda a comunicação entre os integrantes da equipe, pois
oferece uma linguagem comum utilizada tanto pelo analista, responsável por levantar
os requisitos, e os desenvolvedores, responsáveis por implementar aquilo que foi
modelado.
A baixo segue um modelo de um DER simples de um cadastro de produto
para familiarização:
Figura 5 - DER de exemplo
Fonte: https://programandodotnet.wordpress.com (2010).
18
1.3. HTML.
HTML foi criada por Tim Berners-Lee, é uma linguagem de fácil
entendimento baseada em TAGs.
O acrônimo HTML vem do inglês e significa Hypertext Markup Language ou
em português Linguagem de Marcação de Hipertexto. (Fonte: Disciplina de Web e Web2).
É uma linguagem de formatação que é interpretada pelo browser. Isto
significa que ela serve para criar uma formatação diferenciada do texto. Com as
TAGs podem ser criados parágrafos, títulos, cabeçalhos, formulários e tudo mais que
vemos numa página de internet.
Um documento HTML pode ser escrito utilizando um editor de texto comum,
bastando para isso conhecimento do código, para se definir as funções necessárias.
As versões de evolução da HTML incluem XHTML (uma linguagem com
sintaxe mais rigorosa, baseada em XML) e HTML5 (quinta versão da HTML que
traz novos recursos, principalmente a manipulação de conteúdo gráfico e
multimídia).
Figura 6 - Exemplo de código HTML
Fonte: http://pt.wikipedia.org/wiki/HTML (2015)
19
1.4. PHP.
Originalmente era chamado de “Personal Home Page Tools”, através de uma
votação da comunidade foi escolhido o novo nome, PHP que significa: Hypertext
Preprocessor.
Ele é uma linguagem de script de servidor, e uma ferramenta muito poderosa
para a criação de páginas Web dinâmicas e interativas. É amplamente utilizado, livre
e alternativa eficiente para concorrentes como a Microsoft ASP. É uma linguagem
dinâmica e flexível, ele suporta uma grande variedade de técnicas de programação.
Pode ser usado como extensão de seus arquivos o “.php” e “.phtml”. (Fonte: Disciplina
de Web e Web2).
Ainda possui um conjunto completo de funcionalidades de programação
orientada a objetos e é um módulo oficial do servidor Apache, que atualmente é o
líder do mercado de servidores Web livres, hoje constitui cerca de 55% da WWW.
Isso significa que o mecanismo de script do PHP pode ser construído no próprio
servidor Web, 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. É sempre
descrito entre as TAGs “<?php” para indicar o início e “?>” para indicar o final,
conforme é mostrado no código do exemplo abaixo:
Figura 7 - Código PHP de exemplo
Fonte: http://webmasterpauloricardo.blogspot.com.br/ (2011)
20
1.5. CSS.
CSS (Cascading Style Sheets) é uma linguagem de folhas de estilo que define
a apresentação de documentos criados em linguagem de marcação (HTML e XML).
Criado uma página de estilos que será acessada por link’s, assim serão o
documento e a formatação dois arquivos diferentes.
Com a formatação armazenada separadamente do documento terá a vantagem
de poder reaproveitar a formatação em várias páginas diferentes o que além de
econômico facilita a manutenção.
Existem 3 versões de CSS, CSS1, CSS2 e CSS3. Onde nem todos os
navegadores estão compatibilizados em todas as suas versões. (Fonte: Disciplina de Web
e Web2).
Abaixo um exemplo de código de um arquivo de Estilo CSS.
Figura 8 - Codigo CSS de exemplo
21
1.6. MySQL.
MySQL community Edition é um banco de dados de código aberto. Está
disponível sob a licença GPL e é apoiado por uma enorme e ativa comunidade de
desenvolvedores de código aberto. É de propriedade da SUN/Oracle.
Muitas das maiores organizações do mundo e as que mais crescem, incluindo
Facebook, Google, Adobe, Alcatel Lucent e Zappos contam com MySQL para
poupar tempo e dinheiro alimentando seus sites de alto volume, sistemas críticos de
negócios e software empacotado.
“Many of the world's largest and fastest-growing organizations including
Facebook, Google, Adobe, Alcatel Lucent and Zappos rely on MySQL to
save time and money powering their high-volume Web sites, businesscritical systems and packaged software.”
O MySQL Community Edition inclui:

Arquitetura de mecanismo de armazenamento contestável;

Vários motores de armazenamento:
o InnoDB;
o MyISAM
o NDB (MySQL Cluster)
o Memória
o Fundir
o Arquivo
o CSV

MySQL Replication: Para melhorar o desempenho do aplicativo e
escalabilidade;

MySQL Partitioning: Para melhorar o desempenho e gerenciamento de
aplicações de banco de dados grandes;

Stored Procedures: Para melhorar a produtividade do desenvolvedor;

Gatilhos: Para impor regras de negócio complexas no nível de banco de
dados;

Visualizações: Para assegurar informações confidenciais não sejam
comprometidos;
22

Esquema de desempenho: Para o monitoramento do nível de usuário /
aplicação do consumo de recursos;

Esquema de informações: Para facilitar o acesso aos metadados;

MySQL Conectores: (ODBC, JDBC, .NET, etc) para a construção de
aplicações em vários idiomas;

MySQL Workbench: Para modelagem visual, desenvolvimento SQL e
administração;
Disponível em mais de 20 plataformas e sistemas operacionais, incluindo
Linux, Unix, Mac e Windows.
Abaixo segue um exemplo de um código de inserção de dados em uma tabela
de um banco MySQL.
Figura 9 - Codigo SQL de exemplo
23
2. MATERIAS, TÉCNICAS E MÉTODOS
Este capítulo aborda a metodologia utilizada no desenvolvimento do trabalho.
Buscou-se atender os aspectos legais de desenvolvimento de software. Assim,
atentou-se para o que diz a Lei 12.737. Para a documentação do sistema optou-se
pelo uso da UML como descrito abaixo.
2.1. Lei 12.737 de 30 de novembro de 2012.
Tomou-se o cuidado de observar a legislação vigente que diz ser proibido
a invasão de máquinas por qualquer que seja a forma ou meio. Assim foi
decidido pela criação de uma ferramenta que instalada na máquina do cliente se
conecta no servidor da WebCel e executa as rotinas necessárias de acordo com as
orientações do sistema. Outra medida preventiva é a cláusula colocada no
contrato que permite o bloqueio do sistema, ou seja, a interrupção dos serviços
em casos de inadimplência ou atrasos a partir do quinto dia do vencimento.
2.2. UML (Unified Modeling Language).
Como metodologia adotou-se a UML, assim foram utilizadas como técnicas o
diagrama de casos de uso (DCU), o diagrama de fluxo de dados (DFD) e por fim,
mas não menos importante, o diagrama de entidade e relacionamento (DER), apesar
de fazer parte da UML também foram utilizadas as descrições de casos de uso e o
dicionário de dados (DD).
A ferramentas utilizadas para confecção deste relatório e do projeto foram o
Microsoft Visio, Microsoft Word, imagens em padrão “.png” e “.jpg”, banco de
dados MySQL, PHP, HTML, CSS, linguagem de programação C e C++, DevC++,
Inno Setup Compiler, Notepad++, máquina virtual Virtual Box, Windows 8.1.
Uma das técnicas usadas para a elicitação de requisitos foi um questionário
que foi apresentado para o cliente e usuários do sistema, este recurso foi de grande
importância no levantamento das regras de negócio do SisBloq.
24
2.2.1. Diagrama de Casos de Uso.
O DCU (Apêndice, página 59), descreve as ações que o sistema executa, que
no caso são elas:

Cadastrar usuários;

Instalação do sistema;

Alterar nome do cliente;

Alterar número do registro;

Cadastrar clientes;

Alterar número de dias para bloqueio do sistema;

Alterar status de uso;

Fazer login;

Os atores que interagem com o sistema que são o financeiro, o gerente
de suporte e o funcionário do suporte.
O DCU (Apêndice, página 60), descreve a ação que o executável de liberação
do sistema executa, que no caso é:

Liberar o sistema com uso de senha;

O ator que interage com o executável é o cliente.
2.2.2. Descrição de Casos de Uso.
O Diagrama de Casos de Uso mostra de forma gráfica as ações que o sistema
executa, já a descrição de casos de uso descreve em detalhes estas ações.
São detalhes que fazem parte das descrições de casos de uso, quem usa,
descrição do fluxo principal, Includes, Extends, referencias, gatilho, pré-condição e
pós-condição.
Conforme pode ser visto nas Descrições de Casos de Uso do sistema
(Apêndice, páginas 61 a 70).
25
2.2.3. Diagrama de Fluxo de Dados.
Os diagramas de fluxo de dados têm a função mostrar todo o fluxo dos dados
a que ele se refere, inclusive com os processos pelos quais passarão. No
SisBloq foi usado os DFDs abaixo:
O DFD Sistema de bloqueio.
O DFD Sistema de bloqueio (Apêndice, página 71), mostra o fluxo
de dados de todo o sistema de bloqueio em nível 1, nele se tem todas ações
possíveis descritas.
O DFD Liberação do sistema por senha.
O DFD Liberação do sistema por senha (Apêndice, página 72),
mostra em fluxos de dados a ação para liberação do sistema ERP do cliente
em nível 1.
Os DFDs Diversos.
Os DFDs Diversos (Apêndice, páginas 72 e 73), mostram em fluxos
de dados as diversas ações possíveis do sistema mas em nível 2 de
detalhamento.
2.2.4. Dicionário de Dados.
Detalham os atributos de todas as tuplas das tabelas, ou seja, como são
formados cada um dos campos das tabelas no banco de dados.
Desta forma no DD (Apêndice, página 74), foram detalhadas as tabelas
Usuário e Webcel.
2.2.5. Diagrama de Entidades e Relacionamento.
O DER (Apêndice, página 75), determina os relacionamentos entre as tabelas
caso existam, no caso deste projeto eles não existem.
26
O sistema funciona em um banco de dados e dentro dele tem uma tabela de
cadastro de usuários que é usado pelo site no gerenciamento do sistema permitindo
acesso ao usuário ou não na área restrita.
A senha do banco de dados permite acesso ao banco, senha do usuário
autentica o acesso a área restrita onde é feito o gerenciamento do cliente.
Optou-se por esta arquitetura pois assim facilitaria a instalação do sistema em
outros servidores, onde se poderá comercializar o sistema de várias formas, podendo
também simplesmente fornecer a licença de uso onde o cliente no caso, outro
representante, que usará o gerenciamento no servidor da WebCel, outra forma ainda
seria fornecer a licença de uso do sistema completo inclusive com site e banco de
dados, ou seja, pode se instalar o sistema num servidor do cliente juntamente com
site e banco de dados. Por fim também existe a possibilidade da adaptação do
gerenciamento no site do cliente acessando o banco de dados da WebCel.
27
3. RESULTADOS
O principal resultado obtido neste trabalho foi a redução da inadimplência dos
clientes, sendo que este era o objetivo principal do projeto, mas juntamente com ele
se conseguiu outros resultados importantes os quais são detalhados neste capítulo.
Inicialmente o aplicativo instalado no cliente tinha as informações de banco
de dados de controle, banco de dados principal, número de dias para bloqueio no
caso de falha na conexão com o servidor e endereço de conexão ao banco de dados,
ou seja, essas informações estavam no executável, isso fazia com que no caso de
testes, de representantes diferentes, ou mesmo na troca de qualquer uma dessas
informações, tinha de se gerar um novo executável, existia a necessidade de se
compilar um novo executável para o cliente causando muito trabalho. Com as
alterações, hoje as informações acima são armazenadas em um arquivo do tipo
“.DAT” desta forma o executável agora é o mesmo para todos os clientes e
representantes, pois ele não contém mais informações específicas. O número de dias
para bloqueio agora é configurado na instalação mas também pode ser alterado a
qualquer momento pelo usuário do sistema no ambiente de gerenciamento (Figura 10).
Figura 10 - Alterar dias para bloqueio automático
Inicialmente na instalação era configurado apenas o registro do cliente, agora
na instalação é executado um aplicativo temporário, (Figura 11), que permite entrar
com o registro, o nome do banco de dados de controle, o banco de dados principal, o
endereço de conexão do servidor e o número de dias para bloqueio no caso de falha
28
de conexão com o servidor. Este aplicativo depois de executado é excluído por isso
ele é tratado aqui como temporário.
Figura 11 - Tela executável temporário com os dados de configuração
Hoje ainda durante a instalação, também é criado um atalho para um
aplicativo que possibilita a liberação do sistema através de senha (Figura 12), esta
senha se altera todos os dias e é gerada pelo representante, ela deve ser usada apenas
em caso de necessidade de liberação do cliente e o mesmo esteja sem conexão com o
servidor. Esta ferramenta de desbloqueio não existia antes.
Figura 12 - Sistema de liberação com senha
29
O aplicativo principal instalado no cliente, o aplicativo de desbloqueio e o
aplicativo temporário foram desenvolvidos em C++ com algumas rotinas em C.
O site foi desenvolvido em PHP e HTML usando CSS para padronização de
telas, o site tem as páginas home, quem somos, nossa missão, produtos, área restrita e
fale conosco. Algumas delas são mostradas nas figuras 13, 14, 15 e 16.
Figura 13 - Site - Tela Home
Figura 14 - Site - Tela Quem Somos e Tela Missão
Figura 15 - Site - Tela Produtos e Tela Fale Conosco
30
Figura 16 - Site - Tela Cadastro de Registros
Todas as páginas cumprem com seu papel de forma simples e sucinta, mas
funcional pois o foco deste projeto está na área restrita já que é ali onde se tem o
gerenciamento do SisBloq, para se acessar esta área é solicitado um login e uma
senha sendo que esta senha é criptografada usando MD5 (Figura 17) e fica armazenada
já criptografada no BD. Todo envio de senhas é feito já criptografado para melhor
segurança. Na área restrita temos três funcionalidades (agenda, cadastro de usuários e
manutenção de registros) das quais apenas uma está liberada a usuários do sistema
(manutenção de registros), as outras duas estão disponíveis apenas a administradores
do sistema.
Figura 17 - Telas Entrar e Login
31
Figura 18 - Tela Área Restrita ADM
Figura 19 - Tela Área Restrita USU
A agenda é simples tem apenas nome, telefone e data de cadastro. Ela tem
duas páginas (Figura 20), uma para inclusão de novos registros e uma para manutenção
dos mesmos, onde qualquer um dos campos pode ser editado e salvo ou excluído.
Figura 20 - Telas Agenda
O cadastro de usuários tem nome, senha, banco e tipo de usuário. Ele tem
duas páginas, uma para inclusão de novos registros e outra para manutenção dos
mesmos, onde qualquer um dos campos pode ser editado e salvo ou excluído.
32
Figura 21 - Telas Cadastro Usuários
A manutenção de registros (Figura 18 e 19), tem registro, nome, status de uso,
status de bloqueio, data do status, data de cadastro e número de dias para bloqueio.
Trabalha com duas páginas principais, uma para inclusão de novos registros e outra
para manutenção dos mesmos, porém esta última é dividia em várias, ela se divide
automaticamente a medida de que é inserido novos registros, ela mantém apenas oito
registros por tela. Nela tem os seguintes botões de navegação, início, fim, avançar,
voltar e sair. (Figura 23). Nesta área os acessos são diferenciados de acordo com o tipo
de usuário, Os usuários podem alterar o nome, status de uso e o número de dias para
bloqueio, já os administradores podem alterar o registro, o nome, o status de uso e
número de dias para bloqueio e ainda excluir o registro. Na figura 22 temos exemplo
da diferença entre a mesma tela acessada por “USU” ou “ADM”. O fato de usuários
não poderem excluir os registros foi pensado considerando que podemos passar o
direito de uso do sistema a outras empresas de representação e assim pode-se cobrar
a mensalidade de uso considerando o número de registros controlados, desta forma
eles podem apenas incluir e alterar, mas a exclusão apenas pela WebCel poderia
fazer.
Figura 22 - Tela Manutenção Registro
Figura 23 - Teclas de navegação
33
4. DIFICULDADES ENCONTRADAS
Foi necessário mudar a ordem de alguns itens do cronograma, pois
determinadas implementações dependiam de outras para poderem ser testadas.
Como o sistema já existia após o termino de todas as implementações e
correções houve a necessidade de se instalar novamente a última versão em todos os
clientes.
Todos os fontes originais foram reescritos adequando o mesmo em funções e
rotinas que irão facilitar sua montagem futuramente orientado a objeto.
O sistema foi desenvolvido em C++ porém devido a restrições da linguagem
foi obrigado a se usar algumas funções do C.
Como a linguagem não disponibiliza rotinas prontas de cálculo de datas e
horas foram montadas uma estrutura e várias funções específicas para que se permita
estes tipos de cálculos.
Figura 24 - Struct data
Figura 25 - Função Identificação do ano bissexto
34
Figura 26 - Diferença entre datas
Figura 27 – Identificação da data atual
35
5. CONCLUSÕES
O resultado deste projeto foi satisfatório, pois o mesmo atingiu as
expectativas, todos os objetivos foram alcançados e ainda abriu caminho para novas
ideias a serem pesquisadas e colocadas em prática.
Com o projeto executado e em produção nos clientes se conseguiu reduzir a
inadimplência em 95% aproximadamente, mas isto aconteceu de forma gradual, já
que os clientes tinham uma cultura de pagamento atrasado ou acumulado das
mensalidades. Para conseguir mudar este cenário sem prejuízo e perda de clientes foi
necessário seguir alguns procedimentos. Primeiramente avisar aos clientes que o
bloqueio por atraso iria começar a ser efetuado, depois começar a bloquear quando
vencia a terceira mensalidade, com o passar do tempo começou-se a bloquear quando
vencia a segunda mensalidade e posteriormente começou-se a bloquear após vinte
dias de vencido a primeira mensalidade.
Com o sistema em funcionamento se percebeu algumas melhorias a serem
feitas e funcionalidades a serem implementadas.
Também foi verificado que este mercado pode ser interessante se feito algum
acordo com software house’s o que pode permitir que o sistema seja adequado para
ser usado por escritórios de representação de outros softwares que não apenas o
SysFar. Nas pesquisas que foram feitas não foi encontrado nenhum software neste
seguimento e também foi observado que a tendência do mercado é de que os
softwares trabalhem com a modalidade de venda de registros diretamente ao
representante que o comercializará diretamente com o consumidor final,
normalmente fazendo contratos de suporte mensal e sendo assim tendo a necessidade
de uso do SisBloq ou de outro sistema com a mesma finalidade.
36
6. REFERÊNCIAS BIBLIOGRÁFICAS
WAZLAWICK, Raul Sidnei, 2011. Análise e Projeto de Sistemas de Informação
Orientados a Objetos. 2ª Edição. Rio de Janeiro: Editora Campus.
GUEDES, Gilleanes T. A., 2011. UML2 Uma Abordagem Prática. 2ª Edição. São
Paulo: Editora Novatec.
BRASIL. Lei Carolina Dieckmann (lei Nº12.737, de 30 de novembro de
2012). Disponível em http://www.planalto.gov.br/ccivil_03/_ato2011-2014/2012/lei/
l12737.htm (acessado em 18 de janeiro de 2015).
NASCIMENTO, Rafael Jullian Oliveira. Ferramenta RE-Tools para elicitação de
requisitos (de 13 de janeiro de 2015). Disponível em http://www.devmedia.
com.br/ferramenta-re-tools-para-elicitacao-de-requisitos/31990 (acessado em 17 de
janeiro de 2015). 2015.
SPINOLA, Rodrigo. LEAL, Ayala. MACÊDO, Ana Bárbara Lins de. Introdução
sobre UML: Mecanismos gerais - Revista SQL Magazine 91. Disponível em
http://www.devmedia.com.br/introducao-sobre-uml-mecanismos-gerais-revista-sqlmagazine-91/22261
SPÍNOLA, Rodrigo Oliveira. Diagrama de Casos de Uso na prática. Disponível em
http://www.devmedia.com.br/curso/diagrama-de-casos-de-uso-na-pratica/312
(acessado em 24 de janeiro de 2015).
FIGUEIREDO, MSc. Karen. UML e Diagramas de Casos de Uso. In: APSI-1
(Análise e Projeto de Sistema de Informação 1). 2013.
SILVA, Maurício Samy. Tutoriais CSS, Web Standards, Acessibilidade, HTML,
XHTML e Padrões Web. Disponível em http://www.maujor.com/index.php
(acessado em 27 de janeiro). 2003.
W3SCHOOLS.COM. CSS Tutorial. Disponível em http://www.w3schools.com/css/
css3_intro.asp (acessado em 28 de janeiro 2015).
37
7. APÊNDICES E/OU ANEXOS
7.1. APÊNDICE – Projeto SISBLOQ.
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75

Documentos relacionados