Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

1531

.pdf
Скачиваний:
2
Добавлен:
15.11.2022
Размер:
52.65 Mб
Скачать

Рис. 85. Окно органайзера

SDL Editor (редактор SDL) позволяет создавать, просматривать и редактировать SDL-диаграммы. Редактор имеет различные режимы, зависящие от вида диаграмм. На рис. 86 приведено окно редактора в режиме блок-диаграммы, а на рис. 87 в режиме диаграммы процесса.

Рис. 86. Окно редактора в режиме блок-диаграммы

161

SDL Analyzer (SDL-анализатор) проверяет SDL-диаграмму на соответствие правилам синтаксиса и семантики, зафиксированных в ре-

комендации ITU-T Z.100.

Рис. 87. Окно редактора в режиме диаграммы процесса

MSC Editor (редактор MSC-диаграмм) позволяет создавать, просматривать и редактировать MSC-диаграммы в соответствии с рекомендацией ITU-T Z.120. Можно разработать для проекта сценарии/случаи использования в виде MSC и наблюдать также в виде MSC результаты моделирования/валидации проекта (рис. 88).

Рис. 88. Окно редактора MSC-диаграмм

162

Simulator (симулятор) используется для тестирования и изучения динамики поведения спецификации системы (рис. 89). Симулятор работает как отладчик на уровне SDL. Во время моделирования можно наблюдать MSC-диаграмму, SDL и текстовую трассировку.

Рис. 89. Окно симулятора

Coverage Viewer (обозреватель покрытия) во время работы симулятора показывает, какие части спецификации протестированы, а какие нет (рис. 90).

Рис. 90. Окно симулятора Coverage Viewer

163

Validator (валидатор) предоставляет механизм автоматизированного обнаружения неисправностей для проверки работоспособности приложения (устойчивости – мера способности системы восстанавливаться после ошибок или сбоев) и нахождения на ранней стадии проектирования несоответствий требованиям к ситеме. Это обычно относят к верификации системы на SDL. Когда сравнивают систему с требованиями к ней, валидатор обеспечивает возможность выполнить автоматическую валидацию требований, выраженных в виде MSC-диаграмммы.

2.6.3. Средства разработки программного обеспечения встроенных систем SCADE

Семейство средств разработки SCADE от Esterel Technologies [34] предназначено для получения законченных решений разработчиками критических встроенных систем и их прикладного программного обеспечения.

Комплект программ SCADE Suite – это основанная на модели цепочка инструментов (tool-chain) для разработки прикладного программного обеспечения систем управления, интеграционную роль в которой играет собственный (нативный, native) язык Scade и его формальная нотация. На рис. 91 приведена структура SCADE Suite. Это компоненты для создания проектов, моделирования и верификации проектов, генерации кода на Си и ADA и средства поддержки функциональной совместимости с инструментами разработки других производителей.

Унифицированная методология разработки моделей в системе

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

Эффективное системное проектирование. Шлюз к системам управления требованиями SCADE Requirements Management (RM) Gateway позволяет создавать связи прослеживаемости (traceability

164

links) между системными требованиями, моделями, созданными в SCADE Suite и SCADE Display, структурным дизайном, тестовым планом и проектной документацией.

Рис. 91. Структура SCADE Suite

Система производства сертифицированного ПО SCADE предоставляет возможность ввода и обработки проекта системного уровня – спецификации требований, описания архитектуры на языке SysML/UML.

Шлюз SCADE SysML Gateway импортирует архитектуру, разработанную системными экспертами. Шлюз может работать с системами

Telelogic Rhapsody и Artisan Studi, а также может быть легко адаптиро-

ван к другим средствам проектирования на языке SysML/UML. Импорт из систем Simulink и Stateflow выполняется в строгом

соответствии с требованиями обеспечения безопасности, которые накладываются Унифицированной методологией разработки моде-

лей SCADE.

Верификация и валидация на стадии проектирования. Симулятор

SCADE (Simulator) исполняет встраиваемый код.

Верификатор проекта SCADE Suite (Design verifier) предоставляет проектировщику возможность всестороннего исследования для поиска «краевых» ошибок, практически не детектируемых традиционными методами тестирования, и исправления их на самой ранней стадии проекта.

165

Тестовое покрытие моделей SCADE (MTC – model test coverage)

оценивает полноту тестовой процедуры, разработанной на основе требований, и помогает достичь 100%-ного покрытия по MC/DC. MTC является средством верификации, квалифицированным по DO-178B.

