Качество комплекса программ на каждом этапе системной отладки целесообразно оценивать группами показателей, характеризующих его с точки зрения наличия ошибок, а также трудоемкости их обнаружения и устранения.
Рассмотрим некоторые из возможных показателей качества по группам, используемые при системной отладке. К первой группе относятся показатели сложности и избыточности; ко второй – показатель физической реализуемости комплекса программ; к третьей – показатели времени функционирования, функциональной корректности, согласованности по управлению и согласованности по информации; к четвертой – показатели, характеризующие надежность комплекса программ, эффективность средств восстановления, эффективность системы защиты; к пятой – показатель эффективности комплекса программ, характеризующий затраты на проектирование и отладку комплекса программ.
Следует отметить, что хотя основное значение системной отладки состоит в проверке правильности работы всего комплекса программ, начинать ее надо с проверки работы каждого модуля. Поэтому выделяют следующие уровни проверок: единичный модуль, подсистему, внутренний интерфейс, внешний интерфейс, комплекс программ. Уровень подсистем целесообразно выделять при проверке сложных систем программного обеспечения. Обычно в отдельные подсистемы группируются модули по функциональному признаку.
Показатели качества оцениваются как для всего комплекса программ, так и для его частей (отдельных программных модулей и их совокупностей, подлежащих совместной системной отладке в соответствии с планом отладочных работ) и являются векторными величинами.
Среди количественных оценок приведенных показателей качества наиболее широко используемым является показатель сложности.
Сложность комплекса программ включает структурную и статистическую сложность.
Для анализа структурной сложности важнейшее значение имеет степень взаимосвязи модулей. При этом структурная сложность может быть оценена:
а) по степени отличия структуры от древовидной → С = А - G, где G – число связей, образующих древовидную структуру; А – реальное число связей между модулями комплекса;
б) сложностью связей по управлению
где
– управляющие связи i-го модуля, которые вызывают его для исполнения; – связи, посредством которых i-й модуль вызывает другие модули; - сложность управляющих связей i-го модуля;в) сложностью связей по информации:
где
– количество имен переменных на входе i-го модуля, необходимых для его нормального функционирования; – количество имен переменных, подготавливаемых i-м модулем; Фi –сложность информационных связей i-го модуля.Для оценки статистической сложности комплекса программ используется количество составляющих его программных модулей N.
Сложность программных модулей также включает понятия структурной и статистической сложности.
Структурная сложность программных модулей, как правило, определяется на основании учета количества маршрутов, исполняемых программой, и числа условных операторов:
где
- количество условий, определяющих i-й маршрут j-го модуля; Мj - количество маршрутов j-го модуля.Статистическая сложность программных модулей обычно определяется путем подсчета количества операторов N1jи операндов N2j – Ncj= N1j+ N2j. Таким образом показатель сложности можно представить вектором
Компоненты вектора сложности служат ориентирами при планировании отладочных работ и сравнении различных версий комплекса программ.
Показатель избыточности характеризует наличие нереализуемых структурных элементов в комплексе программ и его программных модулях.
Избыточность комплекса программ определяется количеством нереализуемых программных модулей И1 и количеством неиспользуемых информационных элементов И2.
Избыточность программных модулей определяется количеством лишних операторов и тупиков в программах {И3j}; здесь j - индекс программного модуля.
Показатель избыточности представляется вектором
Показатель физической реализуемости характеризует ресурсы вычислительной техники по памяти, необходимые для функционирования комплекса программ. Он включает: объемы оперативной памяти, необходимые комплексу программ при различных режимах его работы {Vm}; корректность вызова управляющей программой совокупностей программных модулей, соответствующих различным режимам работы {Рт}, объемы внешней памяти по различным типам запоминающих устройств {Wk}.
Корректность вызова в оперативную память группы модулей, соответствующих m-му режиму работы комплекса программ, может быть определена на основе анализа спецификаций, а соответствующие компоненты физической реализуемости представлены булевыми величинами:
Таким образом, показатель физической реализуемости есть вектор:
Функциональная корректность комплекса программ есть вектор
Компоненты которого характеризуют корректность программной реализации функций комплекса программ относительно требований спецификаций. Здесь Q – количество функций, выполняемых комплексом в соответствии с системными спецификациями. Компоненты вектора
могут быть представлены булевыми величинами и определяются следующим образом:Функциональная корректность, отдельных программных модулей определяется аналогичным образом, соответствующие компоненты могут быть включены в показатель функциональной корректности.
Показатель времени функционирования комплекса программ включает средние времена функционирования основных режимов работы комплекса {Тт} и средние времена функционирования отдельных программных модулей и их совокупностей
Согласованность по управлению включает согласованность по управлению комплекса программ и согласованность по управлению его программных модулей.
Согласованность по управлению комплекса программ определяет корректность реализации основных последовательностей программных модулей относительно требований спецификаций и корректность множества сопряжений между парами модулей. Она может быть охарактеризована булевыми величинами исходя из следующих условий:
или
Ошибки в сопряжениях модулей – yj - обычно сводятся к следующим: отсутствует вызов необходимого модуля; вызывается модуль, не подлежащий исполнению; управление передается в точку, не предназначенную для возврата управления.
Согласованность по управлению программных модулей может быть оценена отношением числа проверенных маршрутов к общему числу маршрутов модуля.
Согласованность по информации включает согласованность по информации комплекса программ и согласованность по информации программных модулей.
Согласованность по информации комплекса программ определяет корректность связей между программными модулями и может быть оценена отношением числа проверенных маршрутов обработки информации к общему числу маршрутов, реализующих информационную связь по k-му информационному элементу.
Согласованность по информации программных модулей определяет корректность информационных связей по внутренним информационным элементам и оценивается аналогично согласованности по информации комплекса программ.
Показатель, характеризующий надежность комплекса программ, может быть описан вектором
, компонентами которого являются: О – общее количество выявленных ошибок, λ – интенсивность появления невыявленных ошибок, Р – вероятность безотказной работы в течение заданного интервала времени. Точное определение количества ошибок в программе и вероятностей появления ошибок различных типов прямыми методами измерений получить невозможно, существуют лишь косвенные пути статистической оценки этих величин в процессе отладки и опытной эксплуатации комплекса программ. Эти оценки основаны на математических моделях, предусматривающих жесткую корреляцию приведенных выше компонентов вектора надежности. Надежностные оценки хорошо согласуются со статистикой тестирования программ и используются для предсказания вероятности безотказной работы комплекса программ заданный промежуток времени: