Você está na página 1de 8

Impact analysis of model-based development in avionics software

production
Análise do impacto do desenvolvimento baseado em modelos na produção de software aviônico

Gustavo Giroletti Mottin Josiane Brietzke Porto


Universidade do Vale do Rio dos Sinos Universidade do Vale do Rio dos Sinos
São Leopoldo – RS – Brasil São Leopoldo – RS – Brasil
gustavogirolettimottin@gmail.com josibrietzke@unisinos.br

ABSTRACT impedir que uma tarefa seja finalizada. Em outras circunstâncias,


software para sistemas embarcados podem possuir um nível
Normally, the development of avionics software as part of elevado de segurança e criticidade, que podem levar a eventos
embedded systems follows guidelines defined by the industry that perigosos ou catastróficos, em caso de falhas.
defines objectives and activities that are critical for enabling and
approval for operation. The DO-331 is one out of these guidelines Software crítico é aquele o qual a falha pode ter impacto na
recently published that refers to the usage of model-based segurança, causando perdas financeiras ou sociais relevantes [1].
development. This article presents a survey, done with 79 Por exemplo, a indicação errônea de altitude em uma aeronave
specialists working in the area, in international level, looking pode acarretar na queda da mesma, provavelmente, causando
forward to gather perceptions about the impact of model-based fatalidades e perda de propriedade. Em uma aplicação voltada
development in avionics software production. The results points para a área da medicina, uma falha de cálculo pode causar o óbito
out that using the methodology normally is beneficial, especially de um paciente durante um procedimento cirúrgico.
in some development steps, where these might be augmented or
diminished according to how it is applied by the organization. Para que software com este viés seja colocado em uso, existe a
necessidade das empresas responsáveis seguirem normas e
CCS CONCEPTS padrões internacionais. A RTCA DO-178 é um padrão de garantia
• Safety critical systems • Model-driven software engineering de qualidade de software relacionado à segurança para o
• Embedded systems • Embedded software desenvolvimento de software em sistemas aeroespaciais [2].
Logicamente, apenas seguir as normas não é suficiente, ou seja, é
KEYWORDS necessário comprovar através de evidências que os objetivos
Model-based development, avionics software, DO-331. foram cumpridos e todas as medidas necessárias foram tomadas
para garantir a confiabilidade do produto. Esta avaliação
independente é conhecida como certificação, sendo realizada por
ACM Reference format:
uma autoridade certificadora, como a Agência Nacional de
Gustavo Giroletti Mottin, Josiane Brietzke Porto. 2019. Impact Aviação Civil (ANAC) e a Federal Aviation Administration
analysis of model-based development in avionics software (FAA), voltadas para o setor de aviação.
production. In SBSI19: XV Brazilian Symposium on Information
Systems, May 20-24, 2019, Aracaju, Brazil. ACM, New York, O design correto de um projeto de software, a partir dos requisitos
NY, USA, 8 pages. https://doi.org/10.1145/3330204.3330265 é uma das partes vitais para o sucesso do mesmo. Explorar a
abordagem de desenvolvimento baseado em modelos pode ser
uma das formas de mitigar os erros, que podem ocorrer nessa fase,
1 INTRODUÇÃO bem como auxiliar em processos de desenvolvimento, verificação,
A onipresença de software em atividades cotidianas é uma validação e certificação. A forma padrão para modelagem de
tendência e, em algumas situações, os usuários se deparam com software ocorre através da utilização da Unified Modelling
falhas que podem causar aborrecimento ao tomar muito tempo ou Language (UML), porém na comunidade de desenvolvimento de
software crítico para sistemas embarcados, o termo model-based
Permission to make digital or hard copies of all or part of this work for personal or possui um paradigma diferente. Nesta área, este refere-se ao
classroom use is granted without fee provided that copies are not made or distributed
for profit or commercial advantage and that copies bear this notice and the full desenvolvimento de modelos de controle com capacidade de
citation on the first page. Copyrights for components of this work owned by others simulação, a partir de ferramentas próprias para essa tarefa [3].
than ACM must be honored. Abstracting with credit is permitted. To copy otherwise,
or republish, to post on servers or to redistribute to lists, requires prior specific
permission and/or a fee. Request permissions from permissions@acm.org. SBSI’19, Embora existam ferramentas de modelagem de software de
May 20-24, 2019, Aracaju, Brazil © 2019 Association for Computing Machinery. qualidade no mercado, em muitos casos estas não atendem a
ACM ISBN 978-1-4503-7237-4 <https://doi.org/10.1145/3330204.3330265>
Impact analysis of model-based development in avionics software
SBSI'19, May 20-24, 2019, Aracaju, Brazil
production

