Надёжность ПО (All in one) (2014), страница 9
Описание файла
PDF-файл из архива "Надёжность ПО (All in one) (2014)", который расположен в категории "". Всё это находится в предмете "надёжность программного обеспечения" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 9 страницы из PDF
m'(t).Открытый вопросНе решена проблема выбора междусуществующими SRGM. Критерииприменимости той или иной SRGM кконкретному проекту до конца несформулированыПример входных данныхИнтенсивность• Две модели "basic execution timemodel“ и "logarithmic Poisson executiontime model" (e.g. Musa et al.
1987).Basic Execution TimeModel• Basic Execution Time Model– Интенсивность отказов λ(τ) за время τ:– где λ0 начальная интенсивность и ν0ожидаемоеколичество отказов.Logarithmic Poisson executiontime model• где μ(τ) среднее время междуоткзами к времени τ.Пример (2)• В этом случаеLogarithmicPoisson Modelлучшеприближаетthe BasicExecutionTime Model.• В некоторыхдругихпроектах BEmodelприближаетлучше чем LPмодель.Выводы• Нет универсальной модели• Измерения очень важны длянахождения корректной модели• Результаты тестирования необходимоиспользовать и не один раз• Модели надёжности ПО не так простыкак описаны здесь Неформальная постановка задачиоптимизации надёжности ВСПример вычислительной системы:31S122H13H33S21,S22,S24H23S324S41,S43H42•Классическая постановказадачи оптимизациинадёжностиВСДано:– N – количество подсистем– Chij , Csij – стоимость использования аппаратного/программногокомпонента j для подсистемы i– Rhij , Rsij – надёжность аппаратного/программного компонента jдля подсистемы i– Prv, Pd, Pall – вероятности отказа нескольких версийпрограммных компонентов, вероятность отказа схемы принятиярешений, вероятность отказа сразу всех версий программногокомпонента• Необходимо найти:– Оптимальный набор компонентов и МОО, на котором RRTES max• Ограничения:– CRTES < CostПринятые ограничения• Все компоненты являютсянеремонтируемыми• Моменты появления отказов дляаппаратуры статистически независимы• Все аппаратные компоненты ВС являютсяактивными• Количество доступных версий для всехкомпонентов фиксировано• Интенсивность отказов постоянноОсобенности задачи• NP-трудная• Аргументы и значения функциинадежности являются дискретными• Многоэкстремальная область допустимыхрешений• Область допустимых решений несвязна• Функция надежности нелинейна• Функция стоимости линейна• Каждый модуль вычислительной системыимеет свой доступный набор механизмовобеспечения отказоустойчивостиМетоды решения задачи••••••••Динамическое программированиеТочные методыАлгоритмы муравьиных колонийГенетические алгоритмыИмитация отжигаИммунные алгоритмыПрочие эвристикиПоиск с отсечениемЦели• Отказоустойчивая компьютерная системадолжна предоставлять сервисы в случаеошибок• Отказы могут возникать, так как дефектыприсутствуют в компонентах системы• Система с отказоустойчивостью надёжнейсистемы без отказоустойчивости, нобольше затрачивается ресурсов наобеспечение отказоустойчивостиПроблемы …• Традиционные подходы котказоустойчивости в аппаратныхсистемах основываются накопировании с использованиемособенностей отказов физическихкомпонентов.• Большинство аппаратных методовотказоустойчивости не могут бытьприменены напрямую в ПО, где почтивсе ошибки разработчика.Пример6x y xi yii 1y 10, 2111,10 x 1020 ,1223,1024 ,1018 , 3 , 102130, 2 , 1026 ,102219• Правильный ответ должен быть 8779• Но при обычной реализации возвращается0История …• Защитное программирование:– ad-hoc методы минимизирующие ущербкоторый может возникнуть из-за ошибок• Метод двух версий:– Создание двух независимых версий ПО изапуск их.
По любому расхождению вверсиях включается триггерМетоды обеспеченияотказоустойчивости••••••Обнаружение ошибокДиагностическое тестированиеИзоляция ошибокМаскировка ошибокКорректирование ошибокУстранение ошибокТребования ккомпонентамОрганизациярезервирования• Общие подходы– Организация глобального времени– Выделение изолированных регионов– Отказы в разделяемых компонентах• Программное резервирование– Пространственное резервирование– Временное резервирование• Функциональный сдвиг во времени• Информационный сдвиг во времени• Аппаратное резервирование– Пространственное резервирование– КодированиеМеханизмы обнаруженияошибок• Программные– Приемочные тесты– Отказоустойчивые алгоритмы– Проверки•••••ВременныеКодовыеРеверсныеСемантическиеСтруктурные• Аппаратные– Диагностическое тестированиеПриемочные тестыОтказоустойчивыеалгоритмы. ПопарноетестированиеОтказоустойчивыеалгоритмы.
ГолосованиеМеханизмы устраненияошибок• Программные– Одноверсионное программирование• Контрольная точка и перезапуск• Парные прогоны– Многоверсионное программирование• Восстановление блоками• N-версионное программирование• N-самотестируемое программирование• Аппаратные– Резервирование компонент– Переконфигурирование системыСхемы голосованияголосователь сравнивает результатыдвух и более функциональноэквивалентных компонентов ПО иопределяет корректныйрезультат• Схемы голосования:– Большинство– Консенсус– 2-из-NКонтрольная точка иперезапускПарные прогоныВосстановление блокамиN-версионноепрограммированиеN-самотестируемоепрограммированиеN-версионноепрограммирование.ПримерыКосмический шаттлЗависимость надежностиот количества версийЗаключение• Необходимо корректное покрытиеприёмочными тестами для обнаруженияошибок• Часто невозможно быстро проверитькорректность процедуры (например, дляалгоритма “сортировки” это также сложнокак сам алгоритм “сортировки”).• Проверки часто могут быть оченьресурсоёмкими.• Возможность проявленияненайденных ошибок не должно бытьопределяющимСпасибо за внимание!НАДЁЖНОСТЬ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯЛекция 10:Определение необходимого уровнянадёжности и построение функциональногосрезаВМиК МГУ им.
М.В. Ломоносова,Кафедра АСВК, Лаборатория Вычислительных КомплексовАссистент Волканов Д.Ю.О чём этот курс• Концепции и связи• Аналитические модели и средстваподдержки• Методы для увеличения надёжности ПО:––––––ВерификацияСтатический анализРасчёт надёжностиТестированиеАнализ статистики ошибокБезопасность2План лекции3Определение необходимого уровнянадёжности программКлассы тяжести отказовИнтенсивность отказовСтратегии уменьшения числа отказовОперация, функция, прогон и его типыФункциональный срезРазрабока функционального среза3ЭпиграфДа, все голосуют за качество, но еслионо стоит лишнюю копейку, выначинаете быстро познаватьнастоящее отношение к качеству состороны тех, кто платит.Том Демаркои Тимоти Листер4SRE: процесс• 5 шагов в SREпроцессе:– Определитьнеобходимый уровеньнадежности– Разработатьфункциональный срез– Подготовить длятестирования– Выполнить тестирование– Проанализировать данныеоб ошибках ииспользовать их дляпринятия решенийDefine NecessaryReliabilityDevelopOperational ProfilePrepare for TestExecute TestApply Failure Datato Guide Decisions5Как определитьтребуемый уровеньнадёжности программы?66Надёжность и Риск•Требуемый уровень надёжностизависит от риска.
Больший рисктребует большего уровня надёжностиЛитература:• Software Testing Fundamentals: Methods and Metrics• Marnie L. HutchesonISBN:047143020X John Wiley & Sons77Как найти нужный уровеньнадёжности:1)2)3)4)5)8Разбить возможные отказы по классамтяжестиУстановить целевую интенсивность отказовдля каждой тестируемой системыВыбрать единый масштаб для всехтестируемых системНайти текущий показатель интенсивностиотказовВыбрать стратегию для достиженияпоставленного уровня интенсивности81. Классы тяжести отказовОтказы различаются между собой поуровню их воздействия на тестируемуюсистемуКаждый класс тяжести отказов объединяетотказы с одинаковым влиянием напользователя [по заданным критериям]Примеры критериев классификации:9Стоимость ущерба, угроза жизни человекаТяжесть отказа ≠ сложность отказаТяжесть отказа может зависеть от времени9его наступленияКритерии классификации тяжестиотказов10СтоимостьКакой ущерб способен нанести отказ втерминах стоимости устранения,восстановления, простоя системы, …Классы тяжести по стоимости ущербаобычно различаются на один порядокНа практике достаточноиспользовать 4 группы Класс тяжести Стоимость ($)1> 100,000классов210,000 –100,00031,000 – 10,0004< 1,00010Критерии классификации тяжестиотказовФункционирование системыВключает такие факторы как потерюданных, время простоя системы,возможность её восстановления, …Класс тяжести11Ущерб функционированию1Перерыв в работе сервиса2Ошибки в работе сервиса3Неудобства, требующие срочного исправления4Неудобства в работе, исправление которых может подождать11Критерии классификации тяжестиотказовОкружающая средаМожет привести к нанесению вредаэкологии, исчезновению видов растений иживотных, …Широко применяется в атомной ихимической промышленностиКласс тяжести12Ущерб экологии1Значительный и невосстановимый2Значительный и частично восстановимый3Незначительный, но невосстановимый4Незначительный и восстановимый12Критерии классификации тяжестиотказовЖизнь людейОтказ может привести к нанесению вредаокружающей среде, потере человеческихжизнейПрименяется в аэрокосмической,медицинской, военной и других отрасляхКласс тяжести13Определение1Возможны людские потери2Значительные повреждения здоровья людей3Незначительные повреждения здоровья людей4Восстановимые нарушения здоровья13Как определить уровеньтяжести отказа?14На основе опыта: попросить пользователей,заказчиков и разработчиков и сравнить саналогичными продуктамиПеречислить всевозможные факторыущерба, вызванные отказом системыСузить список до наиболее важныхфакторовНекоторые факторы могут бытьтрудноизмеримыми [репутация компании]14Противоречивые оценки15Пользователи и разработчики могутиметь разные представления отяжести отказовМнения отдельных групп должны бытьсогласованы до установки показателяцелевой интенсивности отказовРазрешить противоречия в тяжестиотказов часто помогает исследованиеаналогичных продуктов15Документирование уровнейтяжести отказовСпособиспользованияКритерииклассификацииСписок возможных отказовКласс 1Класс 2Класс 3Класс 4СтоимостьФункционированиесистемыЧеловеческиежизниОкружающая средаДругое (указатьотдельно)Классы тяжести отказов определяются независимо по каждому критерию16162.