Создайте DO-178C/DO-331 проект

Проект DO-178C является шаблоном для управления процессом разработки ПО для DO-178C/DO-331 с помощью MathWorks® инструменты. Чтобы воспользоваться контуром этого проекта при запуске новой программы, можно создать проект на основе этого шаблона.

Чтобы создать DO-178 проект с помощью шаблона проекта:

  1. На Home экране MATLAB нажмите Simulink, чтобы открыть Simulink® начальная страница.

  2. На вкладке New разверните опцию DO Qualification Kit, наведите курсор на изображение DO-178C Project и выберите Create Project.

  3. В диалоговом окне «Создание проекта» введите DO178C_demo в качестве имени проекта и выберите расположение файла, в котором необходимо сохранить проект. Нажмите кнопку ОК.

Simulink генерирует и открывает новый проект. Проект предварительно заполнен:

  • Ярлыки проекта

  • Шаблоны документов планирования

  • Рекомендуемые стандарты моделирования и кодирования

  • Проектируйте ограничения в виде библиотек, шаблонов модели, строений модели и проверок

  • Тулинг для автоматизации жизненно важных задач разработки и верификации

  • Jenkins™ среда, которая использует непрерывное интегрирование для полной автоматизации выполнения операций верификации программного обеспечения.

Теперь можно добавить содержимое к своему проекту:

Дополнительные сведения об использовании проектов см. в разделе Управление проектами (Simulink).

Исследуйте ярлыки проекта

Ярлыки проекта в обеспечивают простой способ выполнения общих задач в проекте. В DO-178C шаблоне проекта встроенные ярлыки включают:

  • Добавить новую модель (Add New Model) - создает модель, которая автоматически добавляется к DO_03_Design папка проекта. Для получения дополнительной информации смотрите Добавить Проектную Модель к Своему DO-178 Проекту.

  • Установите строение Model Advisor по умолчанию - задает do178Checks.json как файл строения Model Advisor по умолчанию. Этот файл строения поставляется с DO-178C шаблоном проекта. Для получения дополнительной информации смотрите Использование Model Advisor Configuration Editor для создания пользовательского строения Model Advisor (Simulink Check).

  • Восстановление строения Model Advisor по умолчанию - удаление параметра, обозначающего do178Checks.json как значение по умолчанию строение Model Advisor. Model Advisor возвращает строение Model Advisor, чтобы использовать стандартное строение, заданную системным администратором.

Исследуйте папки проекта

Папки DO-178C проекта содержат данные, которые используются в рабочем процессе Модельно-ориентированное проектирование. Используйте следующую таблицу, чтобы лучше изучить предварительно заполненное содержимое в:

Примечание

Папки проекта в примере заполнены данными, моделями и т.д., которые используются для проектирования системы управления рейсом вертолета. Хотя иерархия папок и концептуальное содержимое высокого уровня аналогичны иерархии папок в шаблоне проекта, эти папки заполняются дополнительными данными.

Папка > Имя подпапки

Папки в шаблоне проектаПапки после выполнения примера или задания сборки Jenkins CI

continuous_integeration

Непрерывное интегрирование Дженкинса программных продуктов

> help

Инструкции по использованию непрерывного интегрирования Дженкинса в DO-178C проект.

> job

Источники MATLAB для среды Jenkins CI. В этой папке:

  • DODemoTasks.m - класс MATLAB, который описывает задание сборки Дженкинса, основанное на операциях Модельно-ориентированное проектирование в DO-178C проекте.

  • JenkinsJob.m - абстрактный класс, который является базисом для разработки работы по сборке Jenkins, например DODemoTasks

  • JenkinsReport.m - класс MATLAB, который генерирует отчеты XML из задания сборки Jenkins.

  • runJob.m - функция MATLAB, которая является точкой входа для запуска задания сборки Дженкинса.

> reports

Эта подпапка при создании пуста.

Отчеты о результатах, форматированные плагином Jenkins Summary Display. Результаты включают:

  • Сводные данные сборки - общие результаты для каждой задачи задания сборки Дженкинса.

  • Сводные данные результатов верификации - результаты для отдельных итераций задач верификации с детализированными результатами в табличном формате