maior parte das necessidades de uso e de complexidade envolvida propósito específico; (ii) Disponibilidade: é a probabilidade de um
no desenvolvimento de software aviônico para sistemas sistema, em determinado instante, ser operacional e capaz de
embarcados. Além disso, não é possível prever a aplicabilidade e fornecer os serviços requeridos; (iii) Segurança: reflete a
a efetividade antes de experimentá-las, ou seja, como determinar capacidade do sistema de operar, normal e anormalmente, sem
se o processo de desenvolvimento será melhor ao adotar uma ameaçar as pessoas ou o ambiente; (iv) Proteção: avaliação do
ferramenta e como os desenvolvedores lidarão com essa situação. ponto em que o sistema protege a si mesmo de ataques externos,
que podem ser acidentais ou deliberados.
Diante desse contexto, esse trabalho contribui com uma análise
sobre os impactos da aplicação do desenvolvimento baseado em A falha de sistemas controlados por software causa
modelos em projetos de software aviônico para sistemas inconveniência, mas não danos sérios e prolongados. Contudo, há
embarcados, a partir da percepção de 79 especialistas na área, certos sistemas em que as falhas podem resultar em perdas
levantada por survey eletrônica, em nível internacional. Essa econômicas significativas, danos físicos ou ameaças à vida
análise se justifica e se torna relevante, pois estudos anteriores humana, sendo chamados de sistemas críticos [6]. Considerando a
apontaram efeitos positivos e dificuldades no desenvolvimento necessidade desses sistemas possuírem nível elevado de
baseado em modelos [10, 19, 20, 21]. Pettit et al. (2013) relataram confiança, também se torna alto o seu custo de desenvolvimento,
numa relação exponencial [4 e 6]. Além do desenvolvimento de
desafios num dado contexto, com questões de comunicação,
software crítico normalmente ser regulado por normas, de acordo
simulação, implementação e requisitos [10]. Prosvirin et al.
com a sua finalidade, a fim de garantir a segurança.
(2015) com questões relacionadas à finalidade dos modelos [20]. Especificamente, os custos de validação são altos, pois requerem
Paz et al. (2016) sobre o bom suporte de modelos para questões de validar o atendimento de requisitos e comprovar para o regulador
design, requisitos, rastreabilidade e implementação [21]. externo, que o sistema é seguro e ultraconfiável [4]. Isso ocorre
com sistemas de aeronaves, foco desse estudo. Nesse contexto há
Dessa forma, os resultados dessa análise da percepção de uma necessidade de demonstrar aos órgãos reguladores
especialistas com experiência prática na área podem contribuir (Autoridade Federal de Aviação), que a probabilidade de falha
para facilitar a tomada de decisão, quanto ao uso ou não do catastrófica de sistema, que afete a segurança de uma aeronave é
desenvolvimento baseado em modelos, na produção de software extremamente baixa [4].
aviônico para sistemas embarcados. Além de ajudar no
direcionamento de quais ferramentas utilizar, cuidados a serem 2.2 Software aviônico
tomados e melhor aproveitamento dessa adoção, em busca de O software aviônico faz parte dos sistemas críticos de segurança e
qualidade e de consistência desses sistemas críticos de segurança, se encontra num contexto único, fazendo parte de um sistema que
no qual o software aviônico pertence. se comunica com outros sistemas que, em conjunto, formam outro
sistema: a aeronave. Nesse caso, o sistema para o usuário final é
Além dessa introdução, este artigo possui mais 4 seções. A visto somente como um e cada uma de suas partes impacta de
segunda aborda a fundamentação teórica do estudo, enquanto a forma diferente na segurança.
seguinte apresenta a metodologia de pesquisa. As duas últimas
mostram, respectivamente, a análise dos resultados obtidos e as Segurança é uma propriedade geral dos sistemas e o software
considerações finais, contribuições, limitações e trabalhos futuros. pode influenciá-la. Para desenvolver software que melhore a
segurança de sistemas como o de aeronaves, o sistema no qual o
software operará deve ser compreendido, além do processo de
2 AVIAÇÃO, SOFTWARE E MODELAGEM segurança do sistema [5]. Desenvolver a expertise e competência
para construitr sistemas críticos de segurança requer tempo
2.1 Sistemas críticos de segurança
significativo, recursos e integridade [5]. Para a aviação civil, os
Os sistemas críticos de segurança são os sistemas nos quais é desenvolvedores são encorajados a usar Aerospace Recommended
essencial que a operação do sistema seja sempre segura, ou seja, Practice (ARP) 4754, intitulada como Guidelines for
que o sistema nunca deve causar danos às pessoas ou ao ambiente, Development of Civil Aircraft and Systems [5].
mesmo que ocorra uma falha [4]. Nem todos os sistemas que tem
essa característica possuem software. Em especial, os que não tem A ARP4754 divide o processo de desenvolvimento de sistemas
complexidade elevada e o comportamento esperado podem ser em seis fases [7]: planejamento, desenvolvimento de funções do
implementados no todo, via hardware. Por outro lado, quando o avião, alocação de funções do avião para sistemas,
software faz parte desse tipo de sistema, ele tem a designação de desenvolvimento da arquitetura do sistema, alocação de requisitos
software crítico de segurança [4]. do sistema para itens (incluindo alocação de software e hardware)
e implementação do sistema (incluindo desenvolvimento de
A confiança é um atributo essencial dos sistemas críticos e todos software e hardware). A ARP4754 elenca os seguintes processos
os aspectos da confiança podem ser importantes [4], a saber: (i) integrais [5]: avaliação de segurança, designação de nível de
Confiabilidade: é a probabilidade de operação livre de falhas confiança, captura de requisitos, validação de requisitos,
durante um tempo especificado, em um dado ambiente, para um
SBSI'19, May 20-24, 2019, Aracaju, Brazil Gustavo Giroletti Mottin and Josiane Brietzke Porto

