Оценивание надежности и безопасности функционирования сложных программных средств

Оценивание надежности ПС включает измерение количественных субхарактеристик и их атрибутов: завершенности, устойчивости к дефектам, восстанавливаемости и доступности-готовности (см. табл. 11.3). При этом предполагается, что в контракте, техническом задании или спецификации требований зафиксированы, и утверждены заказчиком определенные значения этих атрибутов и их приоритеты. Измерения проводятся при функционировании готового программного продукта для сопоставления с заданными требованиями и для оценивания степени соответствия этим спецификациями требований.

Значения надежности коррелированны с субхарактеристикой корректность, однако можно достигать высокую надежность функционирования программ при относительно невысокой их корректности за счет сокращения времени восстановления при отказах. Кроме того, надежность ПС можно оценивать косвенно в процессе разработки по прогнозируемой плотности обнаружения скрытых дефектов и ошибок, а также по плотности выявляемых и устраняемых ошибок выходных результатов при тестировании рабочего функционирования комплекса программ (см. п. 13.1). Степень покрытия тестами структуры функциональных компонентов и ПС в целом при отладке может служить ориентиром для прогнозирования их потенциальной надежности (см. п. 13.4). Распределение реальных длительностей и эффективности восстановления при ограниченных ресурсах для функционирования программ, может рассматриваться как дополнительная составляющая при оценивании надежности.

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

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

При испытаниях надежности ПС в первую очередь обнаруживают­ся отказы - потери работоспособности. Однако в большинстве случа­ев первоначально остается неизвестной причина происшедшего отка­за. Для выявления фактора, вызвавшего отказ (первичной ошибки или дефекта) и устранения его при­чины, необходимо, прежде всего, определить, каким компонентом ин­формационной системы стимулирован данный отказ. Наиболее крупны­ми источниками отказов являются частичные физические неисправности или сбои аппаратуры ЭВМ, а также дефекты и ошибки программных средств. Стабильные неисправности аппаратуры диагностируются достаточно просто, соответствующими аппаратными тестами, после чего должен следовать ремонт или замена определенных блоков. Однако при возникновении случайного отказа, после которого происходит автоматически полное восста­новление нормального функционирования, во многих случаях трудно однозначно выявить его первичный источник, особенно при очень редких отказах.

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

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

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

Если интенсивное тестирование программ в течение достаточно длительного времени не приводит к обнаружению дефектов или оши­бок, то у специалистов, ведущих испытания, создается ощущение бесполезности дальнейшего тестирования данной программы, и она передается на эксплуатацию (см. п. 13.1). Экспериментальное исследование ха­рактеристик сложных ПС позволило оценить темп обнаружения дефектов, при котором крупномасштабные комплексы программ передаются на регулярную эксплуатацию: 0,002-0,005 дефектов в день на человека, т.е. специалисты по испытаниям или все пользо­ватели в совокупности выявляют только около одной ошибки или дефекта каждые два - три месяца использования ПС. Интенсивность обнаружения ошибок ниже 0,001 ошибок в день на человека, т.е. меньше одной ошибки в год на трех-четырех специалистов, непосредственно выполняющих тестирование и эксплуатацию ПС, по-видимому, может служить эта­лоном высокой надежности для ПС обработки информации. Если функционирование программ происходит непрерыв­но, то эти показатели соответствуют высокой наработке на обнаружение дефекта или отказа порядка 5-10 тысяч часов и коэффициенту готовности выше 0,99. При ис­пользовании этого критерия обычно учитывается календарное время испытаний, включающее длительность непосредственного тестирования, как для обнаружения, так и для локализации дефектов, а также длительность корректировки программ и других вспомога­тельных работ для восстановления нормального функционирования ПС.

Форсированные испытания для оценивания надежности программных средств значительно отличаются от традиционных методов испытаний аппара­туры. Основными факторами, влияющими на надежность ПС, являются исходные данные и их взаимодействие с дефектами и ошибками прог­рамм или сбоями в аппаратуре ЭВМ. Поэтому форсирование испытаний надежности осуществляется повышением интенсивности искажений ис­ходных данных и расширением варьирования их значений, а также специальным увеличением интенсивности потоков информации и загрузки программ на ЭВМ выше нормальной.

