реванрваервервек. Черкасов Максим 27.09.2022. МДК03.02docx. Конспект Понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики
Скачать 34.14 Kb.
|
Конспект: Понятие метрики. Направления применения метрик. Метрические шкалы. Метрики сложности. Метрики стилистики. 1)Ка́чество програ́ммного обеспечения — способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014)[1]. Другие определения из стандартов: 2)Качество ПО – это совокупность свойств, определяющих полезность изделия (программы) для пользователей в соответствии с функциональным назначением и предъявленными требованиями. Характеристика качества программы – понятие, которое отражает отдельные факторы, влияющие на качество программ и поддающиеся измерению 3)Критерий качества- понятие, признак или численный показатель, характеризующий оцениваемый фактор качества. Для вычисления значения критерия используют одну или несколько метрик. 4)Критерий качества - численный показатель, характеризующий степень, в которой программе присуще оцениваемое свойство. Критерии качества включают следующие характеристики : экономичность, документированность, гибкость, модульность, надёжность, обоснованность, тестируемость, ясность, точность, модифицируемость, эффективность, легкость сопровождения и т.д. Критерий должен: * численно характеризовать основную целевую функцию программы; * обеспечивать возможность определения затрат, необходимых для достижения требуемого уровня качества, а также степени влияния на показатель качества различных внешних факторов; * быть по возможности простым, хорошо измеримым и иметь малую дисперсию. Для измерения характеристик и критериев качества используют метрики. 5)Метрика качества программ - система измерений качества программ. Эти измерения могут проводиться на уровне критериев качества программ или на уровне отдельных характеристик качества. В первом случае система измерений позволяет непосредственно сравнивать программы по качеству. При этом сами измерения не могут быть проведены без субъективных оценок свойств программ. Во втором случае измерения характеристик можно выполнить объективно и достоверно, но оценка качества ПО в целом будет связана с субъективной интерпретацией получаемых оценок. 6)В исследовании метрик ПО различают два основных направления : * поиск метрик, характеризующих наиболее специфические свойства программ, т.е. метрик оценки самого ПО; * использование метрик для оценки технических характеристик и факторов разработки программ, т.е. метрик оценки условий разработки программ. метрики, позволяющие прогнозировать качество разрабатываемого ПО. Они заданы на множестве возможных вариантов решений поставленной задачи и их реализации и определяют качество ПО, которое будет достигнуто в итоге. метрики, оценивающие отклонение от нормы характеристик исходных проектных материалов. Они устанавливают полноту заданных технических характеристик исходного кода. метрики, по которым принимается решение о соответствии конечного ПО заданным требованиям. Они позволяют оценить соответствие разработки заданным требованиям. 7) 8) оценки топологической и информационной сложности программ оценки надежности программных систем, позволяющие прогнозировать отказовые ситуации оценки производительности ПО и повышения его эффективности путем выявления ошибок проектирования оценки уровня языковых средств и их применения оценки трудности восприятия и понимания программных текстов, ориентированные на психологические факторы, существенные для сопровождения и модификации программ оценки производительности труда программистов для прогнозирования сроков разработки программ и планирования работ по созданию программных комплексов. 9) Номинальная шкала (шкала наименований, номинативная шкала) состоит в присваивании какому-либо свойству или признаку определенного обозначения или символа (численного, буквенного и т.д.). По сути это- классификация свойств, группирование объектов, объединение их в классы при условии, что объекты, принадлежащие к одному классу, идентичны (или аналогичны) друг другу в отношении какого-либо признака или свойства, тогда как объекты, различающиеся по этому признаку, попадают в разные классы. 10)Порядковая шкала(ранговая шкала) - это шкала, классифицирующая по принципу «больше - меньше», «выше - ниже», «сильнее - слабее». Измерение в этой шкале предполагает приписывание объектам чисел в зависимости от степени выраженности измеряемого свойства. Если в предыдущей шкале было несущественно, в каком порядке располагаются измеренные признаки, то в порядковой шкале все признаки располагаются по рангу - от самого большего (высокого, сильного, умного и т.п.) до самого маленького (низкого, слабого, глупого и т. п.) или наоборот. Типичный и очень хорошо известный всем пример порядковой шкалы - это школьные оценки: от 5 до 1 балла или от 0 до 10 баллов. 11)Интервальная шкала(шкала интервалов) - это шкала, классифицирующая по принципу «больше на определенное количество единиц -меньше на определенное количество единиц». Каждое из возможных значений признака отстоит от другого на равном расстоянии. Главное понятие этой шкалы - интервал, который можно определить как долю или часть измеряемого свойства между двумя соседними позициями на шкале. Размер интервала - величина фиксированная и постоянная на всех участках шкалы. Для измерения посредством шкалы интервалов устанавливаются специальные единицы измерения (в психологии, например, стены и стенайны). Объекту присваивается число единиц измерения, пропорциональное выраженности измеряемого свойства. Важной особенностью шкалы интервалов является то, что у нее нет естественной точки отсчета (нуль условен и не указывает на отсутствие измеряемого свойства). Следовательно, применяя эту шкалу, мы можем судить, насколько больше или насколько меньше выражено свойство при сравнении объектов, но не можем судить о том, во сколько раз больше или меньше выражено свойство. 12)Шкала отношений -это шкала, классифицирующая объекты или субъекты пропорционально степени выраженности измеряемого свойства. В шкалах отношений классы обозначаются числами, которые пропорциональны друг другу: 2 так относится к 4, как 4 к 8. Это предполагает наличие абсолютной нулевой точки отсчета, поэтому при сравнении объектов мы можем сказать не только о том, насколько больше или меньше выражено свойство, но и о том, во сколько раз (на сколько процентов и т.д.) больше или меньше оно выражено. Измерив время решения задачи парой испытуемых, мы можем сказать не только о том, кто и на сколько секунд (минут) решил задачу быстрее, но и о том, во сколько раз быстрее. Следует отметить, что, несмотря на привычность и обыденность абсолютной шкалы, в психологии она используется не часто. Возможности человеческой психики столь велики, что трудно представить себе абсолютный нуль в какой-либо измеряемой психологической переменной. 13)Шкала отношений -это шкала, классифицирующая объекты или субъекты пропорционально степени выраженности измеряемого свойства. В шкалах отношений классы обозначаются числами, которые пропорциональны друг другу: 2 так относится к 4, как 4 к 8. Это предполагает наличие абсолютной нулевой точки отсчета, поэтому при сравнении объектов мы можем сказать не только о том, насколько больше или меньше выражено свойство, но и о том, во сколько раз (на сколько процентов и т.д.) больше или меньше оно выражено. Измерив время решения задачи парой испытуемых, мы можем сказать не только о том, кто и на сколько секунд (минут) решил задачу быстрее, но и о том, во сколько раз быстрее. Следует отметить, что, несмотря на привычность и обыденность абсолютной шкалы, в психологии она используется не часто. Возможности человеческой психики столь велики, что трудно представить себе абсолютный нуль в какой-либо измеряемой психологической переменной. 14) Метрики Сложности программ При оценке сложности программ, как правило, выделяют три основные группы метрик: - метрики размера программ - метрики сложности потока управления программ - метрики сложности потока данных 15)Метрики размера программ. Оценки этой группы наиболее просты и, очевидно, поэтому получили широкое распространение. Традиционной характеристикой размера программ является количество строк исходного текста. Под строкой понимается любой оператор программы, поскольку именно оператор, а не отдельно взятая строка является тем интеллектуальным "квантом" программы, опираясь на который можно строить метрики сложности ее создания. Непосредственное измерение размера программы, несмотря на свою простоту, дает хорошие результаты. Конечно, оценка размера программы недостаточна для принятия решения о ее сложности, но вполне применима для классификации программ, существенно различающихся объемами. При уменьшении различий в объеме программ на первый план выдвигаются оценки других факторов, оказывающих влияние на сложность. Таким образом, оценка размера программы есть оценка по номинальной шкале, на основе которой определяются только категории программ без уточнения оценки для каждой категории. 16)МЕТРИКИ ХОЛСТЕДА. Основу метрики Холстеда составляют четыре измеряемых характеристики программы: n1 - число уникальных операторов программы, включая символы-разделители, имена процедур и знаки операций (словарь операторов); n2 - число уникальных операндов программы (словарь операндов); N1 - общее число операторов в программе; N2 - общее число операндов в программе. Опираясь на эти характеристики, получаемые непосредственно при анализе исходных текстов программ, М. Холстед вводит следующие оценки: словарь программы: n =n1+n2, длина программы: N=N1+N2 (1) объем программы: V=N*log2(n) (бит) (2) 17)Метрики сложности потока управления программ. Вторая группа оценок сложности программ - метрики сложности потока управления программ. Как правило, с помощью этих оценок оперируют либо плотностью управляющих переходов внутри программ, либо взаимосвязями этих переходов. 18)Для оценивания сложности потока управления программ Маккейбом была предложена метрика, базирующаяся на графическом представлении программ. Маккейб предложил представить программу в виде управляющего ориентированного графа G=(V,E), где V - вершины, соответствующие операторам, а E - дуги, соответствующие переходам. Основной метрикой сложности он предлагает считать цикломатическую сложность графа программы, или, как ее еще называют, цикломатическое число Маккейба, характеризующее трудоемкость тестирования программы. 19)Метрика Майерса Дж. Майерс предложил в качестве метрики сложности интервал [n 1¸ n 2], где n 1- цикломатическая мера, а n 2 - число отдельных условий плюс единица. При этом, оператор DO считается за одно условие, а CASE c n - исходами за n - 1- условий. Введенная мера получила название интервальной мерой. К метрикам сложности, учитывающим вложенность управляющих конструкций, относят метрику Харрисона-Мейджела, учитывающую уровень вложенности и протяженности программного обеспечения, метрику Пивоварского , учитывающую цикломатическую сложность и глубину вложенности, и метрику Мак-Клура , учитывающую сложность схемы разбиения программы на модули с учетом вложенности модулей и их внутренней сложности. 20)Одной из наиболее простых, но, как показывает практика, достаточно эффективных оценок сложности программ является метрика Т. Джилба, в которой логическая сложность программы определяется как насыщенность программы выражениями типа IF-THEN-ELSE. При этом вводятся две характеристики: CL - абсолютная сложность программы, характеризующаяся количеством операторов условия; cl - относительная сложность программы, характеризующаяся насыщенностью программы операторами условия, т. е. cl определяется как отношение CL к общему числу операторов. 21)Метрика граничных значений (boundary value) вычисляется как S0=1-(v-1)/Sa где S0 - относительная граничная сложность программы, Sa - абсолютная граничная сложность программы, v - общее число вершин графа потока управления. Абсолютная граничная сложность определяется как сумма приведенных сложностей всех вершин графа 22)Метрики сложности потока данных Метрики сложности потока данных связывают сложность программы с использованием и размещением данных в данной программе. Метрики этой группы основаны на анализе исходных текстов программ.К наиболее известным в данной группе метрик можно отнести спен и метрику Чепина 23)МЕТРИКА ОБРАЩЕНИЯ К ГЛОБАЛЬНЫМ ПЕРЕМЕННЫМ Рассмотрим метрику, связывающую сложность программ с обращениями к глобальным переменным. Пара "модуль-глобальная переменная" обозначается как (p,r), где p - модуль, имеющий доступ к глобальной переменной r. В зависимости от наличия в программе реального обращения к переменной r формируются два типа пар "модуль-глобальная переменная" : фактические и возможные. Возможное обращение к r с помощью p показывает, что область существования r включает в себя p. Характеристика Aup говорит о том, сколько раз модули Up действительно получали доступ к глобальным переменным, а число Pup - сколько раз они могли бы получить доступ. Отношение числа фактических обращений к возможным определяется Rup = Aup/Pup. Эта формула показывает приближенную вероятность ссылки произвольного модуля на произвольную глобальную переменную. Очевидно, чем выше эта вероятность, тем выше вероятность "несанкционированного" изменения какой-либо переменной, что может существенно осложнить работы, связанные с модификацией программы. 24)Метрика спена. Определение спена основывается на локализации обращений к данным внутри каждой программной секции. Спен — это количество утверждений, содержащих данный идентификатор, между его первым и последним появлением в тексте программы. Следовательно, идентификатор, появившийся п раз, имеет спен, равный п — 1. При большом спене усложняется тестирование и отладка 25)Суть метода состоит в оценке информационной прочности отдельно взятого программного модуля с помощью анализа характера использования переменных из списка ввода-вывода. Все множество переменных, составляющих список ввода-вывода, разбивается на 4 функциональные группы : P - вводимые переменные для расчетов и для обеспечения вывода; примером может служить используемая в программах лексического анализатора переменная, содержащая строку исходного текста программы, т.е. сама переменная не модифицируется, а только содержит исходную информацию. M - модифицируемые, или создаваемые внутри программы переменные. C - переменные, участвующие в управлении работой программного модуля (управляющие переменные). T - не используемые в программе ("паразитные") переменные. Поскольку каждая переменная может выполнять одновременно несколько функций, необходимо учитывать ее в каждой соответствующей функциональной группе. Далее вводится значение метрики Чепина : Q = a1*P + a2*M + a3*C + a4*T, (8) где a1, a2, a3, a4 - весовые коэффициенты. Весовые коэффициенты в выражении (8) использованы для отражения различного влияния на сложность программы каждой функциональной группы. По мнению автора метрики, наибольший вес, равный трем, имеет функциональная группа C, так как она влияет на поток управления программы. Весовые коэффициенты остальных групп распределяются следующим образом : a1=1, a2=2, a4=0.5. Весовой коэффициент группы T не равен 0, поскольку "паразитные" переменные не увеличивают сложность потока данных программы, но иногда затрудняют ее понимание. С учетом весовых коэффициентов выражение (8) принимает вид : Q = P + 2M + 3C + 0.5T Следует отметить, что рассмотренные метрики сложности программ основаны на анализе исходных текстов программ и графов, что обеспечивает единый подход к автоматизации из расчета. 26)Наиболее простой метрикой стилистики и понятности является оценка уровня комментированности программы F: F = Nком/Nстр, где Nком — количество комментариев в программе; Nстр – количество строк или операторов исходного текста. Таким образом, метрика F отражает насыщенность программы комментариями. Исходя из практического опыта принято считать, что F?0.1, т. е. на каждые десять строк программы должен приходиться минимум один комментарий. Как показывают исследования, комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце – недостаток. Это объясняется тем, что в начале программы, как правило, расположены операторы описания идентификаторов, требующие более «плотного» комментирования. Кроме того, в начале программы также расположены «шапки», содержащие общие сведения об исполнителе, характере, функциональном назначении программы и т. п. Такая насыщенность компенсирует недостаток комментариев в теле программы, и поэтому приведенная формула недостаточно точно отражает комментированность функциональной части текста программы. Более удачен вариант, когда вся программа разбивается на n равных сегментов и для каждого из них определяется Fi: Fi=sign(Nком/Nстр–0.1), при этом Уровень комментированности программы считается нормальным, если выполняется условие: F=n. В противном случае какой либо фрагмент программы дополняется комментариями до нормального уровня. Необходимо подчеркнуть, что стилистика и понятность программ тесно связана и с размером и со сложностью программ. Поэтому не следует забывать о некоторой условности группировки метрик программ.Наиболее простой метрикой стилистики и понятности является оценка уровня комментированности программы F: F = Nком/Nстр, где Nком — количество комментариев в программе; Nстр – количество строк или операторов исходного текста. Таким образом, метрика F отражает насыщенность программы комментариями. Исходя из практического опыта принято считать, что F?0.1, т. е. на каждые десять строк программы должен приходиться минимум один комментарий. Как показывают исследования, комментарии распределяются по тексту программы неравномерно: в начале программы их избыток, а в середине или в конце – недостаток. Это объясняется тем, что в начале программы, как правило, расположены операторы описания идентификаторов, требующие более «плотного» комментирования. Кроме того, в начале программы также расположены «шапки», содержащие общие сведения об исполнителе, характере, функциональном назначении программы и т. п. Такая насыщенность компенсирует недостаток комментариев в теле программы, и поэтому приведенная формула недостаточно точно отражает комментированность функциональной части текста программы. Более удачен вариант, когда вся программа разбивается на n равных сегментов и для каждого из них определяется Fi: Fi=sign(Nком/Nстр–0.1), при этом Уровень комментированности программы считается нормальным, если выполняется условие: F=n. В противном случае какой либо фрагмент программы дополняется комментариями до нормального уровня. Необходимо подчеркнуть, что стилистика и понятность программ тесно связана и с размером и со сложностью программ. Поэтому не следует забывать о некоторой условности группировки метрик программ. 27)МЕТРИКА ИЗМЕНЕНИЯ ДЛИНЫ ПРОГРАММНОЙ ДОКУМЕНТАЦИИ Рассмотрим еще одну метрику, по своему характеру несколько отличающуюся от предыдущих. Она опирается на принцип оценки, при котором используется измерение флуктуации длин программной документации. Исходным является предположение о том, что чем меньше изменений и корректировок вносится в программную документацию, тем более четко были сформулированы решаемые задачи на всех этапах работ. По мнению автора метрики, неточности и неясности при создании ПО служат причиной увеличения количества корректировок и изменений в документации. И, напротив, демпфированный переходный процесс с немногочисленными изменениями длин документов -естественное следствие хорошо обдуманной идеи, хорошо проведенного анализа, проектирования и ясной структуры программ. Эти взаимосвязи и являются основными для данного метода оценки, суть которого состоит в следующем.редположим, что документация изменяется в дискретные моменты времени t(i), i=1,2,...,n. Тогда в любой момент времени t(i) текущая длина документа l(i) может быть определена как l(i) = l(i-1) + a(i) - b(i); l(0) = 0, где l(i-1) - длина документа в предыдущий момент времени; a(i) - добавляемая часть документа; b(i) - исключаемая часть документа. Далее вводится d(i), представляющая собой отклонение текущей длины документа l(i) от конечного значения l(n): d(i) = l(n) - l(i). Затем рассчитывается интеграл по модулю этого отклонения на интервале от t(i) до t(n), представленный в виде суммы: n-1 H(n) = Сумма |d(i)| * (t(i+1) - t(i)). (10) i=1 Значение H(n) представляет собой оценку переходного процесса для интервала времени от t(1) до t(n). Однако H(n) не учитывает изменений типа a(i)=b(i), хотя они, бесспорно, влияют на ход дальнейшего процесса. Чтобы отразить влияние изменений такого рода, называемых в дальнейшем импульсными, вводится экспоненциальная функция, отражающая функцию отклика. Заштрихованная область на рис.5 представляет собой дополнение к оценке H, отражающее влияние импульсного изменения длины документов и вычисляемое как Интеграл a(i)*e^(-L^(-1*(t-t(i))))dt = L*L(i) = L*b(i), L>0. (11) t(i) Таким образом, оценка длины документа пропорциональна значению импульсного изменения длины a(i)=b(i) с коэффициентом пропорциональности L. В принципе импульсное изменение длины документа присутствует и при a(i)<>b(i). Поэтому с учетом (11) автор метрики преобразует выражение (10) к виду n-1 H'(n) = Сумма [ |d(i)| * (t(i+1)-t(i)) + L*c(i) ], (12) i=1 причем c(i) = min {a(i), b(i)}. Если в процессе работы значения a(i) и b(i) неконтролируемы, импульсное изменение длины учесть нельзя. Тогда c(i)=0, и выражение (12) вырождается в (10). Используя конечное значение длины документа, можно записать H(n)'' = H(n)' / l(n).П |