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

  • Основы метрической теории программ

  • 5.2 Понятие алгоритмической сложности

  • Методы оценки и измерения

  • 5.3. Метрики на основе лексического анализа программ 5.3.1. Вероятностная модель текста программы

  • 5.3.2. Математическое ожидание и дисперсия длины текста программы

  • уровень

  • 5.4. Количественная оценка работы программирования

  • 5.6 Технико-экономическое обоснование программного обеспечения

  • 5.6.1 Расчет трудоемкости работ по разработке программного обеспечения [61]

  • Учебное пособие санктПетербург 2015


    Скачать 3.34 Mb.
    НазваниеУчебное пособие санктПетербург 2015
    Дата25.01.2022
    Размер3.34 Mb.
    Формат файлаpdf
    Имя файлаMetody_otsenki_i_izmerenia_kharakteristik_IS.pdf
    ТипУчебное пособие
    #342027
    страница9 из 21
    1   ...   5   6   7   8   9   10   11   12   ...   21
    Методы оценки и измерения
    характеристик информационных систем
    2) Количественная оценка актуальности, возмож- ности реализации функций, процедур, компонентов
    ИС исходя из заданным ограничений, оценка целесо- образности проекта.
    3) Количественный анализ параметров разраба- тываемой ИС (таких, как количество подсистем, мо- дулей, объема программного средства), а также основ- ных ее характеристик на первичном этапе функциони- рования (эффективность, надежность).
    4) Оценка определенных вопросов, относящихся к метрологии качества ИС.
    Основой программометрики стали математичес- кие модели, позволяющие просчитать и оценить раз- личные параметры разрабатываемых ИС, в том числе, интересующие параметры качества. На выбор подхо- дящей математической модели для оценки качества разрабатываемой ИС существенное влияние оказыва- ют такие факторы, как:
    1) Назначение ИС – дает возможность провести комплексную оценку качества, оценку надежности, сложности, трудоемкости.
    2) Методы разработки ИС – процедурно-ориен- тированные, объектно-ориентированные.
    3) Система и методы измерений – нормативная, экспериментальная, иерархическая, одноранговая.
    4) Методы определения значений – расчетный, экспертный, регистрационный, измерительный.
    Каждая математическая модель программомет- рики направлена на количественный анализ того или иного параметра (характеристики, субхарактеристики)
    ПО, совокупность которых может быть классифици- рована по типу получаемой информации о метриках
    ПО и по типу используемой информации о ПО:
    - по типу получаемой информации о метриках ПО:

    115
    Основы метрической теории программ
    а) определяющие отклонение от заданной нормы показателей;
    б) прогнозирующие значения показателей;
    в) определяющие факт соответствия ПО сфор- мированным требованиям;
    - по типу используемой информации о ПО:
    а) метрики, имеющие в основе лексический ана- лиз ПО (метрики Холстеда, Джилба, Чепина и т.д.);
    б) метрики, базирующиеся на оценке потоков уп- равления (метрика Маккейба);
    в) метрики, оценивающие межмодульные и внут- римодульные связи (наиболее важные характеристики сложности ПО на этапе проектирования);
    г) метрики, анализирующие потоки данных.
    Основной идеей всех перечисленных 4 групп является определение корректности и сложности разрабатываемого ПО, а также прогнозирование па- раметров и характеристик будущего ПО. Путем объ- единения метрик групп б), в), г) можно получить так называемые метрики функциональной связности и сцепления модулей. На этапе проектирования расчет данных метрик позволяет определить надежность ПО, получая оценку минимального сцепления разрабаты- ваемых модулей и максимальной прочности.
    Далее приступим к рассмотрению назначения, функционала, алгоритмов расчета и значения для оценки качества ряда упомянутых выше метрик.
    5.2 Понятие алгоритмической сложности
    Сложность играет важную роль в техничес- ких науках, при этом имеет подчас разные зна- чения. С точки зрения математики, сложность напрямую связана с текстом описания объекта и определяется правилом «чем длиннее текст опи-

    116
    Методы оценки и измерения
    характеристик информационных систем
    сания объекта, тем он сложнее». Очевидно, что при такой постановке ключевую роль играет вы- бор способа описания объекта.
    Исходя из подхода к рассмотрению объектов как некоторых последовательностей символов данного ал- фавита, наилучшим с точки зрения экономии будет ал- горитмический способ их описания. Тогда если обоз- начить ϕ как некоторую частично-рекурсивную функ- цию, получим меру сложности последовательности х:
    min l(p): ϕ(p)=x
    Κ
    ϕ
    =
    ∞, если ∀ ps ϕ(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);

    128
    1   ...   5   6   7   8   9   10   11   12   ...   21


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