Масштабируемость до многопользовательских, территориально распределенных проектов. Модульность SCADE-моделей обеспечивает безопасное и управляемое разделение труда между несколькими разработчиками или коллективами разработчиков.

Библиотеки позволяют совместное использование данных и функциональных блоков несколькими проектами, SCADE Suite обеспечивает согласованность в итоговых моделях.

SCADE Suite тесно интегрирован с системами управления требованиями, производимыми другими фирмами.

Генератор отчетов SCADE Reporter автоматически создает проектную документацию, обеспечивая ее постоянное обновление. Генерация отчетов может быть адаптирована к специальным требованиям путем настройки, управляемой из языка TCL. SCADE Reporter является средством разработки, квалифицированным по DO-178B.

Генерация эффективного, компактного и мобильного кода про-

мышленного качества. Кодогенератор SCADE Code generator производит код языка C стандарта ANSI, легко читаемый и прослеживаемый. Код независим от целевого процессора, не требует никаких специальных исполняемых библиотек или библиотек, специфичных для конкретного процессора. Код может исполняться на любом целевом микропроцессоре под управлением ОСРВ или без нее. В SCADE Suite кодом можно задать автоматическое оформление для исполнения в среде операционных систем Integrity-178B (Green hills software), µC/OS-II (Micrium), PikeOS (Sysgo), VxWorks 653 (Wind river).

Кодогенерация, квалифицированная по DO-178B. Кодогенератор

SCADE Suite Code generator (KCG) является средством разработки,

квалифицированным по DO-178B до уровня A. Квалификационный комплект кодогенератора Qualification kit предоставляет все артефакты (материалы), требуемые для средств разработки (DO-178B 8110.49).

Эта квалификация позволяет разработчику исключить низкоуровневое тестирование сгенерированного кода и поэтому выполнять обновления дизайна быстро и без потери безопасности кода. Сгенерированный с помощью SCADE код используется более чем в 30 программах по сертификации иуже квалифицированболеечем в20 программах.

166

Всесторонняя cертификация объектного кода. Комплект верифи-

кации компилятора SCADE Compiler verification kit (CVK) позволяет провести верификацию применяемого компилятора языка C на корректность компиляции кода, сгенерированного в SCADE KCG. Комплект верификации подтверждает корректность работы сгенерированного кода поутвержденной методике, описанной вруководстве CAST 12.

Средство SCADE LifeCycle расширяет функциональность SCADE в направлении администрирования жизненного цикла критических приложений. Он интегрируется со всеми продуктами SCADE для обеспечения эффективности, полноты и долговременного обслуживания приложений SCADE. Особенностями комплекта является наличие в его составе компонентов «Управления требованиями» (Requirements management), автоматической «Генерации документов» (Documentation generation), «Планов сертификации» (Certification plans для сертифика-

ционного процесса DO-178B).

Средство SCADE System – это инструмент разработки открытой архитектуры критической системы. Средство SCADE System базирует-

ся на стандартах SysML (systems modeling language) и Eclipse. Используя SCADE System вместе с SCADE Suite, SCADE Display и SCADE LifeCycle, системные инженеры и программисты могут работать в одной инфраструктуре (framework), чтобы исключить дублирование усилий и несоответствия между описанием структуры системы и поведенческим описанием ПО.

Модуль SCADE System Designer – инструмент моделирования проектов систем на архитектурном уровне, позволяет системным инженерам моделировать проекты системных компонентов и структуры с использованием блок-диаграмм SysML. Модуль также позволяет экспортировать структурные компоненты из какой-нибудь модели, направлять их группам разработчиков подсистем.

Средство SCADE Display – это гибкая графическая среда проектирования и развития для дисплеев и HMI (human-machine interface – интерфейс «человек – машина») критических систем. Вместе с собствен-

ной поддержкой OpenGL (open graphics library – графическое API), SC (safety critical – критическая безопасность) и стандартом ES (embedded system) SCADE Display является новым поколением инструментов для разработки графики, макетирования остова, проектирования отображения, моделирования, верификации и валидации и квалифицированной генерации кода (KCG).

167

2.7.Валидация и оценка проекта

2.7.1.Моделирование, эмуляция и макетирование

