ЭВМ является единым комплексом ее аппаратных и программных средств, поэтому следует рассматривать надежность работы вычислительной аппаратуры совместно с программным обеспечением как надежность вычислительного процесса.
Надежность программного обеспеченияможет быть определена как свойство программы, которое выражается в выполнении заданных функций в заданных условиях работы и на заданной вычислительной машине, аналогично тому, как определяется понятие надежности аппаратуры.Однако механизмы возникновения отказа аппаратуры и отказа программного обеспечения существенно отличаются друг от друга.Отказ аппаратуры обусловлен, как правило,разрушением каких-либо элементов аппаратуры. Отказ программного обеспечения обусловлен несоответствием программного обеспечения поставленным задачам.Несоответствие может возникатьпо двум причинам:
- либо разработчиком программы допущено нарушение спецификации—технических требований к программе;
- либо спецификация неточная или неполная.
Несоответствие по первой причиневстречается в первую очередь в сложных программных системах, где отдельные ошибки программиста трудно обозримы и могут оставаться нераскрытыми. Несоответствие по второй причиневозникает в первую очередь потому, что при составлении спецификации многие факторы, влияющие на работу программы, неизвестны. Они выясняются только постепенно, в ходе эксплуатации программы. Особенно это относится к управляющим программам. Кроме того, ни в технических требованиях, ни при проверке программы невозможно оговорить и проверить все ситуации, которые возникают при использовании программы. Поэтому записать в спецификациях все ситуации свойства функций, которые должна выполнить программа, будет не намного проще, чем разработать соответствующую программу. Например, легко подсчитать, что если входами для программы являются 10переменных, каждая из которых может приобретать 10 3 различных значений, то число возможных входных комбинаций будет 10 30 .Если допустить, что проверка реакции программы на каждую из входных комбинаций занимает только одну микросекунду, то в году возможно приблизительно только 310 13 проверок (!)(2,5 года).Поэтому естественно, что в разработанной программе всегда могут встречаться непроверенные сочетания исходных данных, при поступлении которых в ходе эксплуатации программа может отказать в выполнении нужных функций. Поскольку не всегда возможно составлять точную спецификацию, предлагается классифицировать программы по степени точности спецификацииследующим образом: 1)программы, функции которых полностью определяются спецификацией; 2)программы, функции которых корректируются сопоставлением вычислительных и измеренных результатов (сюда относятся моделирующие программы, т.е. программы, реализующие математическую модель физического объекта); 3)программы, действующие в постоянно изменяющейся среде (состоящей из других программ, данных, пользователей, реальных систем и установок и т.п.; сюда относятся операционные системы, программы управления воздушным движением, программы управления ресурсами и др.). Надежность программы определяется ее безотказностью и восстанавливаемостью.
- Безотказность программы характеризуется средним временем между возникновением отказов в функционировании программы, при этом аппаратура находится в исправном состоянии и работоспособна. Характеристики функционирования программы зависят только от ее качества, предопределяемого процессом разработки.
Безотказность программы определяется ее корректностью (правильностью),и, следовательно, целиком зависит от наличия в ней ошибок, внесенных на этапах ее создания, а безотказность аппаратуры определяется в основном случайными отказами, зависящими от параметров аппаратуры, происходящих во время эксплуатации.
- Корректность программы—это ее соответствие спецификации. Поскольку спецификация не всегда и не полностью соответствует фактическим требованиям к программе, возможны случаи, когда некорректная программа работает надежно или, наоборот, корректная программа—ненадежно.
- Восстанавливаемость программы определяется затратами времени и труда на устранение ошибок в программе и их последствий.
Восстановление после отказа в программе может заключаться:
- в корректировке и восстановлении текста программы;
- в исправлении входных данных и данных, полученных в результате неправильного функционировании программы;
- при внесении изменений в организацию вычислительных процессов;
- изменений алгоритма работы программы и т.д.
Восстанавливаемость программыоценивается средним временем устранения ошибки и восстановления ее работоспособности, котороезависит от многих факторов:
- от сложности структуры комплекса программ;
- используемого языка и технологий программирования;
- стиля программирования;
- квалификации программиста;
- качества сопроводительной документации на программу и т.д.
Характерной особенностью ошибок, обусловливающих отказы программ, является скрытость ошибок— это означает, что скрытая ошибка проявляется только при отдельных редких комбинациях из огромного количества возможных комбинаций исходных данных и поэтому обнаруживается не сразу, а только в ходе длительной эксплуатации. Ошибки, проявляющиеся при любых исходных данных(явные ошибки),не опасны, поскольку обнаруживаются сразу, при первых пробных прогонах программы. Пример устранения скрытой ошибки в программе. Пусть программа предназначена для вычисления функции у=(аsinx)/x+bприx/2.Если ошибкой является, например, наличие в формуле знака минус вместо знака плюс, то такая ошибка проявляется сразу, при любых вычислениях, за исключением случая, когдаb=0. Однако программа будет содержать и скрытую ошибку в виде неопределенности при х=0, которая при числовых вычислениях проявляется как большая погрешность вычислений приx, где—некоторое малое число.Правильная программа должна быть составлена по выражению: (аsinx)/x+bприx/2y=a+bприx Сравним интенсивности отказов в зависимости от времени эксплуатации аппаратных средств и программ. Из графика видно, что-характеристика на начальном периоде эксплуатации имеет большое значение (t1 ) и называется периодом приработки аппаратуры, на котором в первую очередь выходят из строя элементы с заводским браком. Периодt1-t2 называется периодом нормальной работы, который характеризуется приблизительно одинаковой интенсивностью отказов элементов, а приt>t2 наступает период старения элементов и число отказов возрастает вследствие отклонения параметров элементов от номинальных. Снижение интенсивности отказов в программе от времени объясняется тем, что в процессе эксплуатации программы обнаруживаются и устраняются скрытые ошибки, заложенные на этапе ее разработки, хотя зависимость надежности программы от времени является косвенной и зависит от многих факторов. Теория надежности аппаратуры частично применима к проблеме надежности программного обеспечения, учитывая следующие различия между надежностью аппаратуры и программного обеспечения: — элементы программного обеспечения не стареют из-за износа или усталости; — для контроля программного обеспечения имеется намного больше путей и способов, чем для контроля аппаратуры; — в программном обеспечении имеется намного больше объектов для контроля, чем в аппаратуре; — в аппаратуре использование стандартных элементов распространено намного шире, чем в системе программного обеспечения; — количество документации по программному обеспечению огромное по сравнению с количеством документации по аппаратуре; — внести изменения в программы просто, но трудно делать это корректно. Классификация ошибок программирования.Анализ ошибок программирования основан на их классификации. Ошибки программ могут быть разделены:
- на ошибки, обусловленные ограниченными возможностями программы (отказ в получении результатов за заданное время или при заданных ограничениях по объему вычислений);
- на логические ошибки (выражаются в получении неправильных результатов, не взирая на время и объем вычислений), причинами которых могут быть;
- ошибки, скрытые в самой программе;
- искажения входной информации:
- при вводе с клавиатуры;
- при вводе с первичных носителей;
- из-за ошибок в документации (инструкции оператора);
- неверные действия оператора, связанные с неправильной интерпретацией сообщений и неправильными действиями оператора в процессе диалога;
- сбои в работе аппаратуры, на которой реализуется вычислительный процесс.
В настоящее время имеется представительная статистика об ошибках программного обеспечения и их причинах. Процентные частоты появления ошибок различного типа по данным из литературных источников приведены в таблице 6.1. Наиболее часто встречающиеся ошибки— это ошибки технического задания к программе— могут быть, в свою очередь, разделены на категории, приведенные в таблице 6.2. Всесторонний анализ ошибок, встречающихся в программах, возможен только при наличии точных данных об отказах программ, причинах отказов, о самих программах и условиях их разработки (квалификация программиста, сроки разработки и др.). Таблица 6.1 – Типовые причины отказов в программе
Причина ошибки | Частота появления, % |
Неполное или ошибочное задание Отклонение от задания Пренебрежение правилами программирования Ошибочная выборка данных Ошибочная логика или последовательность операций Ошибочные арифметические операции Нехватка времени для решения Неправильная обработка прерываний Неправильные постоянные или исходные данные Неточная запись | 28 12 10 10 12 9 4 4 3 8 |
Таблица 6.2 – Типы ошибок в ТЗ
Причина ошибки | Частота появления, % |
Ошибки в числовых значениях Недостаточные требования к точности Ошибочные символы или знаки Ошибки оформления Неправильное описание аппаратуры Основы разработки неполные или неточные Двусмысленность требований | 12 4 2 15 2 52 13 |
Эти данные являются основой для построения математических моделей надежности программ с целью ее оценки и прогнозирования, а также для нахождения путей ее обеспечения и повышения.
Тургенбаев Д.Н. — 43.НАДЕЖНОСТЬ ИНФОРМАЦИОННЫХ СИСТЕМ И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Что такое надежность
Источник: studfile.net
Надежность программ
Вопрос определения и повышения надежности программ приобретает в последнее время особую важность в связи с возросшим уровнем сложности применения вычислительной техники.
В подходе к проблеме надежности программ иногда ориентируются на применение основных положений теории надежности аппаратуры к программам. Вводится понятие отказа программы – это ошибка в программе, вызывающая неправильное функционирование программы в каких-либо условиях. Соответственно может рассматриваться наработка на отказ, время восстановления и т.д.
Надо, однако, представлять себе разницу между аппаратурой и программой, которая заключается, прежде всего, в том, что аппаратура отказывает с определенной вероятностью, даже если она не функционирует; программа же не изнашивается, поломка программы невозможна. Практически не влияют на функционирование программы и производственные дефекты (например, ошибки копирования системы во время ее переноса), так как они редки, быстро обнаруживаются и легко устраняются. Ошибки в программах проявляются как систематические и далеко не случайные. Кроме того, в разных применениях одна и та же программа может демонстрировать различную интенсивность отказов, что вызывает серьезные трудности при попытке использовать методы теории надежности аппаратуры для анализа надежности программного обеспечения.
Существует и другой подход, ориентированный на анализ структуры программы с учетом специфики ее применения. Важную роль при таком подходе играет управляющий граф программы. Управляющий граф (граф переходов) программы определяется как ориентированный граф, вершины которого соответствуют одному или нескольким операторам этой программы, а дуги отражают возможности передач управления между соответствующими операторами.
Управляющий граф программы является моделью этой программы, отражающей логику ее выполнения, сложность функционирования при любых значениях исходных данных. Изучение управляющего графа позволяет понять закономерности поведения программы в динамике, обнаружить многие некорректности в программе, преобразовать программу с целью ее оптимизации. Управляющий граф – основа для определения стратегии тестирования программы, ее анализа, отладки.
В литературе встречаются различные определения надежности программ. Одну группу определений можно сформулировать так: надежность программы есть качество ее отладки или число оставшихся в программе ошибок.
Вторую группу определений подытожил Г. Майерс: надежность программного обеспечения есть вероятность его работы без отказов в течение определенного периода времени, рассчитанная с учетом стоимости (важности) для пользователя каждого отказа.
Наличие таких различных подходов как к самой проблеме надежности программ, так и к определению надежности неизбежно демонстрирует, что это – понятие не простое, включающее различные аспекты.
Надежная программа должна обладать двумя основными свойствами:
1) правильно функционировать при корректной внешней среде. Мы подразумеваем, что задание на проектирование программы оговаривает, что такое правильное функционирование и для какой внешней среды (это и значения входных величин, и параметры управляющих программ, операционной системы, виртуальной и реальной машины, и внешние воздействия, и т.п.) должно быть обеспечено это правильное функционирование. Естественно, оно должно быть обеспечено и для конструктивных средств программы, и для управляющих средств. Такое свойство программы называют безошибочностью. Добиться абсолютной безошибочности программы не представляется возможным, поэтому по отношению к такому свойству, как безошибочность, можно говорить о количестве оставшихся в программе ошибок (еще не обнаруженных); заметим, что существуют методы, позволяющие оценить это количество. Соответственно можно говорить об уровне безошибочности;
2) однозначно реагировать на некорректную внешнюю среду. Для каких-то случаев она должна продолжать функционирование (отметив, что столкнулась с некорректностью), для каких-то должны быть выбраны обходные пути, для каких-то может быть выбран путь снижения производительности (деградации). В каких-то случаях программа может прекратить выполнение, но в любом случае не должно быть непредсказуемого поведения, все отклонения от нормы должны быть заранее предусмотрены, недопустимо распространение некорректностей в другие программы. Такое свойство программы называется помехоустойчивостью.
Таким образом, можно говорить о двух видах причин, снижающих надежность функционирования программы:
внутренние причины, ошибки в конструктивных средствах программы, приводящие к нарушению правильности, к тому, что при некоторых корректных значениях входных величин (включая и внешние воздействия) программа либо выдает неправильный результат, либо вообще не завершается. Иначе говоря, снижается уровень безошибочности программ;
внешние причины, недостаточная защита от некорректных значений входных величин и внешних воздействий. Строго говоря, это можно считать ошибками в управляющих средствах программы, снижающими помехоустойчивость программы, достоверность получения правильного результата.
В соответствии с этим повышение надежности программы связано либо с повышением уровня безошибочности программы, либо с повышением уровня помехоустойчивости, либо и с тем и с другим. В дальнейшем будем рассматривать методы повышения надежности именно с этих позиций.
Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:
Источник: studopedia.ru
Надежность и правильность программных средств
Программа считается правильной, если она не содержит ошибок. Такая программа не дает неверных результатов, т.е. она абсолютно надежна. Этот факт породил ложное представление о том, что число ошибок в программе можно считать наиболее естественной мерой надежности. Было выполнено довольно много работ, в которых предлагались различные методы оценки числа оставшихся в программе ошибок по результатам ее тестирования, в том числе метод «засорения» известными ошибками, однако, как показывают приводимые ниже соображения, количество ошибок в программе не имеет никакого отношения к ее надежности:
1. Число ошибок в программе — величина «ненаблюдаемая», наблюдаются не сами ошибки, а результат их проявления.
2. Неверное срабатывание программы может быть следствием не одной, а сразу нескольких ошибок.
3. Ошибки могут компенсировать друг друга, так что после исправления какой-то одной ошибки программа может начать «работать хуже».
4. Надежность характеризует частоту проявления ошибок, но не их количество; в то же время хорошо известно, что ошибки проявляются с разной частотой: некоторые ошибки остаются невыявленными после многих месяцев и даже лет эксплуатации, но, с другой стороны, нетрудно привести примеры, когда одна единственная ошибка приводит к неверному срабатыванию программы при любых исходных данных, т.е. к нулевой надежности.
Согласно [ГОСТ 9126] качество программного обеспечения это весь объем признаков и характеристик программного обеспечения, который относится к ее способности удовлетворять установленным или предполагаемым потребностям.
Качество программного обеспечения оценивается следующими характеристиками:
Функциональные возможности (Functionality).Набор атрибутов,относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
Надежность (Reliability).Набор атрибутов относящихся к способности программногообеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
Практичность (Usability).Набор атрибутов,относящихся к объему работ,требуемых дляиспользования и индивидуальной оценки такого использования определенным и предполагаемым кругом пользователей.
Эффективность (Efficiencies).Набор атрибутов,относящихся к соотношению междууровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
Сопровождаемость (Maintainability).Набор атрибутов,относящихся к объему работ,требуемых для проведения конкретных изменений (модификаций).
Мобильность (Portability).Набор атрибутов,относящихся к способности программногообеспечения быть перенесенным из одного окружения в другое.
В общем случае под ошибкой подразумевается неправильность, погрешность или неумышленное искажение объекта или процесса, что может быть причиной ущерба – риска при функционировании или применении программы. При этом предполагается, что известно правильное, эталонное состояние объекта или процесса по отношению к которому может быть определено наличие отклонения. Исходным эталоном для любого программного обеспечения являются спецификации требований заказчика или потенциального пользователя, предъявляемых к программам и ожидаемый пользователем или заказчиком эффект от использования программного обеспечения. Важной особенностью при этом является отсутствие полностью определенной программы – эталона, которой должны соответствовать текст и результаты функционирования разрабатываемой программы. Поэтому определить качество программного обеспечения и наличие ошибок в нем путем сравнения разрабатываемой программы с эталонной программой невозможно.
Риски проявляются как негативные последствия проявления ошибок в программном обеспечении в ходе его применения и функционирования, которые могут нанести ущерб системе, в которой применяется это программное обеспечение, внешней среде или пользователям этой системы в результате отклонения характеристик программного обеспечения заданных или ожидаемых пользователем или заказчиком.
Исходя из определения ошибки в программном обеспечении, приведенном выше, можно сделать вывод, что ошибки, проявляющиеся в ходе функционирования программного обеспечения, могут влиять на все показатели качества. В работе рассматриваются ошибки, проявления которых влияют на надежность функционирования программного обеспечения.
По определению, установленному в программу, надежность – свойство объекта выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующим заданным режимам и условиям использования, технического обслуживания, ремонта, хранения и транспортирования.
Рис. 1. Надежность по ГОСТ 27.002 – 89
При этом надежность является комплексным свойством, которое в зависимости от назначения объекта и условий его применения может включать безотказность, долговечность, ремонтопригодность и сохраняемость или определенные сочетания этих свойств (рис. 1). Поскольку программное обеспечение в процессе эксплуатации не изнашивается, его поломка и ремонт в общепринятом смысле не производится, то надежность программного обеспечения имеет смысл характеризовать только с точки зрения безотказности его функционирования и возможности восстановления функционирования после отказов вызванных проявлениями ошибок.
В данном случаи надежность программного обеспечения предлагается характеризовать с помощью следующих характеристик (рис. 2): стабильность, устойчивость и восстанавливаемость.
Рис. 2. Надежность программного обеспечения
В этом случае стабильность и устойчивость характеризуют безотказность программного обеспечения, а восстанавливаемость – возможность восстановления функционирования программного обеспечения после его отказа. Для количественной оценки надежности программного обеспечения необходимо определить показатели надежности для каждого свойства и методику их определения (оценки).
Для оценки стабильности программного обеспечения возможно использование показателей характеризующих безотказность технических устройств(рис. 3).
Рис. 3. Показатели безотказности
В большинстве случаев поток программных ошибок может быть описан негомогенным процессом Пуассона. Это означает, что программные ошибки происходят в статистически независимые моменты времени, наработки
подчиняются экспоненциальному распределению, а интенсивность проявления ошибок изменяется во времени. Обычно используют убывающую интенсивность проявления ошибок. Это означает, что ошибки, как только они выявлены, эффективно устраняются без введения новых ошибок. Главная цель анализа надежности программного обеспечения заключается в том, чтобы определить форму функции интенсивности проявления ошибок и оценить ее параметры по наблюдаемым данным. Как только функция интенсивности проявления ошибок определена, могут быть найдены такие показатели надежности как:
• общее количество ошибок;
• количество остающихся ошибок;
• время до проявления следующей ошибки;
• вероятность безошибочной работы;
• интенсивность проявления ошибок;
• остаточное время испытаний (до принятия решения);
• максимальное количество ошибок (относительно срока службы).
При этом следует различать понятия ошибка и отказ. Применительно к надежности программного обеспечения ошибка это погрешность или искажение кода программы, неумышленно внесенные в нее в процессе разработки, которые в ходе функционирования этой программы могут вызвать отказ или снижение эффективности функционирования. Под отказом в общем случае понимают событие, заключающееся в нарушении работоспособности объекта. Состояние объекта, при котором значения всех параметров характеризующих способность выполнять заданные функции, соответствуют требованиям нормативно – технической и (или) конструкторской (проектной) документации – называется работоспособным. При этом критерии отказов, как признаки или совокупность признаков нарушения работоспособного состояния программного обеспечения, должны определяться исходя из его предназначения в нормативно – технической и (или) конструкторской (проектной) документации.
В общем случае отказ программного обеспечения можно определить как:
прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время превышающее заданный порог;
прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание ) на время не превышающее заданный порог, но с потерей всех или части обрабатываемых данных;
прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание ) потребовавшее перезагрузки ЭВМ, на которой функционирует программное обеспечение.
При этом исходя из всего, все отказы в программном обеспечении следует трактовать как сбои (самоустраняющиеся отказы или однократные отказы, устраняемые незначительным вмешательством оператора), поскольку восстановление работоспособного состояния программного обеспечения может произойти без вмешательства оператора (перезагрузка ЭВМ не требуется), либо при участии оператора или эксплуатирующего персонала (перезагрузка ЭВМ необходима).
Приведенные выше критерии отказов приводят к необходимости анализа временных характеристик функционирования программы и динамических характеристик потребителей данных, полученных в ходе функционирования программного обеспечения. Временная зона перерыва нормальной выдачи информации и потери работоспособности, которую следует рассматривать как зону сбоя (отказа), тем шире, чем более инертный объект находится под воздействием данных, полученным в ходе работы программы. Пороговое время восстановления работоспособного состояния системы, при превышении которого следует фиксировать отказ, близко к периоду решения задач для подготовки информации (данных) соответствующему потребителю (абоненту).
Для любого потребителя данных существует допустимое время отсутствия данных от программы, при котором его характеристики находятся в допустимых пределах . Исходя из этого времени, можно установить границы временной зоны, которая разделяет работоспособное и неработоспособное состояние программного обеспечения и позволяет использовать данные критерии отказов.
Из приведенного выше определения программной ошибки с точки зрения надежности, можно сделать вывод о том , что ошибки, при их проявлении, не всегда вызывают отказ программного обеспечения и каждую ошибку можно характеризовать условной вероятностью возникновения отказа при проявлении этой ошибки. Следует также отметить, что само по себе наличие ошибки в исходном коде не определяет надежность программы до тех пор, пока не произойдет проявления этой ошибки, поэтому пользоваться для оценки надежности программного обеспечения только показателями характеризующие общее количество ошибок в программе, количество оставшихся ошибок и максимального количества ошибок нельзя.
В данном случаи стабильность предлагается оценивать вероятностью безотказной работы, которая оценивается исходя из модели относительной частоты, при этом применение ее ограничено периодом эксплуатации программного обеспечения, что не всегда приемлемо, поскольку надежность объекта, как правило, необходимо оценивать не только в процессе его эксплуатации, но и до начала эксплуатации этого объекта. Ограничение модели относительной частоты вызвано тем, что в этой модели не учитываются процессы тестирования и отладки, а конкретно то, что при возникновении отказа программного обеспечения, ошибка, вызвавшая этот отказ, исправляется.
Наиболее приемлемыми показателями характеризующими стабильность (безотказность) программного обеспечения представляются показатели сходные с показателями безотказности технических систем: вероятность безотказной работы, интенсивность отказов, и среднее время наработки на отказ. Эти показатели взаимосвязаны и, зная один из них, можно определить другие. При определении этих показателей в большинстве случаев можно исходить из модели надежности, предполагающей, что интенсивность проявления ошибок убывает по мере исправления этих ошибок, время между проявлениями ошибок распределено экспоненциально, а интенсивность проявления ошибок постоянна между двумя соседними проявлениями ошибок. Применение такой модели надежности программного обеспечения позволит оценить надежность программного обеспечения во время тестирования и отладки.
Устойчивость, как свойство или совокупность свойств программного обеспечения, характеризующие его возможность поддерживать приемлемый уровень функционирования при проявлениях ошибок в нем , можно оценивать условной вероятностью безотказной работы при проявлении ошибки. Согласно правилу устойчивость оценивается с помощью трех метрик, включающих двадцать оценочных элементов.
Устойчивость программного обеспечения;
Средство восстановления при ошибках на входе;
Наличие требований к программе по устойчивости функционирования при наличии ошибок во входных данных;
1. Возможность обработки ошибочных ситуаций;
2. Полнота обработки ошибочных ситуаций;
3. Наличие тестов для проверки допустимых значений входных данных;
4. Наличие системы контроля полноты входных данных;
5. Наличие средств контроля корректности входных данных;
6. Наличие проверки параметров и адресов по диапазону их знаний;
7. Наличие обработки граничных результатов;
8. Наличие обработки неопределенностей (деление на 0, квадратный корень из отрицательного числа).
Средства восстановления при сбоях в оборудовании;
1. Наличие требований к программе по восстановлению результатов при отказах процессора, операционной системы;
2. Наличие требований к программе по восстановлению процесса выполнения в случае сбоя операционной системы, процессора, внешних устройств;
3. Наличие средств восстановления процесса в случае сбоев оборудования;
4. Наличие возможности разделения по времени выполнения отдельных функций программ;
5. Наличие возможности повторного старта с точки остановки.
Реализация управления средствами восстановления;
1. Наличие централизованного управления процессами, конкурирующими между ресурсами;
2. Наличие возможности автоматически обходить ошибочные ситуации в процессе вычисления;
3. Наличие средств, обеспечения завершения процесса в случае помех;
4. Наличие средств, обеспечивающих выполнение программы в сокращенном объёме в случае ошибок и помех;
5. Показатель устойчивости к искажающим воздействиям.
Метрики и оценочные элементы устойчивости программного обеспечения по ГОСТ 28195 – 89
Результаты оценки каждой метрики определяются результатами оценки определяющих ее оценочных элементов, а результат оценки устойчивости определяются результатами соответствующих ему метрик. Программное обеспечение по каждому из оценочных элементов оценивается группой экспертов – специалистов, компетентных в решении данной задачи, на базе их опыта и интуиции. Для оценочных элементов принимается единая шкала оценки от 0 до 1.
Недостатком такого подхода является одинаковая оценка устойчивости для всех возможных ошибок. Поскольку вероятность возникновения отказа при проявлении разных ошибок может быть разной, возникает необходимость разделения ошибок на несколько категорий. Признаком, по которому в этом случае можно относить ошибки к той или иной категории, можно считать тяжесть ошибки. Под тяжестью ошибки в этом случае следует понимать количественную или качественную оценку вероятного ущерба при проявлении
этой ошибки, а если говорить о надежности, то оценку вероятности возникновения отказа при проявлении ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий, характеризуемая определенным сочетанием качественных и/или количественных учитываемых составляющих ожидаемого (вероятного) отказа или нанесенного отказом ущерба. В качестве показателя степени тяжести ошибки, позволяющего дать количественную оценку тяжести проявления последствий ошибки целесообразно использовать условную вероятность отказа и его возможных последствий при проявлении ошибок разных категорий. Для программного обеспечения, создаваемого для систем управления, потеря работоспособности которых может повлечь за собой катастрофические последствия, возможные категории тяжести ошибок приведены в таблице
Источник: megaobuchalka.ru