Anda di halaman 1dari 55

CENTRO UNIVERSITRIO PARA O DESENVOLVIMENTO DE ALTO VALE DO ITAJA EDERSON JASPER

SOFTWARE WEB PARA OFICINA MECNICA

RIO DO SUL 2009

CENTRO UNIVERSITRIO PARA O DESENVOLVIMENTO DE ALTO VALE DO ITAJA EDERSON JASPER

SOFTWARE WEB PARA OFICINA MECNICA

Trabalho

de

Concluso

de

Curso

ser

apresentado ao Curso de Bacharel em Sistemas de Informao da rea das Cincias Naturais, da Computao e das Engenharias, do Centro Universitrio para o Desenvolvimento do Alto vale do Itaja, como requisito parcial para a obteno do grau de Bacharel em Sistemas de Informao. Prof. Orientador: Marciel de Liz Santos.

RIO DO SUL 2009

EDERSON JASPER

SOFTWARE WEB PARA OFICINA MECNICA

Trabalho de concluso de curso de Bacharel em Sistemas de Informao da rea das Cincias Naturais, da Computao e das Engenharias, do Centro Universitrio para o Desenvolvimento do Alto vale do Itaja, a ser apreciado pela banca Examinadora, formada por: _________________________________ Professor Orientador: Marciel de Liz Santos Banca Examinadora: ______________________________________ Prof.: Juliano Tonizetti Brignoli ______________________________________ Prof.: Marcondes Macaneiro

Rio do Sul, Dezembro de 2009.

A minha me pelo apoio e compreenso prestados ao longo desses quatro anos. Ao meu e pai pelo estimulo incentivo

nessa jornada.

AGRADECIMENTOS

A todos os familiares que estiveram presentes me dando foras e incentivando para que eu conclusse esta jornada, em especial aos meus pais que me ajudaram em todos os momentos. Aos meus colegas pelo companheirismo e amizade adquirida ao longo destes anos, em especial ao grupo MEGA - Marcionei, Gustavo e Andr - aos quais realizamos muito de nossos trabalhos. A Universidade para o Desenvolvimento do Alto Vale do Itaja por estar oportunizando realizar este curso. Aos professores que me guiaram ao longo do curso com sabedoria e conhecimento. Obrigado pelas criticas, sugestes e pela amizade adquirida nestes quatro anos.

RESUMO Com o decorrer dos anos o nmero de informaes utilizadas pelas empresas vem se multiplicando, com isso h necessidade de automatizar certos processos de forma rpida e precisa. Muitas das empresas mantm seus registros de clientes e servios em papis, informalmente, j outras nem arquivam essas informaes por ser muito trabalhoso para armazen-las e recuper-las futuramente. Com isso, se tem grandes perdas com relao gerncia da organizao, controles de mercadorias tanto de entrada quanto de sada, histrico de clientes e principalmente de servios prestados. O presente trabalho de concluso de curso visa descrever e desenvolver um prottipo Web para o gerenciamento de oficinas mecnicas de todos os ramos. Foi tomada como base uma oficina de motos de Ituporanga, mais especificamente, a Oficina de Motos Farias onde no se tem software que auxilie o proprietrio em suas tomadas de decises e no mantm qualquer tipo de informao referente a clientes e servios prestados. No decorrer do trabalho descrevem-se os motivos que levaram a escolha deste tema e as principais tecnologias a serem utilizadas no desenvolvimento do prottipo: Orientao a Objetos, Java, HTML, Sistema de Banco de Dados, Hibernate, XML, UML entre outras. Descreve-se o funcionamento da integrao entre oficinas com relao a itens e clientes para agilizar o processo de implantao do software e principalmente ter um histrico dos clientes e dos veculos disponveis a todas as oficinas que fazem parte desta integrao. Palavras-chave: Oficina Mecnica; Software Web; Integrao de Oficinas;

LISTA DE ILSTRAES FIGURA 1 - O objeto veiculo (baseado no tutorial da Sun). ................................................... 17 FIGURA 2 - Diagrama de classes de acordo com a UML. ...................................................... 19 FIGURA 3 Representao simplificada de um sistema de banco de dados.......................... 24 FIGURA 4 Modelagem do relacionamento entre itens e oficinas.......................................... 29 FIGURA 5 - Diagrama de Classes do Prottipo Relacionamento de Cadastro de Pessoas. .... 32 FIGURA 6 - Diagrama de Classes do Prottipo Integrao dos Itens. .................................... 33 FIGURA 7 Diagrama de Classes do Prottipo Relacionamento de Ordens de Servio........ 34 FIGURA 8 MER da Base de Dados do Prottipo. ............................................................... .35 FIGURA 9 Logo do Prottipo. .............................................................................................. 42 FIGURA 10 Tela de Login.................................................................................................... 44 FIGURA 11 - Tela Inicial Ordens de Servio Abertas.......................................................... 45 FIGURA 12 Ordens de Servio Abertas da Oficina Motos Farias........................................ 46 FIGURA 13 Ordens de Servio Fechadas............................................................................. 46 FIGURA 14 Relatrio de Ordem de Servio para Imprimir. ............................................... 47 FIGURA 15 - Relatrio com a Lista de Ordens de Servio Realizadas................................... 48 FIGURA 16 Tela de Gerenciamento de Empresas............................................................... 49 FIGURA 17 Tela de Cadastro de Usurios. ......................................................................... 50 FIGURA 18 Tela de Produtos Particulares. ......................................................................... 50 FIGURA 19 Relatrio de Produtos Particulares................................................................... 51 FIGURA 20 Tela de Notas de Entrada.................................................................................. 51

LISTA DE ABREVIATURAS E SIGLAS FTP HTM HTML HTTP JDBC ODBC OO SGBD SGBDR SQL TCP/IP UML XML File Transfer Protocol. Hypertext Markup. Hypertext Markup Language. Hypertext Transference Protocol. Java Database Connectivity. Open Database Connectivity. Orientao a Objetos. Sistema Gerenciador de Banco de Dados. Sistema Gerenciador de Base de Dados Relacional Structured Query Language. Transport Control Protocol/Internet Protocol. Unified Modeling Language. Extensible Markup Language.

SUMRIO

1 INTRODUO .................................................................................................................. 11 1.1 JUSTIFICATIVA .................................................................................................................... 12 1.2 OBJETIVOS .......................................................................................................................... 14 2 FUNDAMENTAO TERICA..................................................................................... 16 2.1
PARADIGMA DA ORIENTAO A OBJETOS ........................................................................... 16

2.1.1 Objetos........................................................................................................................... 16 2.1.2 Pacotes ........................................................................................................................... 17 2.1.3 Classes............................................................................................................................ 17 2.1.4 Herana ......................................................................................................................... 18 2.1.5 Polimorfismo ................................................................................................................. 19 2.2
A LINGUAGEM JAVA ............................................................................................................ 20

2.2.1 Orientao a Objetos.................................................................................................... 21 2.2.2 Portabilidade................................................................................................................. 21 2.2.3 Suporte a Comunicao ............................................................................................... 22 2.2.4 Acesso Remoto a Banco de Dados ............................................................................... 22 2.3 HTML (HYPERTEXT MARKUP LANGUAGE)........................................................................ 22 2.4 2.5 2.6 2.7 2.8 2.9
XML (EXTENSIBLE MARKUP LANGUAGE) ............................................................................. 23 SISTEMA DE BANCO DE DADOS ............................................................................................ 23 BANCO DE DADOS COM POSTGRESQL ................................................................................... 25 UML (UNIFIED MODELING LANGUAGE) ................................................................................ 25 FRAMEWORK HIBERNATE .................................................................................................... 26 AMBIENTE DE DESENVOLVIMENTO NETBEANS ..................................................................... 27

3 ESTADO DA ARTE........................................................................................................... 28 3.1


O SOFTWARE MECNICO ..................................................................................................... 28

