Дипломный проект - Лабораторная модель КАМ-16 - файл n7.doc

Дипломный проект - Лабораторная модель КАМ-16
скачать (2092.7 kb.)
Доступные файлы (21):
n1.doc425kb.26.06.2009 20:34скачать
n2.doc126kb.07.04.2011 09:37скачать
n3.doc132kb.09.04.2011 09:26скачать
n4.doc126kb.26.06.2009 19:19скачать
n5.doc216kb.27.06.2009 13:23скачать
n6.doc1236kb.26.06.2009 19:44скачать
n7.doc86kb.26.06.2009 19:48скачать
n8.doc184kb.26.06.2009 20:09скачать
n9.doc102kb.23.06.2009 12:22скачать
n10.doc21kb.23.06.2009 15:33скачать
n11.doc22kb.23.06.2009 15:39скачать
n12.doc46kb.26.06.2009 00:40скачать
n13.mdl
n14.mdl
n15.doc26kb.20.06.2009 01:40скачать
n16.doc22kb.17.06.2009 02:04скачать
n17.doc45kb.09.04.2011 09:24скачать
n18.doc48kb.26.06.2009 20:39скачать
n19.ppt422kb.26.06.2009 19:05скачать
n20.spl
n21.spl

n7.doc





6 Анализ надежности программного продукта

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

Надежность радиоэлектронного устройства обеспечивается его безотказностью, ремонтопригодностью, сохраняемостью и долговечностью работы его составных частей.

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

Критерий приемлемости может зависеть от совершенно нематематических факторов: например, из-за неудачного монитора потребитель отдаст преимущество программе, требующей меньшего внимания на экране (при прочих равных показателях); медленный дисковод может сделать перевес в сторону избыточной загрузки оперативной памяти и т. д. Однако такие предпочтения носят неустойчивый характер и меняются при обновлении оборудования. Более устойчивы требования, связанные с организационно-технологическими условиями эксплуатации программы, такими, как способы получения исходных данных, организация их ввода в машину, контроль их правильности, способы использования выхода программы. Обычно эти требования заранее известны неточно и в процессе эксплуатации уточняются. Бывают случаи отказа от закупленного программного обеспечения после первых попыток приспособиться к его особенностям. Даже в программировании технических и физических задач критерий приемлемости субъективен.

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

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

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

Математический анализ надежности будет построен на оценке избыточных затрат, возникающих при работе по откорректированной инструкции. Это позволит дать количественную оценку надежности кортежа программы, выработать методику принятия решения о замене программы на новую с учетом риска обнаружения новых ошибок.
6.2 Измерение надежности программы
Имеется несколько подходов к количественному измерению надежности. Во-первых, можно рассчитать величину экономического риска, вызванного возможностью ошибок в программе. По сути, этот риск определяется разделами инструкции, устанавливающими использование результатов программы при данном режиме эксплуатации, и вероятностями ошибок, влияющими на каждый тип использования. Такой риск может быть основан только на прогнозе возможных ошибок, что значительно снижает ценность подобного подхода. Во-вторых, оцениваются реальные потери за период эксплуатации, вызванные ошибками. Если определить тенденцию изменения реальных средних потерь за конкретный период (например, за месяц или год), можно прогнозировать экономический риск на будущее.

Существует также понятие статической надежности программы, измеряемой как дополнительная вероятность обнаружения новой ошибки, не учтенной в предыдущих коррекциях, при очередном обращении к программе. Простейшей оценкой статистической надежности является величина
. (6.1)
или
, (6.2)


где n - количество выполненных обращений к программе;

f(n) - число обнаруженных ошибок;

e(d,n) - доверительный интервал хи-квадрат оценки вероятности ошибки f(n)/n при заданном уровне значимости.

В качестве оценки дисперсии d с гарантией можно пользоваться максимально возможной дисперсией (равной 1/4) двоичной случайной величины (в соответствии с двумя возможными исходами обращения к кортежу: удача = 0, ошибка = 1).

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

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

Можно также выделить не вполне конструктивный, но логически безупречный подход к определению комбинаторной надежности программы, определяемой как отношение числа вариантов исходных данных, на которых программа срабатывает верно, к общему числу вариантов исходных данных. В условиях динамической корректировки кортежа эта надежность постоянно растет. Однако оценить ее можно только статистически, используя формулы, приведенные выше, для обработанной статистической выборки результатов обращений к программе, из которой выброшены повторные варианты исходных данных. В общем случае возникает та же трудность с потерей стационарности процесса при корректировках. За исключением статистической оценки комбинаторной надежности, полученной на основе многократного тестирования программы, работающей безошибочно на всей серии тестовых обращений. Это соответствует стадии тестирования программы в процессе отладки, когда каждая обнаруженная ошибка исправляется на уровне программы или инструкции, а потом тестирование начинается заново по полной программе. В этом случае на каждом прогоне тестов корректировок не возникает, и процесс возникновения ошибки остается стационарным. Оценка хи-квадрат тогда дает Р(n) > 1 - e(1/4,n). Более точная оценка может быть основана на знании внутренней структуры программы.

