Добрый день. Вопрос №1 Какова стоимость получения диплома о мини-МБА по данному курсу? Или ориентироваться на указанную на сайте? Вопрос №2 Возможно ли начать обучение без потери результатов, не отправив документы на зачисление, а отправку выполнить позже? |
Методы разработки устойчивого кода
25.1. Классификация проблем, возникающих при работе программных систем
Данная лекция посвящена внешним эффектам, проявляющимся в результате наличия дефектов в работающей программной системе. Эти эффекты различаются, в первую очередь, по степени серьезности последствий от проявления дефекта и по времени нахождения системы в неработоспособном состоянии.
Первое проявление дефекта - сбой в работе системы. Сбои имеют небольшую продолжительность во времени и могут быть устранены без длительных процедур восстановления. Как правило, сбой вызывает кратковременную порчу данных пользователя без прекращения работы всей системы в целом. Последствия сбоя могут быть существенными с точки зрения пользователя, особенно если данные являются критически важными, однако бесперебойная работа системы не нарушается.
Отказ - более серьезное проявление дефекта в системе, при котором вся система или ее часть выходят из строя, выходя при этом из работоспособного состояния, т.е. состояния, в котором все аспекты функционирования системы соответствуют требованиям. В случае отказа системы для ее возврата к нормальному функционированию требуется вмешательство оператора. Для программных систем причиной отказа может служить скрытый дефект, проявляющийся только с течением большого промежутка времени (переполнение внутреннего счетчика времени, переполнение данных и т.п.).
Авария - отказ системы, при котором система выходит из строя таким образом, что восстановление ее работоспособного состояния либо невозможно, либо занимает весьма значительное время. В случае программных систем можно избежать возникновения аварийных ситуаций при помощи полного дублирования системы как по выполняемому программному коду, так и по данным.
Сбои и отказы являются причиной отказных ситуаций, т.е. ситуаций, в которых работоспособное состояние системы нарушается временно. Аварии являются причиной аварийных ситуаций, т.е. ситуаций, в которых работоспособное состояние системы нарушается навсегда или на длительный срок.
25.1.1. Сбои
Можно выделить следующие три вида сбоев, вызывающих отказные ситуации.
- Сбои в системном программном обеспечении возникают при нештатном использовании системных средств - операционной системы, системы управления базами данных и т.п. Как правило, последствия данных сбоев наиболее тяжелые. В некоторых случаях возможна полная потеря как данных системы, так и данных о состоянии системы на момент сбоя - дампов. Такие случаи наиболее сложны для диагностики и исправления.
- Сбои в приложении возникают при недостаточном качестве тестирования прикладной системы, либо при нештатном ее использовании. Как правило, сбор информации о таких сбоях возможен средствами самого приложения. В критических случаях, например, при полном крахе приложения возможен сбор сведений о его информационном окружении средствами операционной системы либо операционной среды, под управлением которой работает приложение.
- Сбои - следствие неверной технологии использования возникают при неправильном (непредусмотренном) порядке действий пользователя при работе с системой. Такие сбои - наиболее сложные для анализа и устранения: их проявления могут заключаться не в отказах системы, а в ее действиях, неправильных или неочевидных с точки зрения пользователя. При этом не происходит автоматической рассылки информации разработчикам, единственная информация, на которую приходится опираться - обратная связь от пользователей. Устранение причин этих сбоев может вестись по нескольким направлениям. Следует отметить следующие: а) доработка руководства пользователя - не всегда эффективно, поскольку внимательно читает руководство лишь небольшое количество пользователей; б) привлечение к разработке специалиста по автоматизируемой предметной области и/или специалиста по эргономике - это позволит сделать пользовательский интерфейс системы более удобным и понятным.
Для классификации сбоев по категориям выделим следующие параметры сбоя.
Точка возникновения сбоя - строка или оператор программного кода, вызвавший отказную ситуацию. Данный оператор может находиться в коде системных библиотек либо в коде приложения пользователя. Вовсе не обязательно, что сбой вызван именно этим оператором, но при помощи анализа окружения вызова и исходных текстов программ обычно удается обнаружить причину отказа.
Информационное окружение системы в момент сбоя - состояние системы в момент сбоя. К информационному окружению в данном случае относятся данные, которые могут помочь в анализе причины сбоя и его устранении - например, состояние стека, значение переменных окружения, пользовательской сессии и т.п. Данный набор параметров позволяет проследить ход выполнения программы, который привел к ее сбою, и оценить несоответствия в данных, которые могли привести к сбою.
Наличие и тип сообщения о сбое - сообщение о сбое может быть создано автоматическим модулем оповещения о сбоях и содержать вышеуказанную информацию, а может создаваться пользователем вручную. Если исходить из допущения, что автоматически создаваемые сообщения посылаются разработчику всегда в случае сбоев, не приводящих к полному краху системы и вызывающих нештатное поведение системы с точки зрения операционной среды либо времени выполнения, то эта информация также помогает оценить тип сбоя.
В табл. 25.1 приведена классификация типов сбоев по указанным выше признакам.
Параметры сбоя | Тип сбоя | ||
---|---|---|---|
Сбой в системном ПО | Сбой в прикладном ПО | Сбой из-за неверной технологии | |
Точка возникновения сбоя | Системные библиотеки или Приложение | Приложение | Неприменимо |
Информационное окружение | Ненормальное | Ненормальное | Нормальное |
Сообщение о сбое | Пользовательское или автоматическое | Автоматическое | Пользовательское |