Существуют множество различных классификаций показателей качества, задаваемых различными стандартами. Для примера приведем следующую классификацию.
Функциональнаяпригодность – степень соответствия комплекса реализованных программ исходным требованиям контракта, технического задания (назначение, номенклатура, задач и функций) и спецификаций на программное средство и его компоненты. Путем верификации должно быть определено соответствие исходным требованиям всей совокупности компонентов комплекса программ, вплоть до модулей и текстов программ и описаний данных. В наибольшей степени функциональная пригодность проявляется в корректности и надежности ПС.
Рассмотрим основные показатели.
Функциональная корректность ПС. Зависит от функциональной корректности применяемых компонент, методов их достижения и оценивания: детерминировано, стохастические и в реальном времени.
Корректность структуры программ определяется корректностью структуры модулей и корректностью структуры групп программ, построенных из модулей. Для оценки корректности структуры программ используется несколько частных показателей, различающихся степенью охвата тестами структурных компонент программы при отладке. Проверка корректности структурных компонент производится статистически по исходным текстам программ.
Корректность обработки данных определяется степенью отладки процесса обработки представительной выборки значений переменных в диапазонах их изменения.
Корректность межмодульных связей и взаимодействия компонент. Взаимодействие программ определяется двумя видами связей между модулями: по управлению и по информации.
Связи по управлению составляют вызовы программных модулей и возвраты в вызывавшие. Каждая связь модуля по управлению может содержать ошибку и являться причиной одного из видов некорректностей:
· отсутствие вызова необходимого взаимодействующего модуля;
· вызов модуля, не подлежащего исполнению при данном вызове;
· возврат управления от вызванного к вызывающему модулю в точку, не предназначенную для возврата управления.
Ошибки при взаимодействии модулей по управлению в ПС приводят к пропуску выполнения отдельных функций или к их значительным искажениям. Такие некорректности влияют на результаты функционирования ПС и полностью должны быть устранены.
Взаимодействие модулей по информации может происходить через обменные переменные, непосредственно подготавливаемые и используемые соседними модулями, или через глобальные переменные. Связи каждого модуля через глобальные переменные могут осуществляться с большим числом модулей, каждый из которых может рассчитывать или использовать некоторую переменную.
Детерминированная корректность программ определяется по частоте отклонения конкретных вычисляемых результатов от эталонных значений, заданных в техническом задании или в иных исходных документах.
Стохастическая корректность характеризуется величиной статистического отклонения распределений и их параметров (средних значений, среднеквадратических отклонений) от заданных эталонов. При этом не оценивается каждый результат тестирования, а они обобщаются и оцениваются интегрально по некоторой достаточно представительной выборке.
Корректность в реальном времени определяется величиной максимального или усредненного отклонения траектории выходных параметров от заданной эталонной траектории обработки тестовых исходных данных. Результаты тестирования оцениваются интегрально на некотором временном интервале или по наибольшему отклонению от эталонной траектории.
Для подтверждения абсолютной корректности программ достаточным в пределе является полный перебор всех входных и выходных тестовых значений переменных во всех их сочетаниях, что представляет только теоретический интерес. Достаточный объем тестирования реально никогда не оценивается, а процессы отладки строятся с позиции необходимого минимума тестов, обеспечивающих корректность в предполагаемых наиболее активных режимах эксплуатации программ.
Мобильность или переносимость программ в иную операционную среду или в иную среду по архитектуре компьютера. Может оцениваться объемом необходимых доработок ПС, которые следует выполнить для обеспечения полноценного функционирования ПС после переноса. Мобильность может оцениваться на уровне исходных текстов программ или на уровне объектного кода.
Надежность программ –это способность выполнять заданные функции в различных условиях. Надежностьявляется внутренним свойством систем, проявляющимся только во времени. Причиной нарушения работоспособности программ при безотказности аппаратуры всегда является наличие ошибок в программе и/или конфликт между реальными исходными данными, подлежащими обработке, и программой, осуществляющей эту обработку. Для оценки числа ошибок в программе сущеcтвуют различные модели. Приведем две модели оценки числа ошибок в программе (N), в которых вероятность обнаружения ошибок одинаковы и не зависит от времени и сложности причин, вызвавших ошибки. В модели Миллса вносятся S искусственных ошибок. Тогда, n/N=s/S (где n и s число реальных и искусственных найденных ошибок при тестировании соответственно) и N=n*S/s. В простой интуитивной модели программу тестируют две группы тестировщиков. Тогда n1/N=n2/N=n12/n1 (где, n1, n2, n12 – число всех ошибок обнаруженных первой и второй группами и обеими группами соответственно) и N=n1*n2/n12. Работоспособность ПС можно гарантировать при исходных данных, которые использовались при отладке и испытаниях. Реальные исходные данные могут иметь значения, отличающиеся от заданных техническим заданием и от использованных при тестировании. При таких исходных данных функционирование программ трудно предсказать заранее, и поэтому весьма вероятны различные аномалии, завершающиеся отказами.
Рассмотрим основные показатели надежности.
Устойчивость наиболее широко характеризует способность к безотказному функционированию после произошедших сбоев. Она зависит от уровня неустраненных ошибок и способности ПС реагировать на проявления ошибок так, чтобы это не отражалось на показателях надежности. Последнее определяется эффективностью контроля за доступом к данным, степенью обеспечения их секретности и сохранности, а также селекцией достоверных данных, поступающих из внешней среды (живучесть), и средствами обнаружения аномалий функционирования ПС.
Восстанавливаемость характеризуется полнотой восстановления функционирования программ после перезапуска-рестарта. Перезапуск должен обеспечивать возобновление нормального функционирования ПС, на что требуются ресурсы компьютера и время. Поэтому полнота и длительность восстановления функционирования после сбоев отражают качество ПС и возможность его использования по прямому назначению.
Коэффициент готовности –отражает вероятность иметь восстанавливаемую систему в работоспособном состоянии в произвольный момент времени. Значение коэффициента готовности соответствует времени полезной работы системы на достаточно большом интервале, содержащем как отказы, так и восстановления.
Защищенность ПСвключает определение полноты использования доступных методов и средств защиты программного средства от потенциальных угроз и достигнутой при этом безопасности функционирования информационной системы (ISO 15408:1999-1-3)
Эффективность использования ресурсов. Перечислим основные показатели эффективности.
Временная экономичность ПС. Определяется длительностью выполнения заданных функций.
Время реакции (отклика) ПС на запросы для полного решения основных функциональных задач.
Пропускная способность системы ПС и компьютера. Отражает число сообщений или запросов на решение определенных задач, обрабатываемых в единицу времени, зависящую от некоторого показателя внешней среды.
Ресурсная экономия отражает количество и степень занятости ресурсов центрального процессора, оперативной, внешней и виртуальной памяти, каналов ввода-вывода, терминалов и каналов локальной сети. Для корректного определения предельной пропускной способности информационной системы с данным программным средством нужно измерить экстремальные и средние значения длительностей исполнения функциональных групп программ и маршруты, на которых они достигаются.
Способность к взаимодействию состоит в определении качества совместной работы компонентов программных средств и баз данных с другими прикладными системами и компонентами на различных вычислительных платформах, а также взаимодействия с пользователями в стиле, удобном для перехода от одной вычислительной системы к другой с подобными функциями.
Удобство использования ПС –группа показателей, отражающих понятность, обучаемость и простоту (комфортность) использования.
Понятность ПС можно описать четкостью концепции, широтой демонстрационных возможностей и наглядностью представления возможных функций.
Обучаемость можно оценить длительностью подготовки пользователя к полноценной эксплуатации ПС. Это время зависитотвозможности предварительного обучения и совершенствования в процессе эксплуатации, от возможной оперативной помощи и подсказки при использовании ПС, а также от доступности и удобства пользования руководствами и инструкциями по эксплуатации.
Комфортность эксплуатации ПС отражает простоту и удобство его использования и оценивается степенью учета физических и психологических характеристик пользователей. Они характеризуют: легкость управления ПС и объем параметров управления, реализуемых по умолчанию; информативность сообщений пользователю и унифицированность управления экраном; степень доступности изменения функций в соответствии с квалификацией пользователя; число операций, необходимых для запуска определенного задания. Кроме того, удобство использования характеризуется рядом динамических параметров: временем ввода и отклика на задание, длительностью решения типовых задач, временем на регистрацию результатов. В основном это качественная и субъективная оценка в баллах, однако, некоторые атрибуты можно оценить количественно по трудоемкости и длительности выполнения операций при использовании программного средства, а также по объему документации, необходимой для их изучения.
Сопровождаемость можно оценивать полнотой и достоверностью документации о состояниях программного средства и его компонентов, всех предполагаемых и выполненных изменениях, позволяющей установить текущее состояние версий программ в любой момент времени и историю их развития. Она должна определять стратегию, стандарты, процедуры, распределение ресурсов и планы создания, изменения и применения документов на программы и данные.
Мобильности-качественное определение экспертами адаптируемости, простоты установки, совместимости и замещаемости программ, выражаемое в баллах. Количественно эту характеристику программного средства и совокупность ее атрибутов можно оценить в экономических показателях: стоимости, трудоемкости и длительности реализации процедур переноса на иные платформы определенной совокупности программ и данных.