complexityinfo

Получите цикломатическую информацию о покрытии сложности из объекта cvdata

Синтаксис

complexity = complexityinfo(cvdo, object)
complexity = complexityinfo(cvdo, object, mode)

Описание

complexity = complexityinfo(cvdo, object) возвращает результаты покрытия сложности в объект cvdata cvdo для компонента модели object.

complexity = complexityinfo(cvdo, object, mode) возвращает результаты покрытия сложности в объект cvdata cvdo для компонента модели object для режима mode симуляции.

Входные параметры

cvdo

Объект cvdata

object

Аргумент object задает объект в модели или графике Stateflow®, который получил Decision Coverage. Допустимые значения для object включают следующее:

Объектная спецификацияОписание

BlockPath

Полный путь к модели или блоку

BlockHandle

Обработайте к модели или блоку

slObj

Обработайте к объекту Simulink® API

sfID

ID Stateflow

sfObj

Обработайте к объекту Stateflow API от отдельно инстанцированной диаграммы Stateflow

{BlockPath, sfID}

Массив ячеек с путем к диаграмме Stateflow или атомарному подграфику и ID объекта, содержавшегося в том графике или подграфике

{BlockPath, sfObj}

Массив ячеек с путем к диаграмме Stateflow или подграфику и указателю API объекта Stateflow, содержавшемуся в том графике или подграфике

{BlockHandle, sfID}

Массив ячеек с указателем на диаграмму Stateflow или атомарный подграфик и ID объекта, содержавшегося в том графике или подграфике

При определении Блока s-function допустимые значения для object включают следующее:

Объектная спецификацияОписание

{BlockPath, fName}

Массив ячеек с путем к Блоку s-function и имени исходного файла.

{BlockHandle, fName}

Массив ячеек с указателем Блока s-function и именем исходного файла.

{BlockPath, fName, funName}

Массив ячеек с путем к Блоку s-function, имени исходного файла и имени функции.

{BlockHandle, fName, funName}

Массив ячеек с указателем Блока s-function, именем исходного файла имя функции.

Для данных о покрытии, собранных во время программного обеспечения в режиме Loop (SIL) или Процессора в цикле (PIL) режим симуляции, допустимые значения для object включают следующее:

Объектная спецификацияОписание

{fileName, funName}

Массив ячеек с именем исходного файла и имени функции.

{Model, fileName}

Массив ячеек с именем модели (или образцовый указатель) и имя исходного файла.

{Model, fileName, funName}

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

mode

Аргумент mode задает режим симуляции для покрытия. Допустимые значения для mode включают следующее:

Объектная спецификацияОписание

'Normal'

Модель в Нормальном режиме симуляции.

'SIL' (or 'PIL')

Модель в программном обеспечении в цикле (SIL) или Процессоре в цикле (PIL) режим симуляции.

'ModelRefSIL' (or 'ModelRefPIL')

Модель - ссылка в программном обеспечении в цикле (SIL) или Процессоре в цикле (PIL) режим симуляции.

'ModelRefTopSIL' (or 'ModelRefTopPIL')

Модель - ссылка в программном обеспечении в цикле (SIL или Процессор в цикле (PIL) режим симуляции с кодом соединяют интерфейсом с набором топ-модели.

Выходные аргументы

complexity

Если cvdo не содержит цикломатические результаты покрытия сложности для object, complexity пуст.

Если cvdo содержит цикломатические результаты покрытия сложности для object, complexity является двухэлементным вектором формы [total_complexity local_complexity]:

total_complexityЦикломатическое покрытие сложности для object и его потомков (если таковые имеются)
local_complexityЦикломатическое покрытие сложности для object

Если object имеет сигналы переменного размера, complexity также содержит переменную сложность.

Примеры

Откройте модель sldemo_fuelsys и создайте тестовый объект testObj спецификации. Включите решение, условие и покрытие MCDC для sldemo_fuelsys и выполните testObj с помощью cvsim. Используйте complexityinfo, чтобы получить цикломатические результаты сложности для подсистемы Дросселя. Сама подсистема Дросселя не записывает цикломатические результаты покрытия сложности, но содержимое подсистемы действительно записывает цикломатическое покрытие сложности.

mdl = 'sldemo_fuelsys';
open_system(mdl);
testObj = cvtest(mdl)
testObj.settings.decision = 1;
testObj.settings.condition = 1;
testObj.settings.mcdc = 1;
data = cvsim(testObj);
blk_handle = get_param([mdl, ...
     '/Engine Gas Dynamics/Throttle & Manifold/Throttle'],...
     'Handle');
coverage = complexityinfo(data, blk_handle);
coverage

Альтернативы

Используйте настройки покрытия, чтобы собрать и отобразить цикломатические результаты покрытия сложности в отчете покрытия:

  1. Откройте модель.

  2. В Редакторе моделей выберите Analysis> Coverage> Settings.

  3. На панели Coverage диалогового окна Configuration Parameters выберите Enable coverage analysis.

  4. Под Coverage metrics выберите MCDC как уровень структурного покрытия.

  5. Нажмите OK, чтобы закрыть диалоговое окно Configuration Parameters и сохранить ваши изменения.

  6. Моделируйте модель и рассмотрите результаты в отчете HTML.

Введенный в R2011a