Учебное пособие санктПетербург 2015
Скачать 3.34 Mb.
|
Методы оценки и измерения характеристик информационных систем 2) Количественная оценка актуальности, возмож- ности реализации функций, процедур, компонентов ИС исходя из заданным ограничений, оценка целесо- образности проекта. 3) Количественный анализ параметров разраба- тываемой ИС (таких, как количество подсистем, мо- дулей, объема программного средства), а также основ- ных ее характеристик на первичном этапе функциони- рования (эффективность, надежность). 4) Оценка определенных вопросов, относящихся к метрологии качества ИС. Основой программометрики стали математичес- кие модели, позволяющие просчитать и оценить раз- личные параметры разрабатываемых ИС, в том числе, интересующие параметры качества. На выбор подхо- дящей математической модели для оценки качества разрабатываемой ИС существенное влияние оказыва- ют такие факторы, как: 1) Назначение ИС – дает возможность провести комплексную оценку качества, оценку надежности, сложности, трудоемкости. 2) Методы разработки ИС – процедурно-ориен- тированные, объектно-ориентированные. 3) Система и методы измерений – нормативная, экспериментальная, иерархическая, одноранговая. 4) Методы определения значений – расчетный, экспертный, регистрационный, измерительный. Каждая математическая модель программомет- рики направлена на количественный анализ того или иного параметра (характеристики, субхарактеристики) ПО, совокупность которых может быть классифици- рована по типу получаемой информации о метриках ПО и по типу используемой информации о ПО: - по типу получаемой информации о метриках ПО: 115 Основы метрической теории программ а) определяющие отклонение от заданной нормы показателей; б) прогнозирующие значения показателей; в) определяющие факт соответствия ПО сфор- мированным требованиям; - по типу используемой информации о ПО: а) метрики, имеющие в основе лексический ана- лиз ПО (метрики Холстеда, Джилба, Чепина и т.д.); б) метрики, базирующиеся на оценке потоков уп- равления (метрика Маккейба); в) метрики, оценивающие межмодульные и внут- римодульные связи (наиболее важные характеристики сложности ПО на этапе проектирования); г) метрики, анализирующие потоки данных. Основной идеей всех перечисленных 4 групп является определение корректности и сложности разрабатываемого ПО, а также прогнозирование па- раметров и характеристик будущего ПО. Путем объ- единения метрик групп б), в), г) можно получить так называемые метрики функциональной связности и сцепления модулей. На этапе проектирования расчет данных метрик позволяет определить надежность ПО, получая оценку минимального сцепления разрабаты- ваемых модулей и максимальной прочности. Далее приступим к рассмотрению назначения, функционала, алгоритмов расчета и значения для оценки качества ряда упомянутых выше метрик. 5.2 Понятие алгоритмической сложности Сложность играет важную роль в техничес- ких науках, при этом имеет подчас разные зна- чения. С точки зрения математики, сложность напрямую связана с текстом описания объекта и определяется правилом «чем длиннее текст опи- 116 Методы оценки и измерения характеристик информационных систем сания объекта, тем он сложнее». Очевидно, что при такой постановке ключевую роль играет вы- бор способа описания объекта. Исходя из подхода к рассмотрению объектов как некоторых последовательностей символов данного ал- фавита, наилучшим с точки зрения экономии будет ал- горитмический способ их описания. Тогда если обоз- начить ϕ как некоторую частично-рекурсивную функ- цию, получим меру сложности последовательности х: min l(p): ϕ(p)=x Κ ϕ = ∞, если ∀ p∈s ϕ(p)≠x, где р - код, по которому ϕ восстанавливает последо- вательность х; l(p) - длина кода (число двоичных раз- рядов), а s - набор всех допустимых программ. В программометрике широко распространена формулировка меры сложности некоторой после- довательности символов из данного определенно- го алфавита как длины (числа двоичных разрядов) наиболее короткой программы, которая генерирует такую последовательность. Рассмотрим основные свойства меры сложности: 1. Κ ϕ ≤ l(x), т.е. сложность х не превосходит длины после- довательности х; 2. lim Κ ϕ = ∞, ∞ → x т.е. сложность последовательности символов х растет с ростом длины последовательности неогра- ниченно; 3. практически все последовательности слу- чайны, т.е. несжимаемы; 117 Основы метрической теории программ 4. алгоритмическая сложность произвольной последовательности символов не превосходит энт- ропии последовательности: Энтропия последовательности может быть просчитана путем вычисления вероятностей-частот символов в данной последовательности: N m P 1 1 = ; N m P 2 2 = ; ...... N m P s s = В уточненном виде неравенство алгоритмичес- кой сложности данной последовательности симво- лов может быть представлено как: Κ ϕ ≤slog2s. 5.3. Метрики на основе лексического анализа программ 5.3.1. Вероятностная модель текста программы Исследования квантитативной лингвистики поз- волили выявить ряд закономерностей, в том числе, эмпирических, широко известных в настоящее время. Например, закон Ципфа устанавливает соотношение между частотой появления слов в тексте (выделенных из словаря данного текста) и длиной данного текста. Похожие результаты были получены М.Холстедом при анализе текстов программ, реализованных на несколь- ких алгоритмических языках. Им же было выявлено эмпирическое соотношение общего числа слов про- граммы и их величины в словаре, в дальнейшем тео- ретически обоснованные исходя из свойств сложности алгоритмической теории. 118 Методы оценки и измерения характеристик информационных систем Основные условия, которым должны удовлетво- рять тексты программ, словарь которых состоит только из операндов и имен операторов, приведены ниже: 1) возникновение операнда или имени оператора подряд много раз маловероятно; 2) повторение какой-либо группы операндов или операторов много раз исключается путем циклической организации программ; 3) при использовании процедур и функций в тек- сте программы присутствуют только имена процедур и функций без непосредственного повторения целых блоков программ периодически; 4) если имя операнда объявлено в программе, хотя бы раз оно в ней появится. Тем самым, если рассматривать любую программу как результат сжатия развертки (путем использования процедур и функций, циклов), можно сделать вывод о том, что длина программы является мерой сложности ее развертки, и все свойства развертки оказывают сущест- венное влияние на сокращение текста программы. 5.3.2. Математическое ожидание и дисперсия длины текста программы Если текст программы рассматривать без уче- та его семантики, только как случайную последова- тельность операндов и операторов, которые образуют словарь программы, актуальной становится задача использования определенного генератора случайных последовательностей для написания текста этой про- граммы. Эта цель может быть описана как формиро- вание выборки из данной генеральной совокупности с возвратом. Если принять за r L число извлечений из генеральной совокупности, идущих за фиксацией r- ого имени оператора до выбора следующего (r+1)-ого 119 Основы метрической теории программ включительно., то имеет место соотношение, дающее информацию о выборке, которая исчерпала генеральную совокупность (в нашем случае – словарь программы): Q1 = 1 + L1 + L2 + ....+ Lr-1 + Lr + ...+ Lη-1 Распределение r L будет соответствовать распре- делению номера первого успеха с вероятностью, равной исходя из чего математическое ожидание пред- ставляется в виде: Используя теорию сложения математических ожиданий, свойств сумм гармонических рядов и пере- ходя к двоичным логарифмам, имеем: Это соотношение является соотношением Хол- стеда, которое дает информацию о математическом ожидании числа слов некоторой программы (ее дли- ны), если словарь программы составляют η слов (опе- рандов и операторов). Путем многомерного статистического анализа это соотношение было уточнено, и была определена зависимость с уровнем значимости % 6 3 ÷ ± : Тем самым, уже на стадии определения задач мо- гут быть оценены количество имен входных перемен- ных, количество имен выходных переменных, опера- ции с которыми будет выполнять проектируемое ПО. 120 Методы оценки и измерения характеристик информационных систем В результате чего на стадии определения задач может быть просчитана и оценена длина (количество слов) проектируемого ПО, что напрямую связано с этапом определения трудоемкости проекта и некоторых до- полнительных характеристик. Если предположить, что программу можно раз- бить на модули, все из которых в программе равны, то количество слов одного модуля в словаре будет опре- деляться как а для длины M N и дисперсии ) ( M Q D модуля выведены соотношения: Используя теоремы сложения, для целой про- граммы получаем: Оценить точность рассмотренного соотношения Холстеда можно путем расчета отношения абсолютно- го разброса длины программы к ее математическому ожиданию, а именно: Тем самым, можно сделать вывод о том, что со- отношение Холстеда будет вычисляться точнее с рос- том длины программы. 121 Основы метрической теории программ 5.3.3. Метрические характеристики программ Характеристика «длина программы» напрямую связана с определением других важнейших ее харак- теристик. Одна из них – объем программы, для определе- ния которого важно количество двоичных разрядов, а не слов. Если словарь состоит из η слов, то для ре- шения проблемы задания номера каждого из слов, не- обходимо минимум logη бит. Тогда объем программы может быть рассчитан как: V=Nlogη= ηlog 2 η Далее, уточним полученные выше соотношения путем разделения количества операторов и операндов, обозначив их как η 1 и η 2 соответственно. Тогда соотно- шение Холстеда можно переписать в виде: Принимая во внимание примерное взаимно-од- нозначное соответствие между количеством операто- ров и операндов (поскольку всякий операнд появляет- ся в тексте программы хотя бы с одним операндом), приходим к важному для практики выводу: N≈2N 2 = 2 η 2 log η 2 Если ввести дополнительный параметр η 2 * - раз- мер генеральной совокупности имен входных-выход- ных переменных, получаем: Для минимально возможного объема програм- мы выведено соотношение: 122 Методы оценки и измерения характеристик информационных систем Исходя из него, может быть рассчитан уровень реализации программы: Этот важный показатель дает информацию об экономичности использования выразительных средств языка, выявляет степень компактности программы. Чем ближе значение L к единице, тем более совершен- ной считается программа. Данные показатели могут быть уточняться при решении проблем оптимизации количества модулей и их длины в программе. Задача структуризации про- граммного средства на этапе проектирования носит содержательный характер и не может быть форма- лизована, тем не менее, расчет этих метрических ха- рактеристик принципиально важен для определения наилучших параметров его структуры. Расчет числа и длины модулей и других подобных характеристик позволяет определить оптимальные с точки зрения ка- чества проекта параметры структуры проектируемого программного средства. 5.4. Количественная оценка работы программирования Объективной оценкой работы программирова- ния может стать число сравнений выборок в описан- ной выше модели этого процесса. Согласно теории сортировки, минимальное число сравнений в процес- се поиска элемента массива бывает при дихотомичес- кой выборке (шкала кодируется 2 значениями, 0 или 1, взаимно исключающими) и равно log m. Пусть N - длина программы, η - ее словарь, тогда работа программирования (Е, общее количество выбо- 123 Основы метрической теории программ рок) будет равна Nlogη. При этом учитывается уровень реализации программы L: число выборок увеличива- ется в L 1 раз. Тогда работа программирования может быть рас- считана по формуле: поскольку Воспользовавшись определением «числа Стра- уда» (характеризующего количество мысленных срав- нений, которые производит индивидуум в секунду) и определением квалификационного времени програм- мирования (T) как отношения работы к числу Страуда, получаем: Для расчета календарного времени программи- рования (Тк) воспользуемся формулой расчета коли- чества команд (С): , 8 3 N C = где − 8 3 коэффициент пересчета Кнута. Тогда: 3 ( дней) 8 к N Т vn = 124 Методы оценки и измерения характеристик информационных систем Дополнительные сведения, касающиеся работы программировании, может дать введенная Холстедом метрика оценки уровня языка программирования: λ = L 2 V В таблице 6 приведены значения уровня языка программирования для некоторых широко используе- мых языков, представленных в таблице 6: Таблица 6 – Уровни языков программирования Язык λ Бейсик 1,22 Паскаль 1,25 Ассемблер 0,88 Фортран 1,14 Естественный язык 2,16 Для оценки соотношения двух языков программи- рования вводят оценку отношения их квалификацион- ного времени, которая выглядит следующим образом: Таким образом, на повышение производитель- ности процесса программирования может оказать вли- яние и процесс повышения уровня алгоритмических языков. 125 Основы метрической теории программ 5.5. Метрика Чепина Помимо метрик Холстеда, рассмотренных в дан- ном разделе, необходимо уделить также внимание мет- рике Чепина – мерам определения трудности понимания программ на основании входных и выходных данных. Базовый вариант данной метрики, признаваемый на- иболее эффективным с точки зрения практического внед- рения, включает в себя 4 функциональные группы числа переменных, формирующих перечень ввода-вывода: 1) Р – переменные, используемые для расчетов и для вывода. 2) М – переменные, которые создаются внутри программы (модифицируемые). 3) С – управляющие переменные, назначение ко- торых состоит в управлении функционирования про- граммного модуля. 4) Т – так называемые «паразитные» переменные (не используемые в программе). Переменные тако- го типа не играют решающей роли для поставленной главной задачи, однако могут быть использованы для реализации промежуточных действий. Характерной особенностью метрики Чепина яв- ляется необходимость учета всех переменных во всех функциональных группах, так как та или иная пере- менная может быть использована сразу для реализа- ции нескольких функций. Метрика Чепина в базовом варианте выглядит следующим образом: Q = a*P + b*M + c*C + d*T, где a, b, c, d – весовые коэффициенты. Весовые коэффициенты в этой формуле вводятся для нормализации разного влияния той или иной груп- пы переменных на сложность программы. 126 Методы оценки и измерения характеристик информационных систем Автор метрики присваивает весовым коэффици- ентам следующие значения: a = 1, b = 2, c = 3, d = 0,5. Наименьший весовой коэффициент относится к группе Т не случайно: «паразитные» переменные до- вольно часто усложняют понимание программы, при этом не увеличивая сложность потока данных. Стоит упомянуть, что метрика Чепина была оп- ределена путем анализа исходных текстов программ, тем самым, представляет собой еще один подход к их автоматизированному анализу. 5.6 Технико-экономическое обоснование программного обеспечения Качество программного обеспечения неразрыв- но связано с эффективностью от его использования. Для оценки этой характеристики используют понятие технико-экономического обоснования. Технико-экономическое обоснование проекта по разработке программного обеспечения (ТЭО) – это процедура, необходимая для [61]: 1) Определения целесообразности проекта по разработке и внедрению системы. 2) Расчета и анализа необходимых денежных средств по планируемому сроку действия системы. 3) Расчета прибыли, оценки сроков окупаемости затрат и условий их окупаемости. 5.6.1 Расчет трудоемкости работ по разработке программного обеспечения [61] Для расчета трудоемкости создания програм- много обеспечения в человеко-часах используют фор- мулу: 127 Основы метрической теории программ где То – затраты, необходимые для описания задачи; Ти – затраты, необходимые для исследования об- ласти разработки; Та – затраты, необходимые для описания блок-схе- мы; Тп – затраты, необходимые для процедуры про- граммирования; Тотл – затраты, необходимые для отладки ПО; Тд – затраты, необходимые для написания доку- ментации. Для определения большей части составляющих трудоемкости вводится формула расчета общего коли- чества операторов D: где α – количество операторов, ед; с – коэффициент трудности задачи, (с: 1,25-2); p – параметр коррекции ПО, определяющий его новизну (для абсолютно нового ПО p = 0,1). Для расчета требуемого труда на исследование предметной области разработки используют формулу: где D – суммарное число операторов, ед.; b – коэффициент повышения затрат труда из-за неполного описания предметной области (b: 1,2-1,5); |