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

Примечание

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

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

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

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

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

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

После генерации и просмотра метрик из результатов верификации можно просмотреть результаты более подробно. Можно загрузить каждый результат в пользовательский интерфейс Polyspace, исследовать его в исходном коде и добавить к ним комментарии рецензирования. Для получения дополнительной информации смотрите View Code Quality Metrics.

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

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

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

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

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

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

  1. Откройте интерфейс Polyspace Metrics. Просмотрите метрики для проекта или запуска на вкладке Summary.

    Для получения дополнительной информации смотрите View Code Quality Metrics.

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

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

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

    • В Level столбце можно увидеть целевой уровень качества.

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

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

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

  4. Просмотрите дополнительные сведения о записях, отмеченных красным цветом на вкладке Summary. Например, если запись в Code Metrics over Threshold столбце отмечена красным цветом, выберите ее. Значения метрик сложности кода можно увидеть на вкладке Code Metrics.

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

    ВкладкаДействие
    Code Metrics

    Обратите внимание на красные записи. Выберите каждую запись, чтобы загрузить нарушение порога метрики кода в пользовательский интерфейс Polyspace. Проверьте нарушения и исправьте или обосновайте их. Если вы обосновываете нарушение, можно загрузить свои обоснования на веб-панель инструментов Polyspace Metrics. После обоснования красная запись появляется зеленой со значком рядом с ней.

    Coding Rules

    В столбце Justified обратите внимание на красные значения. Выберите каждую запись, чтобы загрузить нарушение правил кодирования в пользовательский интерфейс Polyspace. Проверьте нарушение и исправьте или обосновайте его. Если вы обосновываете нарушение, можно загрузить свои обоснования на веб-панель инструментов Polyspace Metrics. После обоснования в столбце «Justified» появляется зеленый цвет.

    Run-Time Checks

    В Justified столбцах обратите внимание на красные значения. Выберите каждую запись для загрузки проверок в пользовательский интерфейс Polyspace. Проверьте проверки и исправьте или разъясните их. Если вы обосновываете проверку, можно загрузить обоснования на веб-панель инструментов Polyspace Metrics. После обоснования в столбце «Justified» появляется зеленый цвет.

    Для получения дополнительной информации о процессе рассмотрения смотрите Review Metrics for Specific Project или запуск.

  6. После просмотра в интерфейсе Polyspace Metrics щелкните, чтобы просмотреть обновленные метрики. Проверьте, имеет ли ваш проект Overall Status PASS из-за ваших обоснований.

    Если вы измените код, чтобы обновить метрики, перезапустите верификацию и загрузите результаты в репозиторий Polyspace Metrics. Если у вас есть обоснования в предыдущих результатах, импортируйте их в новые результаты перед загрузкой новых результатов в репозиторий. Для начала выберите Tools > Import Comments.

Совет

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

Чтобы создать новый модуль, нажмите Ctrl и выберите строки, содержащие файлы, которые вы хотите сгруппировать. Щелкните правой кнопкой мыши по выделенной области. и выберите Add to Module. В столбце Level для этого модуля выберите цель качества из раскрывающегося списка. Программное обеспечение применяет эту цель ко всем файлам в модуле и определяет Overall Status PASS или FAIL к модулю.

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

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

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

    <?xml version="1.0" encoding="UTF-8"?>
    <MetricsDefinitions>
       
        <SQO ID="Custom-SQO-Level" ApplicableProduct="Code Prover" 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_Red>0</Num_Unjustified_Red>
            <Num_Unjustified_NT_Constructs>0</Num_Unjustified_NT_Constructs>
            <Num_Unjustified_Gray>0</Num_Unjustified_Gray>
            <Percentage_Proven_Or_Justified>Custom_Runtime_Checks_Set</Percentage_Proven_Or_Justified>
        </SQO>
    
        <CodingRulesSet ID="Custom_MISRA_Rules_Set">
            <Rule Name="MISRA_C_5_2">0</Rule>
            <Rule Name="MISRA_C_17_6">0</Rule>
        </CodingRulesSet>
    
        <RuntimeChecksSet ID="Custom_Runtime_Checks_Set">
            <Check Name="OBAI">80</Check>
            <Check Name="IDP">60</Check>
        </RuntimeChecksSet>
    
    </MetricsDefinitions>
    

    Вы можете использовать этот файл как для результатов Bug Finder, так и для результатов Code Prover. Для получения информации об элементах XML, относящихся к Bug Finder, смотрите Сравнение метрики с целями качества ПО.

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

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

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

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

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

    2. Для определения правил кодирования начните имя правила с соответствующей строки, за которой следует номер правила. Использование _ вместо десятичной точки в номере правила. Чтобы задать директивы, начните указывать номер директивы с 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_Пользовательские правила кодирования
    3. Для определения проверок используйте соответствующий чек-акроним. Для получения дополнительной информации смотрите Краткие имена проверок во время выполнения Code Prover.

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

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

  5. На вкладке Summary выберите запись в столбце Level. Для заданного имени проекта в раскрывающемся списке появится новое Custom-SQO-Level цели качества.

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

    Программа сравнивает указанные пороги с результатами и обновляет столбец Overall Status на PASS или FAIL.

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

    <SQO ID="Custom-SQO-Level_2" ParentID="Custom-SQO-Level" ApplicableProduct="Code Prover" ApplicableProject="My_Project">
     ...
    </SQO>
    Здесь:

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

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

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

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

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

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

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

Похожие темы