verificação de implementação, gerenciamento de configuração, complicam a adoção sistêmica. Muitos estão relacionados ao uso
garantia de processos e coordenação com autoridades de modelos em larga escala, ao invés de focar no desenvolvimento
certificadoras. de componentes individuais [10].

O uso de software para sistemas aeroespaciais aumentou É fundamental coordenar a abordagem a ser usada para o
dramaticamente nas últimas décadas. Como resposta, a indústria desenvolvimento dos modelos entre times, caso contrário tendem
aeroespacial desenvolveu um padrão específico para prover a divergir sobre o uso [10]. Essa tendência leva à inconsistências
suporte à certificação de sistemas de segurança crítica [8], nos quesitos de qualidade, completude e consistência entre os
conhecido como DO-178 e está atualmente em sua quarta revisão, modelos. Para facilitar a coordenação e para que os times possam
denominada DO-178 revisão C ou DO-178C [5]. A DO-178 aplicar modelagem de forma homogênea, as organizações devem
fornece recomendações para produção de software em sistemas estabelecer uma visão consistente sobre os modelos, ou seja, quais
aeroespeciais e equipamentos, que executem sua função com um artefatos devem ser gerados, quão completos devem ser em cada
nível de confiança que cumpra com requisitos de fase do ciclo de desenvolvimento e quais métodos serão utilizados
aeronavegabilidade [9]. para avaliar a qualidade dos artefatos gerados [10].

O tamanho e a complexidade de software aviônico tendem a A engenharia baseada em modelos facilita validação e verificação
seguir crescendo ao passo que as funcionalidades seguirem sendo do design, porém, os modelos devem ser corretos por si só. Um
realocadas do hardware para o software. Para gerenciar o nível de modelo é somente tão válido quanto o design o qual tenta
complexidade, enquanto lidam com questões como o ambiente de descrever, frequentemente de forma abstrata. Mesmo que um
operação e requisitos de confiabilidade significativos, os design esteja bem representado num modelo, isso não
engenheiros de software precisam de abordagens, métodos, necessariamente faz o mesmo um modelo válido do sistema, uma
ferramentas e processos para melhorar a abstração, vez que o design pode não estar correto [10].
compreensibilidade, precisão e previsibilidade dos sistemas [10].
A maioria das ferramentas de modelagem possui geração
2.3 Desenvolvimento baseado em modelos automática de código fonte diretamente do modelo, mas a
O desenvolvimento de software baseado em modelos é um qualidade e eficiência desse pode ainda demandar certificação,
paradigma que coloca modelos como um artefato primário no particularmente, quando aplicado à sistemas críticos. Mesmo que
processo de desenvolvimento. Em contraste com os métodos abordagens para certificar geradores de código existam, grande
tradicionais, modelos não são usados somente para documentação, parte das organizações precisam utilizar o mesmo empenho para
mas servem como artefato central para implementação do sistema. verificar um código automaticamente gerado ou uma codificação
Modelos podem ser fonte para geração de código e executáveis manual. Como consequência, frequentemente, as empresas
através de um interpretador. Podem ser usados em diversas outras desistem de usar geração automática de código e implementam
tarefas, como para a comunicação com partes interessadas ou manualmente o que é especificado pelo modelo. Essa forma de
análises baseadas em modelos [11]. desenvolvimento requer gerenciamento minuscioso para mitigar
inconsistências entre o modelo e o código, aumentando
Desde sua concepção, o uso de modelos para desenvolvimento de probabilidade de que o modelo deixará de ser usado no ciclo de
software se difundiu nas principais indústrias e a aeroespacial não desenvolvimento, conforme o aumento de complexidade tanto do
foi exceção à regra [8]. Quando o padrão DO-178 foi atualizado modelo como do código [10].
para a revisão C, o DO-331 foi criado. Este apêndice trouxe novas
orientações, como atividades e objetivos que devem ser atingidos O uso de ferramentas de modelagem qualificadas que geram
para o desenvolvimento de software utilizando modelos [9]. código automaticamente e, em alguns casos, geram vetores de
testes é um paradigma recente para a comunidade de software
A partir da DO-331, um modelo pode ser visto como uma aviônico [5]. Considerando que o apêndice DO-331 da norma
abstração de um conjunto de aspectos de um sistema que pode ser DO-178C é relativamente recente pode-se inferir que ainda existe
usado para análise, verificação, simulação, geração de código e incerteza frente ao uso de modelos no desenvolvimento de
qualquer combinação destes [5]. Os modelos podem fazer parte da software aviônico, especialmente, tratando a geração de código
hierarquia de requisitos na forma de requisitos de sistema, automática.
requisitos de software e design de software [5].
As primeiras perguntas que normalmente surgem sobre código
Abordagens de baixo nível, centradas em código precisam ser fonte gerado, a partir de modelos são sobre sua eficiência. Pode-se
deixadas e práticas rigorosas de modelagem adotadas, para lidar decompor eficiência de código em duas áreas: performance de
com as crescentes demandas por sistemas modermos de software execução e consumo de memória. Os geradores automáticos
[10]. Mesmo que esforços tenham sido realizados para uso de produzem código que possui uma diferença de performance de 5 a
engenharia baseada em modelos para projetos recentes de 15%, para melhor ou pior, quando comparado ao código manual
software aeroespacial, ainda existem diversos desafios que equivalente [12].
Impact analysis of model-based development in avionics software
SBSI'19, May 20-24, 2019, Aracaju, Brazil
production

Considerando os avanços tecnológicos referentes à geração de


código e linguagens de programação leva-se a crer que este índice
já está mais avançado atualmente e tende somente a melhorar.
Entretanto, podem existir ocasiões críticas, em que código manual
pode ser necessário em partes específicas do modelo. Este fato em
muitos casos é usado como razão para rejeitar o desenvolvimento
baseado em modelos, mesmo que envolva uma parte muito
pequena do sistema como um todo [12].

3 METODOLOGIA DE PESQUISA

Esta pesquisa caracteriza-se pelo enfoque quantitativo e adota


survey como método de pesquisa [13]. Os levantamentos são
caracterizados pela interrogação direta dos participantes, de um
grupo significativo acerca do problema estudado para, em Figura 1: Nacionalidade dos participantes
seguida, mediante análise quantitativa, obterem-se as conclusões
correspondentes aos dados coletados [15]. Conforme Figura 2, a faixa etária dos participantes teve um
equilíbrio bem visto pelos pesquisadores, possuindo desde
Para a coleta de dados, este estudo utilizou um questionário iniciantes na carreira até profissionais experientes e com maior
eletrônico [15], com o objetivo de levantamento das percepções vivência. Essa distribuição é interessante, principalmente, porque
sobre a abordagem de desenvolvimento baseado em modelos, para o desenvolvimento baseado em modelos para software aviônico é
diversas propriedades e atividades da produção de software relativamente recente, como aponta Hilderman [17]. Dessa forma,
aviônico. Essas questões foram elencadas a partir da experiência a percepção dos respondentes pode contemplar um equilíbrio
dos autores e estudos anteriores relacionados [5 e 10], podendo ser satisfatório entre os menos e os mais experientes.
visualizadas em: https://goo.gl/m5Uku5.

A população alvo consistiu de engenheiros, que atuam ou atuaram


com desenvolvimento de software aviônico, em nível mundial. O
questionário foi distribuído diretamente via e-mail, para a rede de
contatos dos autores e em dois grupos de interesse de sistemas
aviônicos, na rede social LinkedIn: DO-178C For Avionics
Engineers & Managers, from DO-178B e Avionics Engineers,
caracterizando como uma amostra não probabilística, selecionada
por conveniência [16].

A coleta foi realizada de 14/06/2018 a 13/07/2018, obtendo 80


Figura 2: Faixa etária dos participantes
respostas das quais 79 foram consideradas válidas para fins de
análise, conforme critérios adotados na pesquisa. Esses dados
quantitativos foram analisados através de técnicas estatísticas, O tempo despendido no desenvolvimento de software aviônico
como a análise de frequência de respostas e medidas de influencia diretamente nas percepções dos respondentes quanto ao
localização e tendência central (moda e mediana) [14]. uso do desenvolvimento baseado em modelos. Nesta pesquisa, os
anos de experiência foram definidos em intervalos de anos,
4 ANÁLISE DE RESULTADOS classificando os participantes, respectivamente, como pouco
experientes, experientes, muito experientes e extremamente
4.1 Perfil do respondente experientes, conforme legenda da Figura 3. Os resultados
As questões sociodemográficas do questionário incluíram critérios demonstraram que 54 dos participantes tem 6 ou mais anos de
de nacionalidade, faixa etária, anos de experiência e número de experiência prática, isto é, a maioria é muito ou extremamente
projetos de software aviônico. Esses dados agregaram valor à experiente. Obter a opinião de especialistas tão habilitados na área
pesquisa, uma vez que identificaram informações fundamentais do aumenta a credibilidade da pesquisa, uma vez que estas são
perfil dos respondentes e permitiram avaliar as respostas em fundamentadas através de suas vivências. Por outro lado, obter a
diferentes perspectivas. O perfil dos respondentes abrangeu pelo visão de respondentes com menos tempo na área, também tem
menos 13 países diferentes, porém existe a possibilidade de uma importância para demonstrar as percepções de quem ainda não
diversidade ainda maior, uma vez que 14 respondentes do total de possui vícios quanto ao desenvolvimento de software aviônico,
79 não especificaram a nacionalidade. A Figura 1 mostra a relação permitindo uma análise comparativa.
de participantes por país.
SBSI'19, May 20-24, 2019, Aracaju, Brazil Gustavo Giroletti Mottin and Josiane Brietzke Porto

Figura 5: Causas pré-definidas para desistência