4 ANLISE ............................................................................................................................ 29 4.1 INTEGRAO DE ITENS ........................................................................................................ 29 4.2 INTEGRAO DE CLIENTES .................................................................................................. 30 4.3 HISTRICO DO VECULO ...................................................................................................... 30

4.4 OUTRAS FUNES ............................................................................................................... 30 5 IMPLEMENTAO ......................................................................................................... 31 5.1 DIAGRAMA DE CLASSES ...................................................................................................... 31 5.2 MER .................................................................................................................................. 34 5.3 CAMADAS DE IMPLEMENTAO ......................................................................................... 36 5.4 PROTTIPO .......................................................................................................................... 42 5.4.1 Telas de Acesso Global ................................................................................................. 43 5.4.2 Tela de Login................................................................................................................. 43 5.4.3 Tela Inicial..................................................................................................................... 44 5.4.4 Tela de Gerenciamento de Empresas (Oficinas)........................................................ 48 5.4.5 Tela de Cadastro de Usurio ....................................................................................... 49 5.4.6 Tela de Produtos Particulares ..................................................................................... 50 5.4.7 Tela de Notas de Entrada............................................................................................. 51 5.4.8 Outras Funcionalidades ............................................................................................... 52 6 CONSIDERAES FINAIS............................................................................................. 53 6.1 RECOMENDAES FUTURAS ............................................................................................... 54 REFERNCIAS ..................................................................................................................... 55

11

1 INTRODUO H vrias oficinas mecnicas de pequeno porte na regio que no tem implantado um software para gerenciamento, controle de estoque, de clientes, registro de servios prestados entre outras funes. Em conversa com o proprietrio de uma oficina de motos (Oficina de Motos Farias) de Ituporanga, sente-se a necessidade de implantar um software para auxiliar, e at mesmo poder prestar um servio de melhor qualidade e gil. O mercado hoje est voltado para um bom atendimento onde este deve ser de forma rpida, tornando menor o tempo esperado pelo cliente. Sistemas de informao esto dando apoio e suporte para armazenar e manipular informaes que agilizam o processo de arquivamento e registros tanto de clientes quanto da prpria empresa. No caso da oficina citada acima, para identificar se uma determinada pea existe em seu estoque, preciso percorrer as prateleiras, quando esta no se encontra em estoque, gera grande perda de tempo at que se chegue a concluso que est em falta. Enquanto isso, o cliente fica ansiosamente aguardando o processo. A empresa no mantm registro de seus clientes, nem mesmo em formulrios. Quando h a necessidade de deixar a moto para fazer o reparo, anota-se toda vez o nmero do telefone para entrar em contato com o cliente para o comunica-lo que a moto pode ser retirada da oficina. Para auxiliar em tal situao, se teve a idia de desenvolver um software Web para oficinas mecnicas em geral, no somente de motos, mas carros e at mesmo caminhes e mquinas, os quais esto relacionados mesma rea. O propsito deste ser facilitar o controle de estoque atravs de relatrios, possibilitar uma pesquisa rpida para saber se tem determinada pea em estoque, desenvolver relatrios para tomada de deciso, manter um histrico dos veculos disponvel por 24 horas por dia, possibilitar ao proprietrio a identificao de um bom ou mau cliente em relao a servios prestados anteriormente e at mesmo por outras oficinas da mesma rede, assim como outras funes necessrias para facilitar o gerenciamento de oficinas. Hoje precisamos das informaes mais acessveis para manipul-las com mais agilidade. Atravs de um software voltado para Web, h a possibilidade de acessar remotamente em qualquer computador com acesso a internet e at mesmo atravs de dispositivos mveis, como celulares e palmtops.

12

Exemplifica-se o caso de precisar rebocar um automvel. O mecnico j poder analisar o que ser necessrio para o reparo, e fazer a consulta em seu estoque (atravs de seu celular caso tenha acesso a internet) e passar para o cliente um oramento aproximado para realizar o reparo e o prazo de finalizao do servio.

1.1 JUSTIFICATIVA Os softwares existentes no mercado so demorados para implantar, onde os proprietrios acabam desistindo de implant-los at mesmo por falta de tempo. Qualquer oficina por menor que seja, possui mais de dois mil itens a serem cadastrados. Atravs desta idia, o cliente que optasse por este software, necessitaria somente de fazer a contagem e aplicar os seus aspectos particulares (preo de venda e de compra, quantidade em estoque), caso tenha algum item que no est cadastrado, ele poder efetuar o cadastro e este ficar disponvel para outras oficinas que estiverem integradas a esta rede. Como o proprietrio da oficina de motos no tem software para controle gerencial, foram expostas as vantagens que teria com o auxilio de um software com a finalidade de controlar o estoque, registrar os clientes, as motos e as ordens de servios, bem como o fluxo de caixa e as despesas mensais. Alguns outros benefcios como consultas de relatrios tambm devero ser desenvolvidas. Conforme entrevista com o proprietrio, um dos motivos por no ter implantado nenhum sistema a grande quantidade de itens que tem para cadastrar, chegando a aproximadamente quatro mil. Com tantos itens, ocuparia uma enorme parte de seu tempo para estar cadastrando, fazendo a contagem de estoque e organizando. Em sua oficina trabalham trs mecnicos na prestao de servios e uma secretria que o ajuda no atendimento e realiza cobranas interna. O proprietrio responsvel por toda a gerncia e auxilia como mecnico. Com isso no lhe sobra tempo para estar realizando o cadastro dos itens em estoque. Segundo ele, para realizar este cadastro necessitaria contratar algum temporariamente para estar realizando este servio. Para tal servio, a pessoa a ser contratada precisaria ser de confiana, alm de ter alguma afinidade na rea de mecnica e de informtica, pois precisaria seguir um bom critrio padro para estar realizando este cadastro, caso contrrio haveria problemas futuros ao resgat-los no sistema, atravs de consultas para a venda, ou at mesmo para consultas de estoque.

13

Mas, mesmo contratando algum para estar realizando este servio, para finalizlo, o proprietrio em questo, precisaria percorrer registro por registro para estar definindo algumas propriedades, como preo de compra e porcentagem de lucro. Como um processo demorado, resultaria em um custo elevado para implant-lo. Sem um controle detalhado de cada item, h perda de tempo significativa para atender o cliente. Tempo este que comea a contar desde sua solicitao de substituio de determinada pea, at a sua realizao. O maior problema quando se procura a pea e no a encontra no estoque. O cliente fica aguardando ansiosamente para saber se esta tem em estoque ou no. Seria muito mais rpido e prtico fazer uma consulta no software especfico para isso. Quando no h pea em estoque, o cliente precisa aguardar alguns dias para que a oficina solicite a compra. Isso resulta em um mau atendimento e descontentamento por parte do cliente. Outra caracterstica importante seria manter o registro de todos os consertos das motos, onde estes teriam um vnculo com o funcionrio que o realizou. Em alguns casos clientes retornam reclamando que a pea substituda ou o servio prestado no resolveu o problema. Pois em determinados casos, o defeito em outra pea que causa um problema similar, e como justificar ao cliente que o servio realmente foi prestado com qualidade no tendo nenhum registro? A vinculao do servio com o mecnico, facilitaria o melhor esclarecimento de dvidas. Em casos que o cliente demora retornar, fica mais difcil identificar o responsvel pelo reparo. Isso ajudaria at mesmo para manter sempre o mesmo funcionrio a atender a mesma moto ou veculo, pois seria como uma pessoa ir sempre ao mesmo mdico, ele j sabe dos eventuais problemas que vem ocorrendo. No se tem um controle certo dos gastos com a oficina, desde pagamento de contas, e funcionrios. Todo dia feito o fechamento de caixa, mas no final do ms no se sabe exatamente o retorno que se tem com o investimento. Um dos problemas em atuar no mercado de vendas e prestao de servios, so os clientes inadimplentes. Isto limita suas vendas e prestao de servio somente vista para no ocorrer perdas significativas. Mesmo assim ainda no se tem como escapar da inadimplncia, pois na hora de pagar, muito dos pagamentos so atravs de cheques. Isso leva a muitos problemas em relao a cheques sem fundos, em muitos dos casos h a necessidade de ligar para o banco para conseguir entrar em contato com o cliente, solicitando o telefone e at mesmo o endereo.