DO_01_Planning

Контрольные списки и программные продукты планирования.

> checklists

Контрольные списки для анализа требований, моделей, кода, тестов, результатов тестирования и данных трассировки.

> plans

Программные продукты программного планирования. Подпапки включают:

  • MB_11_01_PSAC - содержит программный продукт План программных аспектов сертификации (PSAC)

  • MB_11_02_SDP - содержит программный продукт План разработки программного обеспечения (SDP)

  • MB_11_03_SVP - содержит программный продукт План верификации программного обеспечения (SVP)

  • MB_11_04_SCMP - содержит программный продукт План управления строением программного обеспечения (SCMP)

  • MB_11_05_SQAP - содержит программный продукт План программных аспектов сертификации (PSAC)

> standards

Программные продукты стандартов программного обеспечения. Подпапки включают:

  • MB_11_06_SRS - содержит программный продукт Требования к программному обеспечению (SRS)

  • MB_11_07_SDS - содержит программные продукты стандартов разработки ПО (SDS)

  • MB_11_08_SCS - содержит программные продукты стандартов кода программного обеспечения (SCS)

  • MB_11_23_SMS - содержит программный продукт стандартов модели программного обеспечения (SMS)

DO_02_Requirements

Данные о требованиях.

> specification

Эта подпапка при создании пуста.

Сохраняет ваши высокоуровневые и производные требования (.slreqx) и данные трассируемости (.slmx).

Документируйте и отслеживайте данные для системных требований и требований к высокоуровневому программному обеспечению. Требования были разработаны с помощью редактора требований и доступны в следующих наборах требований:

  • (Системные требования) SR.slreqx

  • (требования высокого уровня) HLR.slreqx

Эта подпапка также содержит HLR.slmx файл, в котором хранятся данные трассировки между требованиями к программному обеспечению высокого уровня и соответствующими системными требованиями.

The documents подпапка содержит отчеты о системных требованиях и требованиях к высокоуровневому программному обеспечению.

Эти отчеты генерируются из SR.slreqx и HLR.slreqx около taskGenReqReport() в Jenkins построить работу.

> verification_results

Эта подпапка при создании пуста.

Сохраняет контрольные списки, которые соответствуют действиям по рассмотрению требований к высокоуровневому программному обеспечению и производным требованиям.

Сохраняет контрольные списки, которые соответствуют действиям по рассмотрению требований к высокоуровневому программному обеспечению и производным требованиям.

DO_03_Design

Данные жизненного цикла для моделей проекта.

> common

Общие проекты конструкции и применимые программные продукты верификации.

Подпапки включают:

  • specification - содержит общие блоки и данные. В этой папке:

    • block_libraries содержит пользовательские библиотеки блоков (.slx) и их данные трассируемости (.slmx).

    • data содержит общие словари данных (.sldd/ .m) используется в нескольких моделях проекта.

    • data_types содержит пользовательские типы данных, включая перечисления, шины и псевдонимы (.sldd/ .m).

  • test_cases - Хранит ваши тесты и процедуры для выборочных библиотечных блоков. Эта подпапка при создании пуста.

  • verification_results - Эта подпапка, которая пуста при создании, хранит эти основанные на модели результаты верификации:

    • design_stand_checks

    • model_coverages

    • model_metrics

    • model_reviews

    • simulation_results

> <model>

Неприменимо

Существует пять папок модели, каждая из которых выведена из sample_model шаблон папки. Эти модели представляют требования к низкоуровневому программному обеспечению, которые соответствуют требованиям к высокоуровневому программному обеспечению, полученным в DO_02_Requirements\specification\HLR.slreqx.

Программная архитектура обычно определяется тем, как организован проект. С помощью Модельно-ориентированное Проектирование программная архитектура по своей сути устанавливается иерархией модели проекта, основанной на естественной группировке требований к программному обеспечению высокого уровня. В этом примере проект подразделяется на несколько моделей, чтобы удовлетворить различные требования в HLR.slreqx.

