<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Программный комплекс проектирования и анализа программно-аппаратных систем на основе архитектурных моделей1</article-title>
      </title-group>
      <fpage>202</fpage>
      <lpage>208</lpage>
      <abstract>
        <p>The paper examines the functional requirements and the basic architecture of the tools supporting model-oriented techniques for design of safety critical software/hardware systems. The best practices of development such systems are described in international standards like ARP-4754, ARP-4761, and DO-178. The proposed approach is built around architecture models expressed in AADL language and its extensions. Аннотация. В статье рассматриваются вопросы функциональных требований к инструментальным средствам поддержки моделирования систем и вопрос выбора базовой архитектуры набора инструментов для поддержки моделе-ориентированных техник разработки программноаппаратных систем ответственного назначения. Совокупность задач, которые должны решаться при помощи этих методов и инструментов, уже зафиксированы в ряде международных стандартов, таких как ARP-4754, ARP-4761 и DO-178. В качестве языка описания архитектурных моделей систем используется язык AADL. Ключевые слова: модели программ, встроенные системы, системы ответственного назначения, AADL, стандартизация, сертификация.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Создание программно-аппаратных систем ответственного назначения,
примерами которых являются, например, системы управления летательными
аппаратами или энергетическими установками, требует развитых методов и
инструментальных средств, поддерживающих все основные фазы процесса
проектирования, разработки и эксплуатации таких систем. Общие подходы и отдельные
средства поддержки разработки и анализа систем уже достигли высокого
уровня зрелости. Совокупность задач, которые должны решаться при помощи этих
методов и инструментов, уже зафиксированы в ряде международных
стандартов, таких как ARP-4754 [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], ARP-4761 [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] и DO-178 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>По мере роста сложности ответственности разрабатываемых систем всё яснее
осознаётся необходимость применения средств всесторонней автоматизации их
разработки и анализа с использованием их моделей, в том числе формальных
моделей и формальных спецификаций интерфейсов.</p>
      <p>Однако практика использования таких методов и инструментов существенно
отстает от возможностей, которые потенциально открываются перед
пользователями этих методов, особенно это заметно в практике отечественных
компаний, ведущих разработки в области создания программно-аппаратных систем
ответственного назначения. Одной из причин, сдерживающих освоение новых
техник разработки, является серьезное отставание средств поддержки
проектирования, моделирования и анализа программно-аппаратных систем и их
моделей, особенно, если сравнивать их возможности с возможностями современных
средств поддержки программирования систем обычного назначения (без
требований к надежности и безопасности повышенного уровня).</p>
      <p>В рамках данной статьи авторы останавливаются на вопросах выбора
правильного позиционирования методов и средств проектирования и на вопросах
выбора базовой архитектуры инструментального комплекса.</p>
      <p>В целом рассматриваемый подход следует отнести к широкому набору
методов и средств разработки программно-аппаратных систем на основе моделей. В
литературе известно несколько методологий/лозунгов, которые, в принципе,
достаточно близки по духу, это MDA (Model Driven Architecture), MDD (Model
Driven Design/Development), MDE (Model Driven Engineering) и другие. Эти
методологии активно развивались и продвигались рядом крупных игроков на
ИТрынке, начиная с 90-х годов XX века. Однако сейчас, по прошествии более 20
лет, можно констатировать, что реального широкого использования они не
нашли.</p>
      <p>Объяснением "холодного" отношения программной индустрии к
моделеориентированным техникам разработки может служить то, что они не дают
заметного и быстрого экономического выигрыша, и при этом поднимают ряд
непростых проблем, связанных со сложностью внедрения, масштабируемостью,
с поддержкой процесса разработки. Вместе с тем, есть области производства
программ и программно-аппаратных комплексов, где востребованность
моделеориентированных техник есть – это разработка комплексов управления
ответственными системами, где требуется сертификация, регламенты которой могут
быть выполнены с использованием моделе-ориентированных техник.</p>
      <p>Например, в области гражданской авионики базовыми стандартами в этой