Нестабильность работы программы измеряется числом зарегистрированных ошибок за определенный период эксплуатации, т. е. числом внесенных в инструкцию корректировок за этот срок. В период устойчивой работы оборудования количество внесенных корректировок f можно оценить численным интегралом по времени от нестабильности D(i), измеренной на последовательных интервалах времени длительности h(i)
. (6.3)
Поскольку технического износа у программы, инструкции и режима эксплуатации нет, то до наступления износа компьютера нестабильность монотонно падает за счет корректировок. По мере износа компьютера (старение технической части среды) возникают специальные корректировки для обхода машинных сбоев и поломок: нестабильность начинает расти. При нормальном режиме эксплуатации предусматривается своевременная замена оборудования, и рост нестабильности ограничен введением предосторожностей на период освоения новых приборных средств.
6.3 Понятие кортежа программы
Необходимо уточнить, что подразумевается под программой. Во-первых, программа, так же, как и аппаратура, не существует изолированно, всегда имеется некоторая "окружающая среда", которая влияет на ее функционирование. Роль окружающей среды для программ исполняют другие программы - например, драйверы, сетевые программы, программы пользовательского интерфейса, различные прикладные библиотеки и т.д. При изменении окружающей среды (например, замене драйвера) надежность программы может ухудшиться, и вопрос о том, где источник ошибки, в программе или в среде, может оказаться сложным. Во-вторых, надежность зависит от режима эксплуатации. Любая достаточно сложная программа допускает очень большое число комбинаций входных данных, из которого на практике используется ограниченное подмножество, причем для разных пользователей (или групп пользователей) эти подмножества различны. При одних входных данных программа отказывает чаще, чем при других, и этот факт можно сформулировать как изменение режима эксплуатации. Режим эксплуатации характеризуется частотой обращения к программе (вызов и/или ввод данных), временем работы программы, квалификацией пользователей, статистическим распределением вероятности (частот) разных областей исходных данных, организационной схемой и реализацией процедур получения исходных данных, использования выхода программы, проверки исходных и выходных данных программы, анализа результатов работы.

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

Таким образом, говоря о надежности, следует иметь в виду следующий кортеж: "исходный текст программы, руководства, окружение, режим эксплуатации". Надежность характеризует не саму программу, а этот кортеж.
6.4 Исправления кортежа
Среда реализации, режим эксплуатации, инструкция могут меняться без изменения программы.

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

  2. Изменение среды сопровождается и коррекцией в инструкции в той части, где существенны специальные свойства среды реализации.

  3. Изменение режима эксплуатации должно фиксироваться в протоколе эксплуатации. Есть два подхода к накопленной статистике: отдельно по каждому режиму или общая выборка.

  4. Основной тип правки кортежа: внесение изменений и добавлений в инструкцию для устранения ошибок и сбоев, обходов трудностей, изменений в составе задач.

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

  6. Любое изменение в программе требует начать новый протокол для нового полученного кортежа.

  7. Протокол не входит в кортеж, а входит в "статистику эксплуатации". У разных пользователей возможны существенно различные протоколы для одинаковых кортежей. Рекомендуется ориентироваться только на свой протокол, поскольку возможны незарегистрированные документально отличия в аппаратных средствах (например, степень износа различных устройств), в операционной системе и в режиме эксплуатации.

6.5 Обработка сбоев и ошибок
Сбои и ошибки в программе обрабатываются таким образом:

  1. При обнаружении действия программы, не соответствующего ее назначению, регистрируется ошибка (в протоколе).

  2. Предпочтительной является поправка кортежа путем изменения инструкции. Возможны варианты: изменения в инструкции оператора, изменения в инструкции подготовки данных (для пользователя), наложение ограничений на допустимые исходные данные, т.е. запрещение на использование программы в определенных ситуациях.

  3. Если необходимая правка инструкции нежелательна, то можно попробовать менять операционную систему, трансляторы или устройства с соответствующим изменением инструкции.

  4. Если реализация (2) не допустима (слишком жесткие требования в инструкции), а реализация (3) слишком дорога, то надо менять кортеж, т.е. заменять или корректировать саму программу.

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


6.6 Математическая модель и расчет характеристик надежности
Модель эксплуатации программы выглядит следующим образом. Обращение к программе – это либо запуск программы с исходными данными, либо ввод данных в работающую программу. Ввод данных осуществляется либо пользователем в диалоге, либо от внешних устройств автоматически. Предполагается, что известна средняя частота обращения к программе v, т.е. за время эксплуатации Т (достаточно большое) произошло К=Tv обращений. Если при обращении к программе обнаружена ошибка, то она регистрируется в протоколе (журнал эксплуатации), и в работу вступает аналитик. Его задача - выяснить причину ошибки и, если она заложена в программу, найти такое изменение инструкции ввода, при котором программа даст верный результат, т.е. нужно указать пользователю действия, позволяющие обойти ошибку. Если такое изменение инструкции невозможно, то в инструкцию вводится признак данных, для которых обращение к данной программе запрещено и требуется другое средство обработки. В тех случаях, когда изменения слишком значительны, эксплуатация программы может стать невозможной. Но в данном разделе рассматривается случай, когда программа содержит ошибки, которые можно исправить коррекцией инструкции. Тогда за время эксплуатации Т накапливается f = f(T) изменений в инструкциях.

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



Учебный материал
© nashaucheba.ru
При копировании укажите ссылку.
обратиться к администрации