В рамках иерархии модели проекта проектные модели включают:

  • Flight_Control - Модель верхнего уровня, переиспользуемая, которая реализует общую стратегию управления

  • Actuator_Control - Модель нижнего уровня, не переиспользуемая

  • AHRS_Voter - Модель нижнего уровня, не переиспользуемая

  • InnerLoop_Control - Модель нижнего уровня, не переиспользуемая

  • OuterLoop_Control - Модель нижнего уровня, не переиспользуемая

> <model>> specification

Неприменимо

Специфичные для модели .slx файл модели и .slmx файл, в котором хранятся данные трассировки между моделью и соответствующими требованиями к программному обеспечению высокого уровня.

The data подпапка содержит словарь данных Simulink, названный в честь модели, с префиксом DD, для хранения данных конкретной модели. Потому что Actuator_Control переиспользуемый, существует дополнительный MATLAB® скрипт, который назван в честь модели с префиксом localDD_. Этот скрипт содержит данные конкретного экземпляра модели.

The documents в подпапке хранится описание проекта модели.

> <model>> test_cases

Неприменимо

Примечание

В этом примере тесты генерируются только для AHRS_Voter модели.

The HLR в подпапке хранятся тесты, которые разрабатываются для проверки модели в соответствии с требованиями высокого уровня. В этой папке вы создаете файл Simulink Test™ для управления высокоуровневыми тестами. Этот тестовый файл назван в честь модели, далее следуют _REQ_Based_Test.

В этом примере существуют трёх высокоуровневых тестов для модели AHRS_Voter. Эти тесты, которые доступны в AHRS_Voter\test_cases\HLR\AHRS_Voter_REQ_Based_Test.mldatx, использовать внешне сохраненные тестовые обвязки HRS_Voter_Harness_HLR_11.slx, AHRS_Voter_Harness_HLR_12.slx, и HRS_Voter_Harness_HLR_13.slx для проверки AHRS_Voter в соответствии с требованиями HLR_11, HLR_12, и HLR_13, соответственно. The HLR подпапка также содержит AHRS_Voter_REQ_Based_Test.slmx , который хранит данные трассировки между тестами и требованиями к программному обеспечению высокого уровня, которые они разрабатывают для проверки.

The LLR подпапка содержит низкоуровневые результаты генерации тестов и отчет для AHRS_Voter модели, включая тестовый файл и тестовую обвязку. Сгенерированные низкоуровневые тесты, которые доступны в AHRS_Voter\test_cases\LLR\AHRS_Voter_SLDV_Based_Test.mldatx, используйте внешне сохраненный тестовую обвязку AHRS_Voter_Harness_SLDV.slx.

Тесты, которые используются для удовлетворения целей, которые не достигаются в его высокоуровневом тестовом покрытии, генерируются из модели taskGenLowLevelTests в Jenkins построить работу.

> <model>> verification_results

Неприменимо

Примечание

В этом примере результаты верификации генерируются только для AHRS_Voter модели.

The simulation_results\HLR подпапка содержит высокоуровневые результаты симуляции и отчет для модели. Эти результаты симуляции создаются с помощью тестов, чтобы проверить низкоуровневые требования (реализованные в модели) в соответствии с требованиями высокого уровня. Результаты сгенерированы taskVerifyModel2Reqs() в Jenkins построить работу.

The model_coverages\HLR подпапка содержит результаты покрытия модели высокого уровня и отчет для модели. Эти результаты покрытия собираются путем запуска тестов, которые проверяют низкоуровневые требования (реализованные в модели) в соответствии с требованиями высокого уровня. Результаты покрытия модели генерируются taskVerifyModel2Reqs() в Jenkins построить работу.

The design_error_detections() подпапка содержит отчет об поиске ошибок проектирования для модели AHRS_Voter. Этот отчет является результатом использования Simulink Design Verifier™, чтобы изучить модель с потенциальными ошибками времени выполнения и мертвой логикой. сгенерированы taskDetectDesignErrs() в Jenkins построить работу.

The design_standard_checks подпапка содержит отчет о стандартном соответствии моделирования для модели. Этот отчет является результатом исследования модели с проверками Model Advisor, которые заданы в файле строения Model Advisor tools\checks\do178Checks.json. Отчет генерируется taskCheckModelStds() в Jenkins построить работу.

DO_04_Code

Данные жизненного цикла для сгенерированного кода.

> specification

Сохраняет сгенерированный код. Эта подпапка при создании пуста.

Сгенерированный исходный код для каждой модели. Код генерируется taskGenSrcCode() в Jenkins построить работу.

Примечание

Код для модели верхнего уровня в Flight_Control_ert_rtw. Код для каждой модели нижнего уровня находится в slprj\ert папка с общим кодом.

> verification_results

После создания эта папка пуста.

Результаты верификации исходного и исполняемого объектного кода.

> verification_results> code_reviews

Хранит отчеты инспекции кода для сгенерированного кода. Эта подпапка при создании пуста.

Отчеты инспекции кода для сгенерированного кода из каждой модели являются результатом использования Inspector™ Simulink Code для просмотра исходного кода. Отчет генерируется taskGenSrcCode() в Jenkins построить работу.

> verification_results> eoc_test_results

Хранит результаты тестирования высокого/низкого уровня ПО в цикле и отчет о сгенерированном коде. Эта подпапка при создании пуста.

The eoc_test_results\<model>\host\HLR\instrumented подпапка содержит результаты тестирования высокого уровня ПО в цикле и отчет о сгенерированном коде для модели. Они являются результатом выполнения тестов, которые проверяют низкоуровневые требования (реализованные через модель) на соответствие требованиям высокого уровня в режиме «цикл». Эти результаты тестирования генерируются taskVerifyObjCode2Reqs() в Jenkins построить работу.

The eoc_test_results\<model>\host\LLR\instrumented подпапка содержит низкоуровневые результаты тестирования ПО в цикле и отчет о сгенерированном коде для модели. Они являются результатом выполнения тестов, которые получают из модели, чтобы дополнить ее высокоуровневый охват тестом в режиме «цикл». Эти результаты тестирования генерируются taskVerifyObjCode2LowLevelTests() в Jenkins построить работу.

> verification_results> code_coverages

Хранит отчет о покрытии кода сгенерированного кода. Эта подпапка при создании пуста.

Совокупный отчет о покрытии кода сгенерированного кода для каждой модели. Этот отчет собран из слияния результатов покрытия кода как высокого, так и низкого уровня. Отчет генерируется taskMergeCodeCoverage() в Jenkins построить работу.

The code_coverages\<model>\host\HLR подпапка содержит результаты покрытия кода высокого уровня и отчет сгенерированного кода. Эти результаты покрытия собраны из запущенных тестов, которые проверяют низкоуровневые требования (реализованные через модель) в соответствии с требованиями высокого уровня в режиме «цикл». Эти результаты тестирования генерируются taskVerifyObjCode2Reqs() в Jenkins построить работу.

The code_coverages\<model>\host\LLR подпапка содержит результаты покрытия низкоуровневого кода и отчет сгенерированного кода для каждой модели. Эти результаты покрытия собраны из запущенных тестов, которые получают из модели, чтобы дополнить ее высокоуровневый тестовый охват в режиме «цикл». Эти результаты тестирования генерируются taskVerifyObjCode2LowLevelTests() в Jenkins построить работу.

> verification_results> coding_error_detections

Сохраняет Polyspace® Отчеты об анализе Bug Finder™. Эта подпапка при создании пуста.

Отчеты анализа Polyspace Bug Finder генерируются detectCodingErrs().

> verification_results> code_proving

Сохраняет Polyspace Code Prover™ верификации отчет сгенерированного кода. Эта подпапка при создании пуста.

Этот отчет является результатом использования Polyspace Code Prover для проверки исходного кода Flight_Control и его модели более низкого уровня от потенциальных дефектов программного обеспечения. Отчеты генерируются taskProveCodeQuality() в Jenkins построить работу.

> verification_results> code_standard_checks

Хранит отчет о соответствии стандарта кодирования сгенерированного кода. Эта подпапка при создании пуста.

Отчет генерируется из проверки исходного кода каждой модели на соответствие правилам кодирования Polyspace Bug Finder, активируемым при помощи tools\checks\MISRA_C_2012_ACG. Эти отчеты генерируются taskCheckCodeStds() в Jenkins построить работу.

> verification_results> code_metrics

Хранит отчеты о метриках кода Polyspace. Эта подпапка при создании пуста.

Отчеты о метриках кода Polyspace генерируются computeCodeMetrics().

DO_05_Artifacts

Сохраняет данные жизненного цикла и программные продукты, которые не производятся с помощью инструментов MathWorks. За создание этих программных продуктов отвечает пользователь:

  • MB_11_15_SECI - артефактный индекс строения окружения жизненного цикла программного обеспечения (SEC).

  • MB_11_16_SCI - программный продукт строения ПО (SCI).

  • MB_11_17_PR - программный продукт Problem Reports (PR).

  • MB_11_18_SCMR - artifact Software Configuration Management Records (SCMR).

  • MB_11_19_SQAR - artifact Software Quality Assurance Records (SQAR).

  • MB_11_20_SAS - программный продукт достижений программного обеспечения (SAS).

  • MB_11_22_PDIF - Сохранить файл элемента данных параметра (PDIF).

DO_06_Tool Qualification

Содержит данные жизненного цикла квалификации инструмента.

Подпапки для конкретного инструмента, которые соответствуют продуктам MathWorks, поддерживаемым DO Qualification Kit, включая:

  • PolyspaceBugFinder

  • PolyspaceCodeProver

  • SimulinkCheck

  • SimulinkCodeInspector

  • SimulinkCoverage

  • SimulinkDesignVerifier

  • SimulinkModelComparison

  • SimulinkReportGenerator

  • SimulinkRequirements

  • SimulinkTest

help

Инструкции по использованию шаблона проекта DO-178C, описание папок/подпапок проекта и советы по Requirements™ Requirements Management Interface Simulink.

tools

Инструменты и строения, которые необходимы для проекта. Подпапки включают:

  • checks - Содержит файлы строения для проверок Model Advisor и проверок Polyspace Coding Standard, разработанных в дополнение к стандартам модели ПО (SMS) и стандартам кода программного обеспечения (SCS), предусмотренным в проекте, соответственно.

  • compatible_blocks - Сохраняет библиотеку блоков, содержащую все примитивные блоки, совместимые с Simulink Code Inspector. Служит ограничениями для разработки ПО.

  • templates - Хранит шаблоны и строения для создания моделей. Подпапки включают:

    • model_configurations - содержит строения базовой модели, которые соответствуют программному продукту Software Model Standards.

    • model_templates - Содержит шаблон модели, который соответствует программному продукту Software Model Standards.

  • utilities - Служебные функции, которые можно использовать для выполнения важных задач разработки и верификации. Подпапки включают:

    • code_generation - используется для генерации кода и извлечения информации о файле жизненно важного кода.

    • modeling - используется для извлечения информации о жизненно важной модели и библиотеке блоков.

    • project_management - используется для управления проектом. В этой папке:

      • shutdown содержит ярлык проекта, который выполняет задачи очистки и восстановления при завершении проекта.

      • startup содержит ярлык проекта, который выполняет задачи регистрации и строения при запуске проекта.

    • report_generation - используется для формирования отчетов о описании разработки системы и отчетов о требованиях.

    • requirements_management - используется для настройки параметров интерфейса Simulink Coverage™ Requirement Management Interface (RMI).

    • verification - используется для верификации моделей и кода. В этой папке:

      • dynamic_testing содержит служебные функции, которые проверяют модели и код с помощью динамических проверок методологий.

      • static_analysis содержит служебные функции, которые проверяют модели и код при помощи статических анализов и проверок.

work

Рабочая папка по умолчанию, которая содержит разрабатываемые работы и промежуточные результаты верификации.

The cache подпапка содержит программные продукты сборки модели, используемые для симуляции и промежуточные программные продукты, созданные в результате выполнения операций верификации.

Включает в себя demo подпапка, содержащая live скрипт MATLAB runDemo.mlx. Этот скрипт можно выполнить, выбрав Case Study на вкладке Ярлыки проекта.