Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Совершенный код. Мастер-класс - Макконнелл С.

Макконнелл С. Совершенный код. Мастер-класс — М.: Русская редакция, 2005. — 896 c.
ISBN: 5-469-00822-3
Скачать (прямая ссылка): soversheniykodmasterklass2005.djvu
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 426 >> Следующая

обоих случаях сделанный выбор повлияет на дизайн GUI.
¦ Как программа поступает при обнаружении ошибки? Обнаружив
ошибку, программа может отбросить данные, вызвавшие ошибку,
может отнестись к ошибке как положено и перейти в состояние
обработки ошибки или может выполнить оставшиеся действия и
уведомить пользователя о том, что (где-то) были обнаружены
ошибки.
¦ Каковы соглашения обработки сообщений об ошибках? Если в
спецификации архитектуры не определена единственная
согласованная стратегия, GUI покажется непонятной
комбинацией разных интерфейсов, относящихся к разным частям
программы. Чтобы избежать этого, при проектировании
архитектуры нужно определить соглашения вывода сообщений об
ошибках.
¦ Как обрабатываются исключения? Архитектура должна
определять, когда код может генерировать исключения, где они
будут перехватываться, как регистрироваться в журнале,
документироваться и т. д.
¦ На каком уровне программы обрабатываются ошибки?
Вы можете обрабатывать их в точке обнаружения, передавать
классу обработки ошибок или возвращать по цепи вызовов.
¦ Какова ответственность каждого класса за проверку получаемых
данных? Каждый класс отвечает за проверку собственных данных
или есть группа классов, проверяющих данные для всей
системы? Могут ли классы конкретного уровня полагать, что
полученные ими данные корректны?
¦ Хотите ли вы использовать механизм обработки ошибок,
встроенный в среду программирования, или создать
собственный? Если в среде реализован конкретный подход к
обработке ошибок, это не значит, что он лучше всего соот-
ветствует вашим требованиям.
Отказоустойчивость
При разработке архитектуры системы следует указать ожидаемый
уровень ее отказоустойчивости. Отказоустойчивостью называют
совокупность свойств системы, повышающих ее надежность путем
обнаружения ошибок, восстановления, если это возможно, и
изоляции их плохих последствий, если восстановление
невозможно.
Например, вычисление системой квадратного корня можно сделать
отказоустойчивым несколькими способами.
¦ В случае неудачи система может вернуться в предыдущее
состояние и попробовать вычислить корень еще раз. Если
первый ответ неверен, она может вернуться в состояние, при
котором все наверняка было правильно, и продолжить работу с
этого момента.
Перекрестная ссылка Еще один аспект стратегии обработки
ошибок, который следует рассмотреть на архитектурном уровне, -
согласованный метод обработки недопустимых параметров. Примеры
см. в главе 8.
48 ЧАСТЬ I Основы разработки ПО
¦ Система может включать вспомогательный код, выполняемый при
обнаружении ошибки в основном коде. Так, если первый ответ
кажется ошибочным, система может переключиться на
альтернативный метод вычисления квадратного корня.
¦ Система может применять алгоритм голосования. Она может
включать три класса, вычисляющих квадратный корень разными
способами. Каждый класс вычисляет квадратный корень, после
чего система сравнивает полученные
результаты. В зависимости от реализованного типа
отказоустойчивости система может использовать среднее,
срединное или наиболее вероятное значение из трех.
¦ Система может заменять ошибочное значение поддельным
значением, которое положительно скажется на работе
оставшейся части системы.
Другими подходами к отказоустойчивости являются перевод
системы при обнаружении ошибки в состояние частичной
работоспособности или ограниченной фунциональности. Система
может отключиться или автоматически перезапустить себя.
Конечно, эти примеры упрощены. Отказоустойчивость -
захватывающая и сложная область, но не она является темой этой
книги.
Возможность реализации архитектуры
Разработчики могут сомневаться в том, способна ли система
достигнуть заданных показателей производительности, работать
при ограниченности ресурсов и будет ли она адекватно
поддержана средами реализации. Архитектура должна под-
тверждать, что система технически осуществима. Если
невозможность реализации какого-то компонента может сделать
проект неработоспособным, в архитектуре должно быть отражено,
как изучались эти вопросы: при помощи прототипов, исследований
или иначе. Эти аспекты риска следует устранить до начала
полномасштабного конструирования.
Избыточная функциональность
Надежностью называют способность системы продолжать работу
после обнаружения ошибки. Частенько в спецификации архитектуры
разработчики определяют более надежную систему, чем указано в
требованиях. Одна из причин этого в том, что система,
состоящая из многих частей, удовлетворяющих минимальным
требованиям к надежности, в целом может оказаться менее
надежной, чем нужно. В мире ПО цепь не так крепка, как
слабейшее звено; она так слаба, как все слабые звенья, вместе
взятые. В спецификации архитектуры должно быть явно указано,
могут ли программисты реализовать в своих блоках программы
избыточную функциональность или они должны создать простейшую
работоспособную систему.
Определить отношение к реализации избыточной функциональности
Предыдущая << 1 .. 25 26 27 28 29 30 < 31 > 32 33 34 35 36 37 .. 426 >> Следующая