Определение метрик
Критерии качества
Метрика качества программ
Основные направления в исследовании метрик
Классификация метрик
ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ МЕТРИК
МЕТРИЧЕСКИЕ ШКАЛЫ
МЕТРИКИ СЛОЖНОСТИ ПРОГРАММ
МЕТРИКИ РАЗМЕРА ПРОГРАММ
МЕТРИКА ХОЛСТЕДА
Метрики Холстеда
Метрики Джилба
МЕТРИКИ СЛОЖНОСТИ ПОТОКА УПРАВЛЕНИЯ ПРОГРАММ
МЕТРИКИ СЛОЖНОСТИ ПОТОКА УПРАВЛЕНИЯ ПРОГРАММ
МЕТРИКА ПОДСЧЕТА ТОЧЕК ПЕРЕСЕЧЕНИЯ
МЕТРИКА ДЖИЛБА
МЕТРИКА ГРАНИЧНЫХ ЗНАЧЕНИЙ

Определение метрик. Качество программного продукта

1. Определение метрик

Качество программного продукта

2. Критерии качества

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

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

Это - система измерений качества
программ.
Измерения могут проводиться на уровне
критериев качества программ или на
уровне отдельных характеристик качества.

4. Основные направления в исследовании метрик

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

5. Классификация метрик

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

6. ОСНОВНЫЕ НАПРАВЛЕНИЯ ПРИМЕНЕНИЯ МЕТРИК

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

7. МЕТРИЧЕСКИЕ ШКАЛЫ

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

8. МЕТРИКИ СЛОЖНОСТИ ПРОГРАММ

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

9. МЕТРИКИ РАЗМЕРА ПРОГРАММ

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

10. МЕТРИКА ХОЛСТЕДА

Основу метрики Холстеда составляют четыре измеряемых
характеристики программы:
n1 - число уникальных операторов программы, включая
символы- разделители, имена процедур и знаки операций
(словарь операторов);
n2 - число уникальных операндов программы (словарь
операндов);
N1 - общее число операторов в программе;
N2 - общее число операндов в программе.
Опираясь на эти характеристики, получаемые
непосредственно при анализе исходных текстов программ, М.
Холстед вводит следующие оценки:
словарь программы n=n1+n2,
длину программы N=N1+N2,
объем программы V=N*log2(n) (бит).
Под битом подразумевается логическая единица
информации - символ, оператор, операнд.

11. Метрики Холстеда

оценка ее реализации
трудность ее понимания Ec = V/ L*
L*= (2 n2 )/ (n1 N2)
трудоемкость
кодирования
D = (n1N2) (2n2) = 1/ L*
уровень языка
выражения
λ * = V/ D2 = V/ L* 2
I=V/D
M = n2*/6
информационное
содержание
оптимальная
модульность

12. Метрики Джилба

количество операторов
цикла;
количество операторов
условия;
число модулей или
подсистем;
отношение числа связей
между модулями к числу
модулей;
отношение числа
ненормальных выходов из
множества операторов к
общему числу операторов;
L1oop
L IF
L
mod
f = N4SV / L
mod
f * = N*SV / L

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

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

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

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

15. МЕТРИКА ПОДСЧЕТА ТОЧЕК ПЕРЕСЕЧЕНИЯ

.
Рассмотрим метрику сложности программ, получившую
название "подсчет точек пересечения", авторами которой
являются М. Вудвард, М. Хенел и Д. Хидлей.
Метрика ориентирована на анализ программ, при создании
которых использовалось неструктурное кодирование на таких
языках, как язык ассемблера и Фортран.
В графе программы, где каждому оператору соответствует
вершина, т. е. не исключены линейные участки, при передаче
управления от вершины 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).Количество точек пересечения
дуг графа программы дает характеристику не
структурированности программы.

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

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

17. МЕТРИКА ГРАНИЧНЫХ ЗНАЧЕНИЙ

Большой интерес представляет оценка сложности программ по методу граничных
значений.
Введем несколько дополнительных понятий, связанных с графом программы.
Пусть G=(V,E) - ориентированный граф программы с единственной начальной и
единственной конечной вершинами. В этом графе число входящих вершин у дуг
называется отрицательной степенью вершины, а число исходящих из вершины дуг положительной степенью вершины. Тогда набор вершин графа можно разбить на две
группы : вершины, у которых положительная степень <=1; вершины, у которых
положительная степень >=2.
Вершины первой группы назовем принимающими вершинами, а вершины второй группы вершинами отбора.
Для получения оценки по методу граничных значений необходимо разбить граф G на
максимальное число подграфов G', удовлетворяющих следующим условиям : вход в
подграф осуществляется только через вершину отбора; каждый подграф включает вершину
(называемую в дальнейшем нижней границей подграфа), в которую можно попасть из
любой другой вершины подграфа. Например, вершина отбора, соединенная сама с собой
дугой-петлей, образует подграф. (рис. 4, таблица 1).
Число вершин, образующих такой подграф, равно скорректированной сложности вершины
отбора (таблица 2). Каждая принимающая вершина имеет скорректированную сложность,
равную 1, кроме конечной вершины, скорректированная сложность которой равна 0.
Скорректированные сложности всех вершин графа G суммируются, образуя абсолютную
граничную сложность программы. После этого определяется относительная граничная
сложность программы :
S0=1-(v-1)/Sa,где S0 - относительная граничная сложность программы; Sa - абсолютная
граничная сложность программы; v - общее число вершин графа программы.
English     Русский Правила