14

Como no h nenhum tipo de registro de clientes, com o tempo este nome fica em esquecimento e o proprietrio est propcio a aceitar cheque do mesmo como forma de pagamento. Em sua oficina so realizados aproximadamente 20 atendimentos dirios mantendo um movimento de 30 a 40 peas utilizadas para reparo das motos. O controle dessas peas no realizado, por ser difcil de controlar manualmente e principalmente ter que disponibilizar tempo para realizar a anlise necessria dessas informaes. Para o proprietiro importante que se implante um software para tal finalidade, pois sua oficina esta progredindo e com isso h um aumento significativo de informaes que so teis para o gerenciamento, at mesmo para se destacar da concorrncia. importante que o software seja rpido de se implantar, pois cada vez o tempo est mais corrido, h mais exigncia por parte dos clientes ao adquirirem um software. Com base nessa anlise, surgiu o tema a ser abordado: Software Web para Oficina Mecnica. Como j se tem software disponvel no mercado para essa rea, a idia fazer algo com um grande diferencial para que seja bem aceito e se adapte bem a demanda de mercado.

1.2 OBJETIVOS Desenvolver o prottipo de um software para o gerenciamento de oficinas mecnicas totalmente voltado para Web, onde vrias oficinas poderiam trabalhar com o mesmo cadastro de itens, clientes, dentre outros, mas com propriedades em particulares, como: estoque, preo de compra, preo de venda. Identificar e apresentar as principais tecnologias a serem utilizadas para o desenvolvimento do prottipo, as quais sero: O HTML para manipular os textos, objetos e figuras; O CSS para auxiliar no desenvolvimento visual das pginas; O Java para implementar a regra de negcio; XML para auxiliar na regra de negcio; Tomcat como servidor Web para rodar a aplicao; PostgreSQL como banco de dados; Hibernate para auxiliar como camada intermediaria do prottipo mantendo a conexo e persistncia dos dados.

15

Pontuar todas as informaes necessrias para atender a necessidade das empresas no ramo de oficinas, as quais abordaro: Registro de clientes; Registro de veculos; Registro das ordens de servio; Registro dos itens em estoque; Contas a receber; Contas a pagar; Despesas extras (energia, telefone);

16

2 FUNDAMENTAO TERICA

2.1 PARADIGMA DA ORIENTAO A OBJETOS importante entender com clareza o funcionamento de orientao a objetos (OO), pois a linguagem Java baseia-se sobre essa fundamentao para desenvolver software. A programao OO aborda vrios aspectos para sua manipulao, o qual trabalha com objetos, classes, pacotes, herana e polimorfismo.

2.1.1 Objetos Na programao orientada a objetos, objeto uma abstrao dos objetos reais existentes. (FURGERI, 2008, p. 133). Andamos cercados de objetos, pois se entrarmos em um escritrio, podemos identificar o computador como objeto, escrivaninha, cadeira, armrio, caneta. Na rua podemos identificar o carro, ao qual tem uma caracterstica fsica, forma, cor, modelo dentre outras propriedades. Ao associar suas propriedades podemos conceituar outros fatores ou aes que podem ser realizados com ele. No caso do carro, ele pode estar parado ou em movimento. No qual podemos controlar atravs da acelerao o movimento. Os objetos apresentam duas caractersticas principais: estado, que seria o conjunto de propriedades, assim como cor, modelo, tamanho. E comportamento, que so as aes possveis sobre o objeto, no caso do carro seria frear, acelerar entre outras. O objeto composto por etapas de vida, cada etapa de vida pode ser representado atravs de um estado (Status, reservado, vendido). Para FURGERI (2008, p.134), para armazenar o estado, um objeto de software utiliza uma ou diversas variveis. J o comportamento do objeto definido pelo conjunto de mtodos que ele possui. No caso do carro, o estado composto pelas seguintes variveis: cor, modelo, ano, velocidade, dentre outras. O comportamento pelos mtodos: acelerar, frear e obter velocidade.

17

FIGURA 1 - O objeto veiculo (baseado no tutorial da Sun). Fonte: Furgeri (2008).

Outro conceito da OO o encapsulamento, assim como podemos ver na figura 1. Segundo FURGERI (2008, p 134), encapsular se refere a algo interno, oculto ou escondido. Para se ter acesso a essas variveis, s atravs de mtodos, pois eles esto protegendo-as, assim para aumentar a velocidade somente o mtodo acelerar poder aumentar.

2.1.2 Pacotes Pacotes so conhecidos como pastas, diretrios ou packges. onde se localiza as classes criadas. Geralmente separado as classes que tenham a mesma finidade por pacotes, isto possibilita uma fcil organizao. Estes pacotes seguem um padro para serem criados, pois devem ser descritos com letras minsculas, assim se diferenciam do nome das classes.

2.1.3 Classes As classes possibilitam que os objetos sejam criados, pois eles so criados nela, onde se instncia em memria para manter seus valores de maneira individual. A criao de uma classe deve ser antes de usar um objeto, pois o objeto criado a partir da classe. Uma

18

