exponenta event banner

Сравнение показателей с целевыми показателями качества программного обеспечения

Примечание

В этом разделе описывается рабочий процесс в веб-интерфейсе Polyspace Metrics.

Для упрощения совместной работы используйте приложение Polyspace ® Bug Finder™ Access™. В дополнение к более интуитивно понятной веб-панели управления, с помощью Polyspace Access можно:

  • Просмотр и обоснование результатов непосредственно из веб-браузера.

  • Интеграция инструмента отслеживания дефектов, такого как Jira, с веб-интерфейсом и создание билетов для отслеживания результатов Polyspace.

  • Обмен результатами анализа с помощью веб-ссылок.

Дополнительные сведения см. в документации Polyspace Bug Finder Access.

После создания и просмотра метрик на основе результатов анализа можно просмотреть результаты более подробно.

Чтобы сосредоточиться на обзоре, можно:

  1. Определите цели качества, которым должны соответствовать вы или разработчики в вашей организации.

  2. Примените цели качества к результатам анализа.

  3. Рассматривать только те результаты, которые не отвечают этим целям.

Применение предопределенных целей к метрикам

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

  1. В интерфейсе «Метрики Polyspace» откройте страницу метрик для проекта.

  2. В списке «Цели качества» в левом верхнем углу выберите ON.

    Появится новая группа столбцов Цели качества программного обеспечения.

    • В столбце Общее состояние (Overall Status) отображается последний используемый целевой уровень качества для создания статуса PASS или FAIL для результатов.

    • В столбце Уровень (Level) отображается целевой уровень качества.

      Чтобы изменить целевой уровень качества, в этом столбце выберите ячейку. В раскрывающемся списке выберите уровень качества. Дополнительные сведения см. в разделе Целевые уровни качества поиска ошибок.

  3. Для файлов с общим состоянием FAIL, чтобы увидеть причины сбоя, просмотрите записи в других столбцах «Цели качества программного обеспечения». Отказавшие уровни отмечены красным цветом.

    Если значок отображается рядом со статусом, это означает, что у Polyspace недостаточно информации для вычисления статуса. Например, если указать BF-QO-1, некоторые правила кодирования должны быть пересмотрены. Но если не проверить правила кодирования во время анализа, Polyspace не сможет определить, удовлетворяет ли проект целям правил кодирования, указанным в BF-QO-1.

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

  5. На вкладке «Метрики кода», «Правила кодирования» или «Поиск ошибок»

    1. Выберите красные столбцы для загрузки результатов.

    2. Просмотрите нарушения и исправьте или обосновайте результаты.

      См. раздел Результаты анализа пространства адресов с помощью исправлений ошибок или обоснований.

    3. Загрузите новые обоснования на веб-панель управления Polyspace Metrics.

  6. После просмотра в интерфейсе «Метрики Polyspace» щелкните значок, чтобы просмотреть обновленные метрики.

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

Целевые уровни качества поиска ошибок

Цели качества поиска ошибок или BF-QO - это набор пороговых значений, по которым можно сравнить результаты анализа поиска ошибок. Эти цели адаптированы из Polyspace Code Prover™ Software Quality Targets (Polyspace Code Prover). Можно разработать процесс проверки на основе целей качества.

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

 Уровень 1 BF-QO

 Уровень 2 и 3 BF-QO

 Уровень 4 BF-QO

 Уровень 5 BF-QO

 Уровень 6 BF-QO

 Исчерпывающий BF-QO

Настройка целей качества программного обеспечения