Figura 3: Tempo de experiência dos participantes
No Quadro 1 são mostradas na íntegra as causas compartilhadas
O desenvolvimento de sistemas aviônicos possui quatro principais pelos participantes. Percebe-se uma contribuição considerável
disciplinas (sistemas, software, hardware e segurança) e, uma vez dado o número de outros motivos mencionados como relevantes
que essa pesquisa tem enfoque no uso de desenvolvimento para a desistência do desenvolvimento baseado em modelos.
baseado em modelos para produção de software, uma das questões
elencou com quais das disciplinas os participantes já trabalharam, Quadro 1: Outras causas para desistência de modelos
visando identificar se possuíam experiência na área desejada. Na 1. Custo de CPU e memória, além de dificultar debugging
Figura 4, os dados apontaram que 75 dos 79 respondentes 2. O código gerado consumia muitos recursos, o que não é bom quando
possuíam experiência com a área de software, o que representa estes são limitados. Preferência por colocar foco apenas num ambiente
94,9% do total, considerando uma questão de múltipla escolha. de desenvolvimento e fazer o mesmo o melhor possível ao invés de ter
que dividir os recursos humanos para focar em ambientes diferentes. O
ganho de utilizar o desenvolvimento baseado em modelos não é maior
que o seu custo.
3. Preferências do time e natureza do software
4. Custo inicial para criar os modelos muito elevados
5. Alguns requisitos do cliente não se enquadravam para a utilização de
modelo
6. Código fonte gerado excessivamente grande e introdução da DO-331
7. Ineficiente e caro
8. Ônus de qualificar a ferramenta usada
9. Modelos consumiam muito tempo e tinham muitos bugs. As
Figura 4: Disciplinas atuadas pelos participantes ferramentas eram difíceis de utilizar e com diversos problemas
10. Modelos eram vistos como perda de tempo, projeto preferiu focar
na escrita do código somente
Nessa pesquisa foram solicitados quantos projetos de software 11. Necessita trabalho excessivo que não pode ser realizado com
aviônico os respondentes participaram e em quantos destes houve perfeição.
a aplicação do desenvolvimento baseado em modelos. 12. Processo utilizando modelos levou aproximadamente 3 vezes mais
Questionou-se também em quantos dos projetos participados tempo para alcançar em torno de um quarto das funcionalidades
comparado ao processo tradicional de codificação
ocorreu a desistência de uso dessa abordagem. Os dados obtidos
foram relacionados a fim de levantar, em média, quantos projetos
de software aviônico utilizaram o desenvolvimento baseado em Modelos podem ter variadas aplicações no desenvolvimento de
modelos. O resultado demonstrou que aproximadamente a cada 2 software aviônico e inclusive terem relação, funcionando como
entrada e saída um para o outro. O mercado oferece ferramentas
dos projetos mencionados 1 utilizou modelagem. Uma relação
para a criação de modelos, benéficas ou prejudiciais, dependendo
similar foi realizada para a taxa de desistência, que verificou-se como e com qual finalidade são empregadas. A Figura 6 apresenta
em torno de 1 desistência a cada 4 projetos. os propósitos em que já usaram modelos e outras foram relatadas
como para fins de análise operacional, requisitos e testes.
4.2 Análise do Impacto
A pesquisa teve o objetivo de identificar as razões pelas quais os Avaliando as finalidades na Figura 6 percebe-se que os modelos,
projetos deixaram de empregar o desenvolvimento baseado em na maioria dos casos, são utilizados para “Implementação” nos
modelos. Uma vez que nem todos apontaram desistência da projetos de software aviônico. Os modelos podem contribuir
abordagem nos projetos, a quantidade de respostas recebidas e substancialmente para a implementação, fazendo parte da
analisadas para essa pergunta foi reduzida, num total de 33. definição de questões fundamentais no desenvolvimento de
Algumas causas prováveis foram listadas como opção de resposta software como arquitetura, estruturas de dados, algoritmos, fluxo
de controle e fluxo de dados. Em vários casos, dependendo das
na questão, mas os respondentes também mencionaram outros
ferramentas utilizadas para modelagem, existe a possibilidade de
motivos. A Figura 5 demonstra os resultados para as causas pré- geração automática de código, a partir das definições
definidas. mencionadas, o que torna os modelos ainda mais valiosos pela
garantia de que o código fonte é compatível com os modelos.
Impact analysis of model-based development in avionics software
SBSI'19, May 20-24, 2019, Aracaju, Brazil
production

mediana iguais ou superiores a 8. Esse resultado converge com o


que foi apresentado na Figura 6, em relação às finalidades.

Propriedade/ Atividade Moda Mediana


Design 10 8
Prototipação 10 8
Qualidade de software 9 7
Simulação 8 8
Figura 6: Finalidade dos modelos Documentação 8 8
Implementação 8 8
Outras finalidades em destaque na Figura 6 são “Documentação”, Testes 8 8
“Simulação” e “Prototipação”. Documentação, especialmente, no Comunicação 8 7
desenvolvimento de software aviônico é fundamental uma vez que Revisões 8 7
estes são artefatos de software verificados pelas autoridades, para Rastreabilidade 8 7
declaração e operação do produto. Os modelos nesse caso podem Manutenção 8 7
contribuir como documentação de design e até mesmo requisitos
Legibilidade do código 8 5
de baixo nível, dependendo de processos e planos de
desenvolvimento seguidos [5]. Prototipação é bem vista na área de Identificação de requisitos 7 6
software aviônico, principalmente, para que as ideias de como Integração 5 7
implementar os requisitos do sistema sejam experimentadas e Análise estática 5 6
validadas sem necessitar grande esforço. Ao realizar essa etapa, Tempo de aprendizagem para novos membros 5 6
desenvolvedores amadurecem muitas vezes design, algoritmos e Análise dinâmica 5 5
soluções propostas, ao perceberem detalhes que não seriam vistos
Análise WCET 5 5
sem prototipar. Por sua vez, simulação permite aos
desenvolvedores identificar erros cometidos cedo, evitando um Performance do código 5 5
esforço maior e desnecessário para encontrá-los depois, nos testes. Tabela 1: Impacto do desenvolvimento baseado em modelos

