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 isempty.

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

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

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

Примеры

свернуть все

В этом примере показано, как получить цикломатическую информацию о сложности для подсистемы Усиления slvnvdemo_cv_small_controller модель.

Загрузите slvnvdemo_cv_small_controller модель.

modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName);

Создайте тестовую спецификацию, возражают и включают решение, условие и покрытие MCDC. Затем симулируйте модель с помощью cvsim.

testObj = cvtest(modelName);
testObj.settings.decision = 1;
testObj.settings.condition = 1;
testObj.settings.mcdc = 1;
covData = cvsim(testObj);

Получите цикломатическую информацию о сложности для подсистемы Усиления.

gainPath = [modelName,'/Gain'];
gainComplexity = complexityinfo(covData,gainPath)
gainComplexity =

     1     0

Сама подсистема Усиления не записывает цикломатическую сложность, но содержимое подсистемы делает. Это видно в результатах, потому что общая сложность равняется 1, который включает подсистему и всех ее потомков. В отличие от этого локальная сложность 0, указывая, что один момент сложности наступает от одного из потомков, в этом случае блок switch.

switchPath = [modelName,'/Gain/Switch'];
switchComplexity = complexityinfo(covData,switchPath)
switchComplexity =

     1     1

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

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

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

  2. В Редакторе Simulink выберите Model Settings на вкладке Modeling.

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

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

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

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

Введенный в R2011a