Планирование форсированных испытаний должно предус­матривать последующий пересчет полученных атрибутов надежности на условия нормального функционирования. Для этого необходимо оценивать надежность испытываемых программ в зависимости от интен­сивности искажений данных или от характеристик перегрузки ЭВМ, а также применять способы корректного пересчета получаемых показателей на нормаль­ные условия эксплуатации. При форсированных испытаниях целесооб­разно выделять следующие режимы тестирования:

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

- предельные и критические сочетания значений различ­ных взаимодействующих параметров эксплуатации ПС;

- предельно большие и малые интенсивности суммарного потока и каждого типа внешней информации;

- умышленные нарушения пользователями определенных положений инструкций и рекомендаций эксплутационной документации.

Как вид форсированных испытаний можно рассматривать тести­рование и контроль результатов функционирования одних и тех же ПС при увеличении числа испытываемых экземпляров и нормальных исходных данных – Бета-тестирование (см. п. 14.2). На этапе опытной эксплуатации пользователями некоторого предвари­тельного тиража ПС происходит естественное расширение вариантов исходных данных, если они взаимно независимы. Это увеличивает наборы тестов и тем самым дает возможность оценивать наработки на отказ в сотни и тысячи часов. Они позволяют выявлять и устранять значительное число дефектов за относительно небольшое календарное время и тем самым доводить надежность до требуемого уровня. Однако следует учитывать, что при этом пропорцио­нально возрастает суммарная трудоемкость таких испытаний.

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

Следует особо отметить трудности достижения и оценивания надежности программ, характеризующейся наработкой на отказ >>100 ч. При такой надежности ПС резко возрастают сложность обнаружения возникающих отказов и диагностирования их причин. Наработка на отказ в тысячи часов в ряде случаев достигалась только при эксплуатации и сопровождении сложных ПС в течение нескольких лет. При требовании особо высокой надежности функционирования ПС, суммарные затраты ресурсов на ее достижение и оценивание могут увеличиваться на порядок. Однако требующееся увеличение затрат для получения такой высокой надежности ПС в процессе разработки трудно обеспечить практически. Поэтому для ее достижения активно применяются различные методы программной защиты от сбоев и отказов программ (методы оперативного рестарта). Они позволяют замедлить рост затрат ресурсов на разработку при повышении требований к их надежности.

 

14.5. Оценивание эффективности использования ресурсов ЭВМ программным продуктом

Оценивание ресурсной эффективности состоит в измерении количественных субхарактеристик и их атрибутов: временной эффективности и используемости ресурсов ЭВМ комплексом программ (см. таблицу 11.3). При этом предполагается, что в контракте, техническом задании и спецификации требований зафиксированы и утверждены требуемые значения атрибутов и их приоритетов. В стандарте ISO 9126:2 эту характеристику качества ПС рекомендуется отражать десятком атрибутов, каждый из которых оценивать для средних и наихудших сценариев функционирования комплекса программ. В таблице 11.3 сохранены только три атрибута, важнейшие для функциональной пригодности, которые наиболее доступны количественным измерениям. Оценивание этих атрибутов может проводиться при функционировании готового программного продукта или расчетными методами, при разработке для сопоставления с заданными требованиями и оценки степени соответствия этим требованиям.

Для измерения атрибутов временной эффективности необходимы инструментальные средства, встроенные в операционную систему или в соответствующее ПС. Эти средства должны в динамике реального функционирования программ регистрировать: загрузку вычислительной системы; значения интенсивности потоков данных от внешних абонентов; длительность исполнения заданий; характеристики функционирования устройств ввода/вывода; время ожидания результатов (отклика) на задания пользователей; заполнение памяти обмена с внешними абонентами в различных режимах применения комплекса программ. Значения этих характеристик зависят не только от свойств и функций ПС, но также от особенностей архитектуры и операционной системы ЭВМ. Регулярная регистрация и обобщение таких данных позволяет выявлять ситуации, негативно влияющие на функциональную пригодность, надежность и другие конструктивные характеристики качества ПС.