classe um molde, um modelo, um prottipo a partir do qual os objetos podem ser criados. (FURGERI, 2008, p,136). Atravs de uma classe, podem-se definir muitos objetos. Seria mesma coisa que construir um projeto para produzir carros, onde define a lista de peas, aes a serem executadas, partes que o compem etc. Atravs deste projeto, constroem-se vrios carros que herdam as mesmas caractersticas. Desta forma funciona a classe, aps ter definido as variveis e mtodos, podem ser criados vrios objetos com as mesmas caractersticas, e podendo manter valores individuais em suas variveis. Ao criar uma classe, segue-se um padro, ao qual deve-se usar a palavra reservada class mais o par de chaves {} para que funcione, ficando da seguinte forma: Qualificador class Nome-da-classe{ //variveis //mtodos } Onde o qualificador indica como a classe poder ser acessada, este por sua vez se divide em dois tipos: public e private. Public indica que a classe pode ser acessada por outras classes do mesmo ou de Private indica que somente pode ser acessada por classes do mesmo pacote; O nome da classe ser o que a referenciar para o uso futuro. Para definir o nome segue o padro em que se inicia com letra maiscula. Assim obter a diferenciao em relao as variveis, mtodos e objetos. As variveis e os mtodos correspondem, respectivamente, ao estado e ao comportamento de todos os objetos que sero criados a partir da classe. (FURGERI, 2008, p.137). 2.1.4 Herana Herana se refere a algo herdado. Em Java bastante usado, isso ocorre quando uma classe passa a herda caractersticas pertencentes em outra classe. Essa tcnica muito usada, pois possibilita a reutilizao e compartilhamento de recursos definidos em outra classe. Outro termo envolvido com herana a especializao. Uma vez que uma classe herda caractersticas de outra, ela pode implementar partes especificas no contempladas na outros pacotes (diretrio);

19

classe original (superclasse), tornando-se especializada em algum processo. (FURGERI, 2008, p.152). Podemos tomar como exemplo o diagrama abaixo:

FIGURA 2 - Diagrama de classes de acordo com a UML. Fonte: Furgeri (2008).

Como apresenta o diagrama na figura 2, a classe PessoaFisica esta herdando a classe Pessoa, ao estar herdando, a classe PessoaFisica passa ter a varivel nome contida na classe Pessoa e a varivel rg contida na classe PessoaFisica e os mtodos setNome, getNome, setRg e getRg. Assim como a classe Funcionrio tambm esta herdando e adicionando novas funcionalidades a classe PessoaFisica e Pessoa. 2.1.5 Polimorfismo Conforme Furgeri (2008), enquanto a herana um mecanismo de especializao, o polimorfismo oferece um mecanismo de generalizao. Sendo assim, cada classe de hierarquia pode assumir a mesma funcionalidade da superclasse. Com o polimorfismo a classe de hierarquia, pode realizar diferentes funcionalidades, onde depende da classe superior, pois se ela for alterada, a classe inferior passara a desempenhar as funcionalidades herdadas.

O polimorfismo representa uma tcnica avanada de programao e seu uso pode gerar economia de recursos computacionais. A idia geral do polimorfismo que uma determinada classe mais genrica (a superclasse) possa assumir diferentes

20

comportamentos, gerando objetos distintos, dependendo de certas condies. Na prtica quer dizer que um mesmo objeto pode ser gerado a partir de classes deferentes e classes diferentes possuem mtodos distintos, o objeto criado pode ter comportamentos variados, dependendo da classe a partir da qual ele foi criado. (FURGERI, 2008, p. 156).

Desta forma, como se pode analisar na figura 2, a classe Pessoa pode ser criada em tempo de execuo atravs da classe PessoaFisica, PessoaJuridica ou Funcionario. 2.2 A LINGUAGEM JAVA A linguagem tem tido muito sucesso no mercado e diversas ferramentas tm surgido para manipular ou gerar cdigo Java. (FURGERI, 2008, p. 18). A linguagem Java se expandiu rapidamente e conquisto uma grande gama do mercado, isso fez com que os principais fabricantes de software desenvolvessem alguma ferramenta capaz de manipular o Java.

O Java uma linguagem de programao de propsito geral, concorrente, com base em classes e orientada a objetos. Foi projetada para ser simples o bastante para que a maioria dos programadores se torne fluente com ela. A linguagem Java tem relao com C e C++, mas organizada de maneira diferente, com vrios aspectos de C e C++ omitidos e algumas idias de outras linguagens includas.(GOSLING et al., 2000 apud JANDL JUNIOR, 2002, p. 05).

A linguagem desenvolvida pela Sun, essa linguagem tem feito muito sucesso. Um dos fatos que pode ser desenvolvido o software sobre essa linguagem e podem ser executados virtualmente em qualquer plataforma, sendo aceito em qualquer computador independente se seja Windows ou Linux dentre outros sistemas operacionais que esto disponveis no mercado. Hoje muito utilizado tambm em dispositivos mveis, como celular e microchips. A utilizao do Java em multiplataforma motiva os desenvolvedores, assim no precisam se preocupar em rodar em computadores de pequeno ou grande porte. excelente desenvolver um software que seja executado em qualquer computador sem precisar se preocupar com a configurao deste computador.

21

O Java pode ser implemento junto com outras linguagens, como o exemplo de HTML. O Java atua na internet como um acessrio chamado de applet1. No momento em que o cliente clica em um link, o navegador carrega essa applet que passa a rodar no cliente e no no servidor. A linguagem possui inmeras caractersticas, como: orientao a objetos, portabilidade, multithreading, suporte a comunicao em rede e acesso remoto a banco de dados.

2.2.1 Orientao a Objetos

uma prtica de programao j slida no mercado e a maioria das linguagens de hoje permite trabalhar dessa forma. [...] imagine a orientao a objetos como uma prtica de programao que permite que diversos trechos de cdigo sejam reutilizados. Esses objetos podem simular um objeto do mundo real, como um automvel, uma casa, uma pessoa etc. (FURGERI, 2008, p. 19).

composta por classes, essas permitem criar vrios objetos com a mesma caracterstica. Seria a mesma coisa que ter uma receita de bolo, a partir dessa podem serem feitos vrios bolos com as mesmas caractersticas.

2.2.2 Portabilidade Java uma linguagem multiplataforma, ou seja, uma mesma aplicao pode ser executada a diferentes tipos de plataforma sem a necessidade de adaptao de cdigo. (FURGERI, 2008, p. 19). Isso uma caracterstica que distingui e da grande referencial para a linguagem Java em relao a outras linguagens. Principalmente quando se fala em redes heterogneas, como o caso da internet. Com essa linguagem no precisa se preocupar, basta desenvolver e por para rodar, independente de sistema operacional.

Applet uma aplicao Web que copiada e executada na mquina do cliente.

22

2.2.3 Suporte a Comunicao O Java oferece classes com funes especificas, isso agiliza no desenvolvimento de softwares com comunicao em rede. Tais classes so desenvolvidas para suportar tecnologias avenadas de comunicao, como protocolos TCP/IP (Transport Control Protocol/Internet Protocol), HTTP, FTP (File Transfer Protocol), entre outros. (FURGERI, 2008, p. 20).

2.2.4 Acesso Remoto a Banco de Dados O acesso ao banco de dados feito atravs de classes prontas disponibilizadas pela Sun, esse acesso possibilita que possa ser inserido, excludo ou recuperado dados atravs da internet. Esse acesso possvel por meio da criao de uma ponte de comunicao entre Drivers JDBC ODBC. (FURGERI, 2008, p. 20).

2.3 HTML (HYPERTEXT MARKUP LANGUAGE) HTML (Hypertext Markup Language) a linguagem de programao mais utilizada para a criao de pginas para a internet. Segundo Marcondes (2001), ela apenas define a estrutura de uma pgina, estabelecendo o que ttulo, texto, lista, subttulo, local das imagens, etc. uma linguagem que no precisa se ter muita lgica de programao, de fcil compreenso. uma linguagem simples por manipular somente objetos e textos (sons, figuras, fotos, animaes). A linguagem HTML tem por objetivo criar no apenas textos, mas criar hipertextos. Esses textos caracterizam-se por serem rpidos e pequenos, facilitando o acesso dos usurios da Web. (MARCONDES, 2001, p. 18). Isso possibilita que o browser no precise estar com a conexo ativa por todo o tempo, ele envia as informaes para o browser e ele as codificam. Assim s se conectara novamente que for feito alguma requisio. As informaes (textos) so transferidas de um computador para outro atravs do HTTP, ou seja, protocolo de transferncia de hipertextos. Uma grande vantagem a facilidade de criao das pginas HTML. No precisa de nenhum editor especifico, pode ser desenvolvida no bloco de notas, Word ou EDIT dentre

23

outros. A nica preocupao salvar com a extenso .HTM ou .HTML, o restante, os textos, imagens, controlado a sua posio atravs de comandos da prpria linguagem.

2.4 XML (EXTENSIBLE MARKUP LANGUAGE) O XML foi desenvolvido para se adaptar praticamente a todas as tecnologias de programao. Auxilia principalmente na transferncia e comunicao de dados. H apoio pelas grandes empresas de desenvolvimento, pois algo simples de implementar e prestar manuteno. Segundo Dcio (2000), XML tem como propsito fundamental a descrio de informaes. Isso o torna importante para armazenamento, recuperao e transmisso de informaes. Sua sintaxe de fcil reconhecimento, sua edio pode ser feita num editor de texto sem mistrio, pois no usado um formato binrio ou seqencial. Isso facilita a integrao entre sistemas. Na maioria dos sistemas, assim como o Word da Microsoft, tem seus formatos proprietrios para salvar, isso faz com que s software especfico o l. XML pode ser implementado para trabalhar juntamente com sites Web. Enquanto o HTML especifica como devem ser apresentadas as informaes numa pgina, o XML especifica o que so esses dados dispostos no documento. Segundo Graves (2003), documentos XML podem ser armazenados em um sistema gerenciador de banco de dados (SGBD) relacional ou orientado a objetos pela sua converso em relacionamentos ou objetos. Em XML, o armazenamento dos dados feito com suas descries, de maneira clara e simples, no necessitando de nenhuma tabela adicional para informar o nome e a posio do elemento a ser armazenado ou resgatado.

2.5 SISTEMA DE BANCO DE DADOS Um sistema de banco de dados basicamente apenas um sistema computadorizado de manuteno de registros. (DATE, 2003, p. 3). como se fosse um armrio para guardar arquivos. Para Date (2003), os sistema deve permitir que usurios possam solicitar que o sistema realize diversas operaes: Acrescentar novos registros ao banco de dados;

24

Inserir dados em arquivos existentes; Buscar dados de arquivos existentes; Excluir dados de arquivos existentes Alterar dados em arquivos existentes; Remover arquivos existentes do banco de dados; Sua finalidade permitir que usurios armazenem informaes, busquem e

atualizem conforme sua solicitao. Date (2003), expe a diferena entre dados e informaes, onde ele afirma que dados usado para se referir o que realmente armazenado no banco de dados e informaes para se referir ao significado desses dados armazenados. Um sistema de banco de dados composto por quatro componentes: dados, hardware, software e usurios:

FIGURA 3 Representao simplificada de um sistema de banco de dados. Fonte: Date (2003).

Como comentado anteriormente, dados aquilo que realmente ser armazenado.

25

Hardware compe-se de volumes de armazenamento secundrio (discos magnticos), processador de hardware e memria principal associada. Software conhecido como sistema de gerenciamento de banco de dados (SGBD), o qual trata todas as requisies feitas pelo usurio ao banco de dados. Conforme Date (2003), os usurios so divididos em trs classes: Programadores de aplicao, que so os responsveis pela escrita dos programas de aplicaes de banco de dados; Usurios finais, os quais acessam o banco de dados de forma interativa; Administrador de banco de dados, [...] trabalho do administrador de dados decidir, para comear, que dados devem ser armazenados no banco de dados, alm de estabelecer normas para manter e tratar esses dados [...]. (DATE, 2003, p. 15).

2.6 BANCO DE DADOS COM POSTGRESQL Segundo Pereira Neto (2003) o PostgreSQL um SGBDR (Sistema Gerenciador de Base de Dados Relacional) que est baseado nos padres SQL ANSI-92, 96, e 99, de alta performance e de fcil administrao e utilizao em projetos. O PostgreSQL totalmente livre e de cdigo-aberto, bastante usado como SGBDR de Sistemas Empresariais e baseados na Web. Pois sua utilizao fcil e disponibiliza conexes atravs de aplicaes Java, a escolha para utiliza-lo como gerenciador de base de dados do prottipo, deu-se por no haver custo e ter um bom comportamento na integrao de sistemas Web.

2.7 UML (UNIFIED MODELING LANGUAGE) A cada dia que se passa h competitividade aumenta consideravelmente, onde antes se levava dois anos para desenvolver uma solicitao do cliente, hoje temos duas semanas, as mudanas no mundo dos softwares tem que ser rpida, pois estamos cada vez mais dependente dos sistemas. H estabelecimentos comercias, industriais que se o sistema parar, toda a instituio para, isso apressa bastante os desenvolvedores de softwares. A UML permite desenvolver vrios tipos diferentes de diagramas visuais que representam diversos aspectos do sistema.(BOGGS, BOGGS, 2002, p. 10).

26

Ele auxilia no projeto como se fosse uma planta de uma casa, onde se v o que vai ser construdo, onde so visveis os passos a serem seguidos para dar forma a casa, assim os diagramas disponveis atravs da UML auxiliam no desenvolvimento dos softwares, atravs de diagramas visuais como se fosse planta.

A UML prov uma definio formal do formato esttico do modelo utilizando um metamodelo2 expresso em diagramas de classe na UML. Essa uma abordagem formal popular e amplamente aceita para especificar o formato de um modelo e, diretamente, conduzi-lo implementao de formatos de intercmbio. (PAGEJONES, 2001, p. 82).

Como a UML define de forma formal o que preciso implementar, facilita no desenvolvimento, economiza tempo e permite que vrias pessoas consigam desenvolver ao mesmo tempo de forma sincronizada. Ao final se tem toda a estrutura e os passos que foram seguidos, com isso quando a necessidade de prestar suporte, implementar mais algum requisito, qualquer desenvolvedor conseguira fazer uma anlise rpida atravs dos diagramas do que se tem e o que falta implementar.

2.8 FRAMEWORK HIBERNATE O que se tem que preservar nas aplicaes de sistemas de informao so os dados, ai que entra o Hibernate. Ele trabalha toda a persistncia da aplicao. Quando falamos de persistncia em Java, normalmente estamos falando sobre como guardar dados em um banco de dados relacional usando SQL. (BAUER; KING, 2007, p. 5). Segundo Bauer e King (2007, p.4), o Hibernate faz a interao entre a aplicao e o banco de dados relacional, possibilitando que o desenvolvedor fique mais livre para pensar na regra de negcios. Ao desenvolver o projeto, no h necessidade de levar muito a risca o padro Hibernate, ele se adapta de forma prtica e rpida no projeto em desenvolvimento.

Metamodelo um modelo que descreve toda a estrutura conceitual dos diferentes diagramas que a compem.

27

2.9 AMBIENTE DE DESENVOLVIMENTO NETBEANS O Netbeans uma excelente ferramenta de desenvolvimento de software, um projeto Open Source com uma ampla base de usurios crescente pelo mundo. Seu projeto nomeado de Open Source Netbeans foi fundado pela Sun em junho de 2000. O Netbeans permite desenvolver, compilar e implantar programas alm de disponibilizar estrutura para desenvolver diagramas para realizar a modelagem do projeto a ser desenvolvido. Segundo o site brasileiro do Netbeans, ele escrito em Java, mas pode suportar qualquer linguagem de programao.

28

3 ESTADO DA ARTE No mercado se encontram diversos softwares que atuam na rea de gerenciamento de mecnicas. Em anlise de softwares j existentes, para verificar a viabilidade e diferenciais a serem abordados no prottipo a ser desenvolvido, vamos tomar como base de comparao o software chamado Mecnico.

3.1 O SOFTWARE MECNICO Desenvolvido pela Argos Tecnologias, Mecnico um software bem completo, aborda todas as reas de uma oficina mecnica, produz os relatrios necessrios, no muito complexo ao ser utilizado. Mas o grande problema que temos hoje o tempo. As organizaes tm pressa para tudo, quando se fala em implantar um software, o que se vem em mente o tempo que levar, o numero de funcionrios que tero de estar submetidos a esta tarefa. No caso do Mecnico h necessidade de cadastrar as peas e clientes em toda oficina que implanta-lo, desta forma a grande parte de tempo que deve ser dedicado para o cadastro, onde pequenas empresas tm em mdia trs mil, quatro mil itens a serem cadastrados. Da mesma forma os clientes, quanto incmodo a menos seria se ao ter realizado o meu cadastro numa oficina, ao buscar servios em outra, no precisar cadastrar novamente. medida que vai aumentando o nmero de oficinas que usem esse prottipo a ser desenvolvido, mais rpido ser a implantao. Da forma que o mecnico trabalha, as informaes ficam dispostas somente a sua oficina, pois seria interessante compartilhar informaes do tipo: se o cliente pagou ou no. Isso limitaria perdas para as organizaes envolvidas.

29

4 ANLISE

4.1 INTEGRAO DE ITENS Com essa integrao de itens, quando h um novo item a ser cadastrado, uma nica oficina ir cadastrar e as outras j tero acesso ao mesmo. Caso necessite alterar alguma informao do item, somente a oficina que o cadastrou vai ter acesso para fazer esta alterao. Caso outra oficina da rede necessite que altere o cadastro do item, ela dever solicitar atravs do software para que a empresa realizadora do cadastro analise se realmente h necessidade de atualizar ou no. Para no haver muitos problemas quanto ao cadastro, se manter um padro de cadastro para todas conseguirem localiz-lo. A figura 4, mostra como seria superficialmente a integridade das informaes entre itens e empresas (Oficinas).

FIGURA 4 Modelagem do relacionamento entre itens e oficinas. Fonte: acervo do autor.

Desta forma se economiza tempo na implantao do sistema na empresa, pois quanto mais empresas tiverem filiadas, mais rpido ser, pois a menos itens a serem cadastrados.

30

4.2 INTEGRAO DE CLIENTES O sistema de cadastro de cliente ser da mesma forma que os itens, pois facilita, tornar mais prtico e gil. Assim o cliente no precisa ser cadastrado em toda oficina que ser atendido e que pertena a rede. Automaticamente ao ser realizado o cadastro em um estabelecimento, todos os outros iro ter acesso ao cadastro deste cliente, informaes que iro ajudar o comerciante a decidir se um bom ou mau cliente, falando-se em questo de pagar o servio prestado. Ficaro disponveis informaes se o cliente pagou, o que foi feito no seu veculo, inibindo assim os inadimplentes por parte do cliente e tambm por oficinas, onde muitas dizem que precisou trocar tal pea, e na verdade s enrolou o cliente que no tem muito conhecimento do assunto.

4.3 HISTRICO DO VECULO Ficar disponvel on-line o histrico do veiculo, o cliente poder acompanhar atravs da internet quais servios esto sendo prestados em seu veculo e visualizar at mesmo quando foi fechada a ordem de servio. Com isso tambm pode se ter um controle de gastos em manuteno do veculo. Auxiliara quem queira comprar, onde analisando este relatrio poder concluir se o carro esta num timo estado conservatrio ou no.

4.4 OUTRAS FUNES Auxiliar para tomadas de deciso em relao gerncia do estabelecimento. Possibilitando a manipulao de registros de contas a pagar, contas a receber, despesas mensais ( funcionrio, energia, caf, dentre outras). Com isso agilizar o balano realizado no final do dia, ms e ano. Onde ter disponveis relatrios para uma melhor viso do fluxo de caixa.

31

5 IMPLEMENTAO O prottipo desenvolvido ser implantado em uma oficina de Motos, a atual Oficina de Motos Farias, localizado no bairro Vila Nova em Ituporanga. At o presente momento o proprietrio no tem qualquer software para armazenar suas informaes e gerenci-la. Para o desenvolvimento do prottipo, houve a necessidade de se utilizar alguns recursos para facilitar o desenvolvimento. Estes recursos tm como objetivo auxiliar na engenharia do prottipo, dando uma viso geral do projeto a ser desenvolvido e facilitando a viso para o cliente do que ser desenvolvido atravs dos requisitos levantados juntamente a ele.

5.1 DIAGRAMA DE CLASSES Na figura 5, 6 e 7 apresentadas abaixo, esta definido as principais classes com seus respectivos atributos criadas para o desenvolvimento do prottipo. A forma com que se relacionam e interagem umas com as outras, tendo assim um ponto de partida para o desenvolvimento. Pois com uma estrutura bem projetada em um diagrama de classes, economiza tempo no desenvolvimento da parte programtica do prottipo. Com isso pode-se passar uma viso do prottipo a ser desenvolvido para o cliente para dar procedncia, dando menos trabalho no futuro com relao a atualizaes. A figura 5 mostra como est relacionado o cadastro de pessoas, onde fica armazenado junto com cada registro o usurio que o cadastrou, aps o cadastro, cada pessoa recebe uma ou mais classificaes, as quais as definem se so clientes, fornecedores ou funcionrios. Uma vez cadastradas por uma das oficinas da rede, as demais tem acesso imediato.

32

FIGURA 5 - Diagrama de Classes do Prottipo Relacionamento de Cadastro de Pessoas. Fonte: acervo do autor.

33

A figura 6 mostra a integrao entre os itens de cada oficina. Para cada item tem um cadastro geral, onde todos tero acesso, e aps esse cadastro realizado o cadastro de cada item para a oficina em particular.

FIGURA 6 - Diagrama de Classes do Prottipo Integrao dos Itens. Fonte: acervo do autor.

34

A figura 7 apresenta o relacionamento das ordens de servio. Cada ordem relacionada com a oficina que a abre, e ao visualizar criado filtros para exibir somente as ordens da oficina que a pertence, assim como suas contas a receber.

FIGURA 7 Diagrama de Classes do Prottipo Relacionamento de Ordens de Servio. Fonte: acervo do autor.

5.2 MER O MER abaixo representado pela figura 8, mostra como esta definido a base de dados do prottipo, esta base j possui algumas tabelas a mais como a tabela de ao e autenticao para um tratamento futuro em programao. Pois devido extenso do prottipo e o curto tempo disponvel para o desenvolvimento no h nenhum tratamento especifico para fazer o armazenamento da autenticao de cada usurio e limitar o usurio a telas especificas.

35

Figura 8

36

5.3 CAMADAS DE IMPLEMENTAO O prottipo foi desenvolvido em camadas, onde primeiramente criado as classes dos objetos com os devidos atributos e mapeamentos e seus mtodos.Abaixo apresentado a classe Cor.java: @Entity @Table(name = "cor") @SequenceGenerator(name="event_sequence",sequenceName="cor_cor_codigo_seq",allocat ionSize=1) public class Cor implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="event_sequence") @Basic(optional = false) @Column(name = "cor_codigo") private Integer corCodigo; @Basic(optional = false) @Column(name = "cor_nome",length=20) private String corNome; @OneToMany(cascade = CascadeType.ALL, mappedBy = "corCodigo") private List<Produto> produtoList; @OneToMany(cascade = CascadeType.ALL, mappedBy = "corCodigo") private List<Veiculo> veiculoList; . . . } Primeiramente definido que esta classe uma entidade, em seguida informado qual a tabela em que ser armazenado as informaes, caso seja omitido esta informao o hibernate considerar o nome da classe como sendo a tabela. Aps criado uma seqncia para controlar o valor automaticamente da chave primria. Em seguida est definido quais os atributos que iro compor esta classe e os mtodos getter e setter que esto omitidos na classe apresentada acima.

