26.12.2014 Views

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

Desenvolvimento de um Veículo Aéreo Não-Tripulado - LARA ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

códigos dos sistemas embarcados <strong>de</strong> 8 bits (AVRs) estão <strong>de</strong>scritos nas Seções 4.4, 4.5 e 4.6. O<br />

código do LPC2148 está <strong>de</strong>scrito na Seção 4.7, e do G<strong>um</strong>stix Overo na Seção 4.8. Por último, o<br />

simulador está <strong>de</strong>scrito na Seção 4.9.<br />

4.2 Filosofias e Metodologias <strong>de</strong> Programação<br />

Na maior parte dos cursos <strong>de</strong> graduação <strong>de</strong> engenharia, o que é ensinado como programação<br />

são os fundamentos básicos (função, variáveis, etc.) e a sintaxe <strong>de</strong> <strong>um</strong>a linguagem específica - ou<br />

seja, como que esses fundamentos são implementados. Porém, a experiência mostra que não basta<br />

dominar as nuâncias <strong>de</strong> <strong>um</strong>a <strong>de</strong>terminada linguagem <strong>de</strong> programação, e sim aplicar <strong>um</strong>a filosofia<br />

<strong>de</strong> programação a fim <strong>de</strong> escrever <strong>um</strong> código eficiente e, acima <strong>de</strong> tudo, legível e compreensível.<br />

A existência <strong>de</strong> <strong>um</strong>a filosofia se torna mais importante ainda quando mais <strong>de</strong> <strong>um</strong>a pessoa está<br />

escrevendo código - sem ela, <strong>um</strong>a quantida<strong>de</strong> gran<strong>de</strong> <strong>de</strong> código é duplicada, e a possibilida<strong>de</strong> <strong>de</strong><br />

problemas sérios no código são agravadas <strong>de</strong>vido a incompatibilida<strong>de</strong> da forma <strong>de</strong> programação.<br />

Com isso em mente, alguns princípios foram <strong>de</strong>finidos antes <strong>de</strong> começar o <strong>de</strong>senvolvimento do<br />

software, na tentativa <strong>de</strong> evitar problemas sérios nos programas feitos para esse projeto. Vale lembrar<br />

que quase a totalida<strong>de</strong> do código <strong>de</strong>senvolvido foi em C, logo, essa metodologia foi elaborada<br />

visando o próprio C e <strong>um</strong>a equipe reduzida e qualificada.<br />

4.2.1 Programação Modular<br />

Um dos princípios mais fundamentais que foram adotados foi o uso da programação modular<br />

- ou seja, o código era sempre separado em módulos, com entradas, saídas e funcionalida<strong>de</strong>s bem<br />

<strong>de</strong>finidas. Cada módulo é formado por <strong>um</strong>a série <strong>de</strong> funções, alg<strong>um</strong>as <strong>de</strong> acesso interno ao módulo,<br />

outras <strong>de</strong> acesso externo (acessíveis por outros módulos).<br />

A idéia da programação modular é reaproveitar ao máximo o código entre diferentes programas<br />

- ou seja, se <strong>um</strong> módulo chamado <strong>de</strong> “protocolo <strong>de</strong> comunicação” é <strong>de</strong>senvolvido, ele po<strong>de</strong> ser<br />

utilizado em outro programa modularizado sem nenh<strong>um</strong>a modificação. As atualizações do módulo<br />

se propagam para todos os programas que utilizam esse módulo, adicionando funcionalida<strong>de</strong>s ou<br />

removendo bugs.<br />

Um outro bom motivo para modularizar o código é a legibilida<strong>de</strong> - escolhendo os nomes<br />

dos módulos e das variáveis <strong>de</strong> entrada e saída <strong>de</strong> forma apropriada, o que está efetivamente<br />

acontecendo no código fica muito claro até para quem não está familiarizado com o código. A<br />

modularização também separa claramente o código <strong>de</strong> cada módulo, tornando a manutenção muito<br />

simplificada.<br />

A programação modular também é i<strong>de</strong>al para trabalho em equipe, pois cada membro da equipe<br />

só precisar conhecer as entradas e saídas <strong>de</strong> cada módulo. Cada programador po<strong>de</strong> ser responsável<br />

por <strong>um</strong> ou mais módulos, o que também facilita a gerência do processo <strong>de</strong> <strong>de</strong>senvolvimento.<br />

O fato das entradas e saídas estarem muito bem <strong>de</strong>finidas também facilita o processo <strong>de</strong> teste<br />

68

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!