области являются:
• ARP4754 “Условия сертификации для высоко интегрированных или сложных
авиационных систем”, регламентирующий процессы проектирования и
разработки комплексов бортового оборудования (КБО) и его
программноаппаратных подсистем;
• ARP4761 “Правила и методы выполнения процесса оценки безопасности
бортовых гражданских систем и оборудования”, регламентирующий цели и
задачи проведения анализа КБО с точки зрения безопасности;
• DO-178 и его последняя версия DO-178C “Требования к программному
обеспечению бортовой аппаратуры и систем при сертификации авиационной
техники”, регламентирующий процессы разработки как функционального, так и
системного программного обеспечения КБО.
Производными по отношению к DO-178 являются стандарты для других
отраслей техники, например железные дороги (IEC 62279), ядерная энергетика (IEC
61513), автомобилестроение (ISO 26262), а также региональные стандарты,
например европейские (ED-12B/C) или российские (КТ-178B/C).</p>
      <p>Заметим, что требования стандартов адресованы в первую очередь не к
программному или программно-аппаратному изделию, к его качеству, а к процессу
жизненного цикла создания и эксплуатации изделия. При этом важно понимать,
что при такой постановке вопроса предъявлять свидетельства (evidences),
подтверждающие квалификационные требования исполнителя нужно, не в конце
проекта, а начале и в ходе проекта, что непривычно для большинства
компанийразработчиков ПО. Как следствие, у компаний, имеющих опыт в разработке
ответственных систем заданного вида, возникает конкурентное преимущество –
они еще на старте проекта или даже до старта в состоянии предъявить
свидетельства, объективно подтверждающие их готовность и состоятельность в роли
исполнителя. Хотя разработка и поддержка документации, определяемой
упомянутыми выше стандартами, требует существенных затрат, развертывание
соответствующих процессов вносит существенный вклад в качество процессов,
тем самым снижает риски, которые могут реализоваться в ходе работ и, в
конечном счете, растет надежность финального продукта. В частности, наличие
подробной, четко структурированной документации по требованиям и по
проекту ПО упрощает введение в проект новых разработчиков и упрощает общение
специалистов разных областей, так или иначе вовлеченных в проект.</p>
      <p>
        У российской промышленности опыта освоения процессов сертификации,
которые опираются на перечисленные стандарты пока мало. По этой причине и
случаев реального внедрения моделе-ориентированных методов и
поддерживающих их инструментов буквально единицы. Из зарубежных инструментов,
которые поддерживают MDD, в России, вероятно, самым известным является
SCADE компании ANSYS. В дополнение к известному на рынке инструменту
разработки управляющего программного обеспечения компания эта компания
стартовала разработку моделе-ориентированного комплекса автоматизации
проектирования и анализа КБО SCADE SYSTEM. В ИСП РАН при поддержке
ГосНИИАС уже несколько лет идет разработка комплекса средств для создания
архитектурных моделей на основе языка AADL [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ], который получил
название MASIW (Modular Avionics System Integrator Workplace) [
        <xref ref-type="bibr" rid="ref6 ref7 ref8">6-9</xref>
        ]. Данная статья
базируется на опыте разработки этого инструмента.
      </p>
      <p>Использование архитектурных моделей при разработке
программноаппаратных комплексов позволяет решать различные задачи, но в основном это
задачи поддержки работы архитекторов и интеграторов авионики. Инструмент
MASIW предназначен именно для этих целей, он является рабочим местом
архитектора и интегратора КБО. В число задач этих специалистов входит
уточнение и согласование требований с разработчиками программного и аппаратного
обеспечения и собственно проектирование программно-аппаратной платформы
исходя из потребностей функциональных приложений в аппаратных ресурсах, в
том числе:
• распределение функциональных приложений по вычислительными модулям
с учетом потребностей приложений (количество процессорного времени,
распределение процессорного времени между строго периодическими
приложениями, объем памяти ОЗУ/ПЗУ, пропускная способность сетевых
интерфейсов и т. п.);
• определение состава сетевых компонентов (топологии сети) с учетом
требований надежности, согласованности интерфейсов, времени доставки
сообщений от отправителя к получателю и т. п.
• проверка разрабатываемого комплекса бортового оборудования (КБО) на
соответствие требованиям, изложенных в проектной документации к
самолету, КБО и его отдельным компонентам;
o анализ структуры программно-аппаратного комплекса – достаточности
аппаратных ресурсов, согласованности интерфейсов и т. п.;
o анализ характеристик передачи данных в сети AFDX – времени
доставки сообщений от отправителя к получателю, глубины очередей
передающих портов и т. п.;
o симуляцию модели программно-аппаратного комплекса с генерацией
пользовательских отчётов по результатам работы симулятора, в т.ч.
совместную симуляцию работы прикладных разделов под управлением
ОС РВ в эмуляторе Qemu и универсального симулятора AADL моделей;
• построение дерева неисправностей и численный анализ дерева
неисправностей для определения вероятности отказного события верхнего уровня;
• анализ видов и последствий отказов на основе архитектурной модели
комплекса бортового оборудования, включая построение таблицы видов и
последствий отказов;
• подготовка конфигурационных таблиц для компонентов
программноаппаратной платформы.</p>
      <p>Создание, редактирование и управление моделями, а также
