Baixe o app para aproveitar ainda mais
Prévia do material em texto
3 Sistema de Ensino Presencial Conectado Análise e Desenvolvimento de Sistemas Elias Sousa da Silva Jucelino Pedrosa Lima MaRcos leandro borges Sofia alves teixeira WALTER D’ÁVILA DOS SANTOS PRODUÇÃO TEXTUAL EM GRUPO “Sistema de Controle de Frota” Brasília 2015 Elias Sousa da Silva Jucelino Pedrosa Lima MaRcos leandro borges Sofia alves teixeira WALTER D’ÁVILA DOS SANTOS estudo de caso: Controle de frota Produção textual em grupo do 4º semestre apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média semestral nas disciplinas de Análise Orientada a Objetos II; Banco de Dados II; Programação Orientada a Objetos; Programação Web I e Seminários IV. Orientadores: Adriana Aparecida Loper; Luis Claudio Perini; Márcio Roberto Chiaveli; Roberto Yukio Nishimura e Veronice de Freitas. Brasília 2015 SUMÁRIO 1 INTRODUÇÃO .......................................................................................................03 1.1 Apresentação.......................................................................................................03 2 OBJETIVO..............................................................................................................05 3 DESENVOLVIMENTO..................................................,.........................................06 3.1 Análise Orientada a Objetos.................................................................................06 3.1.1Diagramas..........................................................................................................06 3.2 Banco de Dados...................................................................................................09 3.3 Programação Orientada a Objetos.......................................................................10 3.4 Programação Web................................................................................................12 3.4.1 PHP...................................................................................................................14 3.4.2 Códigos PHP.....................................................................................................16 4 CONCLUSÃO.........................................................................................................20 5 REFERÊNCIAS.......................................................................................................21 INTRODUÇÃO Apresentação Este trabalho apresenta o desenvolvimento e a implementação de um sistema de informação via web para controle de uma frota de veículos. A aplicação web gerencia os dados das reservas e locações de uma frota de veículos, procurando automatizar seus processos na busca por qualidade e melhora na obtenção de informações gerencias. Muitas empresas estão utilizando frotas próprias para agilizar o trabalho de seus funcionários, essa é uma medida muito interessante que tem que ser bem gerenciada. Precisamos fazer o gerenciamento das pessoas que utilizam os veículos para não haver usos indevidos e veículos que necessitam manutenção, ver a disponibilidade, enfim temos vários controles a fazer. O sistema foi desenvolvido em linguagem PHP utilizando-se do banco de dados MySQL, permitindo todo acompanhamento da frota, as locações, as manutenções e as reservas por período dos veículos. Permite ainda que funcionários autorizados façam reservas, se comuniquem com o setor de frotas e envie alertas sobre as manutenções necessárias à frota. Segundo Audy, Andrade e Cidral (2005, p. 119), quando uma organização opta pela utilização de um sistema de informação, o sistema de processamento de transações tende a ser o primeiro a ser informatizado, devido aos benefícios bastante visíveis pela automação das operações rotineiras. A melhoria do desempenho organizacional, decorrente de um processamento mais rápido, uma capacidade de armazenamento maior, padronização de dados, procedimentos relativos às transações, e a obtenção de resultados mais precisos, é evidenciado pelo uso da informática e das telecomunicações. O software, segundo Sommerville (2003, p. 5), assume um duplo papel, ou seja, ele é um produto e, ao mesmo tempo, o veículo para entrega do produto. Este produz, gera, adquire, modifica, exibe ou transmite informação. Isto é, o software funciona como um veículo de entrega do produto mais importante da nossa época – a informação. Assim o software disponibiliza o potencial que a tecnologia nos traz tanto para ser utilizado em uma rede de computadores local, como para um canal amplo, como a internet. O software está se inserindo cada vez mais na rede de computadores, e esta se torna imprescindível às organizações. As atividades diárias ocorrem no espaço digital, novas tecnologias permitem que os softwares se tornem portáteis, e são disponibilizados para acesso via web. As aplicações web, segundo Pressman (2006, p. 12), cobrem uma ampla gama de aplicações. Podem ser um conjunto de arquivos ligados por hipertexto e poucos gráficos. Mas estas aplicações, em sua evolução, podem fornecer características de grandes softwares, como, funções de computação avançada e conteúdo para o usuário final, que podem ser integradas ao banco de dados da organização e se adequarem às aplicações do negócio. Sendo assim, as organizações obtêm receitas, desenvolvem serviços e ampliam seus negócios utilizando-se de um ou mais sistemas de informação, alguns voltados para a web. Estas organizações buscam a qualidade, eficácia e querem ter resultados positivos. Para isso precisam se automatizar e terem o controle de suas rotinas administrativas. Objetivo O presente trabalho apresenta um sistema voltado ao ambiente web para controle e gestão de uma frota de veículos, demonstrando desde a documentação em diagramas, a criação do Banco de Dados, passando pela implementação dos códigos em C# e o desenvolvimento da página web em PHP, relacionando o estudo com o caso apresentado. Conforme levantamento realizado foi possível identificar que a empresa necessitará dos seguintes controles: Controle de Veículos, Controle de Funcionários, Controle de Disponibilidade e Controle de Locação. O objetivo é cadastrar a frota de veículos, os funcionários devidamente autorizados, os formulários de reserva, fazer a comunicação entre o setor de frotas que recebe o formulário e os pedidos de locação. Além disto, o sistema provê módulos para consultas diversas, para uma melhor visualização das informações. As telas do sistema são de fácil operação visando uma melhor interação com o usuário. Para o desenvolvimento do mesmo serão seguidas algumas etapas, visando diminuir a quantidade de erros, facilitar a manutenção futura do sistema e gerar novas funcionalidades. Os objetivos específicos deste trabalho são: Estudar os conceitos relacionados a Desenvolvimento de Sistemas e Banco de Dados II; Identificar as atividades que são executadas na empresa em questão; Modelar o sistema de acordo com os requisitos levantados; Implementar e testar um sistema que atenda as necessidades previamente identificadas. De maneira geral são basicamente três as etapas mais importantes: análise e especificação de requisitos; projeto; implementação e testes. DESENVOLVIMENTO análise orientada a objetos A partir da leitura e entendimento do caso de uso “controle de frota”, devemos desenvolver os diagramas mais importantes do sistema, como referência primária dos possíveis relacionamentos, para uma boa base de toda análise que virá pela frente. Diagrama de Caso de Uso Diagrama de Classe Diagrama de Sequência Diagrama de Estado Diagrama de Implementação banco de dados Conforme estudo de caso apresentadocriamos uma DER (Diagrama Entidade Relacionamento) devidamente aplicado ao MRN (Modelo Relacional Normalizado) utilizando a ferramenta BrModelo. Modelo lógico. Modelo conceitual. programação orientada a objetos Os arquivos criados e usados para armazenar as informações são: Carros.crs Clientes.crc Empregados.cre PedidoLocacao.cro As informações são gravadas nos arquivos através dos objetos criados conforme mostra o código abaixo: // Cria um carro Carro veiculo = new Carro(); veiculo.Fabricante = txtFabricante.Text; veiculo.Modelo = txtModelo.Text; veiculo.Ano = int.Parse(txtAno.Text); veiculo.Categoria = cbxCategorias.Text; veiculo.TemCDPlayer = chkCDPlayer.Checked; veiculo.TemDVDPlayer = chkDVDPlayer.Checked; veiculo.EstaDisponivel = chkDisponivel.Checked; // Chama o método Add da coleção para adicionar o carro listaCarros.Add (txtTagNumber.Text, veiculo); // salva a lista stnCarros = new FileStream(strNomeArquivo, FileMode.Create, FileAccess.Write, FileShare.Write); Quando do registro de pedido de locação, ao informar o número da carteira de motorista (CNH) na caixa de texto, é feita uma busca nos arquivos e a informação é recuperada e exibida nos controles de formulário conforme mostra o código abaixo: private void txtNumeroRegistroCNH_Leave(object sender, EventArgs e) { Cliente locador = null; string strNumeroCNH = txtNumeroRegistroCNH.Text; if (strNumeroCNH.Length == 0) { MessageBox.Show("Informe o número de registro da carteira de habilitação do Cliente."); txtNumeroRegistroCNH.Focus(); return; } Dictionary<string, Cliente> listaClientes = new Dictionary<string, Usuarios>(); BinaryFormatter bfmClientes = new BinaryFormatter(); string strNomeArquivo = @"C:\JcmSoft_Carros\Usuarios.crc"; if (File.Exists(strNomeArquivo)) { FileStream stmClientes = new FileStream(strNomeArquivo, FileMode.Open, FileAccess.Read, FileShare.Read); try { // retorna uma lista de clientes listaClientes = (Dictionary<string, Cliente>) bfmClientes.Deserialize(stmClientes); if (listaClientes.ContainsKey(strNumeroCNH) == true) { foreach (KeyValuePair<string, Cliente> cli in listaClientes) { if (cli.Key == strNumeroCNH) { locador = cli.Value; txtNomeUsuario.Text = locador.Nome; txtEnderecoUsuario.Text = locador.Endereco; txtCidadeUsuario.Text = locador.Cidade; cboUsuarioEstados.Text = locador.Estado; txtCepUsuarioText = locador.CodigoPostal; } } } else { txtNomeUsuario.Text = ""; txtEnderecoUsuario.Text = ""; txtCidadeUsuario.Text = ""; cboClientesEstados.Text = ""; txtCepCliente.Text = ""; MessageBox.Show("Não existe Usuario com o registro de " + " CNH informado no banco de dados"); return; } } finally { stmUsuarios.Close(); } } } programação web Com o aumento do uso da Internet para fins comerciais, tornou-se imprescindível a criação de meios, em total segurança, que possibilitem a comunicação entre duas pessoas através da rede. Dentre os diversos protocolos de segurança existente, existe um muito importante, o SSL (Secure Socket Layer). Originalmente desenvolvido pela NETSCAP, ele permite que aplicativos cliente/servidor possam trocar informações sigilosas em total segurança, protegendo a integridade e a veracidade do conteúdo que trafega na Internet. Tal segurança só é possível através da autenticação das partes envolvidas na troca de informações. Um servidor protegido pelo protocolo SSL possui uma URL que começa em: “https: //” onde o “s” após “ http”, significa secured (seguro, protegido), garantindo uma conexão privada e segura. Outra maneira de saber se está usando um protocolo de segurança é observar se aparece um pequeno cadeado na barra de status na parte de baixo da janela do navegador. O símbolo do cadeado avisa que você está utilizando criptografia. A criptografia é uma forma de codificar uma informação para que pessoas não autorizadas tenham acesso as informações cifradas, garantido a integridade da informação. Existem algumas versões gratuitas e pagas que podemos utilizar para criptografar e descriptografar dados como: Super Ecryptor, Abi Coder, Ashampoo Magic Security, TrueCrypt, entre outros que são utilizados para proteger transações comerciais, documentos secretos, ou transmitir informações confidenciais pela internet ou por uma rede local (intranet). PHP PHP ou Hypertext Preprocessor é uma das linguagens de script mais populares para a criação de páginas Web dinâmicas no lado do servidor. É uma tecnologia de código aberto, que independe de plataforma, havendo implementações para todos os principais sistemas operacionais como UNIX, Linux, Mac e Windows e também aceita muitos bancos de dados como MySQL. Segundo Deitel (2009, p. 462-495), o poder da Web está não apenas em servir conteúdo aos usuários, mas também em responder às solicitações destes e gerar páginas com conteúdo dinâmico. RESERVA DE VEÍCULO Primeiro devemos criar o cadastro dos funcionários que utilizarão o sistema, devemos utilizar um servidor para hospedar a página web e gravar as informações no banco de dados. No caso estamos utilizando a ferramenta Xampp, um pacote que incluí os principais servidores de código aberto existentes, incluindo FTP, MySQL, Apache com PHP e Perl. O funcionário deve preencher o formulário de solicitação de reserva do veículo, que será encaminhado ao setor de frotas. O setor de frota recebe o formulário e verifica a disponibilidade do veículo para ser utilizado naquela data e hora especificado. Havendo disponibilidade o funcionário recebe uma resposta, com o número do veículo, para retirada na data e hora marcada. Se houver disponibilidade faça a reserva, alocando um veículo para esse formulário e retorna ao solicitante o número do veículo reservado. Em caso negativo, retorna a indisponibilidade ao solicitante encerrando essa solicitação. CÓDIGOS PHP CADASTRO DE FUNCIONÁRIOS <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><META http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> <div> <form name="0.1_cadastro" method="post" action="cadastro_func_gravar.php"><table width="625" border="0"> <tr> <td width="69">Nome:</td> <td width="546"><input name="nome" type="text" size="70" maxlength="60"> </td> </tr> <tr> <td>Sexo:</td> <td><input name="sexo" type="radio" value="Masculino" checked> Masculino <input name="sexo" type="radio" value="Feminino"> Feminino</td> </tr> <tr> <td>Endereço:</td> <td><input name="endereco" type="text" size="70" maxlength="70"> </td> </tr> <tr> <td>País:</td> <td><input name="pais"type="text" maxlength="20"> </td> </tr> <tr> <td>Estado:</td> <td><select name="estado"> <option>Selecione...</option> <option value="AC">AC</option> <option value="AL">AL</option> <option value="AP">AP</option> <option value="AM">AM</option> <option value="BA">BA</option> <option value="CE">CE</option> <option value="ES">ES</option> <option value="DF">DF</option> <option value="MA">MA</option> <option value="MT">MT</option> <option value="MS">MS</option> <option value="MG">MG</option> <option value="PA">PA</option> <option value="PB">PB</option> <option value="PR">PR</option> <option value="PE">PE</option> <option value="PI">PI</option> <option value="RJ">RJ</option> <option value="RN">RN</option> <option value="RS">RS</option> <option value="RO">RO</option> <option value="RR">RR</option> <option value="SC">SC</option> <option value="SP">SP</option> <option value="SE">SE</option> <option value="TO">TO</option> </select> </td> </tr> <tr> <td>Cidade:</td> <td><input name="cidade" type="text" maxlength="20"> </td> </tr> <tr> <td>Bairro:</td> <td> <input name="bairro" type="text" maxlength="20"> </td> </tr> <tr> <td>Setor:</td> <td> <select name="setor"> <option value="adm">Administração</option> <option value="ven">Vendas</option> <option value="alm">Almoxarifado</option> </select> </td> </tr> <tr> <td>Login:</td> <td> <input name="login" type="text" maxlength="12"> </td> </tr> <tr> <td>Senha:</td> <td> <input name="senha" type="password" maxlength="12"> </tr> <tr> <td colspan="2"> <input name="cadastrar" type="submit" value="Concluir Cadastro!"> <input name="limpar" type="reset" value="Limpar Campos!"> </td> </tr> </table> </form> </body> </html> GRAVANDO O CADASTRO NO BANCO DE DADOS <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Cadastro realizado com sucesso!</title> </head> <body> <?php // ------------- RECEBENDO OS DADOS PREENCHIDOS DO FORMULÁRIO ----------- $nome= $_POST ["nome"]; $sexo= $_POST ["sexo"]; $endereco= $_POST ["endereco"]; $pais= $_POST ["pais"]; $estado= $_POST ["estado"]; $cidade= $_POST ["cidade"]; $bairro = $_POST ["bairro"]; $setor= $_POST ["setor"]; $login= $_POST ["login"]; $senha= $_POST ["senha"]; //--------- Gravando no banco de dados ! conectando com o localhost - mysql ----------- $conexao = mysql_connect("localhost","root",""); if (!$conexao) die ("Erro de conexão com localhost, o seguinte erro ocorreu -> ".mysql_error()); // ------------- conectando com a tabela do banco de dados ---------------- $banco = mysql_select_db("bdFuncionario",$conexao); if (!$banco) die ("Erro de conexão com banco de dados, o seguinte erro ocorreu -> ".mysql_error()); // --Query que realiza a inserção dos dados no banco de dados na tabela acima ------ $query = "INSERT INTO `usuarios_v1` ( nome , sexo , endereco , pais , estado , cidade , bairro , setor , login , senha ) VALUES ('$nome','$sexo', '$endereco', '$pais', '$estado' , '$cidade', '$bairro' , '$setor' , '$login', '$senha')"; $resultado = mysql_query($query,$conexao) or die(mysql_error()); echo "<BR>"; echo "<center><h1>Seu cadastro foi realizado com sucesso!</h1></center>"; echo "<BR>"; echo "<a class=\"button\" href=\"cadastro_func_tabela.html\">Novo cadastro</a>\n"; ?> </body> </html> CONCLUSÃO As vezes quem está começando pode se sentir confuso na hora de escolher qual linguagem investir para aprender e entrar no mercado de trabalho. Mas se você não sabe nada de programação e quer aprender para entrar nesse mercado de trabalho, sugiro que antes de se preocupar com a linguagem, aprenda lógica de programação. Viu-se no trabalho conceitos básicos para iniciar sua vida na programação de sistemas e programação web, descrevendo funcionalidades e tecnologias aplicadas para projetar e desenvolver softwares. O portfólio traz um arcabouço que dará sustentação para o meu conhecimento. REFERÊNCIA BEZERRA, Eduardo. Princípios de análise e projeto de sistemas com UML. 3. ed. São Paulo: Elsevier, 2015. DELIBERADOR, Paulo de Tarso. Algoritmos e estrutura de dados. São Paulo: Pearson, 2009. FABRIS, Polyana Pacheco Gomes; PERINI, Luis Cláudio. Processos de software. Londrina: Educacional, 2014. LOPER, Adriane Aparecida. Organização de computadores. Londrina: Unopar, 2014.. NISHIMURA, Roberto Yukio. Banco de dados l. São Paulo: Pearson, 2009. NISHIMURA, Roberto Yukio. Banco de dados II. São Paulo: Pearson Prentice Hall, 2009. SILVA, N. P. Projeto e Desenvolvimento de Sistemas. São Paulo: Érica, 1994. 143 p. SILVA, Flavio de Almeida. Desenvolvimento orientado a objetos I. São Paulo: Pearson Prentice Hall, 2009. SOLER, Luciano; MORAES, Everson Matias de. Desenvolvimento de aplicação web. São Paulo: Pearson Education do Brasil, 2010. TANAKA, Simone Sawasaki. Análise de Sistemas I. São Paulo: Pearson, 2009. TANAKA, Simone Sawasaki. Análise de sistemas III. São Paulo: Pearson Prentice Hall, 2009. Algoritmos e estrutura de dados I. Disponível em:< http://www.catolicavirtual.br/conteudos/graduacao/cursos/tec_informacao/html/1o_semestre/algoritmos_programacao/leituras/aula01_algoritmos.pdf > Acesso em: mar. 2015. Banco de Dados. Disponível em: <http://www.infoescola.com/informatica/banco-de-dados/> Acesso em: 14 maio 2015. Como montar uma rede de computadores. Disponível em: < http://www.infodicas.com.br/dicas_tuto/como-montar-uma-rede-de-computadores > Acesso em: 25 abr. 2015. Como tudo funciona. Disponível em: <http://tecnologia.hsw.uol.com.br /criptografia4.htm> Acesso em: 30 out. 2015. Diferenças entre Hub, Switch e Roteador. Disponível em: <http://www.infowester.com/hubswitchrouter.php> Acesso em: 25 abr. 2015. Estrutura de Dados e Algoritimos. Disponível em: <http://www.cos.ufrj.br/~rfarias/cos121/aula_11.html > Acesso em: 13 maio 2015. Gerenciamento de usuários e controle de acessos do MySql. Disponível em: <http://www.devmedia.com.br/gerenciamento-de-usuarios-e-controle-de-acessos-do-mysql/1898 > Acesso em: 14 maio 2015. O que é SSL. Disponível em:< http://www.tecmundo.com.br/seguranca/1896-o-que-e-ssl-.htm > Acesso em: 30 out. 2015.
Compartilhar