- •Восточно-сибирский государственный технологический университет
- •Метрология программного обеспечения
- •220400 «Программное обеспечение вычислительной техники и автоматизированных систем»
- •Введение
- •1. Роль стандартизации в развитии разработок в области информационных технологий.
- •1.1. Нормативно-методическая база стандартизации по
- •1.2. Основные направления стандартизации процессов разработки программных средств.
- •2. Стандартизация информационных технологий: состояние и перспективы развития.
- •2.1. Современное состояние стандартизации в мире
- •2.2. Состояние и проблемы стандартизации в России
- •3. Система показателей качественных и количественных характеристик программного продукта
- •3.1. Стандартизация характеристик качества
- •3.2. Выбор показателей качества
- •3.3. Оценки качества по
- •4. Модели и метрики оценки качества по
- •4.1. Оценка сопровождаемости программ.
- •4.2. Корректность
- •4.3. Метрики сложности программ
- •4.3.1. Метрики размера программ
- •4.3.2. Метрики сложности потока управления программ.
- •3.4.3. Метрики сложности потока данных
- •4.4. Модели надежности программ
- •4.4.1. Модели надежности по по структуре времени
- •4.4.2. Методы оценки числа оставшихся в по ошибок, основанные на метриках Холстеда
- •4.4.3. Методы оценки показателей надежности по, основанные на моделях «посева» и разметки ошибок и на моделях структуры входных данных.
- •4.4.4. Методы оценки, основанные на моделях структуры входных данных
- •4.4.5. Текстовые модели надежности по
- •4.5. Метрики стилистики и понятности программ
- •4.6. Метрика изменения длины программной документации.
- •4.7. Методы проведения контроля за качеством по
- •5. Сертификация программного обеспечения
- •5.1. Понятие сертификации
- •5.2. Виды сертификации программного обеспечения
- •5.3. Органы сертификации программного обеспечения в Российской Федерации
- •Список используемой литературы
4.4.2. Методы оценки числа оставшихся в по ошибок, основанные на метриках Холстеда
Наибольший интерес представляет модель надежности ПО, предложенная М.Х.Холстедом. На сегодня, из множества разработанных моделей, это единственная, с помощью которой можно оценить число ожидаемых ошибок в ПО еще на этапе обсуждения технического задания на разработку этого ПО.
МЕТРИКИ ХОЛСТЕДА
Суть метода Холстеда состоит в следующем. Для любой программы можно определить:
Число различных операций (таких, как IF, =, DO, PRINT и т.д.);
Число различных операндов (таких, как переменные и константы);
Общее число всех операций ;
Общее число всех операндов ;
Словарь программы ;
Длину реализации .
Тогда теоретическая длина программы составит
соответственно объем программы (в битах)
далее рассматривается такая метрика, как потенциальный объем программы (в битах),
где - минимальное число различных операндов, в роли которого обычно выступает число независимых входных и выходных параметров.
Величина может быть выявлена еще на стадии согласования технического задания на разработку ПО. Технология этого процесса будет подробно рассмотрена далее.
Таким образом, - потенциально минимально возможный объем ПО с заданным интерфейсом, который может быть реализован программистом высокой квалификации на языке высокого уровня.
Следующей важной метрикой является уровень программы определяемый как отношение потенциального объема к объему:
Далее вводится работа по программированию E, как суммарное число элементарных мысленных различений, необходимых для генерации программы ее создателем:
Следующая метрика – уровень языка - позволяет количественно оценивать преимущества языка программирования более высокого уровня по сравнению со своими предшественниками и определяется как
Следовательно: ;
В табл. 5 приведены численные значения для языков разных уровней.
Таблица 5
Язык |
|
Ассемблер |
0.88 |
Фортран |
1,14 |
Паскаль |
2,16 |
Еще одна из метрик, предложенных Холстедом, позволяет оценивать время затрачиваемое на разработку ПО:
где S – параметр Страуда.
Параметр Страуда – психофизиологическая константа, характеризующая время, необходимое человеческому мозгу для выполнения элементарной мыслительной операции («различия» по Холстеду). Считается, что S лежит в пределах от 5 до 20 различений в секунду. Холстед использует значение S=18, характеризующее процесс программирования как довольно напряженную умственную работу.
Можно оценить относительное уменьшение времени программирования при переходе от языка низкого уровня к языку высокого уровня , т.е. оценить выигрыш во времени за счет выбора языка:
ОЦЕНКА ЧИСЛА ОСТАВШИХСЯ В ПО ОШИБОК
Согласно основной гипотезе Холстеда общее число ожидаемых (переданных пользователю) Ошибок B в программе определяется сложностью ее создания, которую можно характеризовать работой по программированию E или объемом программы V:
С определением коэффициента пропорциональности C модель надежности ПО приобретает законченный вид. Приведем ход рассуждений М.Холстеда по определению этой константы.
Холстед предлагает, что C должна определяться (быть обратно пропорциональной) некоторой минимальной работе по программированию , производимой при создании программы, содержащей максимум одну ошибку. Другими словами, C выступает в роли нормировочного коэффициента. Теперь необходимо определить тот минимальный объем работы , превышение которого приведет к появлению ошибки. Для этой цели привлечем на помощь гипотезу утверждающую, что мозг человека может обрабатывать в своей памяти одновременно и безошибочно лишь 5-9 объектов. Взяв нижнюю границу в пять объектов и добавив результирующий объект, мы получим минимальное число различных входных и выходных параметров для потенциально безошибочной программы. Соответствующий потенциальный объем составит: (логических бит)
Итак, гипотеза ошибок Холстеда утверждает, что в среднем после обработки 24 битов абстрактной информации на языке высокого уровня человек совершает ошибку. Холстед использует выражение =2,16 и получает: =3000. Следовательно
В=V/300
Это означает, что на каждые 3000 бит объема V возможна одна потенциальная ошибка. Здесь необходимо иметь в виду, что речь идет не о «физических» битах памяти, отведенной для размещения ПО в машине, а о «логических» битах. Следует отметить, что значение константы C дает достаточно правдоподобные оценки только в том случае, если ПО разрабатывалось с использованием языков высокого уровня.