Главная » Просмотр файлов » И. Соммервилл - Инженерия программного обеспечения

И. Соммервилл - Инженерия программного обеспечения (1133538), страница 96

Файл №1133538 И. Соммервилл - Инженерия программного обеспечения (И. Соммервилл - Инженерия программного обеспечения) 96 страницаИ. Соммервилл - Инженерия программного обеспечения (1133538) страница 962019-05-12СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 96)

Система управления поддерживает эту температуру путем включения и выключения насоса для холодильного агснта, в зависимости от значения температурного датчика. Если нужная температура не поддерживается, блок управления посылает аварийный сигнал. В приведенном листинге температура морозильной камеры определяется п)тем опроса объекта 1епзр8епвог (температура датчика) „а необходимая температура — обьскга 1егпрР)а! (установка температуры).

Объект Ригпр (насос) отвечает на сигналы, изменяя свое состояние. Если насос вкаючился, система ожидает некоторое времена (вызывал метод Т)згевб.з)еер) для понижснил температуры. Если она нс понижаетсл в достаточной мере, происходит переход к обработке исключительной ситуации ГгеегегТооНо1Ехсербоп. Обработчик исключений (помещенный в конец программы) фиксирует зту исключи. тельную ситуацию и активизирует объект А)апп (Сигнал тревоги). Также предусмотрен обработчик искзючения (п1епцр(едЕхсер()оп (искпючсннс прерывания), которое может быть передано из метода Тйгеад.в)еер. Эта исключительная ситуация затем передастся ос. повному методу.

372 к1асть 1У. Критические системы 18.2.2. Обнаружение ошибок и сбоев Языки программирования подобные )ача и Ав)а имеют строгие описания типов. Это позволяет многие ошибки, которые служат причиной нарушения состояний и отказов системы, обнаружить во время компиляции. Компилятор может обнаружить нарушения правил описания типов. Проверка компилятора ограничена статическими величинами, ио компилятор может также автоматически сгенерировать программу, которая выполняет, например, проверку присвоения значений массивам. Она проверит, что индексы массива пе выйдут за указанные пределы и что значения массива имеют необходимый тип. Первая ступень средств отказоустойчивости должна обнаружить, что сбой (ошибочное состояние системы) произошел или произойдет, если немедленно нс будут выполнены некоторые действия.

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

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

Ограничения, которые применяются к отдельным объектам, можно про. верять автоматически и изменять во время выполнения метода (ассоциированного с объектом), который может изменить состояние. Этот подход проиллюстрирован в листинге 18.5, который на языке )ача описывает класс Рова)чеЕчеп, реализующий тип положительных четных чисел. Листинг 18.5. Описание класса РоаЫчеЕчеп с1авв Ровсс1чеЕчеп1пседег ( ьпс ча1 = 0; Ров1адчеечепХпседег (Рпс и) ггггомв мшзегбсехсергзоп ( 18 (и < 0 ) п$2 ="- 1) с)згом пем ицжегдсехсерс)оп ()/ е1ве ча1 = пг ) //РоязгзчЕЕчеп1пгедег рцп11с чо(с) авв1дп (Рпс п) с)згомв иитегзсехсерсэоп ( э1 (и < 0 ) п%2 == 1] Сотом пем МожегзсЕхсерг(оп (); е1зе ча1 = и: 18.

Разработка критических систем 873 ) //присвоение Епе Согпхедег () ( хевихп ча1| ) //для целых чисел Ьоо1еап ецие1в (Ров1СЕчехчеп1пеепех и] ( хеспхп (ча1 == п.ча1) ) //равенство ) //Ровзезчекчеп В этом примере ограничение состоит в том, что данный тип применим только к целым числам (которые, естественно, являются положительными и четными). Если нарушается это ограничение, возникает исключительная ситуация (>(ц|пепсЕхсербоп, о чел| сооб|щастся выполняемому методу. Отметим, что исключительная ситуация пс обрабатывается внугри класса Ровд]чеЕчеп(п(едег.

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

Кроме того, если ограничения накладываются на взаимосвязи между объектами, их нельзя проверить, контролируя ограничения только отдельного объекта. Ретроспективное обнаружение ов|ибок всегда включает контроль ограничений со. стояния, но в данном случае исследуется состояние в целом и проверяются вес персменныс, определяющие состояния. Отдельные функции проверки можно реализовать на языке ]ага, используя следующий интерфейс: (псегбасе Спас)гаЬ1еОЬбесс ( риЬ11с Ьоо1еап спеси (]," ) Контролируемые объекты — это реализации класса объектов, который использует этот интерфейс, поэтому каждый объект имеет функцию проверки. Каждый класс реализует собственную функцию проверки, которая определяет ограничения, применяемые к объектам именно этого класса.

Этот подход проиллюстрирован в листинге )8.6, где функция проверки исследует ограничения, которым должны удовлетворять элементы массива. Ретроспективное обнаружение оп|ибок, применяемое к нескольким переменным состояния, показано в листинге 18.7. 18.2.3. Локализация ошибок и сбоев Локализация ошибок и сбоев заключается в анализе состояния снстсл|ы для опрсдслсннл машпгаба се разрушения вследствие сбоя. Во многих случалх этого можно избежать, опрслсляя наличие ошибок прежде, чем произойдет окончательное изменение состояния. Если о|либав обнаружена, изменение состояния пе допускается, по предупреждает поврсжлеппе системы. Но локализация ошибок и сбоев необходима, когда изменения состояния нельзя избежать или когда сбой является результатом последовательности отдельных правильных состояний, которые, тем не менее, приводят к сбойному состоянию системы.