37

O prximo passo foi desenvolver uma classe genrica a qual requisitada toda vez que necessite inserir, alterar ou buscar informao na base de dados. GenericDAO.java: public abstract class GenericDAO { public GenericDAO() { } protected Session getSession() { return HibernateUtil.getInstace().getSession(); } protected void saveOrUpdatePojo(Serializable pojo) { Session ses = getSession(); ses.saveOrUpdate(pojo); ses.getTransaction().commit(); ses.close(); } protected <T extends Serializable> T getPojo(Class classToSearch, Serializable key) { Session ses = getSession(); Serializable toReturn = (Serializable) ses.get(classToSearch, key); ses.getTransaction().commit(); ses.close(); return (T) toReturn; } protected void removePojo(Serializable pojo) { Session ses = getSession(); ses.delete(pojo); ses.getTransaction().commit(); ses.close(); }

38

protected <T extends Serializable> List<T> getPureList(Class<T> classtoCast, String query, Object... params) { Session ses = getSession(); Query qr = ses.createQuery(query); for (int i = 1; i <= params.length; i++) { qr.setParameter(i, params[i - 1]); } List<T> toReturn = qr.list(); ses.getTransaction().commit(); ses.close(); return toReturn; } } Esta classe instancia a conexo com o banco atravs da classe HibernateUtil.java responsvel por gerenciar as conexes. Ela apresenta um mtodo para salvar ou atualizar qualquer objeto, onde recebe por parmetro qual o objeto que esta sendo salvo ou alterado, assim como um mtodo para buscar um objeto, onde ser passado como parmetro a chave primria do objeto, aps tem o mtodo para remover e em seguida para listar vrios objetos de acordo com o parmetro passado. Aps foi desenvolvido as classes DAO, estas contero os parmetros utilizados para acessar a classe GenericDAO.java. Em seguida tomamos como exemplo a classe CorDAO.java: public class CorDAO extends GenericDAO{ public int addCor (Cor cor){ saveOrUpdatePojo(cor); return cor.getCorCodigo(); } public void removeCor(Cor cor){ removePojo(cor); } public Cor getCor(int corId){ Cor cor = getPojo(Cor.class, corId); return cor; }

39

public List<Cor> getCors(){ return getPureList(Cor.class, "from Cor cor order by corNome asc"); } public List<Cor> getCorsNome(String corNome){ return getPureList(Cor.class, "from Cor cor " + "where upper(corNome) = '"+corNome+"' order by corNome asc"); } } A classe DAO apresenta os mtodos necessrios para inserir, atualizar, remover, buscar um objeto, buscar todos atravs de uma lista e a possibilidade de buscar somente um de acordo com o parmetro passado. E para intermediar a classe DAO com a interface grfica utilizamos as classes faces, as quais instanciam os objetos a serem exibidos ao usurio. CorFaces.java: public class CorFaces { private Cor selectedCor; private CorDAO corDAO = new CorDAO(); private List<Cor> cachedCor = null; private Integer atu = 0; private SessionDAO sesDAO = new SessionDAO(); /** Creates a new instance of CorFaces */ public CorFaces() { } public String addCor() { atu = 0; selectedCor = new Cor(); sesDAO.setaSession("id", "addCor"); return "gotoMain"; } public String finishAddCor() { if (atu == 0) { for (Cor cor : corDAO.getCorsNome(selectedCor.getCorNome().toUpperCase())) {

40

if (cor.getCorNome().toUpperCase().equals(selectedCor.getCorNome().toUpperCase())) { Boolean sucesso = false; FacesContext context = FacesContext.getCurrentInstance(); String msg = "Cor J Cadastrada! Cdigo da Cor:" + cor.getCorCodigo(); FacesMessage message = new FacesMessage(msg); context.addMessage("form", message); return (sucesso ? "gotoListCor" : "gotoAddCor"); } } } corDAO.addCor(selectedCor); sesDAO.setaSession("id", "cor"); return "gotoMain"; } public String updateCor() { atu = 1; sesDAO.setaSession("id", "addCor"); return "gotoMain"; } public String removeCor() { corDAO.removeCor(selectedCor); sesDAO.setaSession("id", "cor"); return "gotoMain"; } public List<Cor> getCachedCor() { cachedCor = null; cachedCor = corDAO.getCors(); return cachedCor; }

41

public List<SelectItem> getCor() { List<SelectItem> toReturn = new LinkedList<SelectItem>(); for (Cor cor : corDAO.getCors()) { toReturn.add(new SelectItem(cor, cor.getCorNome())); } return toReturn; } . . . } Esta responsvel por criar o objeto Cor, receber os valores e salvar. Tambm est implementado a opo de remover, listar e montar uma lista que ser utilizada pelas telas que associam a cor com outros objetos, exemplo: veiculo e produto. Estes mtodos utilizam os mtodos desenvolvidos nas classes DAO desenvolvidas para cada classe entidade. E por final criado o arquivo cor.jsp que a camada visualizada pelo usurio final. Cor.jsp: <b id="titulo">Cores!</b> <br/> <f:view> <h:form> <h:commandButton action="#{CorFaces.addCor}" value="Novo Registro"/> <div id="scroll" > <t:dataTable value="#{CorFaces.cachedCor}" var="item" border="1" rows="10" id="data" styleClass="cinza"> <t:column> <f:facet name="header"> <h:outputText value="Cdigo"/>