Dentre todas as ferramentas utilizadas pelos participantes na Um participante canadense com mais de 20 anos de experiência
produção de software aviônico se destacam a Simulink (46) e a na área entrou em contato, para conversação sobre as questões da
SCADE (35). Possuem propostas similares, permitindo aos pesquisa. Este julgou que, para poder responder as questões de
usuários prototipação e criação de modelos e, a partir desses, impacto das atividades e propriedades, seria necessário saber a
simulação do comportamento do mesmo, além de gerar código natureza do software que está sendo desenvolvido, bem como o
pronto para integração no sistema. Uma das vantagens tamanho do projeto uma vez que estes influenciam diretamente.
importantes de modelos executáveis (simulação) é que fornecem Este também mencionou acreditar no uso de metodologias que se
uma forma de experimentar cedo o sistema, que está sendo apliquem ao problema a ser resolvido, mas também pesando que
desenvolvido e de aprender sobre o mesmo [12]. A
muitos fatores devem ser considerados para tomar a decisão de
implementação, prototipação e simulação são as maiores
finalidades dos modelos, conforme Figura 6, o que indica a busca utilizar algo ou não. Então, esses fatores mencionados pelo
pela maior abrangência possível dentro das etapas de especialista canadense podem ser considerados na tomada de
desenvolvimento, quando se trata de ferramentas de modelagem. decisão sobre a adoção de desenvolvimento baseado em modelos.

Em relação a como o uso do desenvolvimento baseado em Uma das variáveis que poderia ter opiniões variadas refere-se ao
modelos impacta propriedades e atividades num projeto de tempo de aprendizagem para novos membros, na Tabela 1. Essa
software aviônico adotou-se uma escala de 0 a 10, onde 0 propriedade poderia ter obtido uma moda maior, considerando
significava que a atividade ou propriedade em questão piora ao novos membros com facilidade e experiência com modelos,
usar o desenvolvimento baseado em modelos, enquanto 10 fazendo com que estes se insiram no projeto e entendam seus
significava que melhora. As respostas estão na Tabela 1. detalhes mais rapidamente. Pelo lado contrário, poderíamos ter
uma moda menor para desenvolvedores que tem dificuldade ou
Em geral, os resultados na Tabela 1 mostram que na percepção nenhuma experiência com modelos, o que teria o efeito contrário
dos respondentes da amostra dessa pesquisa, a maioria das do primeiro caso. O valor de moda igual 5 obtido como resultado
atividades e propriedades questionadas são impactadas na amostra da pesquisa pode indicar que os respondentes pesaram
beneficamente pela utilização do desenvolvimento baseado em os dois cenários e, como ambos se equivalem de certa forma,
modelos e algumas poucas possuem um impacto neutro, mantiveram uma resposta neutra. Outra forma de visualizar isto é
considerando o valor de moda. É possível destacar dentre elas, as que, dada suas experiências, o uso de modelos realmente não afeta
atividades de design, simulação, prototipação, documentação, o tempo de aprendizagem, independente dos membros em
implementação e testes, uma vez que estas obtiveram moda e questão. De acordo com a Teoria Geral de Sistemas [18] e a
experiência dos autores, entretanto, o uso de modelos em sistemas
SBSI'19, May 20-24, 2019, Aracaju, Brazil Gustavo Giroletti Mottin and Josiane Brietzke Porto