374 Часть Пг. Критические системы Локализация ошибок и сбоев состоит нс в исправлении ошибок, а в оценке того, какие части пространства состояний пострадали от сбоя. Это люжно сделать с помов(ью некой "функции законности", которая провсряст, является ли данное состояние непротиворечивым ("закгишым"). Если состояния "нсэаконныс", оии каким-либо способом выделяются. Пример локализации ошибок на языке )ата приведен в листинге )8.6.

Здесь структура данных )тоЬцз[Аггау (устойчивый массив) является коллекцией объектов типа СЬесНаЫеОЬ)ес! (проверяемый объект). Класс, реализующий тип СЬесНвЫеОЬ)ес(, должон содержать метод сйесН (провсрка), который проверяет, удовлетворяет ли значение объекта некоторому ограиичсиию. Это имеет сиысл, поскольку детали провсрки зависят от типа СЬесНаЫеОЬ)ес(, а ис от объекта йоЬцз)Аггау. Листинг 18.6. Класс массивов с локализацией ошибок с1авя ВоЬцвГАггау ( //Проверка: все ли объекты массива //удовлетворяют определенным ограничениям Ьоо1еап () спесНЯгаге сьеснаь1еоьбесг [) сьепоьивгАггауг поьпвгдггау (сьеснаь1еоьбесс [) гьеАггау) ( сЬесНЯГасе = пеи Ьоо1еап [ГпеАггау.1епдГЬ)г ГпейоЬпяГАггау = ГЬелггау; ) //ВоЬцвгАггау риЬ11с чозс) аввеввьашаде () спгоив АггауРатадебахсергзоп ( Ьоо1еап Ьаввееппашадес) = уа1ве/ Йог (1пг 1 = 0 / 1 < гЬ1в.спеаоЬцвгдггау.1епдГЬ г з++) ( [С ()ГЬецоЬцвсдггау [1),спеск(!) ( спесНЯГасе [1) = Ггце; ЬавВеепРшзадес) = Ггце/ ) е1ве спесхзгаге [1) = га1ве; ) 1! (ЬавВееппапшдей) гпгои пеи АггауРаюадебахсергзоп ()г )//аввеввРашаде )//цоЬцвГАггау Метод аззезз0ап)аде (оцснка ущерба) класса [хоЬцз(Аггау проверяет правильность каждого элемента массива.

Если элемент массива ие соответствует ограничениям, которые определены в функции сйесН, он записывается в массив сйесНЗ!в(е. Этим определяется исключение Аггау0ап!адебЕхсер!)оп, Обработчик исключительной ситуации должен быть включен в вызывающий метод. При обработке исключения используется информация из сйесНЭ(а(в. Среди других методов. используемых для обнаружения ошибок и локализации поврсжлспий, выделим следующие. 18. Разработка критических систем 375 1.

Использование контрольных сумм и контроль разрядов в числовых данных. 2. Использование избыточных свлзей в структурах данных, которые содержат указатели. 3. Использование в параллельных системах контрольных таймеров. При изменении данных и обмене ими для проверки программ можно использовать контрольную сумму числовых данных ~121). Контрольная сумма — это величина, которая рассчитывается на основе данных с помощью специальной математической функции. Эта функция должна дать единственное значение для группы данных, кото. рая участвует в обмене. Контрольную сумму вычисляет отправитель данных и добав.

Характеристики

Тип файла
DJVU-файл
Размер
8,79 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6418
Авторов
на СтудИзбе
307
Средний доход
с одного платного файла
Обучение Подробнее