Вопрос 35. Понятие метрики. Применения метрик. Метрические шкалы.



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

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

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

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

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

1 случай: система измерений позволяет непосредственно сравнивать программы по качеству( субъективные оценки свойств программ).

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

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

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

Направления применения метрик

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

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

Вопрос 36. Метрики сложности программ. Метрика Холстеда.

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

* метрики размера программ*метрики сложности потока управления программ*и метрики сложности потока данных программ

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

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

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

К группе оценок размера программ можно отнести также и метрику Холстеда.

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

Основу метрики Холстеда составляют четыре измеряемых характеристики программы:

n1 - число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов);n2 - число уникальных операндов программы (словарь операндов);N1 - общее число операторов в программе;N2 - общее число операндов в программе.

Опираясь на эти характеристики, получаемые непосредственно при анализе исходных текстов программ, М. Холстед вводит следующие оценки:

словарь программы

n1=n1+n2,длина реализации (в усл.Ед.. N=N1+N2, объем программыV=N*log2(n) (бит) длина программы (в у. е.)

Ñ = (n1 ´log2 n1)+(n2´log2 ´n2),n* - теоретический словарь программы, т.е. словарный запас, необходимый для написания программы.

Потенциальный объем программы является мерой минимально необходимого объема программы с заданным словарем. При этом потенциальный объем не зависит от языка реализации. При переводе программы с одного языка на другой потенциальный объем не меняется, но  изменяется действительный объем V в зависимости от языка реализации.

Потенциальный объем программы

V* = (n2*+2) ´log2(n2*+2), где n2* - общее число входных и выходных параметров

Используя выражение для потенциального объема программы, Холстедом получены следующие метрики:Число СтраудаS=число «страудовских моментов»/сек. «Страудовский момент» - это время, необходимое человеку для выполнения элементарного различения объектов, подобно различению кадров фильма. Страуд обнаружил, что человек способен различать от 5 до 20 объектов в секунду.

уровень программы (в усл.Ед.)L = V*/ V@ (2´n2)/(n1´N2).   уровень языкаl=L´V*, Уровень языкаl – это коэффициент пропорциональности изменения объема программы при переводе с одного языка на другой.интеллектуальное содержание программ(в у. е)I=L´V@(2´n2/n1´N2)´(N1+N2)´log2(n1+n2)

Интеллектуальное содержание характеризует «информативность». Интеллектуальное содержание (уровень) программы сильно коррелирует с потенциальным объемом (L»V*) и тоже не зависит от языка реализации.Уровень программыL£1 характеризует эффективность реализации алгоритма относительно затрат памяти. Только для наиболее сжатой формы реализации алгоритма (V=V*) уровень программы имеет значение 1. Всем другим вариантам реализации соответствуют значения L<1.

работа по программированию (в условных единицах) E = V/L = V2/V*

время на программирование (в условных единицах)T = E/S,

Т@(n1´N2´log2n´(n1´log2n1+n2´log2n2))/(2´n2´S), гдеS – числоСтрауда (5<S<20).

Работа по программированиюхарактеризует величину умственной работы, связанной с написанием программного кода.Лучше разбивать программы на составные части – модули. Модульность снижает работу по программированию. Для определения количества модулей M в программе Холстед рекомендует использовать выражениеM= n2*/6,      где n2* – общее количество входных и выходных переменных в программе.

Уравнение ошибок в программеB=L´E/E0, гдеВ – количество ошибок в программе,Е0 – среднее число элементарных отличий между возможными ошибками программирования.

Используя преобразованное уравнение работыЕ= (V*)3/l2, значение уровня английского языка (l=2,16), Холстед вывел следующее уравнение для прогноза количества ошибок в программе:В=Е 2/3 /3000,В=V/3000, где V – объем программы.

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

1. Наличие последовательности дополняющих друг друга операторов к одному и тому же операнду, напр., А+C-А.2. Наличие неоднозначных операндов, напр., A=D и A=С.3. Наличие синонимичных операндов, напр., А=В и Т=В.4. Наличие общих подвыражений, напр. (А+В)´С+D´(А+В).5. Ненужное присваивание, напр, С=А+В, если переменная С используется в программе только один раз.6. Наличие выражений, которые не представлены в свернутом виде как произведение множителей, напр.X´X+2´X´Y+Y´Y не представлено как (X+Y)´(X+Y).

Длину реализации N можно использовать для прогноза числа фактических машинных команд Pс помощью неравенства 2´P£N£ 4´P.

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

Но для человека, менее разбирающегося в программировании, требуется больший объем и меньший уровень. Установлено, что для любого алгоритма, описанного разными языками, произведение уровня программы на объем является постоянной величиной, равной потенциальному объему реализации данного алгоритмаL´V=V*=const.

уровень программы остается постоянной величиной, равной уровню языкаL´V=l=const.


Дата добавления: 2018-02-15; просмотров: 1721; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!