complexos pode reduzir o tempo de aprendizagem, uma vez que Paciência; Conhecimento da área; Tempo e financiamento
este permite um entendimento mais fácil do design e arquitetura suficientes; Revisão e atualização de requisitos.
do software.
Total % de
Fator Ocorrências
Dentre as variáveis com o valor de moda mais baixo, algumas respostas ocorrência
estão relacionadas ao código, como a performance. Nesse caso é Requisitos maduros 59 74,70%
necessário considerar alguns fatores que podem influenciar este, Processo bem definido 57 72,20%
como a utilização ou não de geração de código, a partir dos Engenheiros experientes 47 59,50%
Boa comunicação 46 58,20%
modelos. As ferramentas de geração podem ou não ter certificados
Uso de ferramentas 79
de qualificação, ou seja, geram uma saída que precisa de pouca ou 36 45,60%
adequadas
nenhuma verificação dependendo de sua aplicação. A Seguir os planos
performance do código pode ser diretamente influenciada para 25 31,60%
estabelecidos
atingir estes padrões de qualidade, uma vez que podem garantir a Reuso 20 25,30%
não ocorrência de determinadas exceções como ponteiros nulos, Tabela 2: Principais fatores no sucesso de projetos aviônicos
variáveis não inicializadas, entre outras. De qualquer forma,
avalia-se fundamental estudar como o gerador produz código, a Na Tabela 2 é possível identificar o fato de que aproximadamente
partir de suas diretivas de modelagem para aperfeiçoar a forma de 3 a cada 4 respondentes consideraram que ter requisitos maduros e
uso da ferramenta, visando obter a melhor performance possível. um processo de desenvolvimento bem definido como fatores
determinantes para o sucesso de projetos aviônicos. O primeiro é
Uma vez que a geração de código normalmente toma como considerado fundamental para que não sejam necessárias
referência as definições feitas no modelo e aplica padrões de mudanças e adaptações bruscas ao decorrer da implementação ou
nomenclatura próprios, a saída do mesmo provavelmente se até mesmo da verificação. Dependendo da quantidade de
caracterizará como de difícil leitura. Isto pode explicar a mudanças dos requistos e respectivas funcionalidades pode ser
ocorrência de uma moda de valor 8 na variável de legibilidade de necessário retrabalhar o design para obter a solução mais
código, enquanto, a mediana é igual a 5. Nesse caso, o código otimizada. Porém, muitas vezes isto acaba não sendo possível por
pode ser muito mais legível quando o mesmo é escrito diversos motivos, como a escassez de tempo. Nesses casos,
manualmente, a partir do modelo, mas considerando um código desenvolvedores finalmente são obrigados a encontrar uma
gerado, isso pode não ser verdade. solução alternativa e que pode não se enquadrar como deveria no
design e na arquitetura estabelecida. Existe também a
Logicamente, nos casos em que não há uso de um gerador possibilidade de que mais mudanças sejam realizadas nos
automático de código, a legibilidade e performance do código requisitos, afetando exatamente o que já foi implementado de
fonte dependem diretamente das capacidades de programação do forma alternativa, tornando a situação mais crítica ainda. Enfim,
desenvolvedor. Se o modelo existir, este determinará fatores requisitos são a base fundamental de qualquer projeto em
importantes para a implementação, como uma arquitetura que qualquer domínio de aplicação e a utilização destes quando não
deve ser seguida, um fluxo de controle ou fluxo dados que estão maduros podem ser catastróficos.
deverão ser respeitados. Cabe também a quem implementa o que
está especificado possuir um olhar crítico para identificar Outro fator para o sucesso dos projetos aviônicos é a existência de
oportunidades de melhoria. um processo de desenvolvimento bem definido. A criação de um
sistema aviônico pode ser feito de inúmeras maneiras e até não
Neste sentido há também outro fator avaliado pela pesquisa que é seguir processos, mas este só entrará em operação, após ser
considerado como um dos benefícios dos modelos por aprovado em auditorias realizadas pelas entidades responsáveis. O
Streekmann [11] e Rierson [5], considerado por muitos como uma processo bem definido permite a criação do sistema e geração dos
das chaves para o sucesso de projetos aviônicos: a comunicação. artefatos necessários para evidenciar que o mesmo foi
Este fato pode ser visualizado claramente nos dados apresentados desenvolvido conforme planejado, atendendo a todas as
na Tabela 2, que possui as respostas obtidas sobre os principais especificações de segurança necessárias. Este também traz clareza
fatores para o sucesso de projetos de software aviônico. Além ao desenvolvedor sobre quais os passos que são realizados durante
disso, a Tabela 1 demonstra a comunicação com moda 8, o que o projeto, mencionando entradas necessárias e saídas esperadas.
reforça estas percepções. Caso o processo não esteja bem definido, há a possibilidade de
que uma etapa seja realizada parcialmente ou de forma
Os fatores mencionados na Tabela 2 foram pré-determinados para inesperada, gerando problemas nas etapas subsequentes e
escolha dos participantes na questão, porém havia a opção de inevitavelmente elevando o tempo e custo de desenvolvimento.
descrever outros fatores. Os respondentes definiram também
como chave para o sucesso: Rápida adaptação à mudanças; 5 CONSIDERAÇÕES FINAIS
Quantidade baixa de burocracia; Arquitetura bem definida; Testes
bem realizados; Automatizar processos para atingir objetivos; A técnica de desenvolvimento baseado em modelos pode ser
usada em diversas partes do processo de desenvolvimento de
Impact analysis of model-based development in avionics software
SBSI'19, May 20-24, 2019, Aracaju, Brazil
production

