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

Примечание

Эта тема описывает рабочий процесс в Метрическом веб-интерфейсе Polyspace.

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

  • Рассмотрите и выровняйте по ширине результаты непосредственно от вашего веб-браузера.

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

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

Для получения дополнительной информации см. документацию Polyspace Bug Finder Access.

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

Чтобы фокусировать ваш анализ, вы можете:

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

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

  3. Рассмотрите только те результаты, которым не удается достигнуть тех целей.

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

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

  1. В интерфейсе Polyspace Metrics откройте метрическую страницу для проекта.

  2. Из списка Quality Objectives в верхнем левом углу выберите ON.

    Появляется новая группа столбцов Software Quality Objectives.

    • Столбец Overall Status показывает последний используемый качественный уровень цели, чтобы сгенерировать состояние PASS или FAIL для ваших результатов.

    • Столбец Level показывает качественный уровень цели.

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

  3. Для файлов с Overall Status FAIL, чтобы видеть, что вызывает отказ, просматривают записи в других столбцах Software Quality Objectives. Провальные уровни отмечены красные.

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

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

  5. На Code Metrics, Coding Rules или вкладке Bug-Finder,

    1. Выберите красные записи столбца, чтобы загрузить результаты.

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

      Смотрите результаты Polyspace адреса через исправления ошибок или выравнивания.

    3. Загрузите свои новые выравнивания на Метрическую веб-инструментальную панель Polyspace.

  6. После вашего анализа, в интерфейсе Polyspace Metrics, нажатие кнопки, чтобы просмотреть обновленные метрики.

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

Качественные уровни цели Bug Finder

Качественные Цели Bug Finder или BF-QOs являются набором порогов, с которыми можно сравнить результаты анализа Bug Finder. Эти цели адаптируются от Целей Качества программного обеспечения Polyspace Code Prover™ (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>
    

    Можно использовать этот файл и для Bug Finder и для результатов Программы автоматического доказательства Кода. Для получения информации об элементах XML, характерных для Программы автоматического доказательства Кода, смотрите, Сравнивают Метрики С Целями Качества программного обеспечения (Polyspace Code Prover).

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

    Если вы хотите изменить местоположение папки, выберите Metrics> Metrics and Remote Server Settings.

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

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

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

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

    ПравилоСтрокаУправляйте числами
    MISRA C: 2004MISRA_C_MISRA C:2004 и правила кодирования AGC AC MISRA
    MISRA C: 2012MISRA_C3_Директивы MISRA C:2012 и правила
    MISRA C++MISRA_Cpp_MISRA C ++:2008 правил
    JSF® C ++JSF_Cpp_JSF AV правила кодирования C++
    Пользовательские правила кодированияCustom_Пользовательские правила кодирования

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

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

  5. После того, как вы сделаете свои модификации в интерфейсе Polyspace Metrics, откройте метрики для своего проекта. Из списка Quality Objectives в верхнем левом углу выберите ON.

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

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

    Программное обеспечение сравнивает пороги, которые вы задали против своих результатов и обновляете столбец Overall Status с 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 Software.

Метрики HIS

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

Метрики Non-HIS

ЭлементОписание метрики
fcoEstimated Function Coupling (Polyspace Code Prover)
flinNumber of Lines Within Body (Polyspace Code Prover)
fxlnNumber of Executable Lines (Polyspace Code Prover)
ncallsNumber of Call Occurrences (Polyspace Code Prover)