конфигурационных данных реализованы с использованием широко распространенных
расширений среды Eclipse, такими как Eclipse Modeling Framework, Graphical Editing
Framework, Eclipse Team Providing, SVN Team Provider, GIT Team Provider.</p>
      <p>Рис. 1. Состав инструментального комплекса MASIW
Набор инструментов MASIW построен на основе модульной архитектуры и в
связи с этим функционал MASIW может быть расширен – сторонние
разработчики путём создания собственных модулей могут расширить функционал
инструмента в соответствии с потребностями.</p>
      <p>Подход, использованный при создании системы MASIW основывается на
использовании модели разрабатываемого КБО как основы, вокруг которой
строится функциональность разнообразных дополнений, отвечающих за решение
задач редактирования, визуализации, синтеза, анализа, трансформации и т. д.
Эти дополнения либо вносят изменения в модель КБО, развитие которой при
этом контролируется средствами управления версиями и конфигурациями, либо
используют модель как источник данных и генерируют внешние артефакты
такие как отчеты о результатах анализов или конфигурационные таблицы
пригодные для загрузки в аппаратные компоненты КБО или их эмуляторы.</p>
      <p>В целом архитектуру MASIW можно рассматривать как комплекс,
интегрирующий разнообразные артефакты и структуры данных. В первую очередь в
перечень этих структур входят основные:
• тестовое и графическое (внутреннее) представление моделей
программноаппаратных систем, включая статические атрибуты компонентов этих
моделей;
• текстовое (гипертекстовое) представление требований (с возможностью
построения иерархических структур требований);
и дополнительные:
• текстовое представление статических артефакторов верификации и
тестирования (спецификации данных, операций, инвариантов, утверждений
(assertions)), задач тестирования/верификации, тестовых сценариев и планов
тестирования;
• текстовое и табличное представление динамических артефактов: трасс
тестирования/верификации, отчетов о результатах тестирования/верификации,
отчетов о покрытии, отчетов о статусе выполнения задач, сценариев/планов
тестирования/верификации.</p>
      <p>Близким примером интеграции разнородных инструментов является
архитектура конфигурируемых анализаторов программ CPAchecker [10], которая
позволяет соединять в единый комплекс инструменты верификации
программного кода от различных поставщиков и использовать их совместно или даже в
параллельно-конкурентном стиле, с тем, чтобы остановиться на лучшем из
полученных результатов или для того, чтобы построить решение задачи из
комбинации различных решений, которые получили различные
программыверификаторы. Этот опыт весьма поучителен, хотя пока он не был опробован
для интеграции существенно разных по своим задачам компонентов
инструментальных систем.
2</p>
      <p>Состояние работ в предметной области
Тема создания базовой архитектуры комплекса инструментов, включающего
поддержку работы с моделями, обсуждается достаточно широко как в научной
печати, так и на научных конференциях. Основными площадками таких
обсуждений являются международные конференции MODELSWARD, MODELS,
ECMFA; научный журнал - SoSyM - Journal on Software &amp; System Modeling.</p>
      <p>В качестве основы для интеграции инструментов используются либо
