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 ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Capítulo 4<br />
Software<br />
“Any fool can write co<strong>de</strong> that a computer can un<strong>de</strong>rstand.<br />
Good programmers write co<strong>de</strong> that h<strong>um</strong>ans<br />
can un<strong>de</strong>rstand.” –Martin Fowler<br />
4.1 Introdução<br />
A maior parte do valor agregado <strong>de</strong> <strong>um</strong> sistema complexo como <strong>um</strong>a aeronave não é o hardware<br />
em si, e sim o software - ou seja, a implementação <strong>de</strong> algoritmos sofisticados para garantir o<br />
funcionamento do sistema em qualquer situação possível.<br />
É importante lembrar que, do ponto <strong>de</strong> vista <strong>de</strong> confiabilida<strong>de</strong> do sistema, o software ten<strong>de</strong><br />
a ser <strong>um</strong> pouco mais piedoso do que o hardware - códigos bem feitos po<strong>de</strong>m <strong>de</strong>tectar situações<br />
adversas (falhas <strong>de</strong> software) e recuperar o sistema, enquanto que <strong>um</strong>a falha <strong>de</strong> hardware durante o<br />
vôo po<strong>de</strong> significar a perda do experimento ou da aeronave. Por outro lado, <strong>um</strong>a ação <strong>de</strong> controle<br />
espúria causada por <strong>um</strong> bug po<strong>de</strong> causar danos mais graves do que qualquer falha <strong>de</strong> hardware.<br />
A quantida<strong>de</strong> <strong>de</strong> hardware <strong>de</strong>senvolvido especialmente para o projeto e a particularida<strong>de</strong> das<br />
funcionalida<strong>de</strong>s necessárias traduziram-se no <strong>de</strong>senvolvimento <strong>de</strong> boa parte do software embarcado<br />
na aeronave, das interfaces com os dispositivos <strong>de</strong> baixo nível aos protocolos <strong>de</strong> comunicação e a<br />
interface com o usuário. Por <strong>um</strong> lado, isso forneceu <strong>um</strong> grau <strong>de</strong> integração muito alto ao sistema,<br />
por outro, a gran<strong>de</strong> quantida<strong>de</strong> <strong>de</strong> código novo utilizado e o risco para a aeronave significou <strong>um</strong>a<br />
quantida<strong>de</strong> <strong>de</strong> testes e <strong>um</strong> longo cronograma <strong>de</strong> <strong>de</strong>senvolvimento. Para reduzir esses problemas,<br />
<strong>um</strong>a metodologia <strong>de</strong> programação <strong>de</strong>ve que ser seguida a risca.<br />
Outro software importante foi o simulador <strong>de</strong> vôo, capaz <strong>de</strong> utilizar e validar o código <strong>de</strong><br />
estimação e controle <strong>de</strong>senvolvido para o sistema embarcado.<br />
Esse capítulo visa mostrar a forma <strong>de</strong> programação e doc<strong>um</strong>entar em linhas gerais que programa<br />
está sendo executado em cada dispositivo, e como eles foram organizados. Ele também<br />
tenta esclarecer a motivação por trás <strong>de</strong> alg<strong>um</strong>as das <strong>de</strong>cisões técnicas, e orientar <strong>um</strong> programador<br />
examinando o código pela primeira vez.<br />
Esse capítulo está organizado da seguinte maneira: primeiramente, a forma <strong>de</strong> programação<br />
está <strong>de</strong>talhada na Seção 4.2. A modularização a nível <strong>de</strong> sistema está <strong>de</strong>scrita na Seção 4.3. Os<br />
67