Вместо использования предварительно определенной цели можно определить собственные цели качества и применить их к проекту.

  1. Сохраните следующее содержимое в XML-файле. Назовите файл Custom-SQO-Definitions.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <MetricsDefinitions>
       
        <SQO ID="Custom-BF-QO-Level" ApplicableProduct="Bug Finder" ApplicableProject="My_Project">
            <comf>20</comf>
            <path>80</path>
            <goto>0</goto>
            <vg>10</vg>
            <calling>5</calling>
            <calls>7</calls>
            <param>5</param>
            <stmt>50</stmt>
            <level>4</level>
            <return>1</return>
            <vocf>4</vocf>
            <ap_cg_cycle>0</ap_cg_cycle>
            <ap_cg_direct_cycle>0</ap_cg_direct_cycle>
            <Num_Unjustified_Violations>Custom_MISRA_Rules_Set</Num_Unjustified_Violations>
            <Num_Unjustified_BF_Checks>Custom_BF_Checks_Set</Num_Unjustified_BF_Checks>
        </SQO>
    
        <CodingRulesSet ID="Custom_MISRA_Rules_Set">
            <Rule Name="MISRA_C_5_2">0</Rule>
            <Rule Name="MISRA_C_17_6">0</Rule>
        </CodingRulesSet>
    
        <BugFinderChecksSet ID="Custom_BF_Checks_Set">
            <Check Name="UNREACHABLE">0</Check>
            <Check Name="USELESS_IF">0</Check>
        </BugFinderChecksSet>
    
    </MetricsDefinitions>
    

    Этот файл можно использовать как для поиска ошибок, так и для проверки кода. Сведения о XML-элементах, относящихся к программе проверки кода, см. в разделе Сравнение метрик с целями качества программного обеспечения (программа проверки кода Polyspace).

  2. Сохраните этот XML-файл в папке, в которой хранятся данные удаленного анализа, например: C:\Users\JohnDoe\AppData\Roaming\Polyspace_RLDatas.

    Чтобы изменить расположение папки, выберите Метрики > Метрики и параметры удаленного сервера.

  3. Чтобы сделать уровень качества Custom-BF-QO-Level применимо к определенному проекту, замените значение ApplicableProject с именем проекта.

    Если необходимо, чтобы цели качества применялись ко всем проектам, используйте ApplicableProject="".

  4. Измените файл, чтобы указать пороговые значения.

    Для указания правил кодирования начните имя правила с соответствующей строки, за которой следует номер правила. Использовать _ вместо десятичной запятой в номере правила. Чтобы указать директивы, начните указывать номер директивы с D_, например, MISRA_C3_D4_6, для директивы MISRA C: 2012 4.6.

    ПравилоПоследовательностьНомера правил
    MISRA C: 2004MISRA_C_Правила кодирования MISRA C:2004 и MISRA AC AGC
    MISRA C: 2012MISRA_C3_MISRA C:2012 Директивы и правила
    MISRA C++MISRA_Cpp_Правила MISRA C++: 2008
    JSF ® C++JSF_Cpp_Правила кодирования AV C++ JSF
    Пользовательские правила кодированияCustom_Пользовательские правила кодирования

    Для указания дефектов используйте аббревиатуру дефекта. См. Краткие имена чекеров дефектов для поиска ошибок.

    Для указания метрик кода используйте акроним метрики кода. См. раздел Краткие имена показателей сложности кода.

  5. После внесения изменений в интерфейсе «Метрики Polyspace» откройте метрики для проекта. В списке «Цели качества» в левом верхнем углу выберите ON.

  6. На вкладке Сводка выберите запись в столбце Уровень. Для указанного имени проекта в раскрывающемся списке появится новая цель качества Custom-BF-QO-Level.

  7. Выберите новую цель качества.

    Программа сравнивает указанные пороговые значения с результатами и обновляет столбец Общее состояние с помощью команд PASS или FAIL.

  8. Чтобы определить другой набор пользовательских целей качества, добавьте следующее содержимое в Custom-BF-QO-Definitions.xml файл:

    <SQO ID="Custom-BF-QO-Level_2" ParentID="Custom-BF-QO-Level" ApplicableProduct="Bug Finder" ApplicableProject="My_Project">
     ...
    </SQO>

    • ID представляет имя нового аппарата.

      Нельзя иметь одинаковые значения ID и ApplicableProject для двух различных наборов целей качества. Например, при использовании ID="Custom-BF-QO-Level" для двух различных пользовательских наборов, и ApplicableProject является либо My_Project или "" для обоих наборов отображается следующая ошибка:

      The SQO level 'Custom-BF-QO-Level' is multiply defined.

    • ParentID указывает другой уровень, от которого текущий уровень наследует цели качества. В предыдущем примере уровень Custom-BF-QO-Level_2 наследует цели качества от уровня Custom-BF-QO-Level.

      Если не требуется наследовать цели качества от другого уровня, пропустите этот атрибут.

    • ... представляет дополнительные пороговые значения качества, указанные для уровня Custom-BF-QO-Level_2.

      Заданные пороговые значения качества переопределяют пороговые значения, Custom-BF-QO-Level_2 наследует от Custom-BF-QO-Level. Например, если указать <goto>1</goto>, эта цель переопределяет пороговую спецификацию <goto>0</goto> из Custom-BF-QO-Level.

Элементы в пользовательских целевых файлах качества

В следующих таблицах перечислены элементы XML, которые могут быть добавлены в пользовательский файл BF-QO. Содержимое каждого элемента определяет пороговое значение, с которым программное обеспечение сравнивает результаты анализа. Для каждого элемента в таблице отображается метрика, к которой применяется пороговое значение. Здесь HIS ссылается на программное обеспечение Hersteller Initiative.

Метрики HIS

ЭлементМетрика
comfComment Density(Доказательство кода Polyspace)
pathNumber of Paths(Доказательство кода Polyspace)
gotoNumber of Goto Statements(Доказательство кода Polyspace)
vgCyclomatic Complexity(Доказательство кода Polyspace)
callingNumber of Calling Functions(Доказательство кода Polyspace)
callsNumber of Called Functions(Доказательство кода Polyspace)
paramNumber of Function Parameters(Доказательство кода Polyspace)
stmtNumber of Instructions(Доказательство кода Polyspace)
levelNumber of Call Levels(Доказательство кода Polyspace)
returnNumber of Return Statements(Доказательство кода Polyspace)
vocfLanguage Scope(Доказательство кода Polyspace)
ap_cg_cycleNumber of Recursions(Доказательство кода Polyspace)
ap_cg_direct_cycleNumber of Direct Recursions(Доказательство кода Polyspace)
Num_Unjustified_ViolationsКоличество необоснованных нарушений правил кодирования, указанных записями под элементом CodingRulesSet
Num_Unjustified_BF_ChecksКоличество необоснованных дефектов типов, указанных записями под элементом BugFinderChecksSet

Показатели, не относящиеся к HIS

ЭлементОписание метрики
fcoEstimated Function Coupling(Доказательство кода Polyspace)
flinNumber of Lines Within Body(Доказательство кода Polyspace)
fxlnNumber of Executable Lines(Доказательство кода Polyspace)
ncallsNumber of Call Occurrences(Доказательство кода Polyspace)