платформы типа Eclipse, либо XML технологии. Общим недостатком имеющихся
базовых архитектур является сложность интеграции разнородных инструментов
и структур данных, а также невозможность поддержки моделей и трасс
моделирования/мониторинга большого размера.</p>
      <p>
        Среди исследовательских и коммерческих инструментов схожего
назначения необходимо выделить средства проектирования и интеграции модульной
авионики крупных авиастроительных корпораций, таких как Airbus и Boeing, а
также средства моделирования программно-аппаратных систем общего
назначения IBM Rational Rhapsody, Sparx Systems Enterprise Architect, SCADE System,
TOPCASED, OSATE [
        <xref ref-type="bibr" rid="ref9">11</xref>
        ], Thales Capella. Актуальную информацию об
AADLинструментах можно найти на страницах Open AADL [
        <xref ref-type="bibr" rid="ref10">12</xref>
        ]. Из российских
научно-технических центров, которые активно занимаются данной тематикой, в
первую очередь нужно назвать ГосНИИАС. Более подробный обзор можно
найти в [9].
3
      </p>
      <p>Заключение
В статье рассмотрены основные задачи, которые должны решаться при
разработке ответственных программно-аппаратных систем с использованием
архитектурных моделей. Описываются проектные решения, положенные в основу
комплекса средств поддержки архитектурных моделей MASIW, нацеленные на
простоту развития комплекса и интеграции его с новыми инструментами
конструирования и анализа моделей и реализация КБО.
Литература</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. ARP4754 “
          <article-title>Условия сертификации для высоко интегрированных или сложных авиа- ционных систем”.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. ARP4761 “
          <article-title>Правила и методы выполнения процесса оценки безопасности бортовых гражданских систем и оборудования”.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. RTCA/DO-178C
          <article-title>"Software Considerations in Airborne Systems and Equipment Certification"</article-title>
          , RTCA/EUROCAE,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>SAE</given-names>
            <surname>International</surname>
          </string-name>
          .
          <article-title>“Architecture Analysis &amp; Design Language (AADL)”</article-title>
          ,
          <source>SAE International Standards document AS5506B</source>
          ,
          <year>Nov 2004</year>
          ,
          <source>Revised Mar</source>
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Julien</given-names>
            <surname>Delange</surname>
          </string-name>
          . AADL tutorial at MODELS'15 // http://www.openaadl.org/post/2015/ 09/28/models/ (проверено 20.10.
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Alexey</given-names>
            <surname>Khoroshilov</surname>
          </string-name>
          , Eugene Kornykhin.
          <article-title>PyCL - Python-based AADL Constraint Language</article-title>
          .
          <source>Proceedings of the Second International Workshop on Architecture Centric Virtual Integration - ACVI</source>
          <year>2015</year>
          , Madrid, Spain, June 26,
          <year>2015</year>
          http://www.aadl.info/aadl/acvi/ acvi2015 /papers/ACVI15_submission_5.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>D.</given-names>
            <surname>Buzdalov</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Khoroshilov</surname>
          </string-name>
          .
          <article-title>A discrete-event simulator for early validation of avionics systems</article-title>
          .
          <source>Proceedings of the First International Workshop on Architecture Centric Virtual Integration - ACVI</source>
          <year>2014</year>
          , Valencia, Spain,
          <year>September 29</year>
          ,
          <year>2014</year>
          .
          <source>CEUR WS</source>
          Vol-
          <volume>1233</volume>
          , pp.
          <fpage>28</fpage>
          -
          <lpage>38</lpage>
          , http://ceur-ws.
          <source>org/</source>
          Vol-
          <volume>1233</volume>
          /acvi14_submission_3.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Khoroshilov</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Albitskiy</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Koverninskiy</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Olshanskiy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Petrenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ugnenko</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , «
          <article-title>AADL-Based Toolset for IMA System Design and Integration,» SAE Int</article-title>
          .
          <source>J. Aerosp</source>
          .
          <volume>5</volume>
          (
          <issue>2</issue>
          ):
          <year>2012</year>
          , doi:10.4271/ 2012-01-2146.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          11. https://wiki.sei.cmu.edu/aadl/index.php/Osate_2
          <source>(проверено 20.10</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          12. http://www.openaadl.
          <source>org/ (проверено 20.10</source>
          .
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>