Что такое метрические программы

Метрика – это мера, определяющая расстояние между элементами множества, которая обладает следующими свойствами:

1. Неотрицательна (>=0)

2. Нулевая при совпадении элементов

3. Симметрична (AB = BA)

4. Подчиняется закону треугольника (AB + BC > AC)

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

В исследовании метрик выделяют два основных подхода:

1. Метрики оценки самого ПО (поиск метрик, характеризующих наиболее специфические свойства программ)

2. Метрики оценки технологии разработки ПО (оценка технических характеристик и факторов разработки программ)

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

1. Метрики, оценивающие отклонение от нормы характеристик исходных проектных материалов (устанавливают полноту заданных технических характеристик исходного кода);

Как узнать родословную по фамилии | Метрические книги и ревизии | Генеалогия для начинающих

2. Метрики, позволяющие прогнозировать качество разрабатываемого ПО;

3. Метрики, по которым принимается решение о соответствии конечного ПО заданным требованиям.

В зависимости от характеристик и особенностей применяемых метрик им ставятся в соответствие различные измерительные шкалы:

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

Например: программы можно группировать как «нетрудные для понимания», умеренно трудные для понимания», «трудные для понимания», «очень трудные для понимания».

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

Например: некоторые программы А,В,С, относятся к разряду «умеренно трудных для понимания», но программа В труднее программы А, а программа А труднее программы С.

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

Например: можно сказать: программа В труднее программы А на 10 единиц.

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

Например: можно сказать, программа В в два раза труднее программы А.

3. В настоящее время в мировой практике используется несколько сотен метрик программ. Существующие качественные оценки можно сгруппировать по 6 основным направлениям:

1. Оценка топологической и информационной сложности программ.

2. Оценка надёжности ПС, позволяющая прогнозировать отказы и отказовые ситуации.

#2 Как изучать метрические книги?

3. Оценка производительности ПО и повышения его эффективности путем выявления ошибок проектирования.

4. Оценка уровня языковых средств и их применения.

5. Оценка трудности восприятия и понимания программных текстов, ориентированная на психологические факторы, существенные для сопровождения и модификации программ.

6. Оценка производительности труда программиста для прогнозирования сроков и этапов разработки программ.

Метрики сложности программ

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

При оценке сложности выделяют 3 группы метрик: 1. Метрики размера.2. Метрики сложности потоков управления программы. 3.Метрики сложности потоков данных программы.

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

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

Читайте также:
Как создавать скрипты для программ

Т.о., оценка размера программы – оценка по номинальной шкале.

К группе оценок размера программ можно отнести метрику Холстеда. За базу принят подсчет количества операторов и операндов, используемых в программе., т.е. также определение размера программы.

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

η1 – число уникальных, различных операторов программы, включая символы-разделители, знаки операций, имена процедур и функций (словарь операций).

η2 – число уникальных, различных операндов программы (словарь операндов).

N1 – общее количество операторов в программе.

N2 – общее количество операндов в программе.

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

словарь программы η = η1 + η2 (1)

объем программы V = Nlog2 η (3)

Далее М.Холстед вводит η * — теоретический словарь программы, т.е.словарный запас, необходимый для написания программы с учетом того, что необходимая функция уже реализована в данном языке и, следовательно, программа сводится к вызову этой функции.

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

где Y- массив численных значений, содержащих искомое число X.

Теоретический словарь в данном случае будет состоять из

Используя η * , Холстед вводит характеристику V * :

V * = η * log2 η * , (5)

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

Задание:

Для одной из своих программ рассчитать:

1) Реальную длину программы, (N).

2) Теоретическую длину программы, (η * )

3) Реальный объем программы, (V)

4) Потенциальный объем программы(V * ).

КОНТРОЛЬНЫЕ ВОПРОСЫ

1. Перечислите наиболее известные методы оценки метрических характеристик качества программных продуктов.

2. Перечислите основные требования к критериям качества ПО.

3. Перечислите разновидности метрик, шкал. Поясните принципы двух основных подходов в исследовании метрик.

4. Как с помощью метрик сложности программ определить длину и объём программы?

ЛИТЕРАТУРА

1. Липаев В.В. Качество программного обеспечения. – М.: Финансы и статистика, 1983.

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

Лабораторная работа №6

Источник: infopedia.su

