Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программометрика.doc
Скачиваний:
63
Добавлен:
01.05.2014
Размер:
719.87 Кб
Скачать

Порядок расчета метрических характеристик пс, трудоемкости реализации и начальной надежности на основе постановок задач

Анализ структуры входных и выходных данных - наиболее ответственный момент в процессе проектирования ПС. Точность расчета его метрических характеристик, гарантированная соотношением Холстеда, может быть достигнута только в том случае, если правильно оценен параметр 2 в принятой постановке задачи. Рассмотрим один из вариантов этого расчета.

1). Расчет структурных параметров ПС.

Приняв рекомендацию[3], что оптимальное число входных переменных модуля равно 8, находим число модулей ПС:

Если k>>8, то структура ПС будет многоуровневой (иерархической), при этом число уровней

В этом случае необходимо сделать поправку на число модулей в соответствии с выражением

однако ввиду быстрого убывания членов этого ряда достаточно (без потери точности) ограничиться двумя первыми слагаемыми. Заметим еще раз, что число уровней иерархии на практике обычно не превосходит 8.

2). Расчет длины программы.

Так как то

то длина модуля слов.

Отсюда полная длина ПС будет

(Последним слагаемым часто пренебрегают).

3). Расчет объема ПС.

Находим объем одного модуля:

.

Тогда

4). Расчет количества команд ассемблера.

где коэффициент пересчета Кнута.

5). Расчет календарного времени программирования.

где n - количество программистов в бригаде, v - производительность (число отлаженных команд в день), устанавливаемая директивно в пределах 10v30.

6). Расчет начального количества ошибок (перед комплексной отладкой)

7). Расчет начальной надежности ПС.

В пределах календарного времени разработки период отладки , исходя из обобщения практического опыта[10], определяют из неравенства

Положим из определенности

Тогда

н=

(Заметим, что здесь количество дней Tk необходимо перевести в соответствующее количество часов, исходя из установленной длительности рабочего дня).

Если tн оказывается меньше заранее обусловленного значения, например, tн < 150 часов, то в пределах Tk увеличивают время отладки. В случае технической невозможности это сделать по согласованию с заказчиком (на основе постановок задач) увеличивают календарное время Tk с одновременным увеличением в нем доли отладки. Как следует из приведенной последовательности расчетов, программометрический подход позволяет управлять разработкой ПС по срокам (изменяя количество программистов); по начальной надежности (изменяя долюв пределахTk или увеличивая Tk). Кроме того, он обеспечивает оптимизацию объемных и структурных параметров ПС, а также обеспечивает на основе оценки трудоемкости расчет себестоимости всей разработки ПС.

Глава III.

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

  1. Трансляторы.

Не имея конкретной спецификации этого типа ПС, ограничимся следующими исходными данными для проектирования: число блоков (соответственно число просмотров) транслятора примем равным 3; количество машинных команд объектной ЭВМ - 80; количество простых операторов алгоритмического языка - 60. Для определенности примем также, что бригада программистов состоит из 5 человек.

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

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

  2. При стандартном количестве входных переменных, обрабатываемых одним модулем, принятым равным 8, то есть, длина одного модуля составитNk =220 слов. Тогда длина блока будет бслов, а общая длинабслов.

  3. Объем одного блока ббит, а всего транслятораббит.

  4. Пересчет длины N в эквивалентное количество машинных команд дает команд.

  5. Нормативное календарное время разработки поэтому будет кдней. Заметим, что в качестве норматива производительности одного человека взято нижнее значение этой величины.

  6. Оценим начальное количество ошибок (перед комплексной отладкой): ошибки.

  7. Для оценки надежности в начале опытной эксплуатации положим, что половина календарного времени отводится отладке данного ПС, то есть дней (или336часов).

Тогда

tнчасов.

Ясно, что для достижения значения tн, приемлемого с точки зрения промышленной эксплуатации (как это легко вывести из формул), то есть 5000-6000 часов, необходимо еще около восьми месяцев, так что полный цикл разработки составит около года.

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

  1. Операционные системы.

Состояние вычислительной системы в любой момент времени фиксируется в так называемом регистре состояния. Основное назначение операционной системы - управление работой ЭВМ в соответствии с изменениями этого регистра и заданными приоритетами. Если число разрядов регистра состояния равно R, то общее количество комбинаций событий, возникающих в процессе работы системы, которое он может зафиксировать, будет 2R. Это - переполнение разрядной сетки сумматора, деление на ноль, прерывание по таймеру, обмен с внешними устройствами и т.п. Каждое новое состояние регистра должно быть обработано. Таким образом, входной словарь операционной системы составит слов. (Заметим, что состояния регистра не могут быть упорядочены и представлены массивом).

Положим, для определенности, R=10; тогда

Задавшись этим основным исходным параметром, приступим к оценке интересующих нас метрических характеристик проектируемой операционной системы.

1. Количество иерархических уровней

Количество модулей всех уровней

  1. Длина проектируемого ПС слов.

  2. Его объем бит.

  3. Эквивалентное количество команд

  4. Оценку нормативного календарного времени разработки произведем полагая, как установлено опытом разработки подобных ПС [10], v=4. Положим, что коллектив разработчиков состоит из 14 программистов. Тогда Тк дней, что близко к количеству рабочих дней в году.

  5. Ожидаемое количество ошибок (перед комплексной отладкой)

  6. Будем считать, как и в предыдущем примере, Тк. Тогда начальная надежность tн=часов. Для повышения этого значенияtн возможны следующие варианты:

  • увеличить количество программистов, сократив тем самым время написания программ и увеличив время отладки, не выходя за пределы Тк;

  • увеличить Тк.

  1. Конструкторская компоновка логических схем.

Соотношение Холстеда, установленное для текстов и их словарей, допускает значительно более широкую трактовку. На основе лингвистического подхода к сложным системам [2] показано, что если базовые элементы большой системы интерпретировать как "словарь", то их общее количество в ней также подчиняется этому соотношению. Для примера рассмотрим класс комбинационных логических схем. Одна из конструкторских задач, возникающих в связи сними, заключается в оценке соотношения между числом логических элементов в интегральной схеме и количеством выводов (контактов), необходимое для рационального построения набора стандартных ИС. Опытным путем для числа логических элементов в схеме было получено выражение - правило Рента гдеQ - число выводов (контактов).

Найдем программометрическое решение этой задачи. Интерпретируя все контакты ИС как словарь операндов, а базисные операции (например, И, ИЛИ, НЕ) как операторы, будем рассматривать произвольную булеву функцию как "текст" некоторой программы. С конструкторской точки зрения выгодно последнюю разбивать на "модули" с числом входных переменных, равным двум. Это соответствует представлению булевой функции от большого числа переменных как суперпозицию функций двух переменных. Таким образом, а

Следовательно,

а число "команд"

Отождествляя входы-выходы ИС (контакты) с (словарь), а "команды" с логическими элементами, получим окончательно

Nc=

В пределах точности соотношения Холстеда вычисления по этой формуле и правилу Рента дают совпадающие значения во всем диапазоне практического изменения Nc и Q.

Заключение

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

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

Приложение 1

Итак, каждая серия испытаний Q1, Q2, Q3 и т.д. разбивается на подсерии, описываемые биномиальным распределением с вероятностью успеха

и, соответственно, вероятностью неудачи

Таблица этого распределения имеет следующий вид

Lr

1

2

3

.......

i

......

p

p

pq

pq2

.......

pqi

......

Поэтому математическое ожидание ,будет

Найдем сумму ряда

Представим его общий член iqi-1 в виде

Тогда

так как есть бесконечно убывающая геометрическая прогрессия.

Выполнив дифференцирование последнего выражения и подставив его в M(Lr), получим

Так как у нас то

Приложение 2

Из определения дисперсии имеем

(для биномиального распределения).

Используя результаты Приложения 1, умножим обе части равенства

на q. Получим

Ясно, что тогда

Выполнив дифференцирование и подставив результат в выражение для D(Lr), будем иметь

Так как то.

Таким образом,

Сумма членов последнего ряда взята из справочника "Основные математические формулы" (Минск, ВШ, 1980г.).

Приложение 3

Уточненная сумма первых членов гармонического ряда

где С = 0,577.... - постоянная Эйлера. Таким образом

При переходе к двоичным логарифмам

Представим выражение под знаком логарифма в виде

где х - подлежит определению. Решив это уравнение, получим

В диапазоне средняя величинаПоэтому

и

Литература

  1. Звонкин А.К., Левин Л.А. Сложность конечных объектов и обоснование понятий информации и случайности с помощью теории алгоритмов. Успехи математических наук, т.XXV, 1970.

  2. Шрейдер Ю.А., Шаров Н.А. Системы и модели. М.: Радио и связь, 1982.

  3. Холстед М.Х. Начала науки о программах. М.: Финансы и статистика, 1981.

  4. Апостолова Н.А., Гольдштейн Б.С., Зайдман Р.А. О программометрическом подходе к оценкам программного обеспечения. Журнал РАН "Программирование", №4. 1995.

  5. Кайгородцев Г.И. Некоторые результаты вероятностного подхода к оценке метрических характеристик текстов программ. Тезисы докладов международной научно-технической конференции "Идентификация, измерение характеристик и имитация случайных сигналов", Новосибирск, 1994, 24-27 мая.

  6. Липаев В.В. Проектирование программных средств. М.: Высшая школа, 1990.

  7. Черноножкин С.К. Меры сложности программ (обзор). Системная информатика. Новосибирск: Наука, 1997. - Вып.5: Архитектурные, формальные и программные модели. - С.188-227.

  8. Кайгородцев Г.И. Интерпретация параметра "уровень языка программирования" и его статистические оценки. Тезисы докладов международной научно-технической конференции "Идентификация, измерение характеристик и имитация случайных сигналов", Новосибирск, 1994, 24-27 мая.

  9. Феллер В. Введение в теорию вероятностей и ее приложения. Т.1. М: Мир, 1967.

  10. Д.Ван Тассел Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1985.

Содержание

Введение