Потребность в ресурсах памяти и производительности ЭВМ в процессе решения за­дач может значительно изменяться в зависимости от их свойств, а также от потока, состава и объема ис­ходных данных. Степень использования памяти и производительности ЭВМ в некоторых пределах не влияет на качество решения функциональных задач комплексом программ. При излишне высокой интенсивности поступления ис­ходных данных может нарушаться временной баланс между длитель­ностью решения полной совокупности задач ПС в реальном масштабе времени, и производительностью ЭВМ при решении этих задач – нагрузочное тестирование. Также возможно нарушение баланса между имеющейся в ЭВМ памятью и па­мятью, необходимой для хранения всей поступившей и обрабатывае­мой информации. Для выявления подобных ситуаций и определения характеристик ПС в условиях недостаточности ресурсов ЭВМ проводятся испытания при высокой, но допустимой интенсивности поступления исходных дан­ных.

Наиболее сложным является оценивание эффективности исполь­зования ресурсов производительности ЭВМ в реальном времени. При этом должна быть определена зависимость качества решения задач от интенсивности поступающей информации различных типов. Основная задача испытаний состоит в определении вероятностей, с которыми будет нарушаться соответс­твие между потребностями в производительности для решения всей требуемой совокупности задач и реальными возможностями ЭВМ и других компонентов информационной системы. Если эта вероят­ность невелика, и можно считать допустимым эпизодическое снижение качества за счет получающихся задержек и пропусков в обработке сообщений или заданий, то делается вывод о соответствии производительности ЭВМ функциям данного ПС.

Для оценивания использования ресурсов производительности долж­ны быть измерены:

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

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

- загрузка ЭВМ в нормальном режиме поступления сообщений и заданий, а также вероятность перегрузки заданиями различных типов и расп­ределения длительностей перегрузки в реальных условиях;

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

Перечисленные задачи могут быть решены экспериментально в процессе тестирования завершенной разработкой системы, однако при этом великриск, что производительность ЭВМ окажется недостаточ­ной для решения заданной совокупности задач в реальном времени, что отразится на качестве использования ПС. Кроме того, не всегда условия испытаний или опытной эксплуатации системы соответствуют режимам массового ее применения. Поэтому при оценивании требуется при­нимать специальные меры для создания реальных, а также контролируемых, наиболее тяже­лых по загрузке условий функционирования ПС и внешней среды. Такие критические ситуации могут быть в значительной степени предотвращены в процессе разработки ПС путем расчета длительностей исполнения модулей по тексту программ, и объединения этих характеристик в соответствии со структурой программных компонентов и всего комплекса программ.

Для корректного оценивания предельной пропускной способности системы с данным ПС, необходимо измерять следующие характеристики функциональных групп программ:

- экстремальные значения длительностей их исполнения и маршру­ты, на которых эти значения достигаются;

- среднее значение длительности исполнения каждой функцио­нальной группы программ на всем возможном множестве маршрутов ПС и его дисперсию;

- распределение вероятностей и значений длительности испол­нения функциональных групп программ.

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

Влияние таких ситуаций перегрузки ЭВМ по производительности, может быть ослаблено путем применения приоритетных дисциплин оперативной диспетчеризации исполнения заданий на решение функциональных задач. В зависимости от характеристик потоков заданий и предполагаемых длительностей их реализации, могут распределяться приоритеты на их решения, и тем самым, повышаться эффективность использования ограниченной производительности вычислительной системы для определенного комплекса программ. Быстрый рост количества решаемых задач, их сложности и требуемой производительности вычислительных средств стимулировал поиск путей удовлетворения потребностей заказчиков в ресурсах для решения таких задач. Значительное внимание было уделено анализу эффективности дисциплин диспетчеризации с относительными и абсолютными приоритетами. Эти дисциплины активно применялись при организации вычислений в специализированных, объектных ЭВМ реального времени. Они позволяли повышать эквивалентную производительность ЭВМ на 10 – 20% по сравнению с бесприоритетными дисциплинами диспетчеризации. Показано, что во многих случаях целесообразно применять при диспетчеризации функциональных задач не более 10 – 15 уровней приоритета, при загрузке ЭВМ на 80 – 95% и при значительном различии длительностей и коэффициентов важности (10 – 100) приоритетных задач. Для практического использования характеристик и методов расчета рационального распределения производительности ВС созданы методики и типовые модели, позволяющие анализировать и оптимизировать диспетчеризацию в конкретных системах. При ограничениях ресурсов вследствие требований минимизации весов и габаритов специализированных, объектных ЭВМ в авиационных, ракетных и космических системах, их экономное использование остается актуальным. Кроме того, в некоторых случаях полезно выделение высоких приоритетов для особо важных или коротких задач, например, для обмена с внешними абонентами.