42

</f:facet> <h:outputText value="#{item.corCodigo}"/> </t:column> <t:column> <f:facet name="header"> <h:outputText value="Cor"/> </f:facet> <h:commandLink action="#{CorFaces.updateCor}" value="#{item.corNome}"> <f:setPropertyActionListener target="#{CorFaces.selectedCor}" value="#{item}"/> </h:commandLink> </t:column> </t:dataTable> <%@include file="paginacao.jsp" %> </div> </h:form> </f:view> Este arquivo lista todas as cores em uma tabela, onde os registros so recuperados atravs do mtodo getCachedCor que esta implementado na classe CorFaces.java onde retorna uma lista chamada cachedCor.

5.4 PROTTIPO O prottipo foi caracterizado com o nome de OFIMECSOFT para refernci-lo, abaixo apresentado a logo do mesmo.

FIGURA 9 Logo do Prottipo. Fonte: acervo do autor.

O nome foi abstrado de Oficina Mecnica Software (OFIMECSOFT), a primeira implantao ser em uma oficina de motos, mas o prottipo esta capacitado para abranger qualquer oficina mecnica de motos, automveis, caminhes dentre outras do gnero.

43

5.4.1 Telas de Acesso Global O prottipo composto de telas globais onde todas as empresas que o utilizam tem acesso as informaes e as telas de acesso particular. Algumas telas de uso particular sero apresentadas abaixo. As telas globais so aquelas que uma empresa adiciona um registro e as outras j tem acesso imediato ao item cadastrado, desta forma agiliza o processo de implantao. As principais telas de acesso global so: Cargo de Funcionrios; Categoria de Despesas; Cidade; Cor; Grupo de Produto; Imposto; Marca de Produtos; Marca de Veculos; Modelo de Produtos Modelo de Veculos; Pessoas ( Clientes, Fornecedores e Funcionrios); Produto; Tipo de Contato ( Celular, Fax, etc..); Unidade de Medida; Veculos;

5.4.2 Tela de Login A tela de Login apresenta uma breve apresentao para o usurio a respeito das principais caractersticas do prottipo. Atravs dela que se obtm acesso para a utilizao.

44

FIGURA 10 Tela de Login. Fonte: acervo do autor.

Basta o usurio informar seu usurio e a senha para acessar o sistema, caso tenha esquecido a senha, necessrio solicitar atravs do e-mail disponvel ao lado para contato. Futuramente ser implementado uma forma de ser enviado para o e-mail do usurio atravs do sistema, facilitando o resgate de sua senha. 5.4.3 Tela Inicial Aps ter feito o login, automaticamente ele j ira carregar a tela de ordens de servio, ao qual aparecer somente as ordens abertas da oficina em que o usurio esta cadastrado e se rolar a barra de rolagem apresentara as ordens fechadas como mostra a figura 12.

45

FIGURA 11 - Tela Inicial Ordens de Servio Abertas. Fonte: acervo do autor.

Por padro traz o menu em uma coluna ao lado esquerdo facilitando o acesso as telas. Na figura 11 pode-se fazer o comparativo de como o funcionamento das informaes particulares de cada empresa. Pois as informaes de acesso global so apresentadas para todas e as informaes particulares somente a empresa que o usurio esta associado.

46

FIGURA 12 Ordens de Servio Abertas da Oficina Motos Farias. Fonte: acervo do autor.

Ao topo do lado direito localiza-se o nome da Oficina e a opo de sair do sistema, o que retorna a tela de Login para nova autenticao caso queira logar-se. Atravs da tela de Ordens de Servio, mais abaixo onde esta destacado como Ordens Fechadas!, trs a opo de imprimir a ordem (relatrio para imprimir a ordem figura 13) para a prestao de servios ao cliente e uma lista de ordens (relatrio para imprimir a lista de ordens figura 14) filtrando por data de fechamento auxiliando no fechamento de caixa. Todos os relatrios disponveis no prottipo foram desenvolvidos atravs da ferramenta Ireport.

FIGURA 13 Ordens de Servio Fechadas.

47

Fonte: acervo do autor.

O relatrio de Ordem de Servio traz ao seu topo esquerdo o cdigo da ordem realizada, isso auxiliar para futuras duvidas.

FIGURA 14 Relatrio de Ordem de Servio para Imprimir. Fonte: acervo do autor.

48

FIGURA 15 - Relatrio com a Lista de Ordens de Servio Realizadas. Fonte: acervo do autor.

O relatrio conforme pode ser observado na figura 14, lista todas as ordens no intervalo de datas informado pelo usurio e exibe atravs de subgrupos conforme a forma de pagamento. Calcula os subtotais e ao final o total gerado pelos subtotais.

5.4.4 Tela de Gerenciamento de Empresas (Oficinas) Na tela de empresas possvel realizar o gerenciamento das oficinas que tero acesso ao sistema, o cadastro de novas empresas possvel somente pela primeira empresa cadastra, o qual no caso a HorsperSoft, sendo-a administradora. Aps o cadastro da empresa necessrio cadastrar um usurio e associa-lo a empresa ao qual ter acesso as informaes. Para as demais empresas cadastradas, as mesmas logadas tero acesso somente as suas informaes, no tendo acesso as demais.

49

FIGURA 16 Tela de Gerenciamento de Empresas. Fonte: acervo do autor.

5.4.5 Tela de Cadastro de Usurio Para que a nova empresa do grupo tenha acesso ao sistema, basta o usuario administrador cadastrar um novo usurio e associa-lo a empresa que o mesmo pertence, basta selecionar na caixa de seleo em destaque cinza da figura 16 a empresa. Executado estes passos a nova empresa j ter acesso ao sistema com uma base parcialmente povoada, necessitando adicionar somente alguns registros ao qual necessitar para o seu gerenciamento.

50

FIGURA 17 Tela de Cadastro de Usurios. Fonte: acervo do autor.

5.4.6 Tela de Produtos Particulares Nesta tela possvel visualizar os produtos contidos em sua empresa, assim como os valores de compra, venda, lucro e estoque. Atravs desta tela pode-se acessar a tela para realizar novos cadastros, e gerar um relatrio de todo seu estoque.

FIGURA 18 Tela de Produtos Particulares. Fonte: acervo do autor.

51

FIGURA 19 Relatrio de Produtos Particulares. Fonte: acervo do autor.

O relatrio acima apresentado exibe todos os produtos da empresa em particular, estes so separados por grupo e tem a excelente funo de destacar em vermelho quais itens esto com o estoque baixo.

5.4.7 Tela de Notas de Entrada

FIGURA 20 Tela de Notas de Entrada. Fonte: acervo do autor.

52

Esta tela possibilita ver o cabealho da nota, analisar o valor total e se j foi pago. Atravs desta se tem acesso para adicionar os itens, ao adicionar os itens ele atualiza o estoque e as demais informaes, como valor de compra, de venda e lucro.

5.4.8 Outras Funcionalidades O prottipo abrange tambm o controle de despesas extras (gua, energia, telefone, etc.), pagamento de funcionrios, contas a receber. As contas a receber so geradas quando o cliente escolhe a forma de pagamento a prazo, assim quando confirmada, redirecionado para a tela de cadastro de contas a receber, onde solicita que o usurio informa o nmero de parcelas, o intervalo de dias que gere a data de vencimento e se caso tenha juro a ser cobrado sobre o valor das parcelas. Aps informado estes campos gerado as parcelas de valores iguais.

53

6 CONSIDERAES FINAIS Hoje o que uma empresa tem de mais precioso so as informaes, devido a isso h a necessidade de implantar sistemas para manipul-las de forma mais rpida e precisa. Levantou-se os requisitos principais do prottipo por meio de diversas entrevista. Mas o maior problema era o tempo de implantao, at que todo o estoque fosse cadastrado. O prottipo est desenvolvido com as funes bsicas de um gerenciador de oficinas, onde pode-se ter vrias empresas cadastradas trabalhando com a mesma base de dados, onde uma ajuda a outra no armazenamento de registro comuns entre elas, como marca, modelo, cor, cliente, fornecedor, produto dentre outras. A linguagem Java se comportou bem diante a internet, gratificante o conhecimento adquirido ao longo da jornada. A utilizao de Programao Orientada a Objeto facilitou bastante, as principais regras de negcio Java ficavam embutidas diretamente na classe do Objeto. O Hibernate tem um papel muito importante no desenvolvimento onde se trata toda a estrutura da base de dados, podendo assim dedicar-se mais tempo na programao de regra de negcio. O PostgreSQL tem um excelente potencial, atendendo todas as necessidades do prottipo, alm de ser uma ferramenta de grande poder e gratuita. Como se ter a interao de mais oficinas na mesma base de dados, optei por gerar os cdigos automaticamente quando a informao ser armazenada, sendo assim no ocorrer o problema de uma oficina inserir um registro e a outra inserir simultaneamente e atualizar o registro inserido anteriormente pela outra oficina. A utilizao do Ireport na criao de relatrios, foi uma forma mais rpida de criar visualmente e os exportar para PDF, deixando assim a critrio do usurio se ir imprimir ou salva-lo ou simplesmente visualizar e fecha-lo. Para isso foi utilizado biblioteca especfica para a gerao dos relatrios. Uma caracterstica a execuo do prottipo remotamente atravs da internet. Podendo assim realizar consultas de qualquer lugar que tenha acesso internet. E para a implantao o proprietrio no precisa trocar de computador para adquirir mais processamento, e nem mesmo precisa se preocupar com backup. uma forma fcil e simples de acessar as informaes.

54

A atualizao feita somente em um local, no precisando passar em todos os clientes que utilizam ao prottipo, ou passar instrues para baix-las e atualiz-lo. A interface foi desenvolvida da forma mais simples, tem-se muito que se fazer para tornar o prottipo ainda mais completo. O gratificante comear um projeto em Engenharia de Software e chegar ao final do curso com um prottipo desenvolvido e implantado. Com isso fica visvel o aprendizado adquirido ao longo de todo este tempo. Pois no de uma hora para outra que se desenvolve algo e se pe em atividade.

6.1 RECOMENDAES FUTURAS Ainda h muito a se fazer, pois h vrios processos que precisam ser desenvolvidos para tornar um sistema com maior grau de reconhecimento e mais competitivo. A diversos relatrios para serem desenvolvidos onde auxiliaram nas tomadas de deciso. Um relatrio interessante a ser desenvolvido onde mostraria o total de todos os itens de todas as oficinas que esto em falta, que precisam ser repostos em seus estoques, possibilitando assim realizar o pedido e conseguir descontos devido a grande quantidade a ser comprada. Tornando maior a disputa de fornecedores. Implementar um recurso para gerar atravs do sistema boletos bancrios, trazendo as informaes dos parcelamentos realizados pelo cliente. claro que com o decorrer do tempo vai surgindo novas necessidades a serem implementadas. Como a finalidade do prottipo servir como gerenciador e no meio de divulgao ou propaganda foi trabalhado somente com cores, ficando assim mais rpido para carregar as pginas.

55

REFERNCIAS BAUER, Cristian; KING, Gavin. Java Persistence com Hibernate. Rio de Janeiro: Editora Cincia Moderna Ltda, 2007. BOGGS, Michael; BOGGS, Wendy. Mastering UML com Rational Rose 2002. Rio de Janeiro: Alta Books, 2002. DATE, C J.. Introduo a Sistemas de Banco de Dados: Traduo da 8a Edio Americana. Traduo de Daniel Vieira. 3 ed. Rio de Janeiro: Elsevier, 2003. DCIO, Otvio C.. Guia de Consulta Rpida XML. So Paulo: Novatec, 2000. FURGERI, Srgio. Java 6 Ensino Didtico: Desenvolvendo e Implementando Aplicaes. 1. ed. So Paulo: rica Ltda, 2008. GRAVES, Mark. Projeto de Banco de Dados com XML. 1. ed. So Paulo: Pearson Education do Brasil, 2003. JANDL JUNIOR, Peter. Introduo ao Java. 1.ed. So Paulo: Berkeley, 2002. MARCONDES, Christian Alfim. Programando em HTML 4.0. 6. ed. So Paulo: rica, 2001. 272 p. PAGE-JONES, Meilir. Fundamentos do Desenho Orientado a Objeto com UML. So Paulo: Pearson Education do Brasil, 2001. PEREIRA NETO, lvaro. PostgreSQL: tcnicas avanadas verses Open Source 7.x : solues para desenvolvedores e administradores de bancos de dados. So Paulo: rica, 2003.

Anda mungkin juga menyukai