Моделирование – наиболее общая техника оценки и валидации проектов. Моделирование заключается в выполнении модели проекта на подходящем компьютерном оборудовании, обычно на компьютерах общего назначения. Очевидно, что модель должна быть выполнима. Все рассмотренные выполнимые модели и языки могут быть использованы в моделировании и на различных уровнях (системном, алгоритмическом, регистровых передач, вентильном). Уровень, на котором проекты моделируются, всегда является компромиссным между скоростью и точностьюмоделирования. Быстрее моделирование – меньше точность.

До сих пор использовался термин «поведение» в смысле функционального поведения системы (вход/выходное поведение). Существуют симуляторы нефункционального поведения проектов, такие как симулятор теплового поведения, симулятор электромагнитной совместимости (EMC) с другим электронным оборудованием. Благодаря интеграции с физикой существует большое количество физических эффектов, которые могут быть включены в модель.

В киберфизических системах моделирование сталкивается с серьезными ограничениями:

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

моделирование в физической среде может быть даже опасным;

для многих приложений может быть огромное количество данных и может быть невозможным промоделировать достаточное количество данных за приемлемое время;

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

Из-за этих ограничений усиливается акцент на валидацию с помощью формальной верификации. Тем не менее сложные техники моделирования продолжают играть ключевую роль в валидации.

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

168

некоторые части проектируемой системы точнее симулятора (например, использовать реальный физический компонент). Отсюда под эмуляцией будем понимать процесс выполнения модели системы, когда существует хотя бы один компонент системы, не представленный моделированием на хост-компьютере.

Для дальнейшего усиления правдоподобия можно продолжить замену моделируемых компонентов реальными. Это не будут окончательные компоненты. Они могут быть приближением к реальным, но повышать точность моделирования.

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

Быстрое макетирование (prototype) – это такой процесс выполнения модели, когда ни один из компонентов не представляется моделированием на хост-компьютере. Все компоненты представлены реалистичными компонентами. Некоторые из них – еще не окончательные компоненты (хотя это может быть реальная система). Существует много случаев, когда проекты должны быть испытаны в реалистичном окружении перед выпуском окончательной версии для производства.

Системы управления автомобилем – хороший тому пример. Эти системы могут быть использованы водителями в различном окружении перед запуском в массовое производство. Так, в автомобильной промышленности макетируют проекты. Эти макеты, по существу, ведут себя как окончательные системы, но они могут быть больше в размерах, с большим энергопотреблением и иметь другие свойства, которые мог привнести водитель-испытатель. Термин «макет» может ассоциироваться со всей системой, состоящей из электрических и механических компонентов. Однако разница между быстрым макетированием и эмуляцией размыта. Быстрое макетирование – само по себе широкая область деятельности, охватывающая не только встроенные системы.

Прототипы и эмуляторы могут быть построены, например, из FPGA. Шасси, содержащее FPGA, может быть размещено в корпусе, пока водитель-испытатель упражняется с автомобилем. Этот подход не ограничивается автомобилестроением. Существует несколько других случаев, когда макеты выполняются на FPGA. Коммерчески доступные

169

эмуляторы состоят из большого числа FPGA. Они поставляются с необходимым инструментом для отображения проектируемой спецификации на эмуляторы. Используя эти эмуляторы, производят эксперименты с системами, которые ведут себя почти как окончательные системы. Однако каверзные ошибки при макетировании и эмуляции являются проблемой для сосредоточенных систем. Для распределенных систем ситуация еще более трудная.

2.7.2. Формальная верификация

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

Техники формальной верификации могут быть классифицированы по типу используемой логики.

Логика высказываний (пропозициональная логика). В этом случае модели состоят из булевых функций, а соответствующие инструменты называют булевой проверкой, проверкой на тавтологию или проверкой на эквивалентность. Они могут быть использованы для проверки того, что два представления булевых функций (или множества булевых функций) эквивалентны. На сегодня логика высказываний разрешима, она также разрешима независимо от того, эквивалентны или нет два представления (нет сомнительных случаев). Например, одно представление может соответствовать вентилям реальной схемы, а другое – спецификации. Доказательство затем эквивалентности показывает, что результат всех преобразований (например, оптимизация энергопотребления или задержки) проекта является корректным. Булева проверка может справиться с очень большими проектами, с такими как исчерпывающая валидациия, основанная на моделировании. Ключевая причина мощи булевой проверки заключается в использовании бинарного дерева решений (BDD). Сложность задачи проверки на эквивалентность булевых функций, представленных BDD, является линейной от числа узлов BDD. Напротив, сложность задачи проверки на эквивалентность булевых функций, представленных суммой произведений, является NP-полной. Основанная на BDD проверка на эквивалентность

170

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]