По результатам испытаний могут быть решены перечисленные задачи оценивания ресурсной эффективности ПС, что позволяет анали­зировать факторы, определяющие необходимую пропускную способность ЭВМ, и разрабатывать меры для приведения ее в соответствие с потребнос­тями. Если предварительно в процессе проектирования производи­тельность ЭВМ не оценивалась или определялась слишком грубо, то, велик риск, что доработки будут большими или может понадобиться заме­нить ЭВМ на более быстродействующую. Это обусловлено, как пра­вило, “оптимизмом” разработчиков, что приводит к занижению инту­итивных оценок длительностей решения задач и возможных предель­ных интенсивностей потоков информации. Длительная регистрация и накопление значений ресурсной эффективности способствуют выявлению ситуаций, при которых проявляются некоторые дефекты функциональной пригодности в ПС.

Достоверность оценивания пропускной способности ЭВМ с конкретным ПС, зависит от корректности моделирования потоков внешних сообщений, а также, от используемых распределений длительности исполнения программ. Для оценивания ресурсной эффективности, при подготовке технического задания и спецификаций требований на ПС следует согласовывать с заказчиком модель и характеристики внеш­ней среды, в которой будет применяться комплекс программ, а также динамики приема и передачи данных (см. п. 14.3). Эти условия следует детализиро­вать до уровня, позволяющего однозначно определять требуемые значения ин­тенсивности решения задач:

- в среднем, нормальном режиме работы ПС с наибольшим качеством функциональной пригодности;

- в режиме предельной загрузки, реализующемся с определен­ной вероятностью и c допустимым снижением функциональной пригодности и некоторых конструктивных характеристик качества;

- в режиме кратковременной, аварийной перегрузки, способной критически отражаться на функциональной пригодности, надежности и безопасности применения ПС.

Для определения использования комплексами программ временных ресурсов ЭВМ полезно применять рекомендации стандарта ISO 14756 - Измерение и оценивание производительности программных средств компьютерных вычислительных систем. Стандарт ориентирован на оценивание: прикладных программных средств, операционных систем и вычислительных комплексов, включающих все аппаратные и программные средства. Основные рекомендации сосредоточены в двух крупных разделах и четырех нормативных приложениях. Раздел 2 содержит общее описание методов измерений, а раздел 3 – детальные процедуры измерений и оценивания производительности ПС в составе информационной системы. Описание метода измерения производительности начинается с эмуляции – имитации пользователей и потоков данных из внешней среды: их случайных характеристик и процессов; функционирования терминалов; установления параметров рабочих нагрузок пользователей и вычислительных средств. Процедуры измерений должны содержать рекомендации по:

- формированию тестов;

- распределению их по временным фазам;

- определению и регистрации результатов тестирования;

- контролю корректности эмуляции внешней среды;

- статистической обработке измерений.

Оценивание величины производительности рекомендуется для определения загрузки операторов-пользователей, пропускной способности ПС по числу задач в единицу времени, временной шкалы событий обработки заданий и данных. Эти результаты предлагается сравнивать с требованиями заказчика и пользователей для оценивания рабочих нагрузок и достаточности производительности ПС в конкретной внешней среде. Детальные процедуры измерений и оценивания распределены по шести подразделам: исходные требования; процессы измерений; результирующие данные; проверка корректности результатов; расчеты производительности; оценивание достоверности измерений производительности. Стандарт рекомендуется для использования: испытателями; разработчиками и покупателями ПС; а также системными интеграторами сложных вычислительных систем.