• Nenhum resultado encontrado

3.3 Aplicação de software

3.3.4 Banco de dados SQLite

SQLite é um banco de dados escrito inteiramente em linguagem C e por suas características como ágil, leve, altamente confiável, com muitas ferramentas incluídas, é extensamente aplicado em diversas situações das mais diversas áreas. Está embarcado em computadores, sistemas embarcados, telefones celulares, dispositivos eletrônicos e mais [24].

32 Capítulo 3. Fundamentação teórica

Devido a tais características, essa ferramenta de banco de dados é implantado em algumas soluções e aplicações da empresa. Ao adquirir experiência e notar as vantagens que se obtém ao trabalhar com o mesmo, optou-se por utilizar na aplicação em desenvolvimento deste projeto. Sem haver necessidades de compras de licenças e ser open source, tal banco deverá ser usado para implantar um dos requisitos do projeto, citados no capítulo 4.

O SQLite possui uma comunidade ampla de desenvolvedores e hobistas, apresen- tando suporte e documentações para diversas situações que se possa enfrentar numa implantação. Esse suporte trouxe aplicações para integrações com diversas linguagens de programação, incluindo o Python [25].

33

4 Análise do problema

Neste capítulo serão apresentado brevemente o funcionamento do sistema embarcado desenvolvido pela empresa, ressaltando alguns pontos importantes e suas tecnologias, os requisitos propostos para o novo sistema, as técnicas escolhidas para implantação e o projeto propriamente dito, contando com seus diagramas.

4.1

Requisitos do sistema

Os requisitos são, como o nome diz, o que o sistema precisa ter e/ou ser capaz de realizar. Sendo assim, propõe-se que os requisitos para que a aplicação atenda sejam os seguintes:

• R.1: A aplicação deve ser de fácil uso e intuitivo;

• R.2: Ser capaz de analisar curvas de todos as mensagens do arquivo de log de modo mais rápido e fácil;

• R.3: Receber arquivos logs de entrada de diferentes padrões;

• R.4: Deve ser capaz de usar a aplicação em diferentes sistemas operacionais, tanto quanto distribuições GNU/Linux, Windows e MacOS;

• R.5: Ser capaz de aplicar parâmetros de escala e offset para as curvas geradas; • R.6: Aplicação deve ser capaz de armazenar informações de sensores já mapeados,

afim de evitar retrabalhos num banco de dados local;

• R.7: Buscar nas mensagens candidatas por sensores já cadastrados em nosso banco de dados dos sensores;

• R.8: Aplicar os parâmetros das mensagens já cadastradas sobre as candidatas correspondentes, identificados em "matchs";

• R.9: Ter a opção de buscar dentro das mensagens por bytes de controle - funciona- mento de header estendido;

• R.10: Ter a opção de filtrar por mensagens sem variações em seus dados;

• R.11: Ser capaz de aplicar a busca usando métodos estatísticos de correlação, baseado numa aplicação interna da empresa chamada de CAN Inspector ;

• R.12: Exportar a instrução SQL para inserir ao banco de dados oficial da empresa que contém tabela de sensores mapeados;

34 Capítulo 4. Análise do problema

4.2

Viabilidade e cronograma

Após análise do problema proposto como um todo, considerando as complicações tecnológicas; capacidade de encontrar informações; técnicas disponíveis na rede internet com amplo suporte da comunidade de desenvolvedores; análise da complexidade envolvida para com cada requisito citado acima; tempo disponível e necessidade de implantação do projeto, conclui-se viável o estudo e desenvolvimento desta aplicação em questão. Visando concluir o projeto, uma cronograma separando as macro atividades por meses foi elaborado no início do projeto e seguido durante a execução, ilustrado na Tabela1.

Tabela 1 – Cronograma do desenvolvimento das macro atividades do projeto. Fev Mar Abr Mai Jun Jul Estudo de protocolos veiculares x

Escolha da linguagem de programação x Coleta de informações na empresa x

Criação de banco de dados local x x Determinar funcionalidades do sistema x x Estudo de técnicas na identificação de sensores x x

Escolha e implantação de interface gráfica x x x

Escrita de código x x x x

Testes e validação x x

35

5 Implantação da aplicação

Será abordado nes te capítulo os procedimentos para implantação da aplicação em questão, detalhando como foi o procedimento para os testes e validações, seguido da arquitetura implantada, seus diagramas e suas respectivas explicações.

5.1

Métodos escolhidos

Durante o processo de definição inicial da arquitetura do projeto, algumas ideias foram cogitadas para se buscar a solução dos problemas. Nesse processo, a proposta para a solução adotada é modular. Dessa forma, módulos deverão ser implantados independen- temente do outro, estando todos sob controle de um módulo especial, o controlador. O módulo controlador, chamado aqui de application controller instanciará objetos declarados em cada módulo, controlando inteiramente a aplicação.

Antes de iniciar a escrita e implantação do código de cada módulo, foram propostos como seriam feitas as trocas de mensagens e informações entre os mesmos, prevendo inicialmente quais seriam os campos necessários nas entradas e saídas de cada módulo. Em cada, buscou-se manter o menor número possível de classes, nos quais na verdade foram propostas classes que representem a função geral no nome do módulo.

Quanto as técnicas e tecnologias adotadas são as mesmas citadas no capítulo da fundamentação teórica, frisando que a linguagem de programação é Python 3.5; uso do framework Qt 5; implantação de um banco de dados SQLite; módulos em Python para integrar tais técnicas foram usados, tais como sqlite e pandas; e por fim o uso de ambiente de desenvolvimento open-source específico para Python, o PyCharm.

5.2

Diagrama de classes

Um diagrama de classes foi criado para ilustrar como se dará a comunicação entre as classes que representam os módulos da aplicação, ilustrado na Figura10 a seguir [26,27]. Nota-se que a maioria das classes possuem mesmo nome dos módulos do diagrama da Figura 11. Elaborado no início do projeto, buscou-se através deste diagrama orientar a forma de escrever o código no momento da implantação, sofrendo poucas alterações tentando ater-se ao que foi proposto inicialmente, diminuindo retrabalhos. Por tais motivos, o detalhamento de cada classe, mencionando seus atributos e métodos serão descritos na implantação do módulo respectivo.

36 Capítulo 5. Implantação da aplicação

Figura 10 – Diagrama de classes proposto.

Fonte: elaborado pelo autor.

5.3

Arquitetura modular

Uma arquitetura modular foi proposta pelas vantagens que se obtém ao trabalhar com esta técnica, podendo citar facilidade de manutenção de código, expansível, confiabili- dade e outras pessoas poderiam adicionar módulos e estratégias sem prejudicar as demais funcionalidades. A Figura11 ilustra os módulos propostos e suas descrições e detalhes se encontram a seguir.

Documentos relacionados