software aviônico, conforme a DO-178C [9] tais como requisitos, possibilidade também de realização de um estudo exploratório
design, implementação, documentação, testes e análises. A sobre possíveis melhorias na DO-331 para facilitar aplicação do
aplicação em cada uma destas tem suas particularidades e trazem desenvolvimento baseado em modelos, além de um estudo
impactos diferentes, cabendo a cada projeto e organização definir comparativo sobre possíveis revisões da DO-331 para demonstrar
como e se utilizarão a metodologia, buscando os melhores a evolução da aplicação dos modelos em software aviônico.
benefícios que atendam os processos definidos para o projeto em
questão. REFERENCES
[1] IEEE. 1990. Ieee standard glossary of software engineering terminology. IEEE
Este artigo demonstrou os resultados da pesquisa realizada sobre Std 610.12-1990, pages 1–84
os impactos do desenvolvimento baseado em modelos para a [2] Zoughbi, G., Briand, L., and Labiche, Y. 2011. Modeling safety and
airworthiness (rtca do-178b) information: conceptual model and uml profile.
produção de software aviônico, a partir das diferentes percepções Software & Systems Modeling, 10(3):337–367.
e experiências de profissionais que já trabalharam com esta [3] Santamaría, D., Alarcón, F., Jiménez, A., Viguria, A., Béjar, M., and Ollero, A.
abordagem. Para tanto, o questionário foi elaborado com base no 2012. Model-based design, development and validation for uas critical
referencial teórico e vivências dos autores na área. software. Journal of Intelligent & Robotic Systems, 65(1):103–114.
[4] Sommerville, I. 2011. Engenharia de Software - 9a edição. Pearson.
[5] Rierson, L. 2013. Developing Safety-Critical Software: A Practical Guide for
Com os resultados obtidos na pesquisa pode-se considerar que, Aviation Software and DO-178C Compliance. CRC Press.
geralmente, a utilização do desenvolvimento baseado em modelos [6] Sommerville, I. 2003. Engenharia de Software - 6a edição. Pearson
[7] SAE. 2010. Guidelines for development of civil aircraft and systems.
impacta de forma benéfica a produção de software aviônico, https://www.sae.org/standards/content/arp4754a/.
aumentando a qualidade deste e trazendo ganhos especialmente [8] Sarkis, A. and Dias, L. A. V. 2014. A set of rules for production of design
em questões como design e prototipação. Pode-se deduzir também models compliant with standards do-178c and do-331. In 2014 11th
que a aplicação da metodologia depende diretamente de alguns International Conference on Information Technology: New Generations, pages
27–32.
fatores como a natureza do software em desenvolvimento, [9] RTCA. 2017. Standards. https://www.rtca.org/content/list-availabledocuments.
finalidades dos modelos, processo utilizado e a experiência dos [10] Pettit, R. G. and Mezcciani, N. 2013. Highlighting the challenges of model-
desenvolvedores com modelagem. Em outras palavras, deve-se based engineering for spaceflight software systems. In 2013 5th International
Workshop on Modeling in Software Engineering (MiSE), pages 51–54.
aplicar a abordagem para as atividades pertinentes em cada caso, [11] Streekmann, N. 2011. Model-Driven Software Development, pages 55–69.
considerando fatores como estes mencionados a fim de que os Vieweg+Teubner Verlag, Wiesbaden.
modelos sejam positivos para o projeto. [12] Selic, B. 2003. The pragmatics of model-driven development. IEEE Software,
20(5):19–25
[13] Hernandez Sampieiri, R., Collado, C. F., and Lucio, M. d. P. B. 2013.
A utilização de modelagem não é uma novidade para a área de Metodologia de pesquisa. Porto Alegre AMGH
software em geral, mas pode ser considerada relativamente nova [14] Silva, L. V. d., Saccol, A. Z., Azevedo, D., and Machado, L. 2012. Metodologia
no âmbito de software aeroespacial, visto que foi recentemente de pesquisa em administração : uma abordagem prática. EAD. São Leopoldo :
Ed. UNISINOS, 2012.
formalizada através da publicação da DO-331 [9]. A modelagem [15] Gil, A. C. 2017. Como elaborar projetos de pesquisa. Rio de Janeiro Atlas.
de software ainda pode evoluir muito e, da mesma forma com que [16] Azevedo, D., Silva, L. V. d., and Machado, L. 2011. Métodos e procedimentos
ocorreu com a DO-178, é provável que novas revisões da DO-331 de pesquisa : (do projeto ao relatório final). EAD. São Leopoldo : Ed.
sejam lançadas a fim de aprimorar os objetivos e esclarecer as UNISINOS, 2011.
[17] Hilderman, V. 2018. Do-331 model based development for engineers and
suas finalidades nos projetos. managers. Technical report, Afuzion.
[18] Bertalanffy, Ludwig von 1968. General System Theory: Foundations,
A maioria dos projetos de software aviônico possuem questões Development, Applications. New York: George Braziller.
sigilosas, seja por proteção à propriedade intelectual das empresas [19] Liebel, G., Marko, N., Tichy, M., Leitner, A. and Hansson, J. 2016. Model-
based engineering in the embedded systems domain: an industrial survey on the
ou por restrições dos clientes por exemplo, que não permitem o state-of-practice. Software & Systems Modeling, 17(1):91–113.
compartilhamento de muitas informações para estudos como o [20] Prosvirin, D. A. and Kharchenko, V. P. 2015. Model-based solution and
realizado neste artigo. Essa realidade é considerada uma limitação software engineering environment for UAV critical onboard applications. In:
2015 IEEE International Conference Actual Problems of Unmanned Aerial
e afetou diretamente a elaboração do questionário, Vehicles Developments (APUAVD), Kiev, Ukraine, pages 312-315.
especificamente, nessa pesquisa. As questões aplicadas trouxeram [21] Paz, A. and Boussaidi, G. El. 2016. On the exploration of model-based support
percepções generalistas de profissionais, que já trabalharam com for DO-178C-Compliant Avionics Software Development and Certification. In:
2016 IEEE International Symposium on Software Reliability Engineering
software aviônico e estas são influenciadas pelas experiências de
Workshops (ISSREW), Ottawa, ON, Canada, pages 229-236.
cada um, principalmente, considerando fatores como o processo
de desenvolvimento usado, natureza do projeto e quais
ferramentas e como foram aplicadas. Variáveis como estas
dificultaram a análise dos resultados, demandando uma visão mais
ampla frente os aspectos que foram considerados mais relevantes.

Tendo em vista a possibilidade de expansão e atualização sobre os


modelos, bem como as experiências que irão surgir a partir das
novas realidades, sugere-se como continuidade para este trabalho
estudos em profundidade sobre a aplicação dos modelos em cada
uma das finalidades. Como alternativa de estudo, pode-se realizar
a comparação dos problemas e soluções encontrados para o
desenvolvimento de software aviônico com outros tipos de
software para sistemas embarcados de forma geral. Há a

Você também pode gostar