Главная страница
Навигация по странице:

  • Метрика качества программ

  • Метрики размера программ

  • Метрика подсчета точек пересечения

  • Метрики стилистики и понятности программ.

  • Метрика уровня комментированности программ.

  • Понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики.. Векленко 26.09.2022. ИС22-02П. Конспект понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики


    Скачать 24.17 Kb.
    НазваниеКонспект понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики
    АнкорПонятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики
    Дата27.09.2022
    Размер24.17 Kb.
    Формат файлаdocx
    Имя файлаВекленко 26.09.2022. ИС22-02П.docx
    ТипКонспект
    #699481

    КОНСПЕКТ

    Понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики.

    Качество ПО - это совокупность свойств, определяющих полезность изделия (программы) для пользователей в соответствии с функциональным назначением и предъявлёнными требованиями.

    Характеристика качества программы - понятие, отражающее отдельные факторы, влияющие на качество программ и поддающиеся измерению.

    Критерий качества - численный показатель, характеризующий степень, в которой программе присуще оцениваемое свойство.

    Критерии качества включают следующие характеристики : экономичность, документированность, гибкость, модульность, надёжность, обоснованность, тестируемость, ясность, точность, модифицируемость, эффективность, легкость сопровождения и т.д.

    Критерий качества должен:

    - численно характеризовать основную целевую функцию программы;

    - обеспечивать возможность определения затрат, необходимых для достижения требуемого уровня качества, а также степени влияния на показатель качества различных внешних факторов;

    - быть по возможности простым, хорошо измеримым и иметь малую дисперсию.

    Для измерения характеристик и критериев качества используют метрики качества программ.

    Метрика качества программ - система измерений качества программ. Эти измерения могут проводиться на уровне критериев качества программ или на уровне отдельных характеристик качества. В первом случае система измерений позволяет непосредственно сравнивать программы по качеству. При этом сами измерения не могут быть проведены без субъективных оценок свойств программ. Во втором случае измерения характеристик можно выполнить объективно и достоверно, но оценка качества ПО в целом будет связана с субъективной интерпретацией получаемых оценок.

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

    КРИТЕРИИ КАЧЕСТВА

    Критерии качества наиболее общие характеристики качества. Различают следующие основные критерии качества: адекватность, доступность, преемственность, безопасность, своевременность, эффективность (в том числе экономическая), ориентированность на клиента, т. е. способность удовлетворить его нужды и ожидания и др.

    Классификацию разделяют на три категории. Учитывают:

    показатели технической и функциональной эффективности: производительность, прочность и т.д.; конструктивные характеристики — коэффициенты взаимозаменяемости, сборности, габаритные размеры; показатели структуры и состава — концентрация, процентное содержание и т.д.

    Метрика качества программ - система измерений качества программ. Эти измерения могут проводиться на уровне критериев качества программ или на уровне отдельных характеристик качества. В исследовании метрик ПО различают два основных направления: -поиск метрик, характеризующих наиболее специфические свойства программ, т.е. метрик оценки самого ПО.

    В исследовании метрик ПО существует два основных направления:

    • поиск метрик, характеризующих специфические свойства программ, т. е. метрик оценки самого программного обеспечения

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

    По виду информации, получаемой при оценке качества ПО метрики можно разбить на три группы:*метрики, оценивающие отклонение от нормы характеристик исходных проектных материалов. *метрики, позволяющие прогнозировать качество разрабатываемого ПО. *метрики, по которым принимается решение о соответствии конечного ПО заданным требованиям.

    Существующие качественные оценки можно сгруппировать по 6 основным направлениям: 1. Оценка топологической и информационной сложности программ. 2. Оценка надёжности ПС, позволяющая прогнозировать отказы и отказовые ситуации. 3. Оценка производительности ПО и повышения его эффективности путем выявления ошибок проектирования. 4. Оценка уровня языковых средств и их применения.

    Номинальная шкала (nominal scale) - шкала, содержащая только категории; данные в ней не могут упорядочиваться, с ними не могут быть произведены никакие арифметические действия.

    Номинальная шкала состоит из названий, категорий, имен для классификации и сортировки объектов или наблюдений по некоторому признаку.

    Пример такой шкалы: профессии, город проживания, семейное положение.

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

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

    Интервальная шкала (interval scale) - шкала, разности между значениями которой могут быть вычислены, однако их отношения не имеют смысла.

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

    Относительная шкала (ratio scale) - шкала, в которой есть определенная точка отсчета и возможны отношения между значениями шкалы.

    Дихотомическая шкала (dichotomous scale) - шкала, содержащая только две категории.

    Метрики размера программ

    Оценки первой группы метрик наиболее просты и, очевидно, поэтому получили широкое распространение. Традиционной характеристикой размера программ является количество строк исходного текста. Под строкой понимается любой оператор программы, поскольку именно оператор, а не отдельно взятая строка является тем интеллектуальным «квантом» программы, опираясь на который можно строить метрики сложности ее создания. Непосредственное измерение размера программы, несмотря на свою простоту, дает хорошие результаты. Конечно, оценка размера программы недостаточна для принятия решения о ее сложности, но вполне применима для классификации программ, существенно различающихся объемами. При уменьшении различий в объеме программ на первый план выдвигаются оценки других факторов, оказывающих влияние на сложность. Таким образом, оценка размера программы есть оценка по номинальной шкале, на основе которой определяются только категории программ без уточнения оценки для каждой категории. Типичным представителем этой группы метрик является метрика Холстеда.

    Описание метрик Холстеда

    Метрики Холстеда предлагают разумный подход к решению следующих задач:

    -предсказание условий, необходимых для программирования по предложенным проектам;

    -определение норм первоначальных ошибок;

    -количественная оценка языков программирования и эффекта модульности;

    -обоснование метода измерения различий между программами, написанными специалистами разного уровня.

    В основе вычисления метрик Холстеда лежит концепция, согласно которой алгоритм состоит только из операторов и операндов (проверяется рассмотрением простых вычислительных машин с форматом команд, содержащим две части: код операции и адрес операнда). Операнды -переменные или константы, используемые в данной реализации алгоритма.

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

    Перед тем как непосредственно описывать сами метрики, для лучшего понимания будет описан управляющий граф программы и способ его построения.

    Пусть представлена некоторая программа. Для данной программы строится ориентированный граф, содержащий лишь один вход и один выход, при этом вершины графа соотносят с теми участками кода программы, в которых имеются лишь последовательные вычисления, и отсутствуют операторы ветвления и цикла, а дуги соотносят с переходами от блока к блоку и ветвями выполнения программы. Условие при построении данного графа: каждая вершина достижима из начальной, и конечная вершина достижима из любой другой вершины [4].

    Самой распространенной оценкой, основанной на анализе получившегося графа, является цикломатическая сложность программы (цикломатическое число Мак-Кейба) [4]. Она определяется как V(G)=e — n + 2p, где e — количество дуг, n — количество вершин, p — число компонент связности. Число компонентов связности графа можно рассматривать как количество дуг, которые необходимо добавить для преобразования графа в сильно связный. Сильно связным называется граф, любые две вершины которого взаимно достижимы. Для графов корректных программ, т. е. графов, не имеющих недостижимых от точки входа участков и «висячих» точек входа и выхода, сильно связный граф, как правило, получается путем замыкания дугой вершины, обозначающей конец программы, на вершину, обозначающую точку входа в эту программу. По сути V(G) определяет число линейно независимых контуров в сильно связном графе. Так что в корректно написанных программах p=1, и поэтому формула для расчета цикломатической сложности приобретает вид:

    V(G)=e — n + 2.

    МЕТРИКА МАККЕЙБА

    Для оценивания сложности потока управления программ Маккейбом была предложена метрика, базирующаяся на графическом представлении программ. Маккейб предложил представить программу в виде управляющего ориентированного графа G=(V,E), где V - вершины, соответствующие операторам, а E - дуги, соответствующие переходам. Основной метрикой сложности он предлагает считать цикломатическую сложность графа программы, или, как ее еще называют, цикломатическое число Маккейба, характеризующее трудоемкость тестирования программы.

    Для вычисления цикломатического числа Маккейба Z(G) применяется формула

    Z(G)=e-v+2p, (3)

    где e - число дуг ориентированного графа G;

    v - число вершин;

    p - число компонентов связности графа.

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

    Метрика майерса

    Исходя из этого Г. Майерс предложил расширение этой метрики. Суть подхода Г. Майерса состоит в представлении метрики сложности программ в виде интервала [Z(G), Z(G)+h]. Для простого предиката h=0, а для n-местных предикатов h=n-1. Таким образом, первому оператору соответствует интервал [2,2], а второму - [2,6].

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

    Метрика подсчета точек пересечения

    Рассмотрим метрику сложности программ, получившую название "подсчет точек пересечения", авторами которой являются М. Вудвард, М. Хенел и Д. Хидлей. Метрика ориентирована на анализ программ, при создании которых использовалось неструктурное кодирование на таких языках, как язык ассемблера и Фортран.

    В графе программы, где каждому оператору соответствует вершина, т. е. не исключены линейные участки, при передаче управления от вершины a к b номер оператора a равен min(a,b), а номер оператора b - max(a,b). Точка пересечения дуг появляется, если

    min(a,b) < min(p,q) < max(a,b) & max(p,q) > max(a,b) |min(a,b) < max(p,q) < max(a,b) & min(p,q) < min(a,b).

    Иными словами, точка пересечения дуг возникает в случае выхода управления за пределы пары вершин (a,b) (рис. 3).

    Количество точек пересечения дуг графа программы дает характеристику не структурированности программы.

    МЕТРИКА ДЖИЛБА

    Одной из наиболее простых, но, как показывает практика, достаточно эффективных оценок сложности программ является метрика Т. Джилба, в которой логическая сложность программы определяется как насыщенность программы выражениями типа IF-THEN-ELSE. При этом вводятся две характеристики: CL - абсолютная сложность программы, характеризующаяся количеством операторов условия; cl - относительная сложность программы, характеризующаяся насыщенностью программы операторами условия, т. е. cl определяется как отношение CL к общему числу операторов.

    Используя метрику Джилба, мы дополнили ее еще одной составляющей, а именно характеристикой максимального уровня вложенности оператора CLI, что позволило не только уточнить анализ по операторам типа IF-THEN-ELSE, но и успешно применить метрику Джилба к анализу циклических конструкций.

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

    Введем несколько дополнительных понятий, связанных с графом программы.

    Пусть G=(V,E) - ориентированный граф программы с единственной начальной и единственной конечной вершинами. В этом графе число входящих вершин у дуг называется отрицательной степенью вершины, а число исходящих из вершины дуг - положительной степенью вершины. Тогда набор вершин графа можно разбить на две группы: вершины, у которых положительная степень <=1; вершины, у которых положительная степень >=2.

    Вершины первой группы назовем принимающими вершинами, а вершины второй группы - вершинами отбора.

    Для получения оценки по методу граничных значений необходимо разбить граф G на максимальное число подграфов G', удовлетворяющих следующим условиям: вход в подграф осуществляется только через вершину отбора; каждый подграф включает вершину (называемую в дальнейшем нижней границей подграфа), в которую можно попасть из любой другой вершины подграфа.

    Число вершин, образующих такой подграф, равно скорректированной сложности вершины отбора. Каждая принимающая вершина имеет скорректированную сложность, равную 1, кроме конечной вершины, скорректированная сложность которой равна 0. Скорректированные сложности всех вершин графа G суммируются, образуя абсолютную граничную сложность программы. После этого определяется относительная граничная сложность программы:

    S0=1-(v-1)/Sa,

    где S0 - относительная граничная сложность программы;

    Sa - абсолютная граничная сложность программы;

    v - общее число вершин графа программы.

    Метрика граничных значений (boundary value) вычисляется как S0=1-(v-1)/Sa где S0 - относительная граничная сложность программы, Sa - абсолютная граничная сложность программы, v - общее число вершин графа потока управления. Абсолютная граничная сложность определяется как сумма приведенных сложностей всех вершин графа.

    Метрики сложности потока данных связывают сложность программы с использованием и размещением данных в данной программе. Метрики этой группы основаны на анализе исходных текстов программ. К наиболее известным в данной группе метрик можно отнести спен и метрику Чепина.

    Метрика спена.

    Определение спена основывается на локализации обращений к данным внутри каждой программной секции. Спен - это число утверждений, содержащих данный идентификатор, между его первым и последним появлением в тексте программы. Следовательно, идентификатор, появившийся n раз, имеет спен, равный n-1. При большом спене усложняется тестирование и отладка.

    Метрика чeпина.

    Суть метода состоит в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода.

    Все множество переменных, составляющих список ввода-вывода, разбивается на 4 функциональные группы :

    1. P - вводимые переменные для расчетов и для обеспечения вывода.

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

    2. M - модифицируемые, или создаваемые внутри программы переменные.

    3. C - переменные, участвующие в управлении работой программного модуля (управляющие переменные).

    4. T - не используемые в программе ("паразитные") переменные. Поскольку каждая переменная может выполнять одновременно несколько функций, необходимо учитывать ее в каждой соответствующей функциональной группе.

    Далее вводится значение метрики Чепина :

    Q = a1*P + a2*M + a3*C + a4*T, (4)

    где a1, a2, a3, a4 - весовые коэффициенты.

    Метрики стилистики и понятности программ.

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

    Метрика уровня комментированности программ.

    Наиболее простой метрикой стилистики и понятности программ является оценка уровня комментированности программы F:, (1). где Nком – количество комментариев в программе; Nстр - количество строк или операторов исходного текста. Таким образом метрика F отражает насыщенность программы комментариями.

    МЕТРИКА УРОВНЯ КОММЕНТИРОВАННОСТИ ПРОГРАММ.

    Наиболее простой метрикой стилистики и понятности программ является оценка уровня комментированности программы F:

    F=Nком/Nстр, (5)

    где Nком - количество комментариев в программе; Nстр - количество строк или операторов исходного текста.

    Таким образом, метрика F отражает насыщенность программы комментариями.

    Исходя из практического опыта, принято считать, что F>=0.1, т. е. на каждые десять строк программы должен приходиться минимум один комментарий. Как показывают исследования, комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце - недостаток. Это объясняется тем, что в начале программы, как правило, расположены операторы описания идентификаторов, требующие более "плотного" комментирования. Кроме того, в начале программы также расположены "шапки", содержащие общие сведения об исполнителе, характере, функциональном назначении программы и т. п. Такая насыщенность компенсирует недостаток комментариев в теле программы, и поэтому формула (5) недостаточно точно отражает комментированность функциональной части текста программы.


    написать администратору сайта