Жаднов В.В., Лазарев Д.В. КАЧЕСТВЕННЫЕ И НАДЕЖНОСТНЫЕ ПОКАЗАТЕЛИ И ХАРАКТЕРИСТИКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
В настоящее время все больше внимания уделяется качеству программному обеспечению (ПО) и программных средств (ПС), входящих в различные специализированные технические системы. Это обусловлено все большим влиянием автоматизированных процессов, вовлекаемых в решение технических задач самых различных направлений и отраслей науки и техники.
Выбор и формирование требований к ПС состоит в анализе необходимых свойств, характеризующих качество его функционирования и применения с учетом технологических и ресурсных возможностей разработчиков. При этом под качеством функционирования понимается множество свойств, обусловливающих пригодность ПС обеспечивать надежное и своевременное представление требуемой информации потребителю для ее дальнейшего использования по назначению. В соответствии с принципиальными особенностями, назначением и свойствами каждого ПС при проектировании должны выбираться номенклатура и значения характеристик качества, необходимых для эффективного применения пользователями, которые впоследствии отражаются в спецификациях требований и в технической документации на конечный продукт. Каждая характеристика качества может эффективно использоваться, если определена ее метрика, мера и шкала и может быть указан способ ее измерения или оценивания, а также сопоставления с требующимся значением. Они должны, прежде всего, отражать функциональную пригодность для применения с заданными целями.
Множество характеристик качества программных средств можно разделить на две принципиально различающихся группы:
- функциональные характеристики (функциональность) - определяющие назначение, свойства и задачи, решаемые комплексом программ для основных пользователей, отличающиеся очень широким спектром и разнообразием, состав и специфику которых трудно унифицировать и можно категоризировать только по большому количеству классов и свойств ПС;
- конструктивные характеристики качества, номенклатура которых может быть унифицирована, адаптирована и использована для описания остальных, внутренних и внешних, стандартизируемых характеристик качества, поддерживающих реализацию основных, функциональных требований к качеству объектов и процессов ЖЦ программных средств.
Номенклатура второй группы этих характеристик относительно не велика, и стандартами рекомендуется в составе: корректности, защищенности, надежности, ресурсной эффективности, практичности,
сопровождаемости и мобильности.
Две группы характеристик качества ПС - Надежность и Эффективность в наибольшей степени доступны количественным измерениям. Для них в таблице 1 представлены примеры возможных мер и шкал измерения основных количественных атрибутов субхарактеристик качества. Они могут служить ориентирами при выборе и установлении требуемых значений этих показателей качества в спецификациях ПС.
Надежность: свойства комплекса программ обеспечивать достаточно низкую вероятность потери ра-
ботоспособности - отказа в процессе функционирования ПС в реальном времени. Стандартом ISO 9126:2 рекомендуется анализировать и учитывать четыре субхарактеристики и до 16-ти количественных атрибутов надежности, в том числе степень покрытия тестами структуры программ. Надежность функционирования ПС наиболее полно характеризуется устойчивостью или способностью к безотказному функционированию и восстанавливаемостью работоспособного состояния после произошедших сбоев или отказов. В свою очередь устойчивость зависит от уровня не устраненных дефектов и ошибок (завершенность) и способности ПС реагировать на их проявления так, чтобы это не отражалось на показателях надежности. Последние, определяются эффективностью контроля данных, поступающих из внешней среды и от средств обнаружения аномалий функционирования ПС. В реальных условиях по различным причинам исходные данные могут попадать в области значений, не проверенные при разработке и испытаниях, а также не заданные требованиями спецификации и технического задания, вызывающие сбои и отказы. При этом не корректная программа может функционировать совершенно надежно. Следовательно, надежность функционирования программ является понятием динамическим, проявляющимся во времени, и существенно отличается от понятия статической корректности программ.
Таблица 1.
Характеристики качества Мера Шкала
Надежность
Завершенность:
-наработка на отказ при отсутствии рестарта. Часы 10 - 1000.
Устойчивость:
-наработка на отказ при наличии автоматического рестарта; относительные ресурсы на обеспечение надежности и рестарта. Часы 10-1000. 10 - 90.
Восстанавливаемость:
-длительность восстановления. Минуты 10-2 - 10.
Доступность-готовность:
-относительное время работоспособного функционирования. Вероятность 0.9 - 0,999.
Завершенность: свойство ПС не попадать в состояния отказов вследствие ошибок и дефектов в программах и данных. Количество или плотность проявления скрытых и не обнаруженных дефектов и ошибок непосредственно отражается на длительности нормального функционирования комплекса программ между сбоями и отказами. Завершенность можно характеризовать наработкой (длительностью) на отказ при отсутствии автоматического восстановления - рестарта, измеряемой обычно часами. На эту субхарактеристику надежности влияют только отказы, вследствие проявившихся дефектов.
Устойчивость к дефектам и ошибкам: свойство ПС автоматически поддерживать заданный уровень качества функционирования в случаях проявления дефектов и ошибок или нарушения установленного интерфейса. Для этого в ПС должна вводиться временная, программная и информационная избыточность, реализующая оперативное обнаружение дефектов и ошибок функционирования, их идентификацию и автоматическое восстановление (рестарт) нормального функционирования ПС. Эффективное, оперативное устранение проявления дефектов, ошибок и некорректного взаимодействия с операционной и внешней средой определяют субхарактеристику - устойчивость комплексов программ. Относительная доля вычислительных ресурсов, используемых непосредственно для быстрой ликвидации последствий отказов и оперативного восстановления нормального функционирования ПС (рестарт) отражается на повышении надежности программ.
Восстанавливаемость: свойство ПС в случае отказа возобновлять требуемый уровень качества функционирования, а также поврежденные программы и данные. После отказа ПС иногда бывает неработоспособно в течение некоторого периода времени, продолжительность которого определяется его восстанавливаемостью. Для этого необходимы вычислительные ресурсы и время на выявление и прерывание
неработоспособного состояния, диагностику причин отказа, а также на реализацию процессов восстановления. Основными показателями процесса восстановления являются его длительность и вероятностные характеристики. Восстанавливаемость характеризуется также полнотой восстановления нормального функционирования программ в процессе ручного или автоматического их перезапуска - рестарта. Перезапуск должен обеспечивать возобновления нормального функционирования ПС, на что требуются ресурсы ЭВМ и время, которые можно характеризовать относительной величиной (% от общих ресурсов). Поэтому полнота и длительность восстановления после сбоев и отказов определяет надежность ПС и его функциональную пригодность для использования по прямому назначению.
Доступность или готовность: свойство ПС быть в состоянии выполнять требуемую функцию в данный момент времени при заданных условиях использования. Внешне, доступность может оцениваться относительным временем, в течение которого ПС находится в работоспособном состоянии, в пропорции к общему времени применения. Следовательно, доступность - комбинация завершенности (от которой зависит частота отказов), устойчивости к ошибкам и восстанавливаемости, которые в совокупности обусловливают длительность простоя для рестарта после каждого отказа, а также длительности наработки на отказ. Для определения этой величины измеряется время работоспособного состояния комплекса программ между последовательными отказами.
Нижняя граница шкалы атрибутов надежности в таблице 1 отражена значениям, при которых резко уменьшается функциональная пригодность, и использование данного типа ПС становится неудобным, опасным или нерентабельным. Примером таких наихудших, предельных величин для многих классов ПС могут быть наработка на отказ менее десяти часов, коэффициент готовности ниже 0,9 и время восстановления более десяти минут. С другой стороны, наилучшие значения этих атрибутов практически ограничены теми ресурсами, которые могут быть выделены для их достижения при разработке и эксплуатации. Вычислительные и программные ресурсы объектной ЭВМ на непосредственное обеспечение надежности функционирования ПС обычно находятся в диапазоне от 10% до 90%, причем последние значения соответствуют критическим, особо высоконадежным системам. Даже для таких критических программных средств редко наработка на отказ превышает несколько тысяч часов, коэффициент готовности не выше 0,999, а время восстановления при отказах не меньше нескольких секунд. Перечисленные параметры для конкретных проектов могут выбираться в указанных диапазонах (см. табл. 1), в зависимости от назначения и функций комплекса программ, приближаясь к их верхним или нижним границам с учетом влияния на функциональную пригодность и доступных ресурсов на поддержку надежности.
Оценивания надежности ПС включает измерение количественных субхарактеристик в использовании: завершенности, устойчивости к дефектам, восстанавливаемости и доступности-готовности. При этом предполагается, что в контракте, техническом задании или спецификации требований зафиксированы, и утверждены определенные значения атрибутов стандартизированных субхарактеристик. Прямые и непосредственные измерения этих показателей проводятся при функционировании готового программного продукта для сопоставления с заданными требованиями и для оценивания степени соответствия этим требованиям. Значения надежности коррелированны с субхарактеристикой корректность, однако можно достигать высокую надежность функционирования программ при относительно невысокой их корректности за счет сокращения времени восстановления при отказах.
Кроме того, надежность ПС можно оценивать косвенно в процессе разработки по прогнозируемой плотности обнаружения скрытых дефектов и ошибок, а также по плотности выявляемых и устраняемых ошибок выходных результатов и взаимодействия с операционной системой в динамике тестирования рабочего функционирования комплекса программ. Степень покрытия тестами структуры функциональных компонентов и ПС в целом при отладке может служить ориентиром для оценивания и прогнозирования их потенциальной надежности. Распределение реальных длительностей и эффективности восстановления при ограниченных ресурсах для функционирования программ может рассматриваться как дополнительная полезная составляющая при оценивании надежности.
Для прямых, количественных измерений атрибутов надежности необходимы инструментальные средства, встроенные в операционную систему или в соответствующие компоненты ПС. Эти средства должны в динамике реального функционирования ПС автоматически селектировать и регистрировать аномальные ситуации, дефекты и искажения вычислительного процесса, программ и данных, выявляемые аппаратным, программно-алгоритмическим контролем или пользователями.
В программном комплексе АСОНИКА-К одним из основных направлений дальнейшего развития является создание системы расчета надежности программного обеспечения в соответствии с международными и отечественными документами данного направления (ISO12207, ANSI/IEEE 983, MTL-498 и др.)
ЛИТЕРАТУРА
1. Липаев В.В. Выбор и оценивание характеристик качества программных средств. - М. : СИНТЕГ,
1998.