Организационно-экономический раздел. Программометрика.

Метрическая теория программ — программометрика — это научное и прикладное направление, возникшее в информатике около 30 лет назад. Программометрика позволяет решать следующие задачи:

· количественный анализ возможности и целесообразности разработки автоматизированных процедур и функций информационных систем (ИС) в заданной постановке;

· численная оценка основных параметров (объем, количество модулей, уровней иерархии, надежность в начальный период эксплуатации) будущих программных средств (ПС) на основе постановки задачи;

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

· решение некоторых вопросов, связанных с метрологией качества ПС.

Наиболее разработанной и проверенной на практике является объемная метрика Холстеда. Холстед теоретически получил соотношение, связывающее размер словаря программы h и ее длину N:

(4.1)

Дальнейший расчет метрических характеристик производится по метрике Холстеда, изложенной в [1].

4.2. Основные метрические характеристики

h — число слов в словаре программы. Словарь программы состоит из h1 операторов и h2 операндов. Размер словаря программы h = h1 + h2. К словарю операторов относят имена арифметических и логических операций, присваивания, условных и безусловных переходов, разделители, скобки, имена процедур и функций и т.п. Словарь операндов — это множество имен переменных, которое должно обрабатывать проектируемое ПС.

— длина программы. Это математическое ожидание количества слов в тексте программы при фиксированном словаре. Длина программы — исходная величина для расчета остальных метрических характеристик программы. Т.к. h = h1 + h2, то

. Можно утверждать, что , тогда

(4.2)

— количество имен входных и выходных переменных, представленных в предельно краткой записи. Это основной исходный параметр, на котором базируются все расчеты метрических характеристик будущего ПС. Тогда в соответствии с соотношением (4.1)

Читайте также:
Программа чтобы поставить пароль на приложения

(4.3)

k — число модулей. Наименьшее количество ошибок обнаруживается в модулях с числом входных переменных . Тогда оптимальное число модулей ПС находим по формуле:

(4.4)

В этом случае число входных переменных одного модуля . Тогда выражение для длины программы будет иметь вид:

, (4.5)

где — длина одного модуля, найденная по формуле (4.2).

V — объем программы. Измеряется числом двоичных разрядов.

(4.6)

Календарное время программирования определяется по формуле:

(4.7)

где n — количество программистов,

v — заданная производительность труда, которая составляет от 5 до 30 отлаженных команд ассемблера за рабочий день,

— количество команд ассемблера в ПС из N слов.

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

(4.8)

Надежность ПС оценивается средним временем проявления ошибок . (4.9)

где t — период отладки в пределах календарного времени разработки. Исходя из практического опыта, его определяют из неравенства

(4.10)

4.3. Расчет метрических характеристик

4.3.1 Рассматриваемые процедуры

Translate — анализа строки запроса;

Select — передача запроса в базу данных и обработка полученных результатов;

Value — определение типа значения, содержащегося в строке;

Equal — эквивалентность нечетких значений;

DeleteFuzzyObjectList — удаляет требуемый элемент из списка нечетких объектов базы данных.

4.3.2 Пример расчет метрических характеристик

Процедура Translate.

Входные параметры:

1. Анализируемая строка запроса

Выходные параметры:

2. Модифицированная строка запроса

3. Список нечетких условий

4. Индекс типа запроса

Структурные параметры ПС:

Количество имен входных и выходных переменных

Источник: vunivere.ru

Метрические характеристики программ. Словарь программы

2.4.1. Один из наиболее важных количественных показателей — это длина программы N, нами уже получен. Он представляет собой математическое ожидание количества слов в тексте программы при фиксированном словаре. Ясно, что программы, реализующие один и тот же алгоритм, написанные разными программистами, будут несколько различаться по длине. Фундаментальное значение формулы Холстеда заключается в том, что это различие с ростом словаря программы весьма быстро уменьшается, как показано выше.

Длина программы — это исходная величина для расчета остальных ее характеристик.

2.4.2. Другая важная характеристика программы — ее объем V. В отличие от N он измеряется не количеством слов, а числом двоичных разрядов. Если в словаре имеется г слов, то для задания номера любого из них требуется минимум logp бит. Объем программы определяется как

Теперь, когда получены две расчетные метрические характеристики программ, имеет смысл вернуться к пункту 2.1. Если алфавиту поставить в соответствие словарь, а произвольной последовательности символов — последовательность слов в программе, трактуемой как результат выборки из генеральной совокупности, то с точностью до обозначений полученные соотношения

совершенно идентичны, хотя смысл их различен. В первом случае при фиксированной (заданной) длине программы была определена величина словаря; во втором — решена обратная задача: по заданному словарю найдена длина программы. Идентичность этих выражений свидетельствует о том, что соотношение между величиной словаря и длиной текста единственно и взаимнооднозначно. Во-вторых, вероятностная модель текста программы, основанная на наглядном представлении выборки из генеральной совокупности с возвратом, равносильна формальному подходу алгоритмической теории сложности.

Выше было отмечено, что словарь программы состоит только из операторов и операндов. Если количество первых обозначить а вторых — г|2, то Л = т 11 +Г 12 и соотношение Холстеда примет вид

При статистическом исследовании текстов программ [4] к словарю операторов отнесены: имена арифметических и логических операций; присваивания; условных и безусловных переходов; разделители; скобки; имена процедур и функций и т. п. Выражения типа BEGIN. END, IF. THEN. ELSE, DO. WHILE и другие рассматриваются как единые операторы (то же относится и к парам скобок).

Читайте также:
Программа где можно рисовать на Айфоне

Ясно, что величины Ц] и г2 независимы и могут принимать произвольные значения. Однако этого нельзя сказать относительно N и N2, т. е. числа всех операторов N = Ц] log г| и всех операндов N2=r2ogr2 в тексте программы: между ними существует зависимость, характер и вид которой определяются уровнем используемого алгоритмического языка. В случае машинного кода или ассемблера каждый операнд входит в текст программы, как правило, с одним оператором. Поэтому Ni=N2, хотя величины словарей и г2 могут сильно различаться. Это позволяет прийти к важному практическому заключению:

упрощающему все программометрические расчеты. Размер словаря операндов г2» как показано в п. 2.4.3, легко определяется из постановок задач. Для алгоритмического языка высокого уровня это соотношение нарушается, так как один оператор может применяться к нескольким операндам (см. п. 2.7.3).

Теперь для вычисления объема, в соответствии с его определением, получим

2.4.3. Основной исходный параметр, на котором базируются все расчеты ожидаемых метрических характеристик будущего ПО, — это

количество имен входных и выходных переменных г2, представленных в предельно краткой (сжатой, с точки зрения алгоритмической сложности) записи. Например, для задания одномерного массива (строки), каково бы ни было число его элементов, требуется всего три имени: а) указатель адреса начала массива, б) количество элементов в нем, в) адрес конца массива (или количество разрядов, занимаемых одним элементом). Для задания двумерного массива достаточно пяти имен. Этот подход к представлению входной и выходной информации обеспечивает компактность и инвариантность программ относительно

размерности решаемых задач.

Пусть ц 2 — число независимых переменных произвольной функции |/, заданной формулой или алгоритмом вычисления.

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

ц 21°ё Л2 • Если, например, — функция Буля восьми

переменных, то т2 =8, аг|2 =81^8 = 24. Для одномерного массива

  • *
  • (строки) г)2 =3, соответственно г|2 = 3 к^3»5. Разумеется, речь идет о рационализированных («максимально сжатых» формулах, лишенных

избыточности или, по Холстеду, «несовершенств» [4]).

Таким образом, если г2 — размер словаря программы в предельно краткой записи, то его полное значение будет

Способ представления входных данных — одна из главных задач разработки ПО, и удачное ее решение относится к числу «стратегических находок» проекта [1]. На примере представления массивов видно, как длина программы становится независимой от количества элементов в них. По существу, это эффективный способ сокращения размера словаря, от которого зависят и другие характеристики программы.

2.4.4. Рассмотрим некоторый абстрактный язык программирования, называемый потенциальным, в котором все программы (по крайней мере для некоторой предметной области) уже написаны и представлены в виде процедур или функций. Тогда для реализации любого алгоритма на этом языке потребуется всего два оператора (функция и присваивание) и ц2 имен входных и выходных переменных. Поскольку в такой записи никакие слова не повторяются, то длина программы совпадает с ее объемом и равна

Эта величина называется потенциальным (минимально возможным) объемом, а отношение

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

Источник: studref.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru