Ошибки проектирования ошибки алгоритмизации ошибки программирования недостаточное качество защиты

Содержание:

Введение

Программное обеспечение, согласно ГОСТ 19781-90, – совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.

Существует и другое, более простое определение, согласно которому программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.

Проблема надежности программного обеспечения относится, похоже, к категории «вечных». В посвященной ей монографии Г.Майерса, выпущенной в 1980 году (американское издание — в 1976), отмечается, что, хотя этот вопрос рассматривался еще на заре применения вычислительных машин, в 1952 году, он не потерял актуальности до настоящего времени. Отношение к проблеме довольно выразительно сформулировано в книге Р.Гласса: «Надежность программного обеспечения — беспризорное дитя вычислительной техники». Следует далее отметить, что сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература на эту тему, включая упомянутые выше монографии, посвящена первому аспекту, а вопрос оценки надежности компьютерных программ оказывается еще более «беспризорным». Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

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

Цель данной работы – рассмотреть классификацию ошибок программного обеспечения для обеспечения его надежности.

Надежность программного обеспечения

Показатели качества программного обеспечения

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

Согласно ГОСТ 9126[2], качество программного обеспечения – это весь объем признаков и характеристик программного обеспечения, который относится к ее способности удовлетворять установленным или предполагаемым потребностям.

Качество программного обеспечения оценивается следующими характеристиками:

  • Функциональные возможности (Functionality). Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
  • Надежность (Reliability). Набор атрибутов относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
  • Практичность (Usability). Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным и предполагаемым кругом пользователей.
  • Эффективность (Efficiencies). Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
  • Сопровождаемость (Maintainability). Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).
  • Мобильность (Portability). Набор атрибутов, относящихся к способности программного обеспечения быть перенесенным из одного окружения в другое.

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

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

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

По правилу, установленному в [2], надежность – свойство объекта осуществлять заданные функции, храня во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующим заданным режимам и условиям использования, ремонта, технического обслуживания, хранения, транспортирования.

Рис. 1. Надежность по ГОСТ 27.002 – 89

При этом надежность является комплексным свойством, которое в зависимости от функции объекта и условий его использования может включать безотказность, ремонтопригодность, долговечность, сохраняемость или некоторые сочетания данных свойств (рис. 1). Так как программное обеспечение в процессе эксплуатации не изнашивается, его поломка и ремонт в общепринятом смысле не делается, то надежность программного обеспечения имеет смысл характеризовать только с точки зрения безотказности его функционирования и возможности исправления функционирования после отказов по вызванных проявлениями ошибок.

В [3] надежность программного обеспечения предлагается характеризовать с помощью следующих характеристик (рис. 2): стабильность, устойчивость и восстанавливаемость.

Рис. 2. Надежность программного обеспечения

В этом случае стабильность и устойчивость характеризуют безотказность программного обеспечения, а восстанавливаемость – возможность восстановления функционирования программного обеспечения после его отказа. Для количественной оценки надежности программного обеспечения необходимо определить показатели надежности для каждого свойства и методику их определения (оценки).

Для оценки стабильности программного обеспечения возможно использование показателей характеризующих безотказность технических устройств [2] (рис. 3).

Рис. 3. Показатели безотказности

В большинстве случаев поток программных ошибок может быть описан негомогенным процессом Пуассона [4]. Это означает, что программные ошибки происходят в статистически независимые моменты времени, наработки подчиняются экспоненциальному распределению, а интенсивность проявления ошибок изменяется во времени. Обычно используют убывающую интенсивность проявления ошибок. Это означает, что ошибки, как только они выявлены, эффективно устраняются без введения новых ошибок. Главная цель анализа надежности программного обеспечения заключается в том, чтобы определить форму функции интенсивности проявления ошибок и оценить ее параметры по наблюдаемым данным. Как только функция интенсивности проявления ошибок определена, могут быть найдены такие показатели надежности как:

  • общее количество ошибок;
  • количество остающихся ошибок;
  • время до проявления следующей ошибки;
  • вероятность безошибочной работы;
  • интенсивность проявления ошибок;
  • остаточное время испытаний (до принятия решения);
  • максимальное количество ошибок (относительно срока службы).

При этом следует различать понятия ошибка и отказ. Применительно к надежности программного обеспечения ошибка это погрешность или искажение кода программы, неумышленно внесенные в нее в процессе разработки, которые в ходе функционирования этой программы могут вызвать отказ или снижение эффективности функционирования. Под отказом в общем случае понимают событие, заключающееся в нарушении работоспособности объекта [2]. Состояние объекта, при котором значения всех параметров характеризующих способность выполнять заданные функции, соответствуют требованиям нормативно – технической и (или) конструкторской (проектной) документации – называется работоспособным. При этом критерии отказов, как признаки или совокупность признаков нарушения работоспособного состояния программного обеспечения, должны определяться исходя из его предназначения в нормативно – технической и (или) конструкторской (проектной) документации.

В общем случае отказ программного обеспечения можно определить как:

  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время превышающее заданный порог;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время не превышающее заданный порог, но с потерей всех или части обрабатываемых данных;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) потребовавшее перезагрузки ЭВМ, на которой функционирует программное обеспечение.

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

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

Для любого потребителя данных существует допустимое время отсутствия данных от программы, при котором его характеристики находятся в допустимых пределах. Исходя из этого времени, можно установить границы временной зоны, которая разделяет работоспособное и неработоспособное состояние программного обеспечения и позволяет использовать данные критерии отказов.

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

В [5] стабильность предлагается оценивать вероятностью безотказной работы, которая оценивается исходя из модели относительной частоты, при этом применение ее ограничено периодом эксплуатации программного обеспечения, что не всегда приемлемо, поскольку надежность объекта, как правило, необходимо оценивать не только в процессе его эксплуатации, но и до начала эксплуатации этого объекта. Ограничение модели относительной частоты вызвано тем, что в этой модели не учитываются процессы тестирования и отладки, а конкретно то, что при возникновении отказа программного обеспечения, ошибка, вызвавшая этот отказ, исправляется.

Наиболее приемлемыми показателями характеризующими стабильность (безотказность) программного обеспечения представляются показатели сходные с показателями безотказности технических систем: вероятность безотказной работы, интенсивность отказов, и среднее время наработки на отказ. Эти показатели взаимосвязаны и, зная один из них, можно определить другие [2]. При определении этих показателей в большинстве случаев можно исходить из модели надежности, предполагающей, что интенсивность проявления ошибок убывает по мере исправления этих ошибок, время между проявлениями ошибок распределено экспоненциально, а интенсивность проявления ошибок постоянна между двумя соседними проявлениями ошибок. Применение такой модели надежности программного обеспечения позволит оценить надежность программного обеспечения во время тестирования и отладки.

Устойчивость, как свойство или совокупность свойств программного обеспечения, характеризующие его возможность поддерживать приемлемый уровень функционирования при проявлениях ошибок в нем, можно оценивать условной вероятностью безотказной работы при проявлении ошибки. Согласно [5] устойчивость оценивается с помощью трех метрик, включающих двадцать оценочных элементов (рис. 4). Результаты оценки каждой метрики определяются результатами оценки определяющих ее оценочных элементов, а результат оценки устойчивости определяются результатами соответствующих ему метрик. Программное обеспечение по каждому из оценочных элементов оценивается группой экспертов – специалистов, компетентных в решении данной задачи, на базе их опыта и интуиции. Для оценочных элементов принимается единая шкала оценки от 0 до 1.

Недостатком такого подхода является одинаковая оценка устойчивости для всех возможных ошибок. Поскольку вероятность возникновения отказа при проявлении разных ошибок может быть разной, возникает необходимость разделения ошибок на несколько категорий. Признаком, по которому в этом случае можно относить ошибки к той или иной категории, можно считать тяжесть ошибки. Под тяжестью ошибки в этом случае следует понимать количественную или качественную оценку вероятного ущерба при проявлении этой ошибки [6], а если говорить о надежности, то оценку вероятности возникновения отказа при проявлении ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий, характеризуемая определенным сочетанием качественных и/или количественных учитываемых составляющих ожидаемого (вероятного) отказа или нанесенного отказом ущерба.

Рис. 4. Метрики и оценочные элементы устойчивости программного обеспечения по ГОСТ 28195 – 89

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

Таблица 1. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого могут привести к катастрофическим последствиям

Для программного обеспечения общего применения или программного обеспечения систем, нарушение работоспособности которых не представляет угрозы жизни людей и не приводит к разрушению самой системы, возможные категории тяжести приведены в таблице 2.

Таблица 2. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого не приводят к катастрофическим последствиям

Оценку степени тяжести ошибки как условной вероятности возникновения отказа (последствий этого отказа), можно производить согласно [5], используя метрики и оценочные элементы, характеризующие устойчивость программного обеспечения. При этом оценка производится для каждой ошибки в отдельности, а не для всего программного обеспечения. Далее исходя из проведенных оценок возможно определение устойчивости программного обеспечения к проявлениям ошибок каждой из категорий.

Восстанавливаемость программного обеспечения, как свойство или совокупность свойств характеризующих способность программного обеспечения восстановления своего уровня пригодности и восстановления данных, непосредственно поврежденных вследствии проявлении ошибки (отказа), характеризуется полнотой и длительностью восстановления функционирования программ в процессе перезапуска или перезагрузки ЭВМ. В [5] восстанавливаемость предлагается оценивать по среднему времени восстановления. При этом следует учитывать, что время восстановления функционирования программного обеспечения складывается не только из времени потребного для перезагрузки ЭВМ и загрузки самого программного обеспечения, но и из времени необходимого для восстановления данных и это время в ряде случаев может значительно превышать время перезагрузки.

Показатели надежности программного обеспечения в значительной степени адекватны аналогичным характеристикам, принятых для других технических систем. Наиболее широко используется показатель наработки на отказ. Наработка на отказ – это отношение суммарной наработки объекта к математическому ожиданию числа его отказов в течении этой наработки. Для программного обеспечения использование данного показателя затруднено, в силу особенностей тестирования и отладки программного обеспечения (ошибка вызвавшая отказ, как правило, исправляется и больше не повторяется). Поэтому целесообразно использовать показатель средней наработки до отказа – математического ожидания времени функционирования программного обеспечения до отказа. При использовании модели надежности программного обеспечения предполагающей экспоненциальное распределение времени между отказами, среднее время наработки до отказа равно величине обратной интенсивности отказов. Интенсивность отказов можно оценить исходя из оценок стабильности и устойчивости программного обеспечения. Обобщение характеристик отказов и восстановлений производится в показателе коэффициент готовности [2]. Коэффициент готовности программного обеспечения это вероятность того, что программное обеспечение окажется в работоспособном состоянии в произвольный момент времени. Значение коэффициента готовности соответствует доле времени полезной работы программного обеспечения на достаточно большом интервале времени, содержащем отказы и восстановления.

Источники ошибок программного обеспечения

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

Основными причинами ошибок программного обеспечения являются:

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

Источниками ошибок программного обеспечения являются:

Внутренние: ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации.

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы.

  • Признаками выявления ошибок являются:
  • Преждевременное окончание программы.
  • Увеличение времени выполнения программы.
  • Нарушение последовательности вызова отдельных подпрограмм.

Ошибки выхода информации, поступающей от внешних источников, между входной информацией возникает не соответствие из-за: искажение данных на первичных носителях, сбои и отказы в аппаратуре, шумы и сбои в каналах связи, ошибки в документации.

Ошибки, скрытые в самой программе: ошибка вычислений, ошибка ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка совместимости, ошибка сопряжения.

Искажения входной информации, подлежащей обработке: искажения данных на первичных носителях информации; сбои и отказы в аппаратуре ввода данных с первичных носителей информации; шумы и сбои в каналах связи при передачи сообщений по линиям связи; сбои и отказы в аппаратуре передачи или приема информации; потери или искажения сообщений в буферных накопителях вычислительных систем; ошибки в документировании; используемой для подготовки ввода данных; ошибки пользователей при подготовки исходной информации.

Неверные действия пользователя:

  • Неправильная интерпретация сообщений.
  • Неправильные действия пользователя в процессе диалога с программным обеспечением.
  • Неверные действия пользователя или по-другому, их можно назвать ошибками пользователя, которые возникают вследствие некачественной программной документации: неверные описания возможности программ; неверные описания режимов работы; неверные описания форматов входной и выходной информации; неверные описания диагностических сообщений.

Неисправности аппаратуры установки: приводят к нарушениям нормального хода вычислительного процесса; приводят к искажениям данных и текстов программ в основной и внешней памяти.

Итак, при рассмотрении основных причин возникновения отказа и сбоев программного обеспечения можно сказать, что эти знания позволяют своевременно принимать необходимые меры по недопущению отказов и сбоев программного обеспечения.

Виды ошибок программного обеспечения

Характеристика основных видов ошибок программного обеспечения

Рассмотрим классификацию ошибок по месту их возникновения, которая рассмотрена в книге С. Канера «Тестирование программного обеспечения». Фундаментальные концепции менеджмента бизнес-приложений. Главным критерием программы должно быть ее качество, которое трактуется как отсутствие в ней недостатков, а также сбоев и явных ошибок. Недостатки программы зависят от субъективной оценкой ее качества потенциальным пользователем. При этом авторы скептически относятся к спецификации и утверждают, что даже при ее наличии, выявленные на конечном этапе недостатки говорят о ее низком качестве. При таком подходе преодоление недостатков программы, особенно на заключительном этапе проектирования, может приводить к снижению надежности. Очевидно, что для разработки ответственного и безопасного программного обеспечения (ПО) такой подход не годится, однако проблемы наличия ошибок в спецификациях, субъективного оценивания пользователем качества программы существуют и не могут быть проигнорированы. Должна быть разработана система некоторых ограничений, которая бы учитывала эти факторы при разработке и сертификации такого рода ПО. Для обычных программ все проблемы, связанные с субъективным оцениванием их качества и наличием ошибок, скорее всего неизбежны.

В краткой классификации выделяются следующие ошибки.

  • ошибки пользовательского интерфейса.
  • ошибки вычислений.
  • ошибки управления потоком.
  • ошибки передачи или интерпретации данных.
  • перегрузки.
  • контроль версий.
  • ошибка выявлена и забыта.
  • ошибки тестирования.

1. Ошибки пользовательского интерфейса.

Многие из них субъективны, т.к. часто они являются скорее неудобствами, чем «чистыми» логическими ошибками. Однако они могут провоцировать ошибки пользователя программы или же замедлять время его работы до неприемлемой величины. В результате чего мы будем иметь ошибки информационной системы (ИС) в целом. Основным источником таких ошибок является сложный компромисс между функциональностью программы и простотой обучения и работы пользователя с этой программой. Проблему надо начинать решать при проектировании системы на уровне ее декомпозиции на отдельные модули, исходя из того, что вряд ли удастся спроектировать простой и удобный пользовательский интерфейс для модуля, перегруженного различными функциями. Кроме того, необходимо учитывать рекомендации по проектированию пользовательских интерфейсов. На этапе тестирования ПО полезно предусмотреть встроенные средства тестирования, которые бы запоминали последовательности действий пользователя, время совершения отдельных операций, расстояния перемещения курсора мыши. Кроме этого возможно применение гораздо более сложных средств психо-физического тестирования на этапе тестирования интерфейса пользователя, которые позволят оценить скорость реакции пользователя, частоту этих реакций, утомляемость и т.п. Необходимо отметить, что такие ошибки очень критичны с точки зрения коммерческого успеха разрабатываемого ПО, т.к. они будут в первую очередь оцениваться потенциальным заказчиком.

2.Ошибки вычислений.

Выделяют следующие причины возникновения таких ошибок:

  • неверная логика (может быть следствием, как ошибок проектирования, так и кодирования);
  • неправильно выполняются арифметические операции (как правило — это ошибки кодирования);
  • неточные вычисления (могут быть следствием, как ошибок проектирования, так и кодирования). Очень сложная тема, надо выработать свое отношение к ней с точки зрения разработки безопасного ПО.

Выделяются подпункты: устаревшие константы; ошибки вычислений; неверно расставленные скобки; неправильный порядок операторов; неверно работает базовая функция; переполнение и потеря значащих разрядов; ошибки отсечения и округления; путаница с представлением данных; неправильное преобразование данных из одного формата в другой; неверная формула; неправильное приближение.

3.Ошибки управления потоком.

В этот раздел относится все то, что связано с последовательностью и обстоятельствами выполнения операторов программы.

Выделяются подпункты:

  • очевидно неверное поведение программы;
  • переход по GOTO;
  • логика, основанная на определении вызывающей подпрограммы;
  • использование таблиц переходов;
  • выполнение данных (вместо команд). Ситуация возможна из-за ошибок работы с указателями, отсутствия проверок границ массивов, ошибок перехода, вызванных, например, ошибкой в таблице адресов перехода, ошибок сегментирования памяти.

4.Ошибки обработки или интерпретации данных.

Выделяются подпункты:

  • проблемы при передаче данных между подпрограммами (сюда включены несколько видов ошибок: параметры указаны не в том порядке или пропущены, несоответствие типов данных, псевдонимы и различная интерпретация содержимого одной и той же области памяти, неправильная интерпретация данных, неадекватная информация об ошибке, перед аварийным выходом из подпрограммы не восстановлено правильное состояние данных, устаревшие копии данных, связанные переменные не синхронизированы, локальная установка глобальных данных (имеется в виду путаница локальных и глобальных переменных), глобальное использование локальных переменных, неверная маска битового поля, неверное значение из таблицы);
  • границы расположения данных (сюда включены несколько видов ошибок: не обозначен конец нуль-терминированной строки, неожиданный конец строки, запись/чтение за границами структуры данных или ее элемента, чтение за пределами буфера сообщения, чтение за пределами буфера сообщения, дополнение переменных до полного слова, переполнение и выход за нижнюю границу стека данных, затирание кода или данных другого процесса);
  • проблемы с обменом сообщений (сюда включены несколько видов ошибок: отправка сообщения не тому процессу или не в тот порт, ошибка распознавания полученного сообщения, недостающие или несинхронизированные сообщения, сообщение передано только N процессам из N+1, порча данных, хранящихся на внешнем устройстве, потеря изменений, не сохранены введенные данные, объем данных слишком велик для процесса-получателя, неудачная попытка отмены записи данных).

5.Повышенные нагрузки.

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

7.Ошибки тестирования.

Являются ошибками сотрудников группы тестирования, а не программы. Выделяются подпункты:

  • пропущенные ошибки в программе;
  • не замечена проблема (отмечаются следующие причины этого: тестировщик не знает, каким должен быть правильный результат, ошибка затерялась в большом объеме выходных данных, тестировщик не ожидал такого результата теста, тестировщик устал и невнимателен, ему скучно, механизм выполнения теста настолько сложен, что тестировщик уделяет ему больше внимания, чем результатам);
  • пропуск ошибок на экране;
  • не документирована проблема (отмечаются следующие причины этого: тестировщик неаккуратно ведет записи, тестировщик не уверен в том, что данные действия программы являются ошибочными, ошибка показалась слишком незначительной, тестировщик считает, что ошибку не будет исправлена, тестировщика просили не документировать больше подобные ошибки).

8.Ошибка выявлена и забыта.

Описываются ошибки использования результатов тестирования. По-моему, раздел следует объединить с предыдущим. Выделяются подпункты: не составлен итоговый отчет; серьезная проблема не документирована повторно; не проверено исправление; перед выпуском продукта не проанализирован список нерешенных проблем.

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

Меры по повышению надежности программного обеспечения

Лучшим и самым оптимальным способом (если не брать во внимание научно-технический прогресс и постоянное развитие IT-технологий, которые способствуют повышению качества характеристик программ) повышения надёжности программного обеспечения является строжайший контроль продукции на выходе с предприятия.

В последние годы сформировалась комплексная система управления качеством продукции TQM (Totaly Quality Management), которая концептуально близка к предшествующей более общей системе на основе стандартов ИСО серии 9000. Система ориентирована на удовлетворение требований потребителя, на постоянное улучшение процессов производства или проектирования, на управление процессами со стороны руководства предприятия на основе фактического состояния проекта. Основные достижения TQM состоят в углублении и дифференциации требований потребителей по реализации процессов, их взаимодействию и обеспечению качества продукции. Системный подход поддержан рядом специализированных инструментальных средств, ориентированных на управление производством продукции. Поэтому эта система пока не находит применения в области обеспечения качества жизненного цикла программных средств.

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

Активные методы повышения надежности ПС совершенствуются за счет развития средств автоматизации тестирования программ. Сложность ПС и высокие требования по их надежности требуют выработки принципов структурного построения сложных программных средств, обеспечивающих гибкость модификации ПС и эффективность их отладки. К таким принципам в работе относят:

  • модульность и строгую иерархию в структурном построении программ;
  • унификацию правил проектирования, структурного построения и взаимодействия компонент ПС;
  • унификацию правил организации межмодульного интерфейса;
  • поэтапный контроль полноты и качества решения функциональных задач.

Заключение

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

В заключение можно подвести итог:

  • В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать;
  • Отказ программного обеспечения — это появление в нем ошибки;
  • Надежность программного обеспечения — есть вероятность его работы без отказов в течении определенного периода времени, рассчитанного с учетом стоимости для пользователя каждого отказа.

Из данных определений можно сделать важные выводы:

  • Надежность программного обеспечения является не только внутренним свойством программы;
  • Надежность программного обеспечения — это функция как самого ПО, так и ожиданий (действий) его пользователей.

Основными причинами ошибок программного обеспечения являются:

  • большая сложность ПО, например, по сравнению с аппаратурой ЭВМ;
  • неправильный перевод информации из одного представления в другое.

Список использованной литературы

  1. ГОСТ 27.002 – 89. Надежность в технике. Основные понятия. Термины и определения. // М.: Издательство стандартов, 1990.
  2. ГОСТ Р ИСО/МЭК 9126 – 93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. // М.: Издательство стандартов, 1994.
  3. ГОСТ 51901.5 – 2005. Менеджмент риска. Руководство по применению методов анализа надежности. // М.: Издательство стандартов, 2007.
  4. ГОСТ 28195 – 89. Оценка качества программных средств. Общие положения. // М.: Издательство стандартов, 1989.
  5. ГОСТ 27.310 – 95. Надежность в технике. Анализ видов, последствий и критичности отказов. // М.: Издательство стандартов, 1995.
  6. ГОСТ 51901.12 – 2007. Менеджмент риска. Метод анализа видов и последствий отказов. // М.: Издательство стандартов, 2007.
  7. Братчиков И.Л. «Синтаксис языков программирования» Наука, М.:Инси, 2005. — 344 с.
  8. Дейкстра Э. Заметки по структурному программированию.- М.:Дрофа, 2006, — 455 с.
  9. Ершов А.П. Введение в теоретическое программирование.- М.:РОСТО, 2008, — 288 с.
  10. Кнут Д. Искусство программирования для ЭВМ, т.1. М.: 2006, 735 с.
  11. Коган Д.И., Бабкина Т.С. «Основы теории конечных автоматов и регулярных языков. Учебное пособие» Издательство ННГУ, 2002. — 97 с.
  12. Липаев В. В. / Программная инженерия. Методологические основы. // М.: ТЕИС, 2006.
  13. Майерс Г. Надежность программного обеспечения.- М.:Дрофа, 2008, — 360 с.
  14. Рудаков А. В. Технология разработки программных продуктов. М.:Издательский центр «Академия», 2006. — 306 с.
  15. Тыугу, Э.Х. Концептуальное программирование. — М.: Наука, 2001, — 256 с.
  16. Хьюз Дж., Мичтом Дж. Структурный подход к программированию.-М.:Мир, 2000, — 278 с.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Разработка клиент-серверного приложения по работе с базой данных «Локомотивное депо «
  • Анализ особенности управления мотивацией сотрудников на предприятиях гостиничного и ресторанного бизнеса на примере АО ТГК «Вега»
  • СУЩНОСТЬ И СОДЕРЖАНИЕ БАНКОВСКОГО МАРКЕТИНГА
  • Оформление и ведение учета операций с сомнительными, неплатежеспособными и имеющими признаки подделки денежными знаками
  • Виды, понятия, задачи оплаты труда на предприятии
  • ценообразование на услуги фитнес-клубов (Российский рынок фитнес-услуг)
  • Место и роль спортивной индустрии в экономике России (Теоретические аспекты индустрии спорта)
  • Влияние кадровой стратегии на работу службы персонала. (СОДЕРЖАНИЕ И СУЩНОСТЬ КАДРОВОЙ СТРАТЕГИИ)
  • Эффективный лидер и его команда (Виды лидерства)
  • Межфирменная научно-техническая кооперация
  • Прогнозирование эффективности реальных инвестиций коммерческого банка. Анализ инвестиционной деятельности ПАО «Сбербанк»
  • Страхование и его государственное регулирование в РФ

В процессе
проектирования системы обработки данных
про­ектировщик может ориентироваться
на несколько вариантов ап­паратной
платформы и разработать несколько
вариантов техно­логических процессов,
среди которых ему необходимо выбрать
наилучший. К основным требованиям,
предъявляемым к выби­раемому
технологическому процессу, относятся:

• обеспечение
пользователя своевременной информацией;

• обеспечение
высокой степени достоверности полученной
информации;

• обеспечение
минимальности трудовых и стоимостных
затрат,

связанных с
обработкой данных.

При выборе варианта
технологического процесса обработки
экономической информации используют
две группы показателей оценки
эффективности: показатели достоверности
получения и обработки информации и
показатели трудовых и стоимостных
затрат на проектирование системы и
обработку информации.

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

• по видам решаемых
задач: например, аналитические, плано­вые,
статистические, учетные;

• по классам
операций технологического процесса;

• по видам ошибок,
связанных с состоянием первичных
доку­ментов, с переносом данных на
машинные носители, с обра­боткой в
ЭВМ, с контролем и выпуском результатных
доку­ментов;

• по причинам
возникновения ошибок: небрежность
пользова­телей и плохое освоение
операций по вводу информации в

ЭВМ, вина исполнителя
документов, ошибки в проекте (вина

проектировщиков)
и др.

Затем следует
выбрать определенный метод контроля
за каж­дой операцией или группой
операций и выполнить оценку степе­ни
достоверности получаемой после обработки
результатной ин­формации.

Показатель
достоверности обработки информации
(D) может быть рассчитан по следующей
формуле:

D =
1 — P, (1)

где D — величина
достоверности процесса обработки;

Р
— вероятность появления ошибки, которую
можно рассчитать по фор­муле

P = N / Q,
(2)

где N- количество
ошибочных действий, допущенных на
множестве Q;

Q — общее количество
действий.

Поскольку
проектировщики, как правило, владеют
ограни­ченной выборкой по величинам
Q и N, то для оценки достовер­ности
технологических процессов они используют
показатель частоты появления ошибок(f), который рассчитывается по фор­муле
(3):

f = N
/ Q,
(3)

где f- частота
возникновения ошибок;

N
— число ошибок, допущенных на множестве
Q;

Q
— величина доступной выборки общего
количества действий.

Для практической
оценки степени достоверности вариантов
технологических процессов разработано
несколько методик, на­пример, применяется
методика с помощью оценки величины,
об­ратной величине достоверности, —
степени недостоверности тех­нологического
процесса, заданного для множества n- рабочих иm- контрольных
операций некоторого технологического
процес­са и представленного в виде
схемы (рис. 7.3).

Рис. 7.3. Схема
технологического процесса обработки
данных

Каждая рабочая
операция (Oi) характеризуется
некоторым количеством выполняемых на
ней действий или количеством зна­ков
(Di) и частотой появления
ошибок (fi). Каждая контрольная
операция характеризуется применением
некоторого j-го метода контроля и
показателем эффективности использования
данного метода (Lij) для контроляi-й
операции, который можно рассчи­тать
по формуле (4).

(4)

где
Lij — коэффициент эффективности j-го
метода контроля по i-й
операции;

Ni,
— общее количество ошибок, допущенных
на i-й операции и проверяемых j-м
методом контроля, которое включает в
себя две величины:

(5)

где
Noij
— число обнаруженных ошибок;

Nnij
— число пропущенных ошибок.

Для характеристики
данной системы контроля используются
следующие показатели:

коэффициент
исходной недостоверности технологического
про­цесса
, характеризующий надежность
используемой техники и квалификацию
работников, показывающий количество
оши­бок, приходящееся на одно действие
(Кинд):

(6)

где Di — количество
действий на i-й операции;

коэффициент
контролируемости технологического
процесса
(Ккон), характеризующий
качество системы контроля и опре­деляющий
количество обнаруженных ошибок,
приходящееся на одно действие:

(7)

интегральный
коэффициент конечной недостоверности
(Ккнд), характеризующий количество
пропущенных ошибок при за­данной
системе контроля, приходящееся на одно
действие:

(8)

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

В этом комплексе
рассчитывают абсолютныеиотноси­тельныепоказатели оценки
экономической эффективности
тех­нологических процессов.

К группе абсолютных
показателей
относят:

• показатели,
оценивающие величину трудоемкости
обработ­ки информации за год по
базовому (т.е. тому варианту, кото­рый
берется за основу для сравнения) и
предлагаемым вари­антам (То) и (Тj);

• показатели,
оценивающие величину эксплуатационных
стоимостных затрат за год по базовому
и предлагаемому вари­антам (Сo)
и (Сj);

• показатель
оценки снижения трудовых затрат за год
(T), который
рассчитывается по формуле

T = То — Тj, (9)

• показатель
снижения стоимостных затрат за год
(С), кото­рый можно
рассчитать по формуле

C = Cо
— Cj. (10)

Группа относительных
показателей
оценки эффективности
технологических процессов включает:

• коэффициент
снижения трудовых затрат за год (Кm),
показы­вающий, на какую долю или какой
процент снижаются зат­раты предлагаемого
варианта по сравнению с базовым, кото­рый
рассчитывается по формуле

Кm = Т
/ Тo; (11)

• индекс снижения
трудовых затрат (Iт), показывающий, во
сколько раз снижаются трудовые затраты
предлагаемого j-го варианта
по сравнению с базовым, и рассчитываемый
по фор­муле


= Тo / Тj,
(12)

• коэффициент
снижения стоимостных затрат за год
(Кc), кото­рый рассчитывается
по формуле

Кc = C
/ Cj; (13)

• индекс снижения
стоимостных затрат (Ic), рассчитываемый
по формуле


= Сo/ Сj,
(14)

В свою очередь,
показатель трудовых затрат j-й техноло­гический процесс (Tj)
рассчитывается по формуле

Tj=tij,
(14)

где
tij
— показатель трудовых затрат на i-ю
операцию j-го
технологического процесса, который
можно рассчитать по формуле

tij = Q ij / Ni, (16)

где Qij — объем работ,
выполненных на i-й операции j-му
технологическо­му процессу;

Ni
— норма выработки на 1-й операции.

Показатель
стоимостных затрат на j-й технологический
про­цесс (Сj) представляет собой сумму
затрат на j-й технологичес­кий процесс
по следующим статьям затрат:

• на заработную
плату;

• на амортизацию;

• на материалы;

• на оплату
машинного времени;

• на ведение
информационной базы;

• накладные
расходы.

Этот показатель
рассчитывается по формуле

Cj=Cij,
(17)

где
Сij — показатель стоимостных затрат на
(i-ю
операцию j-го
технологичес­кого процесса, в состав
которого включаются следующие компо­ненты:

Cij = Cзп
+ Cнр + Cа +
Cмв + Cм + Cвб
(18)

где Сзп — затраты
на заработную плату оператора, которые
можно рассчи­тать по формуле

Cзп
= tij * ri, (19)

где
tij-трудоемкость
выполнения i-й операции j-го технологического
про­цесса;

ri
— тарифная ставка i-q операции;

Снр — затраты на
накладные расходы, рассчитываемые как
производная величина от затрат на
заработную плату:

Cнр
= Cзп * Кнр,
(20)

где Кнр — величина
коэффициента накладных расходов,
принимаемая, как правило, в размере 0,6
— 0,7 от величины С зп;

Cа — величина
амортизационных отчислений на используемую
техни­ку, рассчитываемая по формуле


= tij * ai, (21)

где
ai,
— норма амортизационных отчислений;

Cмв
— стоимость машинного времени на ввод
информации в ЭВМ, обра­ботку данных
и выдачу результатной информации:

Cмj
= tmj * c, (22)

где с — стоимость
машинного часа;

tmj
— длительность выполнения м-й машинной
операции j-го технологи­ческого
процесса, включающая в себя следующие
компоненты:

tm = t1 + t2 + t3, (23)

где t1, — длительность
выполнения операции ввода исходной
информации в ЭВМ, рассчитываемая по
формуле

t1 = Qви
/ Nви, (24)

где
Qви
— объем вводимой информации в символах
(байтах);

Nви
— норма вводимой информации с клавиатуры
ЭВМ в час;

t2
— длительность обработки информации
при решении задачи (в час.), определяемая
экспертным путем, если задача сдана в
эксплуата­цию, или рассчитываемая
гипотетически, например по следующей
формуле

t2 =Qоп /Vоб, (25)

где
Vоб
— быстродействие работы ЭВМ;

Qоп
— объем операций, выполняемых ЭВМ по
обработке данных при ре­шении задачи,
определяемый различными способами,
например, произве­дение объема вводимой
информации на предполагаемое количе­ство
операторов, реализуемых алгоритмом
определенного класса задач, т.е.

Qоп
=Qоп *R, (26)

где R — число
операторов, приходящееся на один байт
вводимой информа­ции, характерное
для определенного класса задач.

При этом выделяют
три класса задач:

  • задачи,
    связанные с ак­туализацией данных в
    ЭВМ, для которых характерно приблизи­тельно
    500 операторов на один байт вводимой
    информации;

  • за­дачи,
    связанные с оперативной обработкой
    данных, для которых на один байт вводимой
    информации приходится выполнение 5000
    операторов,

  • задачи сложной
    аналитической обработки данных или
    связанные с применением
    экономико-математических мето­дов
    и моделей, в которых эта величина
    составляет 20000 опера­торов на один
    байт вводимой информации;

t3
— время вывода результатной информации
пользователю на печать или по каналам
связи, рассчитываемое по формуле

t3 =Qвыв /Vвыв, (27)

где
Qвыв
— объем выводимой информации (в строках
или байтах);

Vвыв
— скорость работы печатающего устройства
(стр./ч) или канала связи (байт/ч);

См — затраты на
материалы за год (например, на бумагу);

Свб — годовые
затраты на ведение информационной базы.

Кроме того,
рассчитывают приведенный показатель
годовой экономии (Эг) по формуле

Эг = (Со + Ен * Ко) —
(Сj+ Ен * Кj),
(28)

где Кj и Ko„ —
капитальные затраты, включающие в себя
затраты на следую­щие направления:

• на приобретение
вычислительной техники в базовом и
пред­лагаемом вариантах;

• на приобретение
вычислительной техники;

• на покупку
программного обеспечения;

• на освоение
программного обеспечения;

• на проектирование
и отладку проекта.

Помимо вышеприведенных
показателей эффективности про­ектировщики
рассчитывают также показатель срока
окупаемос­ти капитальных затрат
(Ток), представляющий собой отношение
капитальных затрат к экономии стоимостных
затрат:

Ток = (Кj– Кo) /С
. (29)

Расчетный коэффициент
эффективности Ep является обратной
величиной сроку окупаемости и
рассчитывается по формуле

Ep = 1 / Ток . (30)

По совокупности
вышеприведенных показателей проектиров­щики
выбирают наиболее эффективный вариант
технологичес­кого процесса обработки
информации. Обобщенная технологи­ческая
сеть выбора варианта организации
технологического про­цесса обработки
данных в ЭИС представлена на рис. 7.4.

Вначале осуществляются
работы «Определение состава основ­ных
операций»
(П1) и«Уточнение состава
технических средств выполнения операций»
(П2). Входными документами для выпол­нения
этой работы служат материалы обследования,«Постанов­ка задачи»(Д1.1),«Техническое задание»(Д1.2) и множество
пред­варительно выбранных технических
средств для операций техно­логического
процесса (U2.1). В результате выполнения
этих работ проектировщики получают
перечень основных операций (Д1.3), описание
технико-эксплуатационных характеристик
выбранных технических средств (Д2.1) и
методов работы с ними (Д2.2), ко­торые
поступают в качестве исходных данных
на вход следую­щей операции.

На следующей
операции выполняется «Выбор метода
конт­роля и технических средств,
осуществляющих контроль»
(ПЗ). На вход
операции поступает универсум методов
контроля (U3.1). В результате выполнения
процедуры получают описание техничес­ких
средств и методов выполнения контроля
(ДЗ.1).

Далее осуществляется
«Разработка вариантов схем
техноло­гического процесса обработки
данных»
(П4). Входными докумен­тами
для данной операции являются перечни
основных опера­ций, технических
характеристик средств и методик
выполнения контроля (Д1.3, Д2.2, Д2.1, ДЗ.1).
Целью выполнения данной ра­боты
является получение блок-схем нескольких
вариантов тех­нологических процессов
(Д4.1).

Содержанием пятой
операции является «Оценка технологи­ческих
процессов по достоверности, трудовым
и стоимостным показателям»
(П5). Данная
оценка производится на основе тех­нического
задания и методик расчета показателей
(U5.1). Резуль­татом выполнения работы
является получение таблиц значений
показателей (Д5.1).

Заключительной
операцией служит «Выбор варианта
техно­логического процесса и разработка
технологической документа­ции»
(П6). Выполнение данной работы основывается
на содержа­нии технического задания,
требовании гостов и остов на техно-рабочий
проект (Д6.1). В результате получают
совокупность технологических и
инструкционных карт (Д6.2).

Рис. 7.4.
Технологическая сеть выбора варианта
технологического процесса обработки
данных в ЭИС:

Д 1.1 — постановка
задачи; Д 1.2 — состав основных операций;
U 2.1 — универсум комплекса предварительно
выбранных вариантов ТС; Д 2.1 — описание
выбранного КТС; Д 2.2 — методы работы; U
3.1 — универсум методов контроля; Д 3.1 —
описание методов контроля; Д 3.2 — уточненный
вариант КТС; Д 4.1 — варианты схем технических
процессов; U 5.1 — универсум методик оценки
Т. С., D.; Д 5.1 — таблицы значений показателей;
Д 6.1 — требования ТЗ; Д 6.2 — технологические
и инструкционные карты

Вопросы
для самопроверки

1. Что такое
технологический процесс и по каким
признакам классифицируются технологические
процессы?

2. Что такое
технологическая операция и каковы виды
техно­логических операций?

3. Каковы принципы
и методы организации контроля за
досто­верностью обработки данных?

4. Каковы требования,
предъявляемые к технологическим
про­цессам?

5. Каковы основные
показатели определения степени
достовер­ности, обеспечиваемые
технологическим процессом?

6. Каковы абсолютные
и относительные показатели оценки
тру­довых затрат, связанных с реализацией
технологического процесса?

7. Каковы абсолютные
и относительные показатели оценки
сто­имостных затрат, связанных с
реализацией технологическо­го
процесса?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание:

Введение

Программное обеспечение, согласно ГОСТ 19781-90, – совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.

Существует и другое, более простое определение, согласно которому программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.

Проблема надежности программного обеспечения относится, похоже, к категории «вечных». В посвященной ей монографии Г.Майерса, выпущенной в 1980 году (американское издание — в 1976), отмечается, что, хотя этот вопрос рассматривался еще на заре применения вычислительных машин, в 1952 году, он не потерял актуальности до настоящего времени. Отношение к проблеме довольно выразительно сформулировано в книге Р.Гласса: «Надежность программного обеспечения — беспризорное дитя вычислительной техники». Следует далее отметить, что сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература на эту тему, включая упомянутые выше монографии, посвящена первому аспекту, а вопрос оценки надежности компьютерных программ оказывается еще более «беспризорным». Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

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

Цель данной работы – рассмотреть классификацию ошибок программного обеспечения для обеспечения его надежности.

1. Надежность программного обеспечения

Показатели качества программного обеспечения

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

Согласно ГОСТ 9126[2], качество программного обеспечения – это весь объем признаков и характеристик программного обеспечения, который относится к ее способности удовлетворять установленным или предполагаемым потребностям.

Качество программного обеспечения оценивается следующими характеристиками:

  • Функциональные возможности (Functionality). Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
  • Надежность (Reliability). Набор атрибутов относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
  • Практичность (Usability). Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным и предполагаемым кругом пользователей.
  • Эффективность (Efficiencies). Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
  • Сопровождаемость (Maintainability). Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).
  • Мобильность (Portability). Набор атрибутов, относящихся к способности программного обеспечения быть перенесенным из одного окружения в другое.

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

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

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

По правилу, установленному в [2], надежность – свойство объекта осуществлять заданные функции, храня во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующим заданным режимам и условиям использования, ремонта, технического обслуживания, хранения, транспортирования.

Рис. 1. Надежность по ГОСТ 27.002 – 89

При этом надежность является комплексным свойством, которое в зависимости от функции объекта и условий его использования может включать безотказность, ремонтопригодность, долговечность, сохраняемость или некоторые сочетания данных свойств (рис. 1). Так как программное обеспечение в процессе эксплуатации не изнашивается, его поломка и ремонт в общепринятом смысле не делается, то надежность программного обеспечения имеет смысл характеризовать только с точки зрения безотказности его функционирования и возможности исправления функционирования после отказов по вызванных проявлениями ошибок.

В [3] надежность программного обеспечения предлагается характеризовать с помощью следующих характеристик (рис. 2): стабильность, устойчивость и восстанавливаемость.

Рис. 2. Надежность программного обеспечения

В этом случае стабильность и устойчивость характеризуют безотказность программного обеспечения, а восстанавливаемость – возможность восстановления функционирования программного обеспечения после его отказа. Для количественной оценки надежности программного обеспечения необходимо определить показатели надежности для каждого свойства и методику их определения (оценки).

Для оценки стабильности программного обеспечения возможно использование показателей характеризующих безотказность технических устройств [2] (рис. 3).

Рис. 3. Показатели безотказности

В большинстве случаев поток программных ошибок может быть описан негомогенным процессом Пуассона [4]. Это означает, что программные ошибки происходят в статистически независимые моменты времени, наработки подчиняются экспоненциальному распределению, а интенсивность проявления ошибок изменяется во времени. Обычно используют убывающую интенсивность проявления ошибок. Это означает, что ошибки, как только они выявлены, эффективно устраняются без введения новых ошибок. Главная цель анализа надежности программного обеспечения заключается в том, чтобы определить форму функции интенсивности проявления ошибок и оценить ее параметры по наблюдаемым данным. Как только функция интенсивности проявления ошибок определена, могут быть найдены такие показатели надежности как:

  • общее количество ошибок;
  • количество остающихся ошибок;
  • время до проявления следующей ошибки;
  • вероятность безошибочной работы;
  • интенсивность проявления ошибок;
  • остаточное время испытаний (до принятия решения);
  • максимальное количество ошибок (относительно срока службы).

При этом следует различать понятия ошибка и отказ. Применительно к надежности программного обеспечения ошибка это погрешность или искажение кода программы, неумышленно внесенные в нее в процессе разработки, которые в ходе функционирования этой программы могут вызвать отказ или снижение эффективности функционирования. Под отказом в общем случае понимают событие, заключающееся в нарушении работоспособности объекта [2]. Состояние объекта, при котором значения всех параметров характеризующих способность выполнять заданные функции, соответствуют требованиям нормативно – технической и (или) конструкторской (проектной) документации – называется работоспособным. При этом критерии отказов, как признаки или совокупность признаков нарушения работоспособного состояния программного обеспечения, должны определяться исходя из его предназначения в нормативно – технической и (или) конструкторской (проектной) документации.

В общем случае отказ программного обеспечения можно определить как:

  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время превышающее заданный порог;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время не превышающее заданный порог, но с потерей всех или части обрабатываемых данных;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) потребовавшее перезагрузки ЭВМ, на которой функционирует программное обеспечение.

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

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

Для любого потребителя данных существует допустимое время отсутствия данных от программы, при котором его характеристики находятся в допустимых пределах. Исходя из этого времени, можно установить границы временной зоны, которая разделяет работоспособное и неработоспособное состояние программного обеспечения и позволяет использовать данные критерии отказов.

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

В [5] стабильность предлагается оценивать вероятностью безотказной работы, которая оценивается исходя из модели относительной частоты, при этом применение ее ограничено периодом эксплуатации программного обеспечения, что не всегда приемлемо, поскольку надежность объекта, как правило, необходимо оценивать не только в процессе его эксплуатации, но и до начала эксплуатации этого объекта. Ограничение модели относительной частоты вызвано тем, что в этой модели не учитываются процессы тестирования и отладки, а конкретно то, что при возникновении отказа программного обеспечения, ошибка, вызвавшая этот отказ, исправляется.

Наиболее приемлемыми показателями характеризующими стабильность (безотказность) программного обеспечения представляются показатели сходные с показателями безотказности технических систем: вероятность безотказной работы, интенсивность отказов, и среднее время наработки на отказ. Эти показатели взаимосвязаны и, зная один из них, можно определить другие [2]. При определении этих показателей в большинстве случаев можно исходить из модели надежности, предполагающей, что интенсивность проявления ошибок убывает по мере исправления этих ошибок, время между проявлениями ошибок распределено экспоненциально, а интенсивность проявления ошибок постоянна между двумя соседними проявлениями ошибок. Применение такой модели надежности программного обеспечения позволит оценить надежность программного обеспечения во время тестирования и отладки.

Устойчивость, как свойство или совокупность свойств программного обеспечения, характеризующие его возможность поддерживать приемлемый уровень функционирования при проявлениях ошибок в нем, можно оценивать условной вероятностью безотказной работы при проявлении ошибки. Согласно [5] устойчивость оценивается с помощью трех метрик, включающих двадцать оценочных элементов (рис. 4). Результаты оценки каждой метрики определяются результатами оценки определяющих ее оценочных элементов, а результат оценки устойчивости определяются результатами соответствующих ему метрик. Программное обеспечение по каждому из оценочных элементов оценивается группой экспертов – специалистов, компетентных в решении данной задачи, на базе их опыта и интуиции. Для оценочных элементов принимается единая шкала оценки от 0 до 1.

Недостатком такого подхода является одинаковая оценка устойчивости для всех возможных ошибок. Поскольку вероятность возникновения отказа при проявлении разных ошибок может быть разной, возникает необходимость разделения ошибок на несколько категорий. Признаком, по которому в этом случае можно относить ошибки к той или иной категории, можно считать тяжесть ошибки. Под тяжестью ошибки в этом случае следует понимать количественную или качественную оценку вероятного ущерба при проявлении этой ошибки [6], а если говорить о надежности, то оценку вероятности возникновения отказа при проявлении ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий, характеризуемая определенным сочетанием качественных и/или количественных учитываемых составляющих ожидаемого (вероятного) отказа или нанесенного отказом ущерба.

Рис. 4. Метрики и оценочные элементы устойчивости программного обеспечения по ГОСТ 28195 – 89

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

Таблица 1. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого могут привести к катастрофическим последствиям

Для программного обеспечения общего применения или программного обеспечения систем, нарушение работоспособности которых не представляет угрозы жизни людей и не приводит к разрушению самой системы, возможные категории тяжести приведены в таблице 2.

Таблица 2. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого не приводят к катастрофическим последствиям

Оценку степени тяжести ошибки как условной вероятности возникновения отказа (последствий этого отказа), можно производить согласно [5], используя метрики и оценочные элементы, характеризующие устойчивость программного обеспечения. При этом оценка производится для каждой ошибки в отдельности, а не для всего программного обеспечения. Далее исходя из проведенных оценок возможно определение устойчивости программного обеспечения к проявлениям ошибок каждой из категорий.

Восстанавливаемость программного обеспечения, как свойство или совокупность свойств характеризующих способность программного обеспечения восстановления своего уровня пригодности и восстановления данных, непосредственно поврежденных вследствии проявлении ошибки (отказа), характеризуется полнотой и длительностью восстановления функционирования программ в процессе перезапуска или перезагрузки ЭВМ. В [5] восстанавливаемость предлагается оценивать по среднему времени восстановления. При этом следует учитывать, что время восстановления функционирования программного обеспечения складывается не только из времени потребного для перезагрузки ЭВМ и загрузки самого программного обеспечения, но и из времени необходимого для восстановления данных и это время в ряде случаев может значительно превышать время перезагрузки.

Показатели надежности программного обеспечения в значительной степени адекватны аналогичным характеристикам, принятых для других технических систем. Наиболее широко используется показатель наработки на отказ. Наработка на отказ – это отношение суммарной наработки объекта к математическому ожиданию числа его отказов в течении этой наработки. Для программного обеспечения использование данного показателя затруднено, в силу особенностей тестирования и отладки программного обеспечения (ошибка вызвавшая отказ, как правило, исправляется и больше не повторяется). Поэтому целесообразно использовать показатель средней наработки до отказа – математического ожидания времени функционирования программного обеспечения до отказа. При использовании модели надежности программного обеспечения предполагающей экспоненциальное распределение времени между отказами, среднее время наработки до отказа равно величине обратной интенсивности отказов. Интенсивность отказов можно оценить исходя из оценок стабильности и устойчивости программного обеспечения. Обобщение характеристик отказов и восстановлений производится в показателе коэффициент готовности [2]. Коэффициент готовности программного обеспечения это вероятность того, что программное обеспечение окажется в работоспособном состоянии в произвольный момент времени. Значение коэффициента готовности соответствует доле времени полезной работы программного обеспечения на достаточно большом интервале времени, содержащем отказы и восстановления.

2. Источники ошибок программного обеспечения

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

Основными причинами ошибок программного обеспечения являются:

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

Источниками ошибок программного обеспечения являются:

Внутренние: ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации.

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы.

  • Признаками выявления ошибок являются:
  • Преждевременное окончание программы.
  • Увеличение времени выполнения программы.
  • Нарушение последовательности вызова отдельных подпрограмм.

Ошибки выхода информации, поступающей от внешних источников, между входной информацией возникает не соответствие из-за: искажение данных на первичных носителях, сбои и отказы в аппаратуре, шумы и сбои в каналах связи, ошибки в документации.

Ошибки, скрытые в самой программе: ошибка вычислений, ошибка ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка совместимости, ошибка сопряжения.

Искажения входной информации, подлежащей обработке: искажения данных на первичных носителях информации; сбои и отказы в аппаратуре ввода данных с первичных носителей информации; шумы и сбои в каналах связи при передачи сообщений по линиям связи; сбои и отказы в аппаратуре передачи или приема информации; потери или искажения сообщений в буферных накопителях вычислительных систем; ошибки в документировании; используемой для подготовки ввода данных; ошибки пользователей при подготовки исходной информации.

Неверные действия пользователя:

  • Неправильная интерпретация сообщений.
  • Неправильные действия пользователя в процессе диалога с программным обеспечением.
  • Неверные действия пользователя или по-другому, их можно назвать ошибками пользователя, которые возникают вследствие некачественной программной документации: неверные описания возможности программ; неверные описания режимов работы; неверные описания форматов входной и выходной информации; неверные описания диагностических сообщений.

Неисправности аппаратуры установки: приводят к нарушениям нормального хода вычислительного процесса; приводят к искажениям данных и текстов программ в основной и внешней памяти.

Итак, при рассмотрении основных причин возникновения отказа и сбоев программного обеспечения можно сказать, что эти знания позволяют своевременно принимать необходимые меры по недопущению отказов и сбоев программного обеспечения.

3. Виды ошибок программного обеспечения

Характеристика основных видов ошибок программного обеспечения

Рассмотрим классификацию ошибок по месту их возникновения, которая рассмотрена в книге С. Канера «Тестирование программного обеспечения». Фундаментальные концепции менеджмента бизнес-приложений. Главным критерием программы должно быть ее качество, которое трактуется как отсутствие в ней недостатков, а также сбоев и явных ошибок. Недостатки программы зависят от субъективной оценкой ее качества потенциальным пользователем. При этом авторы скептически относятся к спецификации и утверждают, что даже при ее наличии, выявленные на конечном этапе недостатки говорят о ее низком качестве. При таком подходе преодоление недостатков программы, особенно на заключительном этапе проектирования, может приводить к снижению надежности. Очевидно, что для разработки ответственного и безопасного программного обеспечения (ПО) такой подход не годится, однако проблемы наличия ошибок в спецификациях, субъективного оценивания пользователем качества программы существуют и не могут быть проигнорированы. Должна быть разработана система некоторых ограничений, которая бы учитывала эти факторы при разработке и сертификации такого рода ПО. Для обычных программ все проблемы, связанные с субъективным оцениванием их качества и наличием ошибок, скорее всего неизбежны.

В краткой классификации выделяются следующие ошибки.

  • ошибки пользовательского интерфейса.
  • ошибки вычислений.
  • ошибки управления потоком.
  • ошибки передачи или интерпретации данных.
  • перегрузки.
  • контроль версий.
  • ошибка выявлена и забыта.
  • ошибки тестирования.

1. Ошибки пользовательского интерфейса.

Многие из них субъективны, т.к. часто они являются скорее неудобствами, чем «чистыми» логическими ошибками. Однако они могут провоцировать ошибки пользователя программы или же замедлять время его работы до неприемлемой величины. В результате чего мы будем иметь ошибки информационной системы (ИС) в целом. Основным источником таких ошибок является сложный компромисс между функциональностью программы и простотой обучения и работы пользователя с этой программой. Проблему надо начинать решать при проектировании системы на уровне ее декомпозиции на отдельные модули, исходя из того, что вряд ли удастся спроектировать простой и удобный пользовательский интерфейс для модуля, перегруженного различными функциями. Кроме того, необходимо учитывать рекомендации по проектированию пользовательских интерфейсов. На этапе тестирования ПО полезно предусмотреть встроенные средства тестирования, которые бы запоминали последовательности действий пользователя, время совершения отдельных операций, расстояния перемещения курсора мыши. Кроме этого возможно применение гораздо более сложных средств психо-физического тестирования на этапе тестирования интерфейса пользователя, которые позволят оценить скорость реакции пользователя, частоту этих реакций, утомляемость и т.п. Необходимо отметить, что такие ошибки очень критичны с точки зрения коммерческого успеха разрабатываемого ПО, т.к. они будут в первую очередь оцениваться потенциальным заказчиком.

2.Ошибки вычислений.

Выделяют следующие причины возникновения таких ошибок:

  • неверная логика (может быть следствием, как ошибок проектирования, так и кодирования);
  • неправильно выполняются арифметические операции (как правило — это ошибки кодирования);
  • неточные вычисления (могут быть следствием, как ошибок проектирования, так и кодирования). Очень сложная тема, надо выработать свое отношение к ней с точки зрения разработки безопасного ПО.

Выделяются подпункты: устаревшие константы; ошибки вычислений; неверно расставленные скобки; неправильный порядок операторов; неверно работает базовая функция; переполнение и потеря значащих разрядов; ошибки отсечения и округления; путаница с представлением данных; неправильное преобразование данных из одного формата в другой; неверная формула; неправильное приближение.

3.Ошибки управления потоком.

В этот раздел относится все то, что связано с последовательностью и обстоятельствами выполнения операторов программы.

Выделяются подпункты:

  • очевидно неверное поведение программы;
  • переход по GOTO;
  • логика, основанная на определении вызывающей подпрограммы;
  • использование таблиц переходов;
  • выполнение данных (вместо команд). Ситуация возможна из-за ошибок работы с указателями, отсутствия проверок границ массивов, ошибок перехода, вызванных, например, ошибкой в таблице адресов перехода, ошибок сегментирования памяти.

4.Ошибки обработки или интерпретации данных.

Выделяются подпункты:

  • проблемы при передаче данных между подпрограммами (сюда включены несколько видов ошибок: параметры указаны не в том порядке или пропущены, несоответствие типов данных, псевдонимы и различная интерпретация содержимого одной и той же области памяти, неправильная интерпретация данных, неадекватная информация об ошибке, перед аварийным выходом из подпрограммы не восстановлено правильное состояние данных, устаревшие копии данных, связанные переменные не синхронизированы, локальная установка глобальных данных (имеется в виду путаница локальных и глобальных переменных), глобальное использование локальных переменных, неверная маска битового поля, неверное значение из таблицы);
  • границы расположения данных (сюда включены несколько видов ошибок: не обозначен конец нуль-терминированной строки, неожиданный конец строки, запись/чтение за границами структуры данных или ее элемента, чтение за пределами буфера сообщения, чтение за пределами буфера сообщения, дополнение переменных до полного слова, переполнение и выход за нижнюю границу стека данных, затирание кода или данных другого процесса);
  • проблемы с обменом сообщений (сюда включены несколько видов ошибок: отправка сообщения не тому процессу или не в тот порт, ошибка распознавания полученного сообщения, недостающие или несинхронизированные сообщения, сообщение передано только N процессам из N+1, порча данных, хранящихся на внешнем устройстве, потеря изменений, не сохранены введенные данные, объем данных слишком велик для процесса-получателя, неудачная попытка отмены записи данных).

5.Повышенные нагрузки.

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

7.Ошибки тестирования.

Являются ошибками сотрудников группы тестирования, а не программы. Выделяются подпункты:

  • пропущенные ошибки в программе;
  • не замечена проблема (отмечаются следующие причины этого: тестировщик не знает, каким должен быть правильный результат, ошибка затерялась в большом объеме выходных данных, тестировщик не ожидал такого результата теста, тестировщик устал и невнимателен, ему скучно, механизм выполнения теста настолько сложен, что тестировщик уделяет ему больше внимания, чем результатам);
  • пропуск ошибок на экране;
  • не документирована проблема (отмечаются следующие причины этого: тестировщик неаккуратно ведет записи, тестировщик не уверен в том, что данные действия программы являются ошибочными, ошибка показалась слишком незначительной, тестировщик считает, что ошибку не будет исправлена, тестировщика просили не документировать больше подобные ошибки).

8.Ошибка выявлена и забыта.

Описываются ошибки использования результатов тестирования. По-моему, раздел следует объединить с предыдущим. Выделяются подпункты: не составлен итоговый отчет; серьезная проблема не документирована повторно; не проверено исправление; перед выпуском продукта не проанализирован список нерешенных проблем.

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

4. Меры по повышению надежности программного обеспечения

Лучшим и самым оптимальным способом (если не брать во внимание научно-технический прогресс и постоянное развитие IT-технологий, которые способствуют повышению качества характеристик программ) повышения надёжности программного обеспечения является строжайший контроль продукции на выходе с предприятия.

В последние годы сформировалась комплексная система управления качеством продукции TQM (Totaly Quality Management), которая концептуально близка к предшествующей более общей системе на основе стандартов ИСО серии 9000. Система ориентирована на удовлетворение требований потребителя, на постоянное улучшение процессов производства или проектирования, на управление процессами со стороны руководства предприятия на основе фактического состояния проекта. Основные достижения TQM состоят в углублении и дифференциации требований потребителей по реализации процессов, их взаимодействию и обеспечению качества продукции. Системный подход поддержан рядом специализированных инструментальных средств, ориентированных на управление производством продукции. Поэтому эта система пока не находит применения в области обеспечения качества жизненного цикла программных средств.

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

Активные методы повышения надежности ПС совершенствуются за счет развития средств автоматизации тестирования программ. Сложность ПС и высокие требования по их надежности требуют выработки принципов структурного построения сложных программных средств, обеспечивающих гибкость модификации ПС и эффективность их отладки. К таким принципам в работе относят:

  • модульность и строгую иерархию в структурном построении программ;
  • унификацию правил проектирования, структурного построения и взаимодействия компонент ПС;
  • унификацию правил организации межмодульного интерфейса;
  • поэтапный контроль полноты и качества решения функциональных задач.

Заключение

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

В заключение можно подвести итог:

  • В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать;
  • Отказ программного обеспечения — это появление в нем ошибки;
  • Надежность программного обеспечения — есть вероятность его работы без отказов в течении определенного периода времени, рассчитанного с учетом стоимости для пользователя каждого отказа.

Из данных определений можно сделать важные выводы:

  • Надежность программного обеспечения является не только внутренним свойством программы;
  • Надежность программного обеспечения — это функция как самого ПО, так и ожиданий (действий) его пользователей.

Основными причинами ошибок программного обеспечения являются:

  • большая сложность ПО, например, по сравнению с аппаратурой ЭВМ;
  • неправильный перевод информации из одного представления в другое.

Список использованной литературы

  1. ГОСТ 27.002 – 89. Надежность в технике. Основные понятия. Термины и определения. // М.: Издательство стандартов, 1990.
  2. ГОСТ Р ИСО/МЭК 9126 – 93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. // М.: Издательство стандартов, 1994.
  3. ГОСТ 51901.5 – 2005. Менеджмент риска. Руководство по применению методов анализа надежности. // М.: Издательство стандартов, 2007.
  4. ГОСТ 28195 – 89. Оценка качества программных средств. Общие положения. // М.: Издательство стандартов, 1989.
  5. ГОСТ 27.310 – 95. Надежность в технике. Анализ видов, последствий и критичности отказов. // М.: Издательство стандартов, 1995.
  6. ГОСТ 51901.12 – 2007. Менеджмент риска. Метод анализа видов и последствий отказов. // М.: Издательство стандартов, 2007.
  7. Братчиков И.Л. «Синтаксис языков программирования» Наука, М.:Инси, 2005. — 344 с.
  8. Дейкстра Э. Заметки по структурному программированию.- М.:Дрофа, 2006, — 455 с.
  9. Ершов А.П. Введение в теоретическое программирование.- М.:РОСТО, 2008, — 288 с.
  10. Кнут Д. Искусство программирования для ЭВМ, т.1. М.: 2006, 735 с.
  11. Коган Д.И., Бабкина Т.С. «Основы теории конечных автоматов и регулярных языков. Учебное пособие» Издательство ННГУ, 2002. — 97 с.
  12. Липаев В. В. / Программная инженерия. Методологические основы. // М.: ТЕИС, 2006.
  13. Майерс Г. Надежность программного обеспечения.- М.:Дрофа, 2008, — 360 с.
  14. Рудаков А. В. Технология разработки программных продуктов. М.:Издательский центр «Академия», 2006. — 306 с.
  15. Тыугу, Э.Х. Концептуальное программирование. — М.: Наука, 2001, — 256 с.
  16. Хьюз Дж., Мичтом Дж. Структурный подход к программированию.-М.:Мир, 2000, — 278 с.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Бухгалтерия предприятия (Обоснование выбора системы имитационного моделирования)
  • Бухгалтерия предприятия
  • Классификация ошибок в программном обеспечении
  • Коммерческие банки, их виды и основные направления деятельности (Общая характеристика ОАО «Сбербанк России»)
  • Формирование и использование финансовых ресурсов коммерческих организаций
  • Анализ и оценка показателей оборотных активов.
  • Управление рисками в проектной среде (Риск – менеджмент проектов)
  • Программно-целевое управление в организации (регионе) и его эффективность
  • СТАНДАРТЫ УПРАВЛЕНИЯ ПРОЕКТАМИ (Общие соображения по созданию стандарта. Специализация и детализация)
  • Методы оценки эффективности финансово-кредитных институтов (Теоретические основы эффективности деятельности банка в рыночной экономике)
  • Понятие денежной системы, генезис ее названия (Происхождение, сущность и виды денег)
  • Налоговая система РФ и проблемы еe совершенствования (Принципы налогообложения)

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

Часто в данных, с которыми необходимо работать, присутствуют пропуски, в результате чего аналитик оказывается перед выбором: игнорировать, отбросить или же заполнить пропущенные значения. Заполнение пропусков зачастую и вполне обоснованно кажется более предпочтительным решением. Однако это не всегда так.

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

Исключение и игнорирование строк с пропущенными значениями стало решением по умолчанию в некоторых популярных прикладных пакетах, в результате чего у начинающих аналитиков может возникнуть представление, что данное решение — правильное. Кроме того, существуют довольно простые в реализации и использовании методы обработки пропусков, получившие название ad-hoc методы, простота которых может послужить причиной их выбора:

  • заполнение пропусков нулями;
  • заполнение медианой;
  • заполнение средним арифметическим значением;
  • введение индикаторных переменных и тому подобное.

Вероятно, именно из-за своей простоты ad-hoc методы широко использовались на заре развития современной теории обработки пропусков. И, хотя по состоянию на сегодняшний день известно, что применение этих методов может приводить к искажению статистических свойств выборки и, как следствие, к ухудшению результатов, получаемых после такой обработки пропусков [Horton, 2007], их по-прежнему часто используют.

Так, известны статьи, посвященные сбору и оценке статистики использования методов заполнения пропусков в научных работах медицинской тематики [Burton, 2004, Karahalios, 2012, Rezvan, 2015], из результатов которых можно сделать вывод, что даже ученые часто отдают предпочтение интуитивно-понятным ad-hoc методам и игнорированию/удалению строк, несмотря на то, что применение этих методов в контексте решаемой задачи порой неуместно.

Применение ad-hoc методов и удаление строк таит в себе множество подводных камней, о которых необходимо знать каждому аналитику. В данной статье мы кратко расскажем про эти методы и укажем на основные проблемы, связанные с их использованием на практике.

Механизмы формирования пропусков

Для того чтобы понять, как правильно обработать пропуски, необходимо определить механизмы их формирования. Различают следующие 3 механизма формирования пропусков: MCAR, MAR, MNAR:

  • MCAR (Missing Completely At Random) — механизм формирования пропусков, при котором вероятность пропуска для каждой записи набора одинакова. Например, если проводился социологический опрос, в котором каждому десятому респонденту один случайно выбранный вопрос не задавался, причем на все остальные заданные вопросы респонденты отвечали, то имеет место механизм MCAR. В таком случае игнорирование/исключение записей, содержащих пропущенные данные, не ведет к искажению результатов.
  • MAR (Missing At Random) — на практике данные обычно пропущены не случайно, а ввиду некоторых закономерностей. Пропуски относят к MAR, если вероятность пропуска может быть определена на основе другой имеющейся в наборе данных информации (пол, возраст, занимаемая должность, образование…), не содержащей пропуски. В таком случае удаление или замена пропусков на значение «Пропуск», как и в случае MCAR, не приведет к существенному искажению результатов.
  • MNAR (Missing Not At Random) — механизм формирования пропусков, при котором данные отсутствуют в зависимости от неизвестных факторов. MNAR предполагает, что вероятность пропуска могла бы быть описана на основе других атрибутов, но информация по этим атрибутам в наборе данных отсутствует. Как следствие, вероятность пропуска невозможно выразить на основе информации, содержащейся в наборе данных.

Рассмотрим различия между механизмами MAR и MNAR на примере.

Люди, занимающие руководящие должности и/или получившие образование в престижном вузе чаще, чем другие респонденты, не отвечают на вопрос о своих доходах. Поскольку занимаемая должность и образование сильно коррелируют с доходами, то в таком случае пропуски в поле доходы уже нельзя считать совершенно случайными, то есть говорить о случае MCAR не представляется возможным.

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

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

Рассмотрим простые методы обработки пропусков и связанные с ними проблемы.

Удаление/игнорирование пропусков

Complete-case Analysis (он же Listwise Deletion Method) — метод обработки пропусков, применяемый во множестве прикладных пакетов как метод по умолчанию. Заключается в исключении из набора данных записей/строк или атрибутов/колонок, содержащих пропуски.

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

Кроме того, в случае второго (MAR) и, особенно, третьего механизма пропусков (MNAR) смещение статистических свойств выборки, значений параметров построенных моделей и увеличение стандартных отклонений становятся еще сильнее.

Таким образом, несмотря на широкое распространение, применение данного метода для решения практических задач ограничено.

Available-case analysis (он же Pairwise Deletion) — методы обработки, основанные на игнорировании пропусков в расчетах. Эти методы, как и Complete-case Analysis, тоже часто применяются по умолчанию.

Статистические характеристики, такие как средние значения, стандартные отклонения, можно рассчитать, используя все непропущенные значения для каждого из атрибутов/столбцов. Как и в случае Complete-case Analysis, при условии выполнения гипотезы MCAR применение данного метода не приведет к существенному искажению параметров модели.

Преимущество данного подхода в том, что при построении модели используется вся доступная информация.

Главный же недостаток данных методов заключается в том, что они применимы для расчета далеко не всех показателей и, как правило, сопряжены с алгоритмическими и вычислительными сложностями, приводящими к некорректным результатам.

Например, рассчитанные значения коэффициентов корреляции могут оказаться вне диапазона [-1; 1]. Кроме того, не всегда удается однозначно ответить на вопрос об оптимальном выборе числа отсчетов, используемого при расчете стандартных отклонений.

Приведем пример, демонстрирующий проблемы методов Available-case analysis.

Рассмотрим следующую задачу: необходимо рассчитать линейный коэффициент корреляции (коэффициент корреляции Пирсона) между двумя факторами/переменными X и Y, истинные значения которых приведены в таблице 1.

Таблица 1 — Данные без пропусков

На основе таблицы 1 определим истинные значения статистических параметров.

  • Среднее значение X = 10,8000.
  • Среднее значение Y = -10,7768.

Оценка ковариации:

  • sigma_{11} = sum X_i^2 / n — ( sum X_i / n)^2 = 37,7600,
  • sigma_{12} = sum (X_i cdot Y_i) / n — ( sum X_i cdot sum Y_i)/ n^2 = -38,1691,
  • sigma_{22} = sum Y_i^2 / n — ( sum Y_i / n)^2 = 42,6608,
  • где n — число наблюдений (n=20).

    Значение коэффициента корреляции:

    r = sigma_{12}/ sqrt{sigma_{11} cdot sigma_{22}} = -0,9510

    Рассмотрим результаты аналогичных расчетов при наличии пропусков в данных (данные представлены в таблице 2).

    Таблица 2 – Данные с пропусками

    То есть работаем с тем же набором данных (что и в таблице 1), с тем лишь отличием, что в данном случае нам неизвестны два первых значения переменной X.

    В рамках Available-case analysis подхода мы считаем среднее значение, используя всю доступную информацию, то есть для переменной X на основе 18 известных значений, а для переменной Y на основе всех 20 значений.

    Таким образом, на основе таблицы 2 получим следующие результаты:

    • среднее значение X = 11,8889,
    • среднее значение Y = -10,7768,

    Оценка ковариации:

    • sigma_{11} = 30,0988,
    • sigma_{12} = -43,6174,
    • sigma_{22} = 60,2952.

    В расчетах использовалось n наблюдений, для которых известны как значения X, так и Y (n=18).

    Значение коэффициента корреляции:

    r = -1,0239.

    Таким образом, расчет среднего значения на основе подхода Available-case Analysis привел к смещению данного значения, что, в свою очередь, проявилось в рассчитанном значении коэффициента корреляции, меньшем -1. Таким образом, рассчитанное значение вышло за пределы теоретически возможного диапазона [-1; 1], что противоречит физическому смыслу.

    Если же рассчитать значение коэффициента корреляции в рамках подхода Complete-case Analysis, то получим значение коэффициента корреляции -0,9311.

    Когда гипотеза MCAR не выполняется, методы Available-case analysis, так же, как и методы Complete-case Analysis, приводят к существенным искажениям статистических свойств выборки (среднего значения, медианы, вариации, корреляции…).

    К недостаткам первых двух методов обработки пропусков (Complete-case Analysis и Available-case analysis) относится и то, что далеко не всегда исключение строк в принципе приемлемо. Нередко процедуры последующей обработки данных предполагают, что все строки и колонки участвуют в расчетах (например, когда пропусков в каждой колонке не очень много, но при этом строк, в которых нет ни одного пропущенного поля, мало).

    Далее в данной статье мы рассмотрим методы, которые предполагают заполнение пропусков на основе имеющейся информации. Часто эти методы объединяют в одну группу, называемую Single-imputation methods.

    Заполнение пропуска средним значением

    Заполнение пропуска средним значением (Mean Substitution) (другие варианты: заполнение нулем, медианой и тому подобные) — название метода говорит само за себя.

    Всем вариантам данного метода свойственны одни и те же недостатки. Рассмотрим эти недостатки на примере одного из наиболее простых способов заполнить пропуски непрерывной характеристики: заполнения пропусков средним арифметическим значением и модой.

    Пример 1. На рисунке 1 показано распределение значений непрерывной характеристики до заполнения пропусков средним значением и после него.

    Рисунок 1a — Распределение значений непрерывной характеристики до заполнения пропусков

    Рисунок 1б — Распределение значений непрерывной характеристики после заполнения пропусков

    На рисунке 1 хорошо видно, что распределение после заполнения пропусков выглядит крайне неестественно. Это в итоге проявляется в искажении всех показателей, характеризующих свойства распределения (кроме среднего значения), заниженной корреляции и завышенной оценке стандартных отклонений.

    Таким образом, данный метод приводит к существенному искажению распределения характеристики даже в случае MCAR.

    Пример 2. В случае категориальной дискретной характеристики наиболее часто используется заполнение модой.

    На рисунке 2 показано распределение категориальной характеристики до и после заполнения пропусков.

    Рисунок 2а — Распределение дискретной характеристики до заполнения пропусков модой

    Рисунок 2б — Распределение дискретной характеристики после заполнения пропусков модой

    Таким образом, при заполнении пропусков категориальной характеристики модой проявляются те же недостатки, что и при заполнении пропусков непрерывной характеристики средним арифметическим (нулем, медианой и тому подобным).

    Повторение результата последнего наблюдения

    LOCF (Last observation carried forward) — повторение результата последнего наблюдения. Данный метод применяется, как правило, при заполнении пропусков во временных рядах, когда последующие значения априори сильно взаимосвязаны с предыдущими.

    Рассмотрим 2 случая, когда применение LOCF обосновано.

    Случай 1. Если мы измеряем температуру воздуха в некоторой географической точке на открытом пространстве, причем измерения проводятся каждую минуту, то при нормальных условиях — если исключить природные катаклизмы — измеряемая величина априори не может резко (на 10–20 °C) измениться за столь короткий интервал времени между последующими измерениями. Следовательно, заполнение пропусков предшествующим известным значением в такой ситуации обоснованно.

    Случай 2. Если данные представляют собой результаты измерения (допустим, той же температуры воздуха) в один и тот же момент времени в близких географических точках таким образом, что гипотеза о малых изменениях значений от одной точки набора данных до другой остается справедливой, то опять же использование LOCF логично.

    Ситуации, когда использование LOCF обосновано, не ограничиваются только этими двумя случаями.

    Хотя в описанных выше ситуациях метод логичен и обоснован, он тоже может привести к существенным искажениям статистических свойств даже в случае MCAR [Molenberghs, 2007]. Так, возможна ситуация, когда применение LOCF приведет к дублированию выброса (заполнению пропусков аномальным значением). Кроме того, если в данных много последовательно пропущенных значений, то гипотеза о небольших изменениях уже не выполняется и, как следствие, использование LOCF приводит к неправильным результатам.

    Indicator Method

    Indicator Method — метод, предполагающий замену пропущенных значений нулями и добавление специального атрибута-индикатора, принимающего нулевые значения для записей, где данные изначально не содержали пропусков, и ненулевые значения там, где ранее были пропуски [Miettinen, 1985].

    Проще и нагляднее продемонстрировать данный метод на примере.

    Пример. В таблице 3 приведены данные до заполнения пропусков.

    Таблица 3 — Данные до заполнения пропусков

    Знаком ? обозначены пропуски в наборе данных.

    В таблице 4 приведены данные после заполнения пропусков.

    Таблица 4 —Таблица после заполнения пропусков

    На практике применяются и модификации этого метода, предполагающие заполнение пропусков ненулевыми значениями. Стоит отметить, что при таком заполнении (например, средним) допустимо использование инверсных значений поля флагов (то есть 0 — для случая, когда в исходных данных значения изначально были пропущены, и ненулевое значение для случаев, когда значение поля исходных данных было известно).

    Также при заполнении пропусков ненулевыми значениями часто добавляется взаимодействие поля-флага и исходного поля.

    К преимуществам данного метода относятся:

    1. Использование всего набора данных (репрезентативность выборки не страдает).
    2. Явное использование информации о пропущенных значениях.

    Несмотря на эти преимущества, даже при выполнении гипотезы MCAR и небольшом числе пропущенных значений данный метод может привести к существенному искажению результатов [Vach, 1991, Knol, 2010].

    Восстановление пропусков на основе регрессионных моделей

    Данный метод заключается в том, что пропущенные значения заполняются с помощью модели линейной регрессии, построенной на известных значениях набора данных.

    На рисунке 3 показан пример результатов заполнения пропущенных значений характеристики 1 на основе известных значений характеристики 2.

    Рисунок 3 — Заполнение пропусков на основе линейной регрессии

    Метод линейной регрессии позволяет получить правдоподобно заполненные данные. Однако реальным данным свойственен некоторый разброс значений, который при заполнении пропусков на основе линейной регрессии отсутствует. Как следствие, вариация значений характеристики становится меньше, а корреляция между характеристикой 2 и характеристикой 1 искусственно усиливается. В результате данный метод заполнения пропусков становится тем хуже, чем выше вариация значений характеристики, пропуски в которой мы заполняем, и чем выше процент пропущенных строк.

    Стоит отметить, что есть метод, решающий эту проблему: метод стохастической линейной регрессии, проиллюстрированный на рисунке 4 (аналогично рисунку 3).

    Рисунок 4 — заполнение пропусков на основе стохастической линейной регрессии

    Модель стохастической линейной регрессии отражает не только линейную зависимость между характеристиками, но и отклонения от этой линейной зависимости. Этот метод обладает положительными свойствами заполнения пропусков на основе линейной регрессии и, кроме того, не так сильно искажает значения коэффициентов корреляции.

    Из всех методов, которые мы рассмотрели в данной части статьи, заполнение пропусков с помощью стохастической линейной регрессии в общем случае приводит к наименьшим искажениям статистических свойств выборки. А в случае когда между характеристиками прослеживаются явно выраженные линейные зависимости, метод стохастической линейной регрессии нередко превосходит даже более сложные методы.

    Подводя итоги

    В представленной статье мы рассмотрели простые методы заполнения пропусков. Хотя применение этих методов может приводить к существенному искажению статистических свойств набора данных (среднее значение, медиана, вариация, корреляция…) даже в случае MCAR, они остаются часто используемыми не только среди обычных пользователей, но и в научной среде (как минимум в областях, связанных с медициной).

    Так, согласно [Burton, 2004], из 100 работ, посвященных проблеме раковых заболеваний, которые были опубликованы в 2002 году, в 82% случаев авторы указали, что столкнулись с необходимостью заполнения пропусков в данных. При этом в 32 случаях был явно указан метод заполнения пропусков. В 12 из этих 32 работ использовался Complete Case Analysis, еще в 12 — Available Case Analysis, в 4 — Indicator Method, в 3— ad-hoc методы, и только в 1 случае использовался более сложный метод.

    Спустя десятилетие ситуация не сильно изменилась к лучшему. [Karahalios, 2012] пишут, что среди рассмотренных ими научных трудов в 54% случаев (в 21 статье) использовался Complete Case Analysis, в 7 случаях – LOCF, в 3 случаях – заполнение средним значением, в 1 случае — Indicator Method.

    И даже по состоянию на 2014 год рекомендуемые к использованию методы заполнения пропусков (Multiple Imputation, методы функции максимального правдоподобия) в научных статьях медицинской тематики по-прежнему применяются редко [Rezvan, 2015].

    В качестве заключения хотелось бы отметить, что использование простых методов, таких как удаление строк или применение ad-hoc методов, не всегда приводит к ухудшению результатов. Более того, когда это уместно, использование простых методов более предпочтительно.

    Литература

    • [Burton, 2004] — Burton A., Altman D. G. Missing covariate data within cancer prognostic studies: A review of current reporting and proposed guidelines. British Journal of Cancer, 2004, 91(1):4–8.
    • Wa[Horton, 2007] — Horton N.J., Kleinman K.P. Much ado about nothing: A comparison of missing data methods and software to fit incomplete data regression models. Am. Stat. 2007; 61: pp 79–90.
    • [Karahalios, 2012] — Karahalios A., Baglietto L., Carlin J.B., English D.R., Simpson J.A. A review of the reporting and handling of missing data in cohort studies with repeated assessment of exposure measures. BMC Med Res Methodology, 2012;12:96.
    • [Knol, 2010] — Knol, M. J., Janssen, K. J. M., Donders, A. R. T., Egberts, A. C. G., Heerdink, E. R., Grobbee, D. E., Moons, K. G. M., and Geerlings, M. I. (2010). Unpredictable bias when using the missing indicator method or complete case analysis for missing confounder values: an empirical example. Journal of Clinical Epidemiology, 63: pp 728–736.
    • [Miettinen, 1985] — Miettinen, O. S. Theoretical Epidemiology: Principles of Occurrence Research in Medicine. John Wiley & Sons, New York. 1985, p. 232.
    • [Molenberghs, 2007] — Molenberghs, G. and Kenward, M. G. Missing Data in Clinical Studies. John Wiley & Sons, Chichester, UK. 2007 — pp. 47-50.
    • [Rezvan, 2015] — Panteha Hayati Rezvan, Katherine J Lee, Julie A Simpson -The rise of multiple imputation: a review of the reporting and implementation of the method in medical research. BMC Medical Research Methodology, 15(30), pp 1–14.
    • [Vach, 1991] — Vach, W. and Blettner, M. (1991). Biased estimation of the odds ratio in case-control studies due to the use of ad hoc methods of correcting for missing values for confounding variables. American Journal of Epidemiology, 134(8), pp 895–907.
    • [Van Buuren, 2012] — Van Buuren S. Flexible Imputation of Missing Data. Chapman and Hall/CRC; 1 ed., 2012 — 342 p.

    Другие материалы по теме:

    Loginom Data Quality. Очистка клиентских данных. Деморолик

    Как найти и объединить дубли клиентов

Качество данных (КД) – характеристика, которая отражает степень их пригодности к использованию. В зависимости от сферы использования это понятие может относиться и к набору значений количественных либо качественных переменных.

Во время недавних опросов, проведенных в среде высшего руководства 1 200 компаний Европы и США, более 97% респондентов указали, что ошибки в контактных клиентских данных являются для них серьезной проблемой. Оказалось, что 83% фирм терпят финансовые убытки из-за низкого качества информации. По оценкам специалистов, они оцениваются в среднем в размере 15% от реальных доходов компаний. При этом лишь 35% фирм централизованно управляют данными. Кроме того, аналитики авторитетного агентства Gartner установили, что плохое качество используемых данных отрицательно влияет на продуктивность работы различных компаний, из-за чего их производительность сокращается на 20%.

Источники и процессы работы с данными

К источникам данных относятся следующие объекты:

  • наборы данных;
  • традиционные системы, предназначенные для записывания выполняемых операций;
  • документы;
  • операции с информацией.

С данными могут проводиться следующие манипуляции:

  • перемещение информации из того или иного источника в определенную базу данных, а также объединение данных в одном формате;
  • преобразование, то есть подготовка имеющейся информации к последующему хранению в оптимальной форме, благодаря чему существенно упрощается реализация запросов пользователей, которые требуются для принятия решений;
  • загрузка, предусматривающая размещение данных в хранилище посредством добавления фактов или же внесения корректировок в уже имеющиеся;
  • анализ в виде Data Mining, OLAP либо сводных отчетов;
  • выдача результатов в приемлемом для юзера виде.

Эти сведения применяются в словаре метаданных (СМ), в который автоматически добавляются словари источников данных, а также описываются форматы для того чтобы в дальнейшем их был удобнее согласовать между собой. Помимо этого, в словаре метаданных присутствует информация касательно периодичности пополнения и о том, каким образом данные согласованы между собой по времени. Ключевой задачей словаря метаданных является освобождение разработчика от необходимости самостоятельного стандартизирования всей информации. Следует стремиться к тому, чтобы создаваемое хранилище никоим образом не конфликтовало с используемыми системами. 

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

Зачем нужен контроль качества данных

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

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

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

Кто должен заниматься контролем

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

Характеристики качества данных 

Качество данных определяется рядом международных и российских стандартов.  При этом стоит отметить, что к данному понятию относятся исключительно сведения, которые в дальнейшем используются для принятия управленческих решений. 

Качество данных определяется на основании нескольких ключевых критериев:

  • происхождение загружаемой информации;
  • полнота полученных сведений;
  • то, насколько своевременно они были получены;
  • насколько точной является информация.

В соответствии с нормами, указанными в стандарте ISO/IEC25012:2008, к ним добавляют следующие характеристики: конфиденциальность, легкость получения доступа к имеющимся данным, результативность их использования, а также возможность их восстановления. Зависимыми от применяемых систем являются 10 из 15 характеристик качества основных данных.

Объективная оценка качества поступающих данных предусматривает контроль нескольких факторов:

  • правильность;
  • легкость получения доступа;
  • сумма, необходимая для обеспечения качества;
  • сумма, которую компании нужно тратить для того, чтобы исправить допущенные ошибки.

Чтобы иметь возможность применять метрики, необходимо использовать правила проверки, которые формализуют порядок, в соответствии с которым сотрудниками компании выполняется расчет и измерение указанных факторов. Чтобы добиться реального результата, недостаточно отталкиваться только от стандартных правил и метрик, требуется комплексный подход.

Управление качеством основных данных: главные принципы

Чтобы обеспечить высокое качество используемой информации, компании должны выполнять несколько базовых условий:

1. Работа с сотрудниками компании всех уровней. В данном случае речь идет и о рядовых специалистах, и о топ-менеджерах компании. Это важно для оптимизации работы компании.

2. Организация управления КД путем влияния на источник, из которого поступает вся информация. Не стоит считать, что достаточно обращать внимание на точность информации, получаемой в результате проведенных изменений и внесении корректировок, чтобы обеспечить стабильно высокое качество данных. Добиться действительно высоких результатов можно только в том случае, если используемая система управления КД затрагивает источник, из которого добывается информация. 

3. Регулярная модернизация. КД должно постоянно усовершенствоваться. Чтобы это реализовать, нужен серьезный подход к проверке информации, полученной в результате проведения измерений, а также к постоянной корректировке основных данных. Следует понимать, что даже в таком случае ошибки неизбежны. Исключить их повторяемость можно только посредством проведения глубокого анализа и поиска причин, которые мешают росту качества основных данных. Так что компании нужно позаботиться о модернизации не только используемых процессов управления данными, но и в принципе любых бизнес-процессов, реализация которых предусматривает использование какой-либо информации.

Системное управление качеством основных данных

Управление качеством данных опирается на три важнейших элемента.

Организационная структура 

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

Процессы управления КД 

В соответствии ГОСТом и другими стандартами процессы управления КД делятся на три группы: выполнение операций над данными, 
непрерывный контроль качества данных, повышение КД.

Инструменты управления КД

У бизнеса есть широкий арсенал инструментальных систем для обработки и выполнения операций с данными. К ним относятся системы управления мастер-данными, продукты Data Quality, программы для работы с аналитикой.

Качество данных для BI-системы

BI-технологии – современные и эффективные инструменты для получения и анализа бизнес-данных. Они автоматизируют обработку даже крупных объемов информации, жизненно необходимой руководству компании для принятия решений. 

Современные BI-решения развиваются по четырем направлениям:

1. Хранение. Сохранение данных, применяемых для бизнес-анализа, организуется в хранилищах data warehouse. Данные собираются из различных транзакционных источников. Их структурируют таким образом, чтобы обеспечить наибольшую эффективность в процессе поиска, извлечения и обработки.

2. Интеграция. Интеграционная составляющая BI-системы представляет собой инструменты для работы с данными. 

3. Анализ. Это самый важный блок BI-систем, в котором применяются OLAP-инструменты, позволяющие рассматривать различные срезы данных и выявлять тренды и зависимости, в соответствие с выбранными критериями.

К ключевым задачам BI-систем относятся:

  • повышение эффективности управления бизнесом;
  • снижение издержек;
  • поддержка принятия стратегических решений;
  • снижение управленческих рисков;
  • операционный контроль.

Качество данных и ETL

Важнейшей составляющей BI-систем являются процедуры ETL (Extraction, Transformation, Loading). При их реализации часто возникают проблемы, связанные с качеством данных: 

  • Несколько значений одного и того же показателя.
  • Множество источников данных.
  • Разные уровни истории. Это серьезная и распространенная проблема. Для ее решения приходится пользоваться несколькими источниками. Например, это могут быть отчетности за разные годы.  
  • Чистота и точность данных. Данные включаемые в хранилище, обязательно должны проверяться на чистоту. 
  • Дробление для проверки и дальнейшего утверждения. 

Дисциплина КД

Любая проблема, связанная с КД, влечет за собой значительные и неожиданные расходы. Чтобы их избежать, специалисты рекомендуют придерживаться следующих несложных правил:

  1. Осуществлять оценку качества данных до начала разработки конкретного проекта.
  2. Уделять внимание, прежде всего, проверке и оценке, а не технологии ПО. Для этой цели можно отчасти использовать инструменты для профилирования данных.
  3. Проводить проверку на старте каждого этапа разработки BI-системы. Так можно минимизировать убытки и избежать задержек запуска проектов или остановки производственных процессов.
  4. Проверять, все ли данные, необходимые для выполнения решаемой задачи, в наличии. При этом масштаб оценки должен определяться пользовательскими требованиями.

Этапы проверки КД

Процедура проверки качества данных выполняется в четыре шага, после каждого из которых назначаются сотрудники, которые в дальнейшем будут нести ответственность за внесение каких-либо корректировок в аналитическую или учетную системы:

  1. Контроль качества всей загружаемой информации. Грамотно устроенная система контроля качества данных предусматривает использование встроенных интеграционных шлюзов, работающих на основании заранее заложенных правил контроля, в соответствии с которыми выполняется проверка данных, поступающих из любых источников. За счет использования такого решения можно значительно сократить время, необходимое для загрузки информации. К перечню таких правил относится выполнение проверки любых загружаемых данных на предмет целостности, присутствия всех необходимых взаимосвязей и атрибутов, которые в дальнейшем будут отображаться в учете для формирования правильной отчетности. Этот этап является одним из наиболее важных, так как в дальнейшем за счет него можно будет быстро поправить систематические недочеты, а также обучить персонал внимательному учету данных.
  2. Контроль качества данных после их загрузки. Сюда входит выполнение определенного перечня мероприятий, чтобы убедиться в полноте полученных данных на агрегатном уровне. Если мероприятия по контролю КД не проводились до загрузки в базу данных, то в таком случае все они должны быть выполнены уже после проведения загрузки. Если в процессе проведения указанных операций будет обнаружено, что данные не соответствуют правилам и им требуются поправки, создается специализированный протокол ошибок и выполненных корректировок. В дальнейшем протокол может использоваться для того чтобы дополнить оформленную отчетность полезной информацией, что особенно важно, к примеру, для компаний, работающих в банковской сфере. Также на этом этапе проверяется полнота информации, соответствие сделок.
  3. Контроль КД после расчета агрегатов. На этом шаге выполняется проверка корректности загруженной информации, полученной в результате вычислений с использованием набора различных сведений. После устранения ошибок, которые были обнаружены на этом этапе, может осуществляться расчет отчетных форм.
  4. Контроль качества рассчитанных отчетов. Данный этап требуется для того чтобы уполномоченные сотрудники компании могли убедиться в том, что составленная отчетность отражает достоверную информацию. Выполняется классический контроль данных, а также ручная верификация формы на уровне детальных данных. 

Даже обеспечив корректность данных, невозможно автоматически получать достоверную и качественную отчетность. В ближайшее время вряд ли стоит ожидать окончательную автоматизацию подобных процессов. 

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

24.12.2019

Глава 5. Качество и эффективность информационных систем

Качество информационной системы — это совокупность свойств системы, обусловливающих возможность ее использования для удовлетворения определенных в соответствии с ее назначением потребностей. Количественные характеристики этих свойств определяются показателями.

Основными показателями качества информационных систем являются надежность, достоверность, безопасность.

Надежность — свойство системы сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения.

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

Достоверность функционирования — свойство системы, обусловливающее безошибочность производимых ею преобразований информации. Достоверность функционирования информационной системы полностью определяется и измеряется достоверностью ее выходной информации.

Безопасность информационной системы — свойство, заключающееся в способности системы обеспечить конфиденциальность и целостность информации, то есть защиту информации от несанкционированного доступа с целью ее раскрытия, изменения или разрушения.

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

Кардинальным обобщающим показателем является экономическая эффективность системы, характеризующая целесообразность произведенных на создание и функционирование системы затрат.

Надежность информационных систем

Надежность — важнейшая характеристика качества любой системы, поэтому разработана специальная теория — теория надежности.

Теория надежности может быть определена как научная дисциплина, изучающая закономерности, которых следует придерживаться при разработке и эксплуатации систем для обеспечения оптимального уровня их надежности с минимальными затратами ресурсов.

Надежность — характеристика временная, она может быть ориентирована либо в прошлое, либо в будущее время и не допускает «точечных» во времени оценок. Иными словами, надежность — это свойство системы «штатно» функционировать во времени.

Надежность — комплексное свойство системы; оно включает в себя более простые свойства, такие как безотказность, ремонтопригодность, долговечность и т. д.

Безотказность — свойство системы сохранять работоспособное состояние в течение некоторого времени или наработки (наработка — продолжительность или объем работы системы).

Ремонтопригодность — свойство системы, заключающееся в приспособленности к предупреждению и обнаружению причин возникновения отказов, повреждений и поддержанию и восстановлению работоспособного состояния путем проведения технического обслуживания и ремонтов.

Долговечность — свойство системы сохранять при установленной системе технического обслуживания и ремонта работоспособное состояние до наступления предельного состояния, то есть такого момента, когда дальнейшее использование системы по назначению недопустимо или нецелесообразно.

Одним из основных понятий теории надежности является отказ. Отказом называют полную или частичную потерю работоспособности системы или ее элемента. Отказы бывают: внезапные и постепенные, зависимые и независимые, полные и частичные, устойчивые и самоустраняющиеся, аппаратные и программные и т. п.

Устойчивый отказ обусловливает длительную неработоспособность системы и устраняется только в результате ее технического обслуживания, то есть выполнения специальных мер, принятых для восстановления работоспособности системы. Самоустраняющийся отказ (обычно его называют

сбоем) — отказ, имеющий кратковременный характер и самоустраняющийся произвольно, без принятия специальных мер для его устранения. Ряд сбоев одного и того же характера, следующих друг за другом, называют перемежающимся отказом.

Аппаратный отказ обусловлен нарушением работоспособности технического элемента системы, соответственно эргатический – эргатического элемента, программный — программного элементов системы. В соответствии с приведенной классификацией отказов можно рассматривать и надежность:

аппаратную;

эргатическую;

программную.

Вмногофункциональных системах часто вводят понятие функциональной надежности выполнения локальной функции системы. Это понятие важно тогда, когда разные функции системы различны по значимости, обеспечиваются различными подсистемами и дифференцируются по предъявляемым к ним требованиям.

Все системы в теории надежности классифицируются по ряду признаков. Важными классификационными группами являются:

восстанавливаемые;

невосстанавливаемые;

обслуживаемые;

необслуживаемые системы.

Восстанавливаемой называется такая системы, работоспособность которой в случае возникновения отказа подлежит восстановлению. Невосстанавливаемая система — такая система, работоспособность которой в случае отказа восстановлению не подлежит.

Обслуживаемая система — система, для которой предусматривается проведение регулярного технического обслуживания. Необслуживаемая система — система, для которой не предусматривается проведение регулярного технического обслуживания.

Информационные и вычислительные системы первых поколений, за редким исключением, относятся к восстанавливаемым обслуживаемым системам. Многие современные вычислительные системы относятся к необслуживаемым восстанавливаемым системам (например персональные компьютеры) и даже к необслуживаемым и невосстанавливаемым системам (отдельные узлы вычислительных систем, например микропроцессор).

Основные показатели надежности

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

Ниже приводятся наименования основных показателей надежности систем и их определения в соответствии с ГОСТ 27.002-80 «Надежность в технике. Термины и определения».

Единичные показатели надежности

К единичным показателям надежности в соответствии с ГОСТ 27.002-80 относятся показатели безотказности, показатели ремонтопригодности и показатели долговечности.

Показатели безотказности

1.Вероятность безотказной работы — вероятность того, что в пределах заданной наработки отказ системы не возникнет.

2.Вероятность отказа — обратная величина, вероятность того, что в пределах заданной наработки отказ системы возникнет.

3.Средняя наработка до отказа — математическое ожидание наработки системы до первого отказа (существенно для невосстанавливаемых систем).

4.Средняя наработка на отказ (То, MTBF — Main Time Between Failures) — отношение наработки восстанавливаемой системы к математическому ожиданию числа ее отказов в пределах этой наработки (имеет смысл только для восстанавливаемых систем).

5.Интенсивность отказов — условная плотность вероятности возникновения отказа невосстанавливаемой системы, определяемая для рассматриваемого момента времени при условии, что до этого момента отказ не возник.

6.Параметр потока отказов (X(t)) — отношение среднего числа отказов для восстанавливаемой системы за произвольно малую ее наработку к значению этой наработки.

Показатели ремонтопригодности

1.Вероятность восстановления работоспособного состояния — вероятность того, что время восстановления работоспособного состояния не превысит заданного.

2.Среднее время восстановления работоспособного состояния (Tв) — математическое ожидание времени восстановления работоспособного состояния системы.

Показатели долговечности

1.Средний ресурс — математическое ожидание наработки системы от начала ее эксплуатации или ее возобновления после ремонта до перехода в предельное состояние.

2.Срок службы (Tcc) — календарная продолжительность от начала эксплуатации системы или ее возобновления после ремонта до перехода в предельное состояние.

Комплексные показатели надежности

1.Коэффициент готовности (Кг) — вероятность того, что система окажется в работоспособном состоянии в произвольный момент времени, кроме планируемых периодов, в течение которых применение системы по назначению не предусматривается

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

3.Коэффициент технического использования — отношение математического ожидания интервалов времени пребывания системы в работоспособном состоянии за некоторый период эксплуатации к сумме математических ожиданий интервалов времени пребывания системы в работоспособном состоянии, простоев, обусловленных техническим обслуживанием, и ремонтов за тот же период эксплуатации

где Тп — время простоя системы, обусловленное выполнением планового технического обслуживания и ремонта (время профилактики), пересчитанное на один отказ.

4.Коэффициент сохранения эффективности — отношение значения показателя эффективности за определенную продолжительность эксплуатации к номинальному значению этого показателя, вычисленному при условии, что отказы в системе в течение того же периода эксплуатации не возникают.

Коэффициент сохранения эффективности характеризует степень влияния отказов в системе на эффективность ее применения по назначению. Из ранее приведенного определения теории надежности следует, что коэффициент сохранения эффективности может служить интегральным критерием оптимизации надежности системы. Действительно, критерий оптимизации — это показатель, для кото­ рого указана желаемая его величина или желаемое направление его изменения. Направление изменения коэффициента сохранения правильно выбранного показателя эффективности определяет основные ориентиры в поиске свойств системы, которые обеспечивают ее оптимальную надежность.

Для пользователей сложных информационных систем понятие их надежности ощущается в наибольшей степени по коэффициенту готовности системы, то есть по отношению времени

работоспособного состояния системы к времени ее незапланированного простоя. Для типичного современного сервера Кг = 0,99, что означает примерно 3,5 суток простоя в год. Часто используется следующая классификация систем по уровню надежности:

Коэффициент

Максимальное время

Тип системы

готовности

простоя в год

0,99

3,5

сут.

Обычная (Conventional)

0,999

8,5

ч

Высокой надежности (Hight availability)

0,9999

1

ч

Отказоустойчивая (Fault resilient)

0,99999

5

мин.

Безотказная (Fault tolerant)

Обеспечение надежности функционирования ИС

Информационная система — это сложная человеко-машинная система, включающая в свой состав эргатические звенья, технические средства и программное обеспечение. Все методы обеспечения надежности и достоверности ИС можно отнести к двум классам. Один включает в себя методы, обеспечивающие безошибочность (безотказность, бессбойность) функциональных технических, эргатических и программных звеньев ИС, то есть, в конечном счете, повышающие их надежность. Другой

— методы, обеспечивающие обнаружение и исправление ошибок, возникающих в информации, то есть методы контроля достоверности информации и ее коррекции, косвенно также повышающие функциональную надежность системы.

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

Виды обеспечения надежности

Для построения надежных информационных систем можно использовать различные виды обеспечения:

экономическое;

временное;

организационное;

структурное;

технологическое;

эксплуатационное;

социальное;

эргатическое;

алгоритмическое;

синтаксическое;

семантическое.

Обеспечение можно определить как совокупность факторов (элементов, методов, приемов, процедур, ресурсов и т. п.), способствующих достижению поставленной цели. Экономическое и временное обеспечения, обусловливаемые необходимостью соответственно материальных и временных затрат, используются для реализации процедур обеспечения достоверности. Организационное, эксплуатационное, техническое, социальное и эргатическое обеспечения применяются преимущественно для повышения надежности систем, а структурное и алгоритмическое обеспечения — для обоих классов методов.

Организационное обеспечение включает в себя вопросы разработки:

правовых и методических аспектов функционирования ИС;

нормативов достоверности информации по функциональным подсистемам и этапам преобразования информации;

методики выбора и обоснования оптимальных структур, процессов и процедур

преобразования информации и т. д.

Назначением структурного обеспечения является повышение надежности функционирования технических комплексов и эргатических звеньев, а также ИС в целом. Должно быть обосновано рациональное построение структуры ИС, непосредственно зависящее от качества решения таких вопросов, как выбор структуры технологического процесса преобразования информации, обеспечение

обоснованных взаимосвязей между отдельными звеньями системы, резервирование элементов, узлов, устройств системы и использование специальных устройств, осуществляющих процедуры аппаратного контроля и т. д.

Технологическое и эксплуатационное обеспечения предназначены для повышения надежности работы технических средств и технологических комплексов. Технологическое обеспечение включает в себя выбор схемных и конструктивных решений применения отдельных технических устройств, технологий и протоколов реализации информационных процессов. Эксплуатационное обеспечение связано с выбором режимов работы устройств, технологий профилактического их обслуживания.

Социальное и эргатическое обеспечения имеют своим назначением повышение надежности работы эргатических структурных звеньев системы. Поскольку подавляющее большинство ошибок в информации возникает как раз из-за функциональной ненадежности именно этих звеньев (человеческого фактора), в литературе особенности их работы рассмотрены весьма обстоятельно. Различают пять видов причин ошибок, возникающих в эргатических звеньях:

психологические — неадекватность восприятия информации, выработка и реализация неоптимальной стратегии;

мотивационные — неправильная постановка задачи, несогласованность целей субъекта с целями управления;

эмоциональные — неустойчивые изменения преобразующих свойств субъекта от внешних и внутренних причин;

интуитивные — неформализованный в сознании субъекта опыт, отражающий реальную ситуацию нерелевантно;

эволюционные — устойчивые изменения преобразующих свойств субъекта в результате

обучения или забывания.

Указанные причины могут привести к субъективным ошибкам трех типов:

потере части полезной информации;

внесению дополнительной (полезной или вредной) информации, не содержащейся в исходном сообщении;

неадекватному преобразованию информации.

Ксоциальному обеспечению относятся, например, такие факторы, как создание здоровой психологической обстановки в коллективе, повышение ответственности за выполненную работу, повышение квалификации специалистов, увеличение моральной и материальной заинтересованности в правильности выполнения работы. Особенно важно обеспечить согласованность целей субъекта с целями управления: лишь тогда, когда работник заинтересован в получении объективных, достоверных данных, они могут быть получены.

Эргатическое обеспечение включает в себя комплекс факторов, связанных с рациональной организацией работы человека в системе. Это, в первую очередь, правильное распределение функций между людьми и техническими средствами, обоснованность норм и стандартов работы, оптимальность интенсивности и ритмичности, построение рабочих мест в соответствии с требованиями эргономики.

Алгоритмическое обеспечение широко применяется для повышения надежности системы (обеспечение высокого качества и безошибочности алгоритмов и программ преобразования информации) и для реализации контроля достоверности информации.

Информационное синтаксическое и семантическое обеспечения заключаются во введении в ИС специальной информационной избыточности, соответственно, избыточности данных и смысловой избыточности, обусловливающих возможность проведения контроля достоверности информации.

Практическая реализация надежных информационных систем

Обеспечение надежности технических компонентов информационных систем чаще всего реализуется аппаратным и программным способами.

Впервом случае ИС использует аппаратную избыточность:

все операции выполняются параллельно на одинаковых компонентах системы, а результаты их работы затем сравниваются, что позволяет выявить ошибки;

в случае выхода из строя какого-либо компонента его резервные аналоги продолжают

работу без остановки, а отказавший компонент заменяется на работоспособный. Программный способ предусматривает:

последовательное во времени выполнение одних и тех же информационных процессов и дублирование данных;

автоматическое восстановление отказавших операционных систем, приложений и

искаженных данных.

На сегодняшний день разработано много конкретных практических способов повышения надежности информационных систем.

Для обеспечения надежности технических средств чаще всего производится:

резервирование (дублирование) технических средств (компьютеров и их компонентов, сегментов сетей и т. д.);

использование стандартных протоколов работы устройств ИС;

применение специализированных технических средств защиты информации.

Для обеспечения надежности функционирования программного комплекса И С требуется:

тщательное тестирование программ, опытное исполнение программы с целью обнаружения в ней ошибок (обязательное условие эффективного тестирования — по крайней мере один раз выполнить все разветвления программы в каждом из возможных направлений);

использование стандартных протоколов, интерфейсов, библиотек процедур, лицензионных программных продуктов;

использование структурных методов для обеспечения надежной работы программных комплексов (иерархическое построение программ, разбиение программ на сравнительно независимые модули и т. д.);

изоляция параллельно работающих процессов, в результате чего ошибки в работе одной

программы не влияют на работу операционной системы и других программ. Контрольные точки (точки рестарта, точки отката) — место повторного запуска программы при

аварийном ее завершении. В контрольных точках обычно выполняются: внесение изменений в БД (в том числе всех изменений, ожидающих своей очереди — неоперативные файлы), разблокирование всех файлов, на обращение к которым был наложен запрет, запись информации о контрольной точке в системный журнал.

Использование массивов RAID (Redundant Array of Inexpensive Disks — избыточный массив недорогих дисков) существенно уменьшает риск простоя системы из-за отказов накопителей на магнитных дисках, которые являются одним из наименее надежных компонентов современных компьютеров.

Вкачестве наиболее эффективных мер комплексного обеспечения надежности ИС можно назвать кластеризацию компьютеров и использование отказоустойчивых компьютеров.

Кластер — это несколько компьютеров (узлов кластера), соединенных коммуникационными каналами и разделяющих общие ресурсы. Кластер имеет общую файловую систему и пользователем воспринимается как единый компонент. Надежность работы кластера обеспечивается программами, регулирующими скоординированное использование общекластерных ресурсов, обмен информацией между узлами кластера, и осуществляющими взаимный контроль работоспособности этих узлов. Отличительной особенностью кластера является то, что каждый его работающий компьютер может взять на себя дополнительную нагрузку отказавшего узла. Кластерные системы разрабатываются многими известными фирмами (IBM, Hewlett-Packard, DEC и т. д.). Все известные кластерные решения обеспечивают высокую готовность системы (коэффициент готовности до 0,999 — high availability), возможность наращивания производительности за счет установки нового оборудования или замены устаревшего. Кластерные системы используют специальные программы, осуществляющие оптимальное распределение ресурсов и удобное администрирование.

Например, компания IBM разработала кластерную систему для четырех или пяти компьютеров IBM RISC System/6000, реализующую следующие стратегии:

один компьютер находится в постоянной готовности и подстраховывает три других работающих компьютера;

работают четыре компьютера, а пятый, дополнительный компьютер подстраховывает остальные;

работают четыре компьютера, и в случае отказа одного из них нагрузка пере­ распределяется между тремя работоспособными;

четыре компьютера работают одновременно с одними и теми же общими данными (отказоустойчивый вариант кластера).

Вотличие от кластерных отказоустойчивые системы упор делают на аппаратное обеспечение надежности и гарантируют не просто сокращение времени простоя (увеличение коэффициента

готовности), а вообще предотвращение и исключение возможности появления таких простоев. В основу архитектуры отказоустойчивых систем заложено дублирование, в том числе и многократное, технических компонентов.

В отказоустойчивых компьютерах любая команда выполняется одновременно на всех дублированных компонентах, и результаты выполнения команд сравнива-ются. Окончательное решение принимается по принципу мажоритирования (по большинству одинаковых результатов). Каждый из продублированных компонентов продолжает работу и в случае отказа одного из его дублей таким образом, что система не замечает этого отказа и на ее функционировании это не отражается. Но отказавший компонент идентифицируется и замещается в режиме «горячей замены», то есть без отключения системы.

Достоверность информационных систем

В силу специфики информационных систем, которые априори предназначены для преобразования информации, важнейшим их свойством является достоверность функционирования.

Достоверность функционирования — это свойство системы, обуславливающее безошибочность производимых ею преобразований информации.

Достоверность функционирования ИС полностью определяется и измеряется достоверностью ее результирующей информации. Для ИС достоверность функционирования является не просто одним из свойств их надежности, но приобретает и самостоятельное значение, поскольку именно достоверность конечной информации обусловливает требования к надежности системы.

Как уже указывалось, надежность ИС — не самоцель, а лишь средство обеспечения оптимальной достоверности ее выходной информации, обуславливающей наивысшую эффективность функционирования системы.

Достоверность информации — это свойство информации отражать реально существующие объекты с необходимой точностью. Достоверность (D) информации измеряется доверительной вероятностью необходимой точности, то есть вероятностью того, что отражаемое информацией значение параметра отличается от истинного значения этого параметра в пределах необходимой точности:

D = P{ О[ n ] }

где — реальная точность отображения параметра, [Δn ] — диапазон необходимой точности отображения параметра.

Для более полного понимания вышеприведенного определения следует пояснить некоторые присутствующие в нем понятия.

Истинная информация — информация, объективно, точно и правильно отражающая характеристики и признаки какого-либо объекта или явления (адекватная заданному параметру объекта).

Точность информации — это характеристика, показывающая степень близости отображаемого значения параметра и истинного его значения.

Необходимая точность определяется функциональным назначением информации и должна обеспечивать правильность принятия управленческих решений.

Таким образом, при оценке истинности информации существуют две основные вероятностные задачи:

определение точности информации или расчет математического ожидания абсолютной величины отклонения значения показателя от объективно существующего истинного значения отображаемого им параметра;

определение достоверности информации или вычисление вероятности того, что

погрешность показателя не выйдет за пределы допустимых значений.

Адекватность отражения включает в себя понятия и точности, и достоверности, которые не должны смешиваться.

Из сказанного следует, что нарушение надежности ИС, приводящее к ухудшению точности результирующей информации в пределах необходимой точности, не снижает эффективности функционирования системы (коэффициента сохранения эффективности). И если отсутствие

информации в положенное время (ее несвоевременность) трактовать в обобщенном виде как наличие недостоверной информации, то единственным показателем качества информации, зависящим от надежности ИС и влияющим на эффективность ее функционирования, является достоверность.

Показатели достоверности информации

Достоверность информации может рассматриваться с разных точек зрения. Поэтому для достоверности правомерно и целесообразно использовать систему показателей.

Единичные показатели достоверности информации

1.Доверительная вероятность необходимой точности (достоверность) — D = 1 – Рош Вероятность того, что в пределах заданной наработки (информационной совокупности

— массива, показателя, реквизита, кодового слова, символа или иного информационного компонента) отсутствуют грубые погрешности, приводящие к нарушению необходимой точности.

2.Средняя наработка информации на ошибку — Q = 1/Р. Отношение объема информации, преобразуемой в системе, к математическому ожиданию количества ошибок, возникающих в информации.

3.Вероятность ошибки (параметр потока ошибок) — (Рош) Вероятность появления ошибки в очередной информационной совокупности.

Показатели корректируемости информационных систем

1.Вероятность коррекции в заданное время — Ркорр (τ)— вероятность того, что время, затрачиваемое на идентификацию и исправление ошибки, не превысит заданного т.

2.Среднее время коррекции информации — Ти — математическое ожидание времени, затрачиваемого на идентификацию и исправление ошибки.

Комплексные показатели достоверности

1. Коэффициент информационной готовности — это вероятность того, что информационная система окажется способной к преобразованию информации в произвольный момент времени того периода (Траб), который планировался для этого преобразования, то есть выполнения условия, что в данный момент времени система не будет находиться в состоянии внепланового обслуживания, вызванного устранением отказа или идентификацией и исправлением ошибки.

КИГ =

Т раб − (ТВ ТИ )

Т раб

2. Коэффициент информационного технического использования — это отношение математического ожидания планируемого времени работы системы на преобразование информации, за вычетом времени восстановления, контроля, идентификации и исправления ошибок, к сумме плани­ руемого времени работы системы и профилактического обслуживания.

КТИ =

Т раб − (ТВ + ТК + ТИ )

Т раб + Тпф

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

Обеспечение достоверности информации

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

Классификация методов контроля достоверности по назначению

По назначению следует различать профилактический, рабочий и генезисный контроль. Профилактический контроль и, например, одна из наиболее распространенных его форм —

тестовый контроль, предназначены для выявления состояния системы в целом и отдельных ее звеньев до включения системы в рабочий режим. Целью профилактического контроля, осуществляемого часто в утяжеленном режиме работы системы, является выявление и прогнозирование неисправностей в ее работе с последующим их устранением.

Рабочий контроль, или контроль в рабочем режиме, производится в процессе выполнения системой возложенных на нее функций. Он, в свою очередь, может быть разделен на функциональный контроль и контроль качества продукции. Функциональный контроль может преследовать цель либо только проверки работоспособности (отсутствия неисправностей) системы, либо, кроме того, установ­ ления места и причины неисправности (диагностический контроль). Контроль качества продукции в нашем случае как раз и является контролем достоверности информации как одним из важнейших показателей качества продукции выпускаемой ИС.

Генезисный контроль проводится для выяснения технического состояния системы в прошлые моменты времени с целью определения причин сбоев и отказов системы, имевших место ранее, сбора статистических данных об ошибках, их характере, величине и последствиях (экономических потерях) этих ошибок для И С.

Классификация методов контроля достоверности по уровню исследования

По уровню исследования информации контроль может быть синтаксический, семантический и прагматический.

Синтаксический контроль — это, по существу, контроль достоверности данных, не затрагивающий содержательного, смыслового аспекта информации. Предметом синтаксического контроля являются отдельные символы, реквизиты, показатели: допустимость их наличия, допустимость их кодовой структуры, взаимных сочетаний и порядка следования.

Семантический контроль оценивает смысловое содержание информации, ее логичность, непротиворечивость, согласованность, диапазон возможных значений параметров, отражаемых информацией, динамику их изменения.

Прагматический контроль определяет потребительную стоимость (полезность, ценность) информации для управления, своевременность и актуальность информации, ее полноту и доступность.

Классификация методов контроля достоверности по способу реализации

По способу реализации контроль может быть организационным, программным, аппаратным и комбинированным.

Организационный контроль достоверности является одним из основных в ИС. Он представляет собой комплекс мероприятий, предназначенных для выявления ошибок на всех этапах участия эргатического звена в работе системы, причем обязательным элементом этих мероприятий является человек или коллектив людей.

Программный контроль основан на использовании специальных программ и логических методов проверки достоверности информации или правильности работы отдельных компонентов системы и всей

системы в целом. Программный контроль, в свою очередь, подразделяется на программно-логический, алгоритмический и тестовый.

Программно-логический контроль базируется на использовании синтаксической или семантической избыточности; алгоритмический контроль использует как основу вспомогательный усеченный алгоритм преобразования информации, логически связанный с основным рабочим алгоритмом (тестовый контроль был рассмотрен чуть выше).

Аппаратный контроль реализуется посредством специально встроенных в систему дополнительных технических схем. Этот вид контроля также подразделяется на непрерывный и оперативный (аппаратно-логический) контроль достоверности, а также непрерывный контроль работоспособности.

Непрерывный контроль достоверности функционирует непрерывно в процессе работы системы параллельно с процедурами основного технологического процесса преобразования информации. Во время оперативного (аппаратно-логического) контроля достоверности выполнение основных технологических операций над информацией приостанавливается. Непрерывный контроль работоспособности — это уже не контроль достоверности информации, а контроль значений па­ раметров компонентов системы с помощью встроенных в них датчиков.

Классификация методов контроля достоверности по степени выявления и коррекции ошибок

По степени выявления и коррекции ошибок контроль делится на:

обнаруживающий, фиксирующий только сам факт наличия или отсутствия ошибки;

локализующий, позволяющий определить как факт наличия, так и место ошибки (например символ, реквизит и т. д.);

исправляющий, выполняющий функции и обнаружения, и локализации, и исправления

ошибки.

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

Втехнических системах корректирующие коды получили чрезвычайно широкое применение: в настоящее время, вероятно, нет ни одной эффективно функционирующей сложной технической информационной системы, где бы многократно не использовались эти коды. В современных компьютерах, например, на основе кодов с обнаружением и кодов с автоматическим исправлением ошибок строится весьма разветвленный контроль достоверности многих блоков (ранее уже упо­ миналось об использовании в накопителях CD и DVD корректирующих кодов Рида-Соломона, в дисковых массивах RAID — циклических кодов с исправлением ошибок, в технологии SMART и в модулях оперативной памяти — кодов Хэмминга с исправлением ошибок и т. д.).

Вэрготехнических компонентах ИС чаще используются обнаруживающие ошибки коды, а коды

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

Безопасность информационных систем

Безопасность информационной системы — свойство, заключающееся в способности системы обеспечить конфиденциальность и целостность информации, то есть защиту информации от несанкционированного доступа, обращенного на ее раскрытие, изменение или разрушение.

Информационную безопасность часто указывают среди основных информационных проблем XXI века. Действительно, вопросы хищения информации, ее сознательного искажения и уничтожения часто приводят к трагическим для пострадавшей стороны последствиям, ведущим к разорению и банкротству фирм, к человеческим жертвам, наконец. Достаточно в качестве примера привести мировую трагедию, приведшую к жертвам нескольких тысяч людей — атаку террористов на Всемирный торговый центр в Нью-Йорке и Министерство обороны США в Вашингтоне. Подобный террористический акт был бы невозможен, если бы террористы не вывели предварительно из строя компьютерную систему управления безопасностью страны, то есть не разрушили бы систему информа­ ционного обеспечения безопасности. А тысячи коммерческих компьютерных преступлений, приводящих к потерям сотен миллионов долларов, а моральные потери, связанные с хищением


С этим файлом связано 5 файл(ов). Среди них: Задания надзор.docx, oahomwrkmm_ovs_1-1 (5).pdf, 1 Практическая Дрозд Л.А..docx, Studbooks_245164.rtf, Pogreshnost_okruglenia.pptx.
Показать все связанные файлы


Подборка по базе: Политические партии и партийные системы.docx, Практическая работа № 1 Системы небесных координат 1. На.pdf, практическая Описание строения системынорм 1 .docx, «СОЗДАНИЕ СИСТЕМЫ ПРОФЕССИОНАЛЬНОГО САМООПРЕДЕЛЕНИЯ ВЫПУСКНИКА «, Приложение 7. Акт об окончании автономной наладки системы автома, МДК_01_01Операционные системы_ТЕОРИЯ (3).pdf, Тема 3.9 Двиг внутреннего сгорания (ДВС). Классификация, техниче, Лекция 1. Основные понятия. ЖЦ ИС.docx, _Повышение квалификации персонала гостиницы как фактор совершенс, Тема 3_2_ Основные шаблоны.ppt


1
Тема: Основные понятия качества информационной системы.
Качество информационной системы — это совокупность свойств системы, обусловливающих возможность ее использования для удовлетворения определенных в соответствии с ее назначением потребностей. Количественные характеристики этих свойств определяются показателями, которые необходимо контролировать и учитывать. Основными показателями качества информационных систем являются надежность, достоверность, безопасность (см. выше), эффективность.
Надежность. Это- свойство системы сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения.
Надежность — важнейшая характеристика качества любой системы, поэтому разработана специальная теория — теория надежности.
Теория надежности может быть определена как научная дисциплина, изучающая закономерности, которых следует придерживаться при разработке и эксплуатации систем для обеспечения оптимального уровня их надежности с минимальными затратами ресурсов.
Надежность — комплексное свойство системы; оно включает в себя более простые свойства, такие как безотказность, ремонтопригодность, долговечность и т д.
Безотказность — свойство системы сохранять работоспособное состояние в течение некоторого времени или наработки (наработка — продолжительность или объем работы системы).
Ремонтопригодность — свойство системы, заключающееся в приспособленности к предупреждению и обнаружению причин возникновения отказов, повреждений и поддержанию, и восстановлению работоспособного состояния путем проведения технического обслуживания и ремонтов.
Долговечность — свойство системы сохранять при установленной системе технического обслуживания и ремонта работоспособное состояние до наступления предельного состояния, то есть такого момента, когда дальнейшее использование системы по назначению недопустимо или нецелесообразно.
Показатель надежности — это количественная характеристика одного или нескольких свойств, определяющих надежность системы. В основе большинства показателей надежности лежат оценки наработки системы, то есть продолжительности или объема работы, выполненной системой.
Показатель надежности, относящийся к одному из свойств надежности, называется единичным.
Комплексный показатель надежности характеризует несколько свойств, определяющих надежность системы.
На сегодняшний день разработано много конкретных практических способов повышения надежности информационных систем.
Для обеспечения надежности технических средств чаще всего выполняется:
1) резервирование (дублирование) технических средств (компьютеров и их компонентов, сегментов сетей и т. д.);
2) использование стандартных протоколов работы устройств ИС;
3) применение специализированных технических средств защиты информации.
Для обеспечения надежности функционирования программного комплекса ИС выполняется:
1) тщательное тестирование программ, опытное исполнение программы с целью обнаружения в ней ошибок (обязательное условие эффективного тестирования — по крайней мере один раз выполнить все разветвления программы в каждом из возможных направлений);
2) использование стандартных протоколов, интерфейсов, библиотек процедур, лицензионных программных продуктов;
3) использование структурных методов для обеспечения надежной работы программных комплексов (иерархическое построение программ, разбиение программ на сравнительно независимые модули и т. д.);
4) изоляция параллельно работающих процессов, в результате чего ошибки в работе одной программы не влияют на работу операционной системы и других программ.
Надежность информационных систем не самоцель, а средство обеспечения своевременной и достоверной информации на ее выходе. Поэтому показатель достоверности функционирования имеет для информационных систем главенствующее значение.
Достоверность.
Достоверность
функционирования — свойство системы, обусловливающее безошибочность производимых ею преобразований информации. Достоверность функционирования информационной системы полностью определяется и измеряется достоверностью ее результатной информации.

2
Достоверность информации — это свойство информации отражать реально существующие объекты с необходимой точностью. Достоверность информации измеряется вероятностью того, что отражаемое информацией значение параметра отличается от истинного значения этого параметра в пределах необходимой точности.
Одним из наиболее действенных средств обеспечения достоверности информации в ИС является ее контроль. Контроль — процесс получения и обработки информации с целью оценки соответствия фактического состояния объекта предъявляемым к нему требованиям и выработки соответствующего управляющего решения.
Методы контроля достоверности информации, применяемые в ИС, весьма разнообразны.
Классификация методов контроля может быть выполнена по большему числу признаков, в частности: по назначению, по уровню исследования информации, по способу реализации, по степени выявления и коррекции ошибок.
Классификация методов контроля достоверности по назначению
Профилактический контроль и одна из наиболее распространенных его форм — тестовый контроль, предназначены для выявления состояния системы в целом и отдельных ее звеньев до включения системы в рабочий режим. Целью профилактического контроля, осуществляемого часто в утяжеленном режиме работы системы, является выявление и прогнозирование неисправностей в ее работе с последующим их устранением.
Рабочий контроль, или контроль в рабочем режиме, выполняется в процессе выполнения системой возложенных на нее функций. Он, в свою очередь, может быть разделен на функциональный контроль и контроль качества продукции. Функциональный контроль может преследовать цель либо только проверки работоспособности (отсутствия неисправностей) системы, либо, кроме того, установления места и причины неисправности (диагностический контроль).
Контроль качества продукции является контролем достоверности информации как одного из важнейших показателей качества продукции выпускаемой ИС.
Генезисный контроль проводится для выяснения технического состояния системы в прошлые моменты времени с целью определения причин сбоев и отказов системы, имевших место в прошлом; сбора статистических данных об ошибках, их характере, величине и последствиях (экономических потерях) этих ошибок для ИС.
Классификация методов контроля достоверности по уровню исследования информации
Синтаксический контроль — это, по существу, контроль достоверности данных, не затрагивающий содержательного, смыслового аспекта информации. Предметом синтаксического контроля являются отдельные символы, реквизиты, показатели: допустимость их наличия, допустимость их кодовой структуры, взаимных сочетаний и порядка следования.
Семантический контроль оценивает смысловое содержание информации, ее логичность, непротиворечивость, согласованность, диапазон возможных значений параметров, отражаемых информацией, динамику их изменения.
Прагматический контроль определяет потребительную стоимость (полезность, ценность) информации для управления, своевременность и актуальность информации, ее полноту и доступность.
Классификация методов контроля достоверности по способу реализации
Организационный контроль достоверности является одним из основных в ИС. Он представляет собой комплекс мероприятий, предназначенных для выявления ошибок на всех этапах участия эргатического звена в работе системы, причем обязательным элементом этих мероприятий является человек или коллектив людей.
Программный контроль основан на использовании специальных программ и логических методов проверки достоверности информации или правильности работы отдельных компонентов системы и всей системы в целом.
Программный контроль, в свою очередь, подразделяется на программно-логический, алгоритмический и тестовый.
Программно-логический контроль базируется на использовании синтаксической или семантической избыточности; алгоритмический контроль использует как основу вспомогательный усеченный алгоритм преобразования информации, логически связанный с основным рабочим алгоритмом.
Аппаратный контроль реализуется посредством специально встроенных в систему дополнительных технических схем. Этот вид контроля также подразделяется на непрерывный и оперативный (аппаратно-логический) контроль достоверности, а также непрерывный контроль работоспособности.
Классификация методов контроля достоверности по степени выявления и коррекции
ошибок
Обнаруживающий фиксирует только сам факт наличия или отсутствия ошибки.

3
Локализующий позволяет определить, как факт наличия, так и место ошибки (например, символ, реквизит и т. д.).
Исправляющий выполняет функции и обнаружения, и локализации, и исправления ошибки.
Эффективность. Это свойство системы выполнять поставленную цель в заданных условиях использования и с определенным качеством. Показатели эффективности характеризуют степень приспособленности системы к выполнению поставленных перед нею задач и являются обобщающими показателями оптимальности функционирования ИС, зависящими от локальных показателей, каковыми являются надежность, достоверность, безопасность.
Кардинальным обобщающим показателем является экономическая эффективность системы, характеризующая целесообразность произведенных на создание и функционирование системы затрат.
Качество ИС связано с дефектами, заложенными на этапе проектирования и проявляющимися в процессе эксплуатации. Любые свойства ИС, в том числе и дефектологические, могут проявляться лишь во взаимодействии с внешней средой, включающей технические средства, персонал, информационное и программное окружение.
В зависимости от целей исследования и этапов жизненного цикла ИС дефектологические свойства разделяют на дефектогенность, дефектабельность и дефектоскопичность.
Дефектогенность определяется влиянием следующих факторов:

— численность разработчиков ИС, их профессиональными и психофизиологическими характеристиками;

— условия и организация процесса разработки ИС;

— характеристики инструментальных средств и компонентов ИС;

— сложность задач;

— степень агрессивности внешней среды (потенциальная возможность внешней среды вносить преднамеренные дефекты, например, воздействие вирусов).
Дефектабельность характеризует наличие дефектов ИС и определяется их числом и местонахождением. Другими факторами, влияющими на дефектабельность являются:

— структурно-конструктивные особенности ИС;

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

— количество, типы и характер распределения дефектов в ИС;

— устойчивость ИС к проявлению дефектов;

— характеристики средств контроля и диагностики дефектов;

— квалификация обслуживающего персонала.
Оценка качества ИС является крайне сложной задачей ввиду многообразия интересов пользователей. Поэтому невозможно предложить одну универсальную меру качества и приходится использовать ряд характеристик, охватывающих весь спектр предъявляемых требований. Наиболее близки к задачам оценки качества ИС модели являются задачи оценки качества программного обеспечения, являющегося одной из важных составных частей системы. В настоящее время используется несколько абстрактных моделей качества программного обеспечения, основанных на определении характеристики и показателя качества, критерия и метрики.
Критерий может быть определен как независимый атрибут ИС или процесса ее создания. С помощью такого критерия может быть измерена характеристика качества ИС на основе той или иной метрики. Совокупность нескольких критериев определяет показатель качества, формируемый исходя из требований, предъявляемых к системе. В настоящее время наибольшее распространение получила иерархическая модель взаимосвязи компонент-качества ИС. Вначале определяются характеристики качества, в числе которых могут быть, например, общая и исходная полезность, удобство эксплуатации. Далее формируются показатели, к числу которых могут быть отнесены: практичность, целостность, корректность, удобство обслуживания, оцениваемость, гибкость, адаптируемость, мобильность, возможность взаимодействия. Каждому показателю качества ставится в соответствие группа критериев. Надо отметить, что один и тот же критерий может характеризоваться несколькими показателями.
Итак, при оценке качества информационной системы используются показатели качества и соответствующие им критерии:

1) практичность — работоспособность, возможность обучения, коммуникативность, объем ввода, скорость ввода-вывода;

2) целостность — регулирование, контроль доступа;

3) эффективность — эффективность использования памяти и функционирования;

4) корректность — трассируемость, завершенность, согласованность;

4

5) надежность — точность, устойчивость к ошибкам, согласованность, простота;

6) удобство обслуживания — согласованность, простота, краткость, информативность, модульность;

7) оцениваемость — наличие измерительных средств, информативность, модульность;

гибкость — распространяемость, общность, информатирован-ность, модульность;

9) адаптируемость — общность, информативность, модульность, аппаратная и программная независимость;

10) мобильность — информативность, модульность, аппаратная и программная независимость;

11) возможность взаимодействия- модульность, унифицируемость процедур связи, унифицируемость данных.
С помощью метрик можно дать количественную или качественную оценку качества ИС.
Рассмотрим типы метрик и шкал для измерения критериев.
Первый тип — метрики, которые используют интервальную шкалу, характеризуемую относительными величинами или реально измеряемыми физическими показателями (например, временем наработки на отказ, вероятностью ошибки, объемом информации и др.).
Второй тип — метрики, которым соответствует порядковая шкала, позволяющая ранжировать характеристики путем сравнения с опорными значениями.
Третий тип — метрики, которым соответствует номинальная шкала, определяющая наличие рассматриваемого свойства или признака у рассматриваемого объекта без учета градаций по этому признаку. Например, интерфейс может быть «простым для понимания», «умеренно простым» и
«сложным для понимания».
Развитием иерархического подхода является представленная на рис. модель классификации критериев качества ИС. Имеется два типа критериев:

1) функциональные критерии (с их помощью оценивается степень выполнения ИС основных целей или задач);

2) конструктивные критерии (предназначены для оценки компонентов ИС, не зависящих от ее целевого назначения).
Существует три основных определения, относящихся к качеству ИС:

1.
Качество ИС — совокупность полезных свойств системы с точки зрения пользователей в соответствии с ее назначением и предъявленными к ней требованиями.

2.
Характеристика качества ИС — понятие, отражающее отдельные измеримые факторы, влияющие на качество системы.

3.
Критерий качества — численный показатель, характеризующий оцениваемое свойство системы и обеспечивающий возможность определения затрат, необходимых для достижения требуемого уровня качества.
Критерии качества информационных систем:

5
Рис. Модель классификации критериев качества информационных систем
Стандарты серии ИСО 9000 впервые создали общую основу для стандартов на системы управления качеством, применимых, в том числе и при разработке ИС. Их концептуальной основой является процессный подход, суть которого определяется тем, что любую деятельность можно представить в виде сети процессов, каждый из которых характеризуется входными и выходными данными.
Важнейшей компонентой ИС является ее интеллектуальная составляющая, содержание которой выражено в программных средствах.
Задания для самоконтроля:
1. Составить тест 10 вопросов (1 вопрос – 1 категория).
2. Создать схемы:
— типы метрик и шкал для измерения критериев;
— показатели качества и соответствующие им критерии;
— дефектологические свойства;
— методы контроля достоверности по степени выявления и коррекции ошибок;
— методы контроля достоверности по способу реализации;
— методы контроля достоверности по уровню исследования информации;
— методы контроля достоверности по назначению;
— основные понятия качества информационной системы.

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

16.1. Общая постановка задачи

Качество ИС связано с дефектами, заложенными на этапе проектирования и проявляющимися в процессе эксплуатации. Свойства ИС, в том числе и дефектологические, могут проявляться лишь во взаимодействии с внешней средой, включающей технические средства, персонал, информационное и программное окружение.

В зависимости от целей исследования и этапов жизненного цикла ИС дефектологические свойства разделяют на дефектогенность, дефектабельность и дефектоскопичность [25].

Дефектогенность определяется влиянием следующих факторов:

  • численностью разработчиков ИС, их профессиональными психофизиологическими характеристиками;
  • условиями и организацией процесса разработки ИС;
  • характеристиками инструментальных средств и комплексов
  • ИС;
  • сложностью задач, решаемых ИС;
  • степенью агрессивности внешней среды (потенциальной возможностью внешней среды вносить преднамеренные дефекты, например воздействие вирусов).

Дефектабельность характеризует наличие дефектов ИС и определяется их количеством и местонахождением. Другими факторами, влияющими на дефектабельность, являются:

  • структурно-конструктивные особенности ИС;
  • интенсивность и характеристики ошибок, приводящих к дефектам.

Дефектоскопичность характеризует возможность проявления дефектов в виде отказов и сбоев в процессе отладки, испытаний или эксплуатации. На дефектоскопичность влияют:

  • количество, типы и характер распределения дефектов;
  • устойчивость ИС к проявлению дефектов;
  • характеристики средств контроля и диагностики дефектов;
  • квалификация обслуживающего персонала.

Оценка качества ИС является крайне сложной задачей из-за многообразия интересов пользователей. Поэтому невозможно предложить одну универсальную меру качества и приходится использовать ряд характеристик, охватывающих весь спектр предъявляемых требований. Наиболее близки к задачам оценки качества ИС модели качества программного обеспечения, являющегося одним из важных составных частей ИС. В настоящее время используется несколько абстрактных моделей качества программного обеспечения, основанных на определениях характеристики качества, показателя качества, критерия и метрики.

Критерий может быть определен как независимый атрибут ИС или процесса ее создания. С помощью такого критерия может быть измерена характеристика качества ИС на основе той или иной метрики. Совокупность нескольких критериев определяет показатель качества, формируемый исходя из требований, предъявляемых к ИС. В настоящее время наибольшее распространение получила иерархическая модель взаимосвязи компонентов качества ИС. Вначале определяются характеристики качества, в числе которых могут быть, например:

  • общая полезность;
  • исходная полезность;
  • удобство эксплуатации.

Далее формируются показатели, к числу которых могут быть отнесены:

  • практичность;
  • целостность;
  • корректность;
  • удобство обслуживания;
  • оцениваемость;
  • гибкость;
  • адаптируемость;
  • мобильность;
  • возможность взаимодействия.

Каждому показателю качества ставится в соответствие группа критериев. Для указанных показателей приведем возможные критерии. Надо отметить, что один и тот же критерий может характеризовать несколько показателей:

  • практичность — работоспособность, возможность обучения, коммуникативность, объем ввода, скорость ввода-вывода;
  • целостность — регулирование доступа, контроль доступа;
  • эффективность — эффективность использования памяти, эффективность функционирования;
  • корректность — трассируемость, завершенность, согласованность;
  • надежность — точность, устойчивость к ошибкам, согласованность, простота;
  • удобство обслуживания — согласованность, простоту, краткость, информативность, модульность;
  • оцениваемость — простота, наличие измерительных средств, информативность, модульность;
  • гибкость — распространяемость, общность, информатированность, модульность;
  • адаптируемость — общность, информативность, модульность, аппаратную независимость, программную независимость;
  • мобильность — информативность, модульность, аппаратную независимость, программную независимость;
  • возможность взаимодействия — модульность, унифицируемость процедур связи, унифицируемость данных.

С помощью метрик можно дать количественную или качественную оценку качества ИС. Различают следующие виды метрических шкал для измерения критериев.

Первый тип — метрики, которые используют интервальную шкалу, характеризуемую относительными величинами реально измеряемых физических показателей, например, временем наработки на отказ, вероятностью ошибки, объемом информации и других.

Второй тип — метрики, которым соответствует порядковая шкала, позволяющая ранжировать характеристики путем сравнения с опорными значениями.

Третий тип — метрики, которым соответствуют номинальная, или категорированная шкала, определяющая наличие рассматриваемого свойства или признака у рассматриваемого объекта без учета градаций по этому признаку. Так, например, интерфейс может быть «простым для понимания», «умеренно простым», «сложным для понимания».

Развитием иерархического подхода является представленная на рис. 16.1 модель классификации критериев качества информационных систем. С помощью функциональных критериев оценивается степень выполнения ИС основных целей или задач. Конструктивные критерии предназначены для оценки компонент ИС, независящих от целевого назначения.

Одним из путей обеспечения качества ИС является сертификация. В США Радиотехническая комиссия по аэронавтике в своем руководящем документе определяет процесс сертификации следующим образом:

Модель классификации критериев качества информационных систем

Рис.
16.1.
Модель классификации критериев качества информационных систем

«Сертификация — процесс официально выполняемой функции системы … путем удостоверения, что функция … удовлетворяет требованиям заказчика, а также государственным нормативным документам». К сожалению, в настоящее время не существует стандартов, полностью удовлетворяющих оценке качества ИС. В западноевропейских странах имеется ряд стандартов, определяющих основы сертификации программных систем. Стандарт Великобритании (BS750) описывает структурные построения программных систем, при соблюдении которых может быть получен документ, гарантирующий качество на государственном уровне. Имеется международный аналог указанного стандарта (ISO9000) и аналог для стран — членов НАТО (AQAP1). Существующая в нашей стране система нормативно-технических документов относит программное обеспечение к «продукции производственно-технического назначения», которая рассматривается как материальный объект. Однако программное обеспечение является скорее абстрактной нематериальной сферой. Существующие ГОСТы (например, ГОСТ 28195-89. «Оценка качества программных средств. Общие положения») явно устарели и являются неполными [79].

16.2. Стандарты управления качеством промышленной продукции

Международные стандарты серии ISO 9000 разработаны для управления качеством продукции, их дополняют стандарты серии ISO 14000, отражающие экологические требования к производству и промышленной продукции. Хотя эти стандарты непосредственно не связаны с CALS-стандартами, их цели — совершенствование промышленного производства, повышение его эффективности — совпадают.

Очевидно, что управление качеством тесно связано с его контролем. Контроль качества традиционно основан на измерении показателей качества продукции на специальных технологических операциях контроля и выбраковке негодных изделий. Однако есть и другой подход к управлению качеством, основанный на контроле качественных показателей не самих изделий, а проектных процедур и технологических процессов, используемых при создании этих изделий.

Такой подход во многих случаях более эффективен. Он требует меньше затрат, поскольку позволяет обойтись без 100%-го контроля продукции и благодаря предупреждению появления брака снижает производственные издержки. Именно этот подход положен в основу стандартов ISO 9000, принятых ISO в 1987 г. и проходящих корректировку приблизительно каждые пять лет.

Таким образом, методической основой для управления качеством являются международные стандарты серии ISO 9000. Они определяют и регламентируют инвариантные вопросы создания, развития, применения и сертификации систем качества в промышленности. В них устанавливается форма требований к системе качества в целях демонстрации поставщиком своих возможностей и оценки этих возможностей внешними сторонами.

Основными причинами появления стандартов ISO 9000 были потребности в общем для всех участников международного рынка базисе для контроля и управления качеством товаров. Американское общество контроля качества определило цели ISO 9000 как помощь в развитии международного обмена товарами и услугами и кооперации в сфере интеллектуальной, научной, технологической и деловой активности.

В стандартах ISO 9000 используется определение качества из стандарта ISO 8402: «Качество — совокупность характеристик продукта, относящихся к его способности удовлетворять установленные или предполагаемые потребности». Аналогичное определение содержится в ГОСТ 15467-79: «Качество продукции — это совокупность свойств продукции, обусловливающих ее пригодность удовлетворять определенные потребности в соответствии с ее назначением». В ISO 9000 вводится понятие системы качества (QS — Quality System), под которой понимают документальную систему с руководствами и описаниями процедур достижения качества. Другими словами, система качества есть совокупность организационной структуры, ответственности, процедур, процессов и ресурсов, обеспечивающая осуществление общего руководства качеством. Система качества обычно представляет собой совокупность трех слоев документов:

  • описание политики управления для каждого системного элемента;
  • описание процедур управления качеством (что, где, кем и когда должно быть сделано);
  • тесты, планы, инструкции и т. п.

Сертификация предприятий по стандартам ISO 9001-9003 выполняется некоторой уполномоченной внешней организацией. Наличие сертификата качества — одно из важных условий для успеха коммерческой деятельности предприятий.

Вторичные стандарты включают в себя:

  • ISO 9000 — основные понятия, руководство по применению ISO 9001;
  • ISO 9004 — элементы систем управления качеством.

Поддерживающие стандарты предназначены для развития и установки систем качества:

ISO 10011 — аудит, критерии для аудита систем качества;

ISO 10012 — требования для измерительного оборудования;

ISO 10013 — пособие для развития руководств по управлению качеством.

Часть этих стандартов утверждена как государственные стандарты Российской Федерации. В частности, к ним относятся:

ГОСТ Р ИСО 9001-96 «Системы качества. Модель обеспечения качества при проектировании, разработке, производстве, монтаже и обслуживании»;

ГОСТ Р ИСО 9002-96 «Системы качества. Модель обеспечения качества при производстве, монтаже и обслуживании»;

ГОСТ Р ИСО 9003-96 «Системы качества. Модель обеспечения качества при окончательном контроле и испытаниях».

В настоящее время разработана новая версия стандартов серии ISO 9000 под названием ISO 9000:2000 Quality management systems (Системы управления качеством), в которую включены следующие документы:

ISO 9000:2000 Fundamentals and vocabulary (Основы и терминология);

ISO 9001:2000 Requirements (Требования);

ISO 9004:2000 Guidelines for performance improvement (Руководство по раз-(? ? повтор? — Ред.)

(? — Ред.) также системой управления влиянием на окружающую среду, они, как и ISO 9000, реализуются в процессе сертификации предприятий, задают процедуры управления и контроль документации, аудит, подразумевают соответствующее обучение и сбор статистики. Кроме требований заказчиков и покупателей, в них воплощаются внутренние требования организации.

Контрольные вопросы и упражнения

  1. Чем определяется качество ИС?
  2. Какие определяются характеристики качества?
  3. Что определяет показатель качества?
  4. Поясните дефектологические свойства в зависимости от целей исследования и этапов жизненного цикла ИС: дефектогенность, дефектабельность и дефектоскопичность.
  5. Как формируется показатель качества?
  6. Какие существуют виды метрических шкал для измерения критериев?
  7. Поясните модель классификации критериев качества информационных систем (рис. 16.1).
  8. Что оценивается с помощью функциональных критериев?
  9. Для чего предназначены конструктивные критерии?
  10. Расскажите о нормативных документах по оценке качества информационных систем.
  11. На чем традиционно основан контроль качества?
  12. Что является методической основой для управления качеством ИС?
  13. Что представляет собой совокупность документов системы качества?
  14. Что включают в себя вторичные стандарты системы качества?
  15. Для чего предназначены поддерживающие стандарты?

В процессе
проектирования системы обработки данных
про­ектировщик может ориентироваться
на несколько вариантов ап­паратной
платформы и разработать несколько
вариантов техно­логических процессов,
среди которых ему необходимо выбрать
наилучший. К основным требованиям,
предъявляемым к выби­раемому
технологическому процессу, относятся:

• обеспечение
пользователя своевременной информацией;

• обеспечение
высокой степени достоверности полученной
информации;

• обеспечение
минимальности трудовых и стоимостных
затрат,

связанных с
обработкой данных.

При выборе варианта
технологического процесса обработки
экономической информации используют
две группы показателей оценки
эффективности: показатели достоверности
получения и обработки информации и
показатели трудовых и стоимостных
затрат на проектирование системы и
обработку информации.

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

• по видам решаемых
задач: например, аналитические, плано­вые,
статистические, учетные;

• по классам
операций технологического процесса;

• по видам ошибок,
связанных с состоянием первичных
доку­ментов, с переносом данных на
машинные носители, с обра­боткой в
ЭВМ, с контролем и выпуском результатных
доку­ментов;

• по причинам
возникновения ошибок: небрежность
пользова­телей и плохое освоение
операций по вводу информации в

ЭВМ, вина исполнителя
документов, ошибки в проекте (вина

проектировщиков)
и др.

Затем следует
выбрать определенный метод контроля
за каж­дой операцией или группой
операций и выполнить оценку степе­ни
достоверности получаемой после обработки
результатной ин­формации.

Показатель
достоверности обработки информации
(D) может быть рассчитан по следующей
формуле:

D =
1 — P, (1)

где D — величина
достоверности процесса обработки;

Р
— вероятность появления ошибки, которую
можно рассчитать по фор­муле

P = N / Q,
(2)

где N- количество
ошибочных действий, допущенных на
множестве Q;

Q — общее количество
действий.

Поскольку
проектировщики, как правило, владеют
ограни­ченной выборкой по величинам
Q и N, то для оценки достовер­ности
технологических процессов они используют
показатель частоты появления ошибок(f), который рассчитывается по фор­муле
(3):

f = N
/ Q,
(3)

где f- частота
возникновения ошибок;

N
— число ошибок, допущенных на множестве
Q;

Q
— величина доступной выборки общего
количества действий.

Для практической
оценки степени достоверности вариантов
технологических процессов разработано
несколько методик, на­пример, применяется
методика с помощью оценки величины,
об­ратной величине достоверности, —
степени недостоверности тех­нологического
процесса, заданного для множества n- рабочих иm- контрольных
операций некоторого технологического
процес­са и представленного в виде
схемы (рис. 7.3).

Рис. 7.3. Схема
технологического процесса обработки
данных

Каждая рабочая
операция (Oi) характеризуется
некоторым количеством выполняемых на
ней действий или количеством зна­ков
(Di) и частотой появления
ошибок (fi). Каждая контрольная
операция характеризуется применением
некоторого j-го метода контроля и
показателем эффективности использования
данного метода (Lij) для контроляi-й
операции, который можно рассчи­тать
по формуле (4).

(4)

где
Lij — коэффициент эффективности j-го
метода контроля по i-й
операции;

Ni,
— общее количество ошибок, допущенных
на i-й операции и проверяемых j-м
методом контроля, которое включает в
себя две величины:

(5)

где
Noij
— число обнаруженных ошибок;

Nnij
— число пропущенных ошибок.

Для характеристики
данной системы контроля используются
следующие показатели:

коэффициент
исходной недостоверности технологического
про­цесса
, характеризующий надежность
используемой техники и квалификацию
работников, показывающий количество
оши­бок, приходящееся на одно действие
(Кинд):

(6)

где Di — количество
действий на i-й операции;

коэффициент
контролируемости технологического
процесса
(Ккон), характеризующий
качество системы контроля и опре­деляющий
количество обнаруженных ошибок,
приходящееся на одно действие:

(7)

интегральный
коэффициент конечной недостоверности
(Ккнд), характеризующий количество
пропущенных ошибок при за­данной
системе контроля, приходящееся на одно
действие:

(8)

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

В этом комплексе
рассчитывают абсолютныеиотноси­тельныепоказатели оценки
экономической эффективности
тех­нологических процессов.

К группе абсолютных
показателей
относят:

• показатели,
оценивающие величину трудоемкости
обработ­ки информации за год по
базовому (т.е. тому варианту, кото­рый
берется за основу для сравнения) и
предлагаемым вари­антам (То) и (Тj);

• показатели,
оценивающие величину эксплуатационных
стоимостных затрат за год по базовому
и предлагаемому вари­антам (Сo)
и (Сj);

• показатель
оценки снижения трудовых затрат за год
(T), который
рассчитывается по формуле

T = То — Тj, (9)

• показатель
снижения стоимостных затрат за год
(С), кото­рый можно
рассчитать по формуле

C = Cо
— Cj. (10)

Группа относительных
показателей
оценки эффективности
технологических процессов включает:

• коэффициент
снижения трудовых затрат за год (Кm),
показы­вающий, на какую долю или какой
процент снижаются зат­раты предлагаемого
варианта по сравнению с базовым, кото­рый
рассчитывается по формуле

Кm = Т
/ Тo; (11)

• индекс снижения
трудовых затрат (Iт), показывающий, во
сколько раз снижаются трудовые затраты
предлагаемого j-го варианта
по сравнению с базовым, и рассчитываемый
по фор­муле


= Тo / Тj,
(12)

• коэффициент
снижения стоимостных затрат за год
(Кc), кото­рый рассчитывается
по формуле

Кc = C
/ Cj; (13)

• индекс снижения
стоимостных затрат (Ic), рассчитываемый
по формуле


= Сo/ Сj,
(14)

В свою очередь,
показатель трудовых затрат j-й техноло­гический процесс (Tj)
рассчитывается по формуле

Tj=tij,
(14)

где
tij
— показатель трудовых затрат на i-ю
операцию j-го
технологического процесса, который
можно рассчитать по формуле

tij = Q ij / Ni, (16)

где Qij — объем работ,
выполненных на i-й операции j-му
технологическо­му процессу;

Ni
— норма выработки на 1-й операции.

Показатель
стоимостных затрат на j-й технологический
про­цесс (Сj) представляет собой сумму
затрат на j-й технологичес­кий процесс
по следующим статьям затрат:

• на заработную
плату;

• на амортизацию;

• на материалы;

• на оплату
машинного времени;

• на ведение
информационной базы;

• накладные
расходы.

Этот показатель
рассчитывается по формуле

Cj=Cij,
(17)

где
Сij — показатель стоимостных затрат на
(i-ю
операцию j-го
технологичес­кого процесса, в состав
которого включаются следующие компо­ненты:

Cij = Cзп
+ Cнр + Cа +
Cмв + Cм + Cвб
(18)

где Сзп — затраты
на заработную плату оператора, которые
можно рассчи­тать по формуле

Cзп
= tij * ri, (19)

где
tij-трудоемкость
выполнения i-й операции j-го технологического
про­цесса;

ri
— тарифная ставка i-q операции;

Снр — затраты на
накладные расходы, рассчитываемые как
производная величина от затрат на
заработную плату:

Cнр
= Cзп * Кнр,
(20)

где Кнр — величина
коэффициента накладных расходов,
принимаемая, как правило, в размере 0,6
— 0,7 от величины С зп;

Cа — величина
амортизационных отчислений на используемую
техни­ку, рассчитываемая по формуле


= tij * ai, (21)

где
ai,
— норма амортизационных отчислений;

Cмв
— стоимость машинного времени на ввод
информации в ЭВМ, обра­ботку данных
и выдачу результатной информации:

Cмj
= tmj * c, (22)

где с — стоимость
машинного часа;

tmj
— длительность выполнения м-й машинной
операции j-го технологи­ческого
процесса, включающая в себя следующие
компоненты:

tm = t1 + t2 + t3, (23)

где t1, — длительность
выполнения операции ввода исходной
информации в ЭВМ, рассчитываемая по
формуле

t1 = Qви
/ Nви, (24)

где
Qви
— объем вводимой информации в символах
(байтах);

Nви
— норма вводимой информации с клавиатуры
ЭВМ в час;

t2
— длительность обработки информации
при решении задачи (в час.), определяемая
экспертным путем, если задача сдана в
эксплуата­цию, или рассчитываемая
гипотетически, например по следующей
формуле

t2 =Qоп /Vоб, (25)

где
Vоб
— быстродействие работы ЭВМ;

Qоп
— объем операций, выполняемых ЭВМ по
обработке данных при ре­шении задачи,
определяемый различными способами,
например, произве­дение объема вводимой
информации на предполагаемое количе­ство
операторов, реализуемых алгоритмом
определенного класса задач, т.е.

Qоп
=Qоп *R, (26)

где R — число
операторов, приходящееся на один байт
вводимой информа­ции, характерное
для определенного класса задач.

При этом выделяют
три класса задач:

  • задачи,
    связанные с ак­туализацией данных в
    ЭВМ, для которых характерно приблизи­тельно
    500 операторов на один байт вводимой
    информации;

  • за­дачи,
    связанные с оперативной обработкой
    данных, для которых на один байт вводимой
    информации приходится выполнение 5000
    операторов,

  • задачи сложной
    аналитической обработки данных или
    связанные с применением
    экономико-математических мето­дов
    и моделей, в которых эта величина
    составляет 20000 опера­торов на один
    байт вводимой информации;

t3
— время вывода результатной информации
пользователю на печать или по каналам
связи, рассчитываемое по формуле

t3 =Qвыв /Vвыв, (27)

где
Qвыв
— объем выводимой информации (в строках
или байтах);

Vвыв
— скорость работы печатающего устройства
(стр./ч) или канала связи (байт/ч);

См — затраты на
материалы за год (например, на бумагу);

Свб — годовые
затраты на ведение информационной базы.

Кроме того,
рассчитывают приведенный показатель
годовой экономии (Эг) по формуле

Эг = (Со + Ен * Ко) —
(Сj+ Ен * Кj),
(28)

где Кj и Ko„ —
капитальные затраты, включающие в себя
затраты на следую­щие направления:

• на приобретение
вычислительной техники в базовом и
пред­лагаемом вариантах;

• на приобретение
вычислительной техники;

• на покупку
программного обеспечения;

• на освоение
программного обеспечения;

• на проектирование
и отладку проекта.

Помимо вышеприведенных
показателей эффективности про­ектировщики
рассчитывают также показатель срока
окупаемос­ти капитальных затрат
(Ток), представляющий собой отношение
капитальных затрат к экономии стоимостных
затрат:

Ток = (Кj– Кo) /С
. (29)

Расчетный коэффициент
эффективности Ep является обратной
величиной сроку окупаемости и
рассчитывается по формуле

Ep = 1 / Ток . (30)

По совокупности
вышеприведенных показателей проектиров­щики
выбирают наиболее эффективный вариант
технологичес­кого процесса обработки
информации. Обобщенная технологи­ческая
сеть выбора варианта организации
технологического про­цесса обработки
данных в ЭИС представлена на рис. 7.4.

Вначале осуществляются
работы «Определение состава основ­ных
операций»
(П1) и«Уточнение состава
технических средств выполнения операций»
(П2). Входными документами для выпол­нения
этой работы служат материалы обследования,«Постанов­ка задачи»(Д1.1),«Техническое задание»(Д1.2) и множество
пред­варительно выбранных технических
средств для операций техно­логического
процесса (U2.1). В результате выполнения
этих работ проектировщики получают
перечень основных операций (Д1.3), описание
технико-эксплуатационных характеристик
выбранных технических средств (Д2.1) и
методов работы с ними (Д2.2), ко­торые
поступают в качестве исходных данных
на вход следую­щей операции.

На следующей
операции выполняется «Выбор метода
конт­роля и технических средств,
осуществляющих контроль»
(ПЗ). На вход
операции поступает универсум методов
контроля (U3.1). В результате выполнения
процедуры получают описание техничес­ких
средств и методов выполнения контроля
(ДЗ.1).

Далее осуществляется
«Разработка вариантов схем
техноло­гического процесса обработки
данных»
(П4). Входными докумен­тами
для данной операции являются перечни
основных опера­ций, технических
характеристик средств и методик
выполнения контроля (Д1.3, Д2.2, Д2.1, ДЗ.1).
Целью выполнения данной ра­боты
является получение блок-схем нескольких
вариантов тех­нологических процессов
(Д4.1).

Содержанием пятой
операции является «Оценка технологи­ческих
процессов по достоверности, трудовым
и стоимостным показателям»
(П5). Данная
оценка производится на основе тех­нического
задания и методик расчета показателей
(U5.1). Резуль­татом выполнения работы
является получение таблиц значений
показателей (Д5.1).

Заключительной
операцией служит «Выбор варианта
техно­логического процесса и разработка
технологической документа­ции»
(П6). Выполнение данной работы основывается
на содержа­нии технического задания,
требовании гостов и остов на техно-рабочий
проект (Д6.1). В результате получают
совокупность технологических и
инструкционных карт (Д6.2).

Рис. 7.4.
Технологическая сеть выбора варианта
технологического процесса обработки
данных в ЭИС:

Д 1.1 — постановка
задачи; Д 1.2 — состав основных операций;
U 2.1 — универсум комплекса предварительно
выбранных вариантов ТС; Д 2.1 — описание
выбранного КТС; Д 2.2 — методы работы; U
3.1 — универсум методов контроля; Д 3.1 —
описание методов контроля; Д 3.2 — уточненный
вариант КТС; Д 4.1 — варианты схем технических
процессов; U 5.1 — универсум методик оценки
Т. С., D.; Д 5.1 — таблицы значений показателей;
Д 6.1 — требования ТЗ; Д 6.2 — технологические
и инструкционные карты

Вопросы
для самопроверки

1. Что такое
технологический процесс и по каким
признакам классифицируются технологические
процессы?

2. Что такое
технологическая операция и каковы виды
техно­логических операций?

3. Каковы принципы
и методы организации контроля за
досто­верностью обработки данных?

4. Каковы требования,
предъявляемые к технологическим
про­цессам?

5. Каковы основные
показатели определения степени
достовер­ности, обеспечиваемые
технологическим процессом?

6. Каковы абсолютные
и относительные показатели оценки
тру­довых затрат, связанных с реализацией
технологического процесса?

7. Каковы абсолютные
и относительные показатели оценки
сто­имостных затрат, связанных с
реализацией технологическо­го
процесса?

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

Содержание:

Введение

Программное обеспечение, согласно ГОСТ 19781-90, – совокупность программ системы обработки информации и программных документов, необходимых для их эксплуатации.

Существует и другое, более простое определение, согласно которому программное обеспечение представляет собой совокупность компьютерных инструкций. Оно охватывает программы, подпрограммы (разделы программы) и данные. Таким образом, программное обеспечение указывает компьютеру, что делать, как, когда, в какой последовательности и как часто. Нередко программное обеспечение называют просто программой.

Проблема надежности программного обеспечения относится, похоже, к категории «вечных». В посвященной ей монографии Г.Майерса, выпущенной в 1980 году (американское издание — в 1976), отмечается, что, хотя этот вопрос рассматривался еще на заре применения вычислительных машин, в 1952 году, он не потерял актуальности до настоящего времени. Отношение к проблеме довольно выразительно сформулировано в книге Р.Гласса: «Надежность программного обеспечения — беспризорное дитя вычислительной техники». Следует далее отметить, что сама проблема надежности программного обеспечения имеет, по крайней мере, два аспекта: обеспечение и оценка (измерение) надежности. Практически вся имеющаяся литература на эту тему, включая упомянутые выше монографии, посвящена первому аспекту, а вопрос оценки надежности компьютерных программ оказывается еще более «беспризорным». Вместе с тем очевидно, что надежность программы гораздо важнее таких традиционных ее характеристик, как время исполнения или требуемый объем оперативной памяти, однако никакой общепринятой количественной меры надежности программ до сих пор не существует.

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

Цель данной работы – рассмотреть классификацию ошибок программного обеспечения для обеспечения его надежности.

1. Надежность программного обеспечения

Показатели качества программного обеспечения

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

Согласно ГОСТ 9126[2], качество программного обеспечения – это весь объем признаков и характеристик программного обеспечения, который относится к ее способности удовлетворять установленным или предполагаемым потребностям.

Качество программного обеспечения оценивается следующими характеристиками:

  • Функциональные возможности (Functionality). Набор атрибутов, относящихся к сути набора функций и их конкретным свойствам. Функциями являются те, которые реализуют установленные или предполагаемые потребности.
  • Надежность (Reliability). Набор атрибутов относящихся к способности программного обеспечения сохранять свой уровень качества функционирования при установленных условиях за установленный период времени.
  • Практичность (Usability). Набор атрибутов, относящихся к объему работ, требуемых для использования и индивидуальной оценки такого использования определенным и предполагаемым кругом пользователей.
  • Эффективность (Efficiencies). Набор атрибутов, относящихся к соотношению между уровнем качества функционирования программного обеспечения и объемом используемых ресурсов при установленных условиях.
  • Сопровождаемость (Maintainability). Набор атрибутов, относящихся к объему работ, требуемых для проведения конкретных изменений (модификаций).
  • Мобильность (Portability). Набор атрибутов, относящихся к способности программного обеспечения быть перенесенным из одного окружения в другое.

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

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

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

По правилу, установленному в [2], надежность – свойство объекта осуществлять заданные функции, храня во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующим заданным режимам и условиям использования, ремонта, технического обслуживания, хранения, транспортирования.

Рис. 1. Надежность по ГОСТ 27.002 – 89

При этом надежность является комплексным свойством, которое в зависимости от функции объекта и условий его использования может включать безотказность, ремонтопригодность, долговечность, сохраняемость или некоторые сочетания данных свойств (рис. 1). Так как программное обеспечение в процессе эксплуатации не изнашивается, его поломка и ремонт в общепринятом смысле не делается, то надежность программного обеспечения имеет смысл характеризовать только с точки зрения безотказности его функционирования и возможности исправления функционирования после отказов по вызванных проявлениями ошибок.

В [3] надежность программного обеспечения предлагается характеризовать с помощью следующих характеристик (рис. 2): стабильность, устойчивость и восстанавливаемость.

Рис. 2. Надежность программного обеспечения

В этом случае стабильность и устойчивость характеризуют безотказность программного обеспечения, а восстанавливаемость – возможность восстановления функционирования программного обеспечения после его отказа. Для количественной оценки надежности программного обеспечения необходимо определить показатели надежности для каждого свойства и методику их определения (оценки).

Для оценки стабильности программного обеспечения возможно использование показателей характеризующих безотказность технических устройств [2] (рис. 3).

Рис. 3. Показатели безотказности

В большинстве случаев поток программных ошибок может быть описан негомогенным процессом Пуассона [4]. Это означает, что программные ошибки происходят в статистически независимые моменты времени, наработки подчиняются экспоненциальному распределению, а интенсивность проявления ошибок изменяется во времени. Обычно используют убывающую интенсивность проявления ошибок. Это означает, что ошибки, как только они выявлены, эффективно устраняются без введения новых ошибок. Главная цель анализа надежности программного обеспечения заключается в том, чтобы определить форму функции интенсивности проявления ошибок и оценить ее параметры по наблюдаемым данным. Как только функция интенсивности проявления ошибок определена, могут быть найдены такие показатели надежности как:

  • общее количество ошибок;
  • количество остающихся ошибок;
  • время до проявления следующей ошибки;
  • вероятность безошибочной работы;
  • интенсивность проявления ошибок;
  • остаточное время испытаний (до принятия решения);
  • максимальное количество ошибок (относительно срока службы).

При этом следует различать понятия ошибка и отказ. Применительно к надежности программного обеспечения ошибка это погрешность или искажение кода программы, неумышленно внесенные в нее в процессе разработки, которые в ходе функционирования этой программы могут вызвать отказ или снижение эффективности функционирования. Под отказом в общем случае понимают событие, заключающееся в нарушении работоспособности объекта [2]. Состояние объекта, при котором значения всех параметров характеризующих способность выполнять заданные функции, соответствуют требованиям нормативно – технической и (или) конструкторской (проектной) документации – называется работоспособным. При этом критерии отказов, как признаки или совокупность признаков нарушения работоспособного состояния программного обеспечения, должны определяться исходя из его предназначения в нормативно – технической и (или) конструкторской (проектной) документации.

В общем случае отказ программного обеспечения можно определить как:

  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время превышающее заданный порог;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) на время не превышающее заданный порог, но с потерей всех или части обрабатываемых данных;
  • прекращение функционирования программы (искажения нормального хода ее выполнения, зацикливание) потребовавшее перезагрузки ЭВМ, на которой функционирует программное обеспечение.

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

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

Для любого потребителя данных существует допустимое время отсутствия данных от программы, при котором его характеристики находятся в допустимых пределах. Исходя из этого времени, можно установить границы временной зоны, которая разделяет работоспособное и неработоспособное состояние программного обеспечения и позволяет использовать данные критерии отказов.

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

В [5] стабильность предлагается оценивать вероятностью безотказной работы, которая оценивается исходя из модели относительной частоты, при этом применение ее ограничено периодом эксплуатации программного обеспечения, что не всегда приемлемо, поскольку надежность объекта, как правило, необходимо оценивать не только в процессе его эксплуатации, но и до начала эксплуатации этого объекта. Ограничение модели относительной частоты вызвано тем, что в этой модели не учитываются процессы тестирования и отладки, а конкретно то, что при возникновении отказа программного обеспечения, ошибка, вызвавшая этот отказ, исправляется.

Наиболее приемлемыми показателями характеризующими стабильность (безотказность) программного обеспечения представляются показатели сходные с показателями безотказности технических систем: вероятность безотказной работы, интенсивность отказов, и среднее время наработки на отказ. Эти показатели взаимосвязаны и, зная один из них, можно определить другие [2]. При определении этих показателей в большинстве случаев можно исходить из модели надежности, предполагающей, что интенсивность проявления ошибок убывает по мере исправления этих ошибок, время между проявлениями ошибок распределено экспоненциально, а интенсивность проявления ошибок постоянна между двумя соседними проявлениями ошибок. Применение такой модели надежности программного обеспечения позволит оценить надежность программного обеспечения во время тестирования и отладки.

Устойчивость, как свойство или совокупность свойств программного обеспечения, характеризующие его возможность поддерживать приемлемый уровень функционирования при проявлениях ошибок в нем, можно оценивать условной вероятностью безотказной работы при проявлении ошибки. Согласно [5] устойчивость оценивается с помощью трех метрик, включающих двадцать оценочных элементов (рис. 4). Результаты оценки каждой метрики определяются результатами оценки определяющих ее оценочных элементов, а результат оценки устойчивости определяются результатами соответствующих ему метрик. Программное обеспечение по каждому из оценочных элементов оценивается группой экспертов – специалистов, компетентных в решении данной задачи, на базе их опыта и интуиции. Для оценочных элементов принимается единая шкала оценки от 0 до 1.

Недостатком такого подхода является одинаковая оценка устойчивости для всех возможных ошибок. Поскольку вероятность возникновения отказа при проявлении разных ошибок может быть разной, возникает необходимость разделения ошибок на несколько категорий. Признаком, по которому в этом случае можно относить ошибки к той или иной категории, можно считать тяжесть ошибки. Под тяжестью ошибки в этом случае следует понимать количественную или качественную оценку вероятного ущерба при проявлении этой ошибки [6], а если говорить о надежности, то оценку вероятности возникновения отказа при проявлении ошибки. При этом категорией тяжести последствий ошибки будет являться классификационная группа ошибок по тяжести их последствий, характеризуемая определенным сочетанием качественных и/или количественных учитываемых составляющих ожидаемого (вероятного) отказа или нанесенного отказом ущерба.

Рис. 4. Метрики и оценочные элементы устойчивости программного обеспечения по ГОСТ 28195 – 89

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

Таблица 1. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого могут привести к катастрофическим последствиям

Для программного обеспечения общего применения или программного обеспечения систем, нарушение работоспособности которых не представляет угрозы жизни людей и не приводит к разрушению самой системы, возможные категории тяжести приведены в таблице 2.

Таблица 2. Категории тяжести ошибки в программном обеспечении, нарушение работоспособности которого не приводят к катастрофическим последствиям

Оценку степени тяжести ошибки как условной вероятности возникновения отказа (последствий этого отказа), можно производить согласно [5], используя метрики и оценочные элементы, характеризующие устойчивость программного обеспечения. При этом оценка производится для каждой ошибки в отдельности, а не для всего программного обеспечения. Далее исходя из проведенных оценок возможно определение устойчивости программного обеспечения к проявлениям ошибок каждой из категорий.

Восстанавливаемость программного обеспечения, как свойство или совокупность свойств характеризующих способность программного обеспечения восстановления своего уровня пригодности и восстановления данных, непосредственно поврежденных вследствии проявлении ошибки (отказа), характеризуется полнотой и длительностью восстановления функционирования программ в процессе перезапуска или перезагрузки ЭВМ. В [5] восстанавливаемость предлагается оценивать по среднему времени восстановления. При этом следует учитывать, что время восстановления функционирования программного обеспечения складывается не только из времени потребного для перезагрузки ЭВМ и загрузки самого программного обеспечения, но и из времени необходимого для восстановления данных и это время в ряде случаев может значительно превышать время перезагрузки.

Показатели надежности программного обеспечения в значительной степени адекватны аналогичным характеристикам, принятых для других технических систем. Наиболее широко используется показатель наработки на отказ. Наработка на отказ – это отношение суммарной наработки объекта к математическому ожиданию числа его отказов в течении этой наработки. Для программного обеспечения использование данного показателя затруднено, в силу особенностей тестирования и отладки программного обеспечения (ошибка вызвавшая отказ, как правило, исправляется и больше не повторяется). Поэтому целесообразно использовать показатель средней наработки до отказа – математического ожидания времени функционирования программного обеспечения до отказа. При использовании модели надежности программного обеспечения предполагающей экспоненциальное распределение времени между отказами, среднее время наработки до отказа равно величине обратной интенсивности отказов. Интенсивность отказов можно оценить исходя из оценок стабильности и устойчивости программного обеспечения. Обобщение характеристик отказов и восстановлений производится в показателе коэффициент готовности [2]. Коэффициент готовности программного обеспечения это вероятность того, что программное обеспечение окажется в работоспособном состоянии в произвольный момент времени. Значение коэффициента готовности соответствует доле времени полезной работы программного обеспечения на достаточно большом интервале времени, содержащем отказы и восстановления.

2. Источники ошибок программного обеспечения

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

Основными причинами ошибок программного обеспечения являются:

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

Источниками ошибок программного обеспечения являются:

Внутренние: ошибки проектирования, ошибки алгоритмизации, ошибки программирования, недостаточное качество средств защиты, ошибки в документации.

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ, искажение информации в каналах связи, изменения конфигурации системы.

  • Признаками выявления ошибок являются:
  • Преждевременное окончание программы.
  • Увеличение времени выполнения программы.
  • Нарушение последовательности вызова отдельных подпрограмм.

Ошибки выхода информации, поступающей от внешних источников, между входной информацией возникает не соответствие из-за: искажение данных на первичных носителях, сбои и отказы в аппаратуре, шумы и сбои в каналах связи, ошибки в документации.

Ошибки, скрытые в самой программе: ошибка вычислений, ошибка ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка совместимости, ошибка сопряжения.

Искажения входной информации, подлежащей обработке: искажения данных на первичных носителях информации; сбои и отказы в аппаратуре ввода данных с первичных носителей информации; шумы и сбои в каналах связи при передачи сообщений по линиям связи; сбои и отказы в аппаратуре передачи или приема информации; потери или искажения сообщений в буферных накопителях вычислительных систем; ошибки в документировании; используемой для подготовки ввода данных; ошибки пользователей при подготовки исходной информации.

Неверные действия пользователя:

  • Неправильная интерпретация сообщений.
  • Неправильные действия пользователя в процессе диалога с программным обеспечением.
  • Неверные действия пользователя или по-другому, их можно назвать ошибками пользователя, которые возникают вследствие некачественной программной документации: неверные описания возможности программ; неверные описания режимов работы; неверные описания форматов входной и выходной информации; неверные описания диагностических сообщений.

Неисправности аппаратуры установки: приводят к нарушениям нормального хода вычислительного процесса; приводят к искажениям данных и текстов программ в основной и внешней памяти.

Итак, при рассмотрении основных причин возникновения отказа и сбоев программного обеспечения можно сказать, что эти знания позволяют своевременно принимать необходимые меры по недопущению отказов и сбоев программного обеспечения.

3. Виды ошибок программного обеспечения

Характеристика основных видов ошибок программного обеспечения

Рассмотрим классификацию ошибок по месту их возникновения, которая рассмотрена в книге С. Канера «Тестирование программного обеспечения». Фундаментальные концепции менеджмента бизнес-приложений. Главным критерием программы должно быть ее качество, которое трактуется как отсутствие в ней недостатков, а также сбоев и явных ошибок. Недостатки программы зависят от субъективной оценкой ее качества потенциальным пользователем. При этом авторы скептически относятся к спецификации и утверждают, что даже при ее наличии, выявленные на конечном этапе недостатки говорят о ее низком качестве. При таком подходе преодоление недостатков программы, особенно на заключительном этапе проектирования, может приводить к снижению надежности. Очевидно, что для разработки ответственного и безопасного программного обеспечения (ПО) такой подход не годится, однако проблемы наличия ошибок в спецификациях, субъективного оценивания пользователем качества программы существуют и не могут быть проигнорированы. Должна быть разработана система некоторых ограничений, которая бы учитывала эти факторы при разработке и сертификации такого рода ПО. Для обычных программ все проблемы, связанные с субъективным оцениванием их качества и наличием ошибок, скорее всего неизбежны.

В краткой классификации выделяются следующие ошибки.

  • ошибки пользовательского интерфейса.
  • ошибки вычислений.
  • ошибки управления потоком.
  • ошибки передачи или интерпретации данных.
  • перегрузки.
  • контроль версий.
  • ошибка выявлена и забыта.
  • ошибки тестирования.

1. Ошибки пользовательского интерфейса.

Многие из них субъективны, т.к. часто они являются скорее неудобствами, чем «чистыми» логическими ошибками. Однако они могут провоцировать ошибки пользователя программы или же замедлять время его работы до неприемлемой величины. В результате чего мы будем иметь ошибки информационной системы (ИС) в целом. Основным источником таких ошибок является сложный компромисс между функциональностью программы и простотой обучения и работы пользователя с этой программой. Проблему надо начинать решать при проектировании системы на уровне ее декомпозиции на отдельные модули, исходя из того, что вряд ли удастся спроектировать простой и удобный пользовательский интерфейс для модуля, перегруженного различными функциями. Кроме того, необходимо учитывать рекомендации по проектированию пользовательских интерфейсов. На этапе тестирования ПО полезно предусмотреть встроенные средства тестирования, которые бы запоминали последовательности действий пользователя, время совершения отдельных операций, расстояния перемещения курсора мыши. Кроме этого возможно применение гораздо более сложных средств психо-физического тестирования на этапе тестирования интерфейса пользователя, которые позволят оценить скорость реакции пользователя, частоту этих реакций, утомляемость и т.п. Необходимо отметить, что такие ошибки очень критичны с точки зрения коммерческого успеха разрабатываемого ПО, т.к. они будут в первую очередь оцениваться потенциальным заказчиком.

2.Ошибки вычислений.

Выделяют следующие причины возникновения таких ошибок:

  • неверная логика (может быть следствием, как ошибок проектирования, так и кодирования);
  • неправильно выполняются арифметические операции (как правило — это ошибки кодирования);
  • неточные вычисления (могут быть следствием, как ошибок проектирования, так и кодирования). Очень сложная тема, надо выработать свое отношение к ней с точки зрения разработки безопасного ПО.

Выделяются подпункты: устаревшие константы; ошибки вычислений; неверно расставленные скобки; неправильный порядок операторов; неверно работает базовая функция; переполнение и потеря значащих разрядов; ошибки отсечения и округления; путаница с представлением данных; неправильное преобразование данных из одного формата в другой; неверная формула; неправильное приближение.

3.Ошибки управления потоком.

В этот раздел относится все то, что связано с последовательностью и обстоятельствами выполнения операторов программы.

Выделяются подпункты:

  • очевидно неверное поведение программы;
  • переход по GOTO;
  • логика, основанная на определении вызывающей подпрограммы;
  • использование таблиц переходов;
  • выполнение данных (вместо команд). Ситуация возможна из-за ошибок работы с указателями, отсутствия проверок границ массивов, ошибок перехода, вызванных, например, ошибкой в таблице адресов перехода, ошибок сегментирования памяти.

4.Ошибки обработки или интерпретации данных.

Выделяются подпункты:

  • проблемы при передаче данных между подпрограммами (сюда включены несколько видов ошибок: параметры указаны не в том порядке или пропущены, несоответствие типов данных, псевдонимы и различная интерпретация содержимого одной и той же области памяти, неправильная интерпретация данных, неадекватная информация об ошибке, перед аварийным выходом из подпрограммы не восстановлено правильное состояние данных, устаревшие копии данных, связанные переменные не синхронизированы, локальная установка глобальных данных (имеется в виду путаница локальных и глобальных переменных), глобальное использование локальных переменных, неверная маска битового поля, неверное значение из таблицы);
  • границы расположения данных (сюда включены несколько видов ошибок: не обозначен конец нуль-терминированной строки, неожиданный конец строки, запись/чтение за границами структуры данных или ее элемента, чтение за пределами буфера сообщения, чтение за пределами буфера сообщения, дополнение переменных до полного слова, переполнение и выход за нижнюю границу стека данных, затирание кода или данных другого процесса);
  • проблемы с обменом сообщений (сюда включены несколько видов ошибок: отправка сообщения не тому процессу или не в тот порт, ошибка распознавания полученного сообщения, недостающие или несинхронизированные сообщения, сообщение передано только N процессам из N+1, порча данных, хранящихся на внешнем устройстве, потеря изменений, не сохранены введенные данные, объем данных слишком велик для процесса-получателя, неудачная попытка отмены записи данных).

5.Повышенные нагрузки.

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

7.Ошибки тестирования.

Являются ошибками сотрудников группы тестирования, а не программы. Выделяются подпункты:

  • пропущенные ошибки в программе;
  • не замечена проблема (отмечаются следующие причины этого: тестировщик не знает, каким должен быть правильный результат, ошибка затерялась в большом объеме выходных данных, тестировщик не ожидал такого результата теста, тестировщик устал и невнимателен, ему скучно, механизм выполнения теста настолько сложен, что тестировщик уделяет ему больше внимания, чем результатам);
  • пропуск ошибок на экране;
  • не документирована проблема (отмечаются следующие причины этого: тестировщик неаккуратно ведет записи, тестировщик не уверен в том, что данные действия программы являются ошибочными, ошибка показалась слишком незначительной, тестировщик считает, что ошибку не будет исправлена, тестировщика просили не документировать больше подобные ошибки).

8.Ошибка выявлена и забыта.

Описываются ошибки использования результатов тестирования. По-моему, раздел следует объединить с предыдущим. Выделяются подпункты: не составлен итоговый отчет; серьезная проблема не документирована повторно; не проверено исправление; перед выпуском продукта не проанализирован список нерешенных проблем.

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

4. Меры по повышению надежности программного обеспечения

Лучшим и самым оптимальным способом (если не брать во внимание научно-технический прогресс и постоянное развитие IT-технологий, которые способствуют повышению качества характеристик программ) повышения надёжности программного обеспечения является строжайший контроль продукции на выходе с предприятия.

В последние годы сформировалась комплексная система управления качеством продукции TQM (Totaly Quality Management), которая концептуально близка к предшествующей более общей системе на основе стандартов ИСО серии 9000. Система ориентирована на удовлетворение требований потребителя, на постоянное улучшение процессов производства или проектирования, на управление процессами со стороны руководства предприятия на основе фактического состояния проекта. Основные достижения TQM состоят в углублении и дифференциации требований потребителей по реализации процессов, их взаимодействию и обеспечению качества продукции. Системный подход поддержан рядом специализированных инструментальных средств, ориентированных на управление производством продукции. Поэтому эта система пока не находит применения в области обеспечения качества жизненного цикла программных средств.

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

Активные методы повышения надежности ПС совершенствуются за счет развития средств автоматизации тестирования программ. Сложность ПС и высокие требования по их надежности требуют выработки принципов структурного построения сложных программных средств, обеспечивающих гибкость модификации ПС и эффективность их отладки. К таким принципам в работе относят:

  • модульность и строгую иерархию в структурном построении программ;
  • унификацию правил проектирования, структурного построения и взаимодействия компонент ПС;
  • унификацию правил организации межмодульного интерфейса;
  • поэтапный контроль полноты и качества решения функциональных задач.

Заключение

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

В заключение можно подвести итог:

  • В программном обеспечении имеется ошибка, если оно не выполняет того, что пользователю разумно от него ожидать;
  • Отказ программного обеспечения — это появление в нем ошибки;
  • Надежность программного обеспечения — есть вероятность его работы без отказов в течении определенного периода времени, рассчитанного с учетом стоимости для пользователя каждого отказа.

Из данных определений можно сделать важные выводы:

  • Надежность программного обеспечения является не только внутренним свойством программы;
  • Надежность программного обеспечения — это функция как самого ПО, так и ожиданий (действий) его пользователей.

Основными причинами ошибок программного обеспечения являются:

  • большая сложность ПО, например, по сравнению с аппаратурой ЭВМ;
  • неправильный перевод информации из одного представления в другое.

Список использованной литературы

  1. ГОСТ 27.002 – 89. Надежность в технике. Основные понятия. Термины и определения. // М.: Издательство стандартов, 1990.
  2. ГОСТ Р ИСО/МЭК 9126 – 93. Информационная технология. Оценка программной продукции. Характеристики качества и руководства по их применению. // М.: Издательство стандартов, 1994.
  3. ГОСТ 51901.5 – 2005. Менеджмент риска. Руководство по применению методов анализа надежности. // М.: Издательство стандартов, 2007.
  4. ГОСТ 28195 – 89. Оценка качества программных средств. Общие положения. // М.: Издательство стандартов, 1989.
  5. ГОСТ 27.310 – 95. Надежность в технике. Анализ видов, последствий и критичности отказов. // М.: Издательство стандартов, 1995.
  6. ГОСТ 51901.12 – 2007. Менеджмент риска. Метод анализа видов и последствий отказов. // М.: Издательство стандартов, 2007.
  7. Братчиков И.Л. «Синтаксис языков программирования» Наука, М.:Инси, 2005. — 344 с.
  8. Дейкстра Э. Заметки по структурному программированию.- М.:Дрофа, 2006, — 455 с.
  9. Ершов А.П. Введение в теоретическое программирование.- М.:РОСТО, 2008, — 288 с.
  10. Кнут Д. Искусство программирования для ЭВМ, т.1. М.: 2006, 735 с.
  11. Коган Д.И., Бабкина Т.С. «Основы теории конечных автоматов и регулярных языков. Учебное пособие» Издательство ННГУ, 2002. — 97 с.
  12. Липаев В. В. / Программная инженерия. Методологические основы. // М.: ТЕИС, 2006.
  13. Майерс Г. Надежность программного обеспечения.- М.:Дрофа, 2008, — 360 с.
  14. Рудаков А. В. Технология разработки программных продуктов. М.:Издательский центр «Академия», 2006. — 306 с.
  15. Тыугу, Э.Х. Концептуальное программирование. — М.: Наука, 2001, — 256 с.
  16. Хьюз Дж., Мичтом Дж. Структурный подход к программированию.-М.:Мир, 2000, — 278 с.

СПИСОК ДЛЯ ТРЕНИРОВКИ ССЫЛОК

  • Бухгалтерия предприятия (Обоснование выбора системы имитационного моделирования)
  • Бухгалтерия предприятия
  • Классификация ошибок в программном обеспечении
  • Коммерческие банки, их виды и основные направления деятельности (Общая характеристика ОАО «Сбербанк России»)
  • Формирование и использование финансовых ресурсов коммерческих организаций
  • Анализ и оценка показателей оборотных активов.
  • Управление рисками в проектной среде (Риск – менеджмент проектов)
  • Программно-целевое управление в организации (регионе) и его эффективность
  • СТАНДАРТЫ УПРАВЛЕНИЯ ПРОЕКТАМИ (Общие соображения по созданию стандарта. Специализация и детализация)
  • Методы оценки эффективности финансово-кредитных институтов (Теоретические основы эффективности деятельности банка в рыночной экономике)
  • Понятие денежной системы, генезис ее названия (Происхождение, сущность и виды денег)
  • Налоговая система РФ и проблемы еe совершенствования (Принципы налогообложения)

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

Часто в данных, с которыми необходимо работать, присутствуют пропуски, в результате чего аналитик оказывается перед выбором: игнорировать, отбросить или же заполнить пропущенные значения. Заполнение пропусков зачастую и вполне обоснованно кажется более предпочтительным решением. Однако это не всегда так.

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

Исключение и игнорирование строк с пропущенными значениями стало решением по умолчанию в некоторых популярных прикладных пакетах, в результате чего у начинающих аналитиков может возникнуть представление, что данное решение — правильное. Кроме того, существуют довольно простые в реализации и использовании методы обработки пропусков, получившие название ad-hoc методы, простота которых может послужить причиной их выбора:

  • заполнение пропусков нулями;
  • заполнение медианой;
  • заполнение средним арифметическим значением;
  • введение индикаторных переменных и тому подобное.

Вероятно, именно из-за своей простоты ad-hoc методы широко использовались на заре развития современной теории обработки пропусков. И, хотя по состоянию на сегодняшний день известно, что применение этих методов может приводить к искажению статистических свойств выборки и, как следствие, к ухудшению результатов, получаемых после такой обработки пропусков [Horton, 2007], их по-прежнему часто используют.

Так, известны статьи, посвященные сбору и оценке статистики использования методов заполнения пропусков в научных работах медицинской тематики [Burton, 2004, Karahalios, 2012, Rezvan, 2015], из результатов которых можно сделать вывод, что даже ученые часто отдают предпочтение интуитивно-понятным ad-hoc методам и игнорированию/удалению строк, несмотря на то, что применение этих методов в контексте решаемой задачи порой неуместно.

Применение ad-hoc методов и удаление строк таит в себе множество подводных камней, о которых необходимо знать каждому аналитику. В данной статье мы кратко расскажем про эти методы и укажем на основные проблемы, связанные с их использованием на практике.

Механизмы формирования пропусков

Для того чтобы понять, как правильно обработать пропуски, необходимо определить механизмы их формирования. Различают следующие 3 механизма формирования пропусков: MCAR, MAR, MNAR:

  • MCAR (Missing Completely At Random) — механизм формирования пропусков, при котором вероятность пропуска для каждой записи набора одинакова. Например, если проводился социологический опрос, в котором каждому десятому респонденту один случайно выбранный вопрос не задавался, причем на все остальные заданные вопросы респонденты отвечали, то имеет место механизм MCAR. В таком случае игнорирование/исключение записей, содержащих пропущенные данные, не ведет к искажению результатов.
  • MAR (Missing At Random) — на практике данные обычно пропущены не случайно, а ввиду некоторых закономерностей. Пропуски относят к MAR, если вероятность пропуска может быть определена на основе другой имеющейся в наборе данных информации (пол, возраст, занимаемая должность, образование…), не содержащей пропуски. В таком случае удаление или замена пропусков на значение «Пропуск», как и в случае MCAR, не приведет к существенному искажению результатов.
  • MNAR (Missing Not At Random) — механизм формирования пропусков, при котором данные отсутствуют в зависимости от неизвестных факторов. MNAR предполагает, что вероятность пропуска могла бы быть описана на основе других атрибутов, но информация по этим атрибутам в наборе данных отсутствует. Как следствие, вероятность пропуска невозможно выразить на основе информации, содержащейся в наборе данных.

Рассмотрим различия между механизмами MAR и MNAR на примере.

Люди, занимающие руководящие должности и/или получившие образование в престижном вузе чаще, чем другие респонденты, не отвечают на вопрос о своих доходах. Поскольку занимаемая должность и образование сильно коррелируют с доходами, то в таком случае пропуски в поле доходы уже нельзя считать совершенно случайными, то есть говорить о случае MCAR не представляется возможным.

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

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

Рассмотрим простые методы обработки пропусков и связанные с ними проблемы.

Удаление/игнорирование пропусков

Complete-case Analysis (он же Listwise Deletion Method) — метод обработки пропусков, применяемый во множестве прикладных пакетов как метод по умолчанию. Заключается в исключении из набора данных записей/строк или атрибутов/колонок, содержащих пропуски.

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

Кроме того, в случае второго (MAR) и, особенно, третьего механизма пропусков (MNAR) смещение статистических свойств выборки, значений параметров построенных моделей и увеличение стандартных отклонений становятся еще сильнее.

Таким образом, несмотря на широкое распространение, применение данного метода для решения практических задач ограничено.

Available-case analysis (он же Pairwise Deletion) — методы обработки, основанные на игнорировании пропусков в расчетах. Эти методы, как и Complete-case Analysis, тоже часто применяются по умолчанию.

Статистические характеристики, такие как средние значения, стандартные отклонения, можно рассчитать, используя все непропущенные значения для каждого из атрибутов/столбцов. Как и в случае Complete-case Analysis, при условии выполнения гипотезы MCAR применение данного метода не приведет к существенному искажению параметров модели.

Преимущество данного подхода в том, что при построении модели используется вся доступная информация.

Главный же недостаток данных методов заключается в том, что они применимы для расчета далеко не всех показателей и, как правило, сопряжены с алгоритмическими и вычислительными сложностями, приводящими к некорректным результатам.

Например, рассчитанные значения коэффициентов корреляции могут оказаться вне диапазона [-1; 1]. Кроме того, не всегда удается однозначно ответить на вопрос об оптимальном выборе числа отсчетов, используемого при расчете стандартных отклонений.

Приведем пример, демонстрирующий проблемы методов Available-case analysis.

Рассмотрим следующую задачу: необходимо рассчитать линейный коэффициент корреляции (коэффициент корреляции Пирсона) между двумя факторами/переменными X и Y, истинные значения которых приведены в таблице 1.

Таблица 1 — Данные без пропусков

На основе таблицы 1 определим истинные значения статистических параметров.

  • Среднее значение X = 10,8000.
  • Среднее значение Y = -10,7768.

Оценка ковариации:

  • sigma_{11} = sum X_i^2 / n — ( sum X_i / n)^2 = 37,7600,
  • sigma_{12} = sum (X_i cdot Y_i) / n — ( sum X_i cdot sum Y_i)/ n^2 = -38,1691,
  • sigma_{22} = sum Y_i^2 / n — ( sum Y_i / n)^2 = 42,6608,
  • где n — число наблюдений (n=20).

    Значение коэффициента корреляции:

    r = sigma_{12}/ sqrt{sigma_{11} cdot sigma_{22}} = -0,9510

    Рассмотрим результаты аналогичных расчетов при наличии пропусков в данных (данные представлены в таблице 2).

    Таблица 2 – Данные с пропусками

    То есть работаем с тем же набором данных (что и в таблице 1), с тем лишь отличием, что в данном случае нам неизвестны два первых значения переменной X.

    В рамках Available-case analysis подхода мы считаем среднее значение, используя всю доступную информацию, то есть для переменной X на основе 18 известных значений, а для переменной Y на основе всех 20 значений.

    Таким образом, на основе таблицы 2 получим следующие результаты:

    • среднее значение X = 11,8889,
    • среднее значение Y = -10,7768,

    Оценка ковариации:

    • sigma_{11} = 30,0988,
    • sigma_{12} = -43,6174,
    • sigma_{22} = 60,2952.

    В расчетах использовалось n наблюдений, для которых известны как значения X, так и Y (n=18).

    Значение коэффициента корреляции:

    r = -1,0239.

    Таким образом, расчет среднего значения на основе подхода Available-case Analysis привел к смещению данного значения, что, в свою очередь, проявилось в рассчитанном значении коэффициента корреляции, меньшем -1. Таким образом, рассчитанное значение вышло за пределы теоретически возможного диапазона [-1; 1], что противоречит физическому смыслу.

    Если же рассчитать значение коэффициента корреляции в рамках подхода Complete-case Analysis, то получим значение коэффициента корреляции -0,9311.

    Когда гипотеза MCAR не выполняется, методы Available-case analysis, так же, как и методы Complete-case Analysis, приводят к существенным искажениям статистических свойств выборки (среднего значения, медианы, вариации, корреляции…).

    К недостаткам первых двух методов обработки пропусков (Complete-case Analysis и Available-case analysis) относится и то, что далеко не всегда исключение строк в принципе приемлемо. Нередко процедуры последующей обработки данных предполагают, что все строки и колонки участвуют в расчетах (например, когда пропусков в каждой колонке не очень много, но при этом строк, в которых нет ни одного пропущенного поля, мало).

    Далее в данной статье мы рассмотрим методы, которые предполагают заполнение пропусков на основе имеющейся информации. Часто эти методы объединяют в одну группу, называемую Single-imputation methods.

    Заполнение пропуска средним значением

    Заполнение пропуска средним значением (Mean Substitution) (другие варианты: заполнение нулем, медианой и тому подобные) — название метода говорит само за себя.

    Всем вариантам данного метода свойственны одни и те же недостатки. Рассмотрим эти недостатки на примере одного из наиболее простых способов заполнить пропуски непрерывной характеристики: заполнения пропусков средним арифметическим значением и модой.

    Пример 1. На рисунке 1 показано распределение значений непрерывной характеристики до заполнения пропусков средним значением и после него.

    Рисунок 1a — Распределение значений непрерывной характеристики до заполнения пропусков

    Рисунок 1б — Распределение значений непрерывной характеристики после заполнения пропусков

    На рисунке 1 хорошо видно, что распределение после заполнения пропусков выглядит крайне неестественно. Это в итоге проявляется в искажении всех показателей, характеризующих свойства распределения (кроме среднего значения), заниженной корреляции и завышенной оценке стандартных отклонений.

    Таким образом, данный метод приводит к существенному искажению распределения характеристики даже в случае MCAR.

    Пример 2. В случае категориальной дискретной характеристики наиболее часто используется заполнение модой.

    На рисунке 2 показано распределение категориальной характеристики до и после заполнения пропусков.

    Рисунок 2а — Распределение дискретной характеристики до заполнения пропусков модой

    Рисунок 2б — Распределение дискретной характеристики после заполнения пропусков модой

    Таким образом, при заполнении пропусков категориальной характеристики модой проявляются те же недостатки, что и при заполнении пропусков непрерывной характеристики средним арифметическим (нулем, медианой и тому подобным).

    Повторение результата последнего наблюдения

    LOCF (Last observation carried forward) — повторение результата последнего наблюдения. Данный метод применяется, как правило, при заполнении пропусков во временных рядах, когда последующие значения априори сильно взаимосвязаны с предыдущими.

    Рассмотрим 2 случая, когда применение LOCF обосновано.

    Случай 1. Если мы измеряем температуру воздуха в некоторой географической точке на открытом пространстве, причем измерения проводятся каждую минуту, то при нормальных условиях — если исключить природные катаклизмы — измеряемая величина априори не может резко (на 10–20 °C) измениться за столь короткий интервал времени между последующими измерениями. Следовательно, заполнение пропусков предшествующим известным значением в такой ситуации обоснованно.

    Случай 2. Если данные представляют собой результаты измерения (допустим, той же температуры воздуха) в один и тот же момент времени в близких географических точках таким образом, что гипотеза о малых изменениях значений от одной точки набора данных до другой остается справедливой, то опять же использование LOCF логично.

    Ситуации, когда использование LOCF обосновано, не ограничиваются только этими двумя случаями.

    Хотя в описанных выше ситуациях метод логичен и обоснован, он тоже может привести к существенным искажениям статистических свойств даже в случае MCAR [Molenberghs, 2007]. Так, возможна ситуация, когда применение LOCF приведет к дублированию выброса (заполнению пропусков аномальным значением). Кроме того, если в данных много последовательно пропущенных значений, то гипотеза о небольших изменениях уже не выполняется и, как следствие, использование LOCF приводит к неправильным результатам.

    Indicator Method

    Indicator Method — метод, предполагающий замену пропущенных значений нулями и добавление специального атрибута-индикатора, принимающего нулевые значения для записей, где данные изначально не содержали пропусков, и ненулевые значения там, где ранее были пропуски [Miettinen, 1985].

    Проще и нагляднее продемонстрировать данный метод на примере.

    Пример. В таблице 3 приведены данные до заполнения пропусков.

    Таблица 3 — Данные до заполнения пропусков

    Знаком ? обозначены пропуски в наборе данных.

    В таблице 4 приведены данные после заполнения пропусков.

    Таблица 4 —Таблица после заполнения пропусков

    На практике применяются и модификации этого метода, предполагающие заполнение пропусков ненулевыми значениями. Стоит отметить, что при таком заполнении (например, средним) допустимо использование инверсных значений поля флагов (то есть 0 — для случая, когда в исходных данных значения изначально были пропущены, и ненулевое значение для случаев, когда значение поля исходных данных было известно).

    Также при заполнении пропусков ненулевыми значениями часто добавляется взаимодействие поля-флага и исходного поля.

    К преимуществам данного метода относятся:

    1. Использование всего набора данных (репрезентативность выборки не страдает).
    2. Явное использование информации о пропущенных значениях.

    Несмотря на эти преимущества, даже при выполнении гипотезы MCAR и небольшом числе пропущенных значений данный метод может привести к существенному искажению результатов [Vach, 1991, Knol, 2010].

    Восстановление пропусков на основе регрессионных моделей

    Данный метод заключается в том, что пропущенные значения заполняются с помощью модели линейной регрессии, построенной на известных значениях набора данных.

    На рисунке 3 показан пример результатов заполнения пропущенных значений характеристики 1 на основе известных значений характеристики 2.

    Рисунок 3 — Заполнение пропусков на основе линейной регрессии

    Метод линейной регрессии позволяет получить правдоподобно заполненные данные. Однако реальным данным свойственен некоторый разброс значений, который при заполнении пропусков на основе линейной регрессии отсутствует. Как следствие, вариация значений характеристики становится меньше, а корреляция между характеристикой 2 и характеристикой 1 искусственно усиливается. В результате данный метод заполнения пропусков становится тем хуже, чем выше вариация значений характеристики, пропуски в которой мы заполняем, и чем выше процент пропущенных строк.

    Стоит отметить, что есть метод, решающий эту проблему: метод стохастической линейной регрессии, проиллюстрированный на рисунке 4 (аналогично рисунку 3).

    Рисунок 4 — заполнение пропусков на основе стохастической линейной регрессии

    Модель стохастической линейной регрессии отражает не только линейную зависимость между характеристиками, но и отклонения от этой линейной зависимости. Этот метод обладает положительными свойствами заполнения пропусков на основе линейной регрессии и, кроме того, не так сильно искажает значения коэффициентов корреляции.

    Из всех методов, которые мы рассмотрели в данной части статьи, заполнение пропусков с помощью стохастической линейной регрессии в общем случае приводит к наименьшим искажениям статистических свойств выборки. А в случае когда между характеристиками прослеживаются явно выраженные линейные зависимости, метод стохастической линейной регрессии нередко превосходит даже более сложные методы.

    Подводя итоги

    В представленной статье мы рассмотрели простые методы заполнения пропусков. Хотя применение этих методов может приводить к существенному искажению статистических свойств набора данных (среднее значение, медиана, вариация, корреляция…) даже в случае MCAR, они остаются часто используемыми не только среди обычных пользователей, но и в научной среде (как минимум в областях, связанных с медициной).

    Так, согласно [Burton, 2004], из 100 работ, посвященных проблеме раковых заболеваний, которые были опубликованы в 2002 году, в 82% случаев авторы указали, что столкнулись с необходимостью заполнения пропусков в данных. При этом в 32 случаях был явно указан метод заполнения пропусков. В 12 из этих 32 работ использовался Complete Case Analysis, еще в 12 — Available Case Analysis, в 4 — Indicator Method, в 3— ad-hoc методы, и только в 1 случае использовался более сложный метод.

    Спустя десятилетие ситуация не сильно изменилась к лучшему. [Karahalios, 2012] пишут, что среди рассмотренных ими научных трудов в 54% случаев (в 21 статье) использовался Complete Case Analysis, в 7 случаях – LOCF, в 3 случаях – заполнение средним значением, в 1 случае — Indicator Method.

    И даже по состоянию на 2014 год рекомендуемые к использованию методы заполнения пропусков (Multiple Imputation, методы функции максимального правдоподобия) в научных статьях медицинской тематики по-прежнему применяются редко [Rezvan, 2015].

    В качестве заключения хотелось бы отметить, что использование простых методов, таких как удаление строк или применение ad-hoc методов, не всегда приводит к ухудшению результатов. Более того, когда это уместно, использование простых методов более предпочтительно.

    Литература

    • [Burton, 2004] — Burton A., Altman D. G. Missing covariate data within cancer prognostic studies: A review of current reporting and proposed guidelines. British Journal of Cancer, 2004, 91(1):4–8.
    • Wa[Horton, 2007] — Horton N.J., Kleinman K.P. Much ado about nothing: A comparison of missing data methods and software to fit incomplete data regression models. Am. Stat. 2007; 61: pp 79–90.
    • [Karahalios, 2012] — Karahalios A., Baglietto L., Carlin J.B., English D.R., Simpson J.A. A review of the reporting and handling of missing data in cohort studies with repeated assessment of exposure measures. BMC Med Res Methodology, 2012;12:96.
    • [Knol, 2010] — Knol, M. J., Janssen, K. J. M., Donders, A. R. T., Egberts, A. C. G., Heerdink, E. R., Grobbee, D. E., Moons, K. G. M., and Geerlings, M. I. (2010). Unpredictable bias when using the missing indicator method or complete case analysis for missing confounder values: an empirical example. Journal of Clinical Epidemiology, 63: pp 728–736.
    • [Miettinen, 1985] — Miettinen, O. S. Theoretical Epidemiology: Principles of Occurrence Research in Medicine. John Wiley & Sons, New York. 1985, p. 232.
    • [Molenberghs, 2007] — Molenberghs, G. and Kenward, M. G. Missing Data in Clinical Studies. John Wiley & Sons, Chichester, UK. 2007 — pp. 47-50.
    • [Rezvan, 2015] — Panteha Hayati Rezvan, Katherine J Lee, Julie A Simpson -The rise of multiple imputation: a review of the reporting and implementation of the method in medical research. BMC Medical Research Methodology, 15(30), pp 1–14.
    • [Vach, 1991] — Vach, W. and Blettner, M. (1991). Biased estimation of the odds ratio in case-control studies due to the use of ad hoc methods of correcting for missing values for confounding variables. American Journal of Epidemiology, 134(8), pp 895–907.
    • [Van Buuren, 2012] — Van Buuren S. Flexible Imputation of Missing Data. Chapman and Hall/CRC; 1 ed., 2012 — 342 p.

    Другие материалы по теме:

    Loginom Data Quality. Очистка клиентских данных. Деморолик

    Как найти и объединить дубли клиентов

Глава 5. Качество и эффективность информационных систем

Качество информационной системы — это совокупность свойств системы, обусловливающих возможность ее использования для удовлетворения определенных в соответствии с ее назначением потребностей. Количественные характеристики этих свойств определяются показателями.

Основными показателями качества информационных систем являются надежность, достоверность, безопасность.

Надежность — свойство системы сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения.

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

Достоверность функционирования — свойство системы, обусловливающее безошибочность производимых ею преобразований информации. Достоверность функционирования информационной системы полностью определяется и измеряется достоверностью ее выходной информации.

Безопасность информационной системы — свойство, заключающееся в способности системы обеспечить конфиденциальность и целостность информации, то есть защиту информации от несанкционированного доступа с целью ее раскрытия, изменения или разрушения.

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

Кардинальным обобщающим показателем является экономическая эффективность системы, характеризующая целесообразность произведенных на создание и функционирование системы затрат.

Надежность информационных систем

Надежность — важнейшая характеристика качества любой системы, поэтому разработана специальная теория — теория надежности.

Теория надежности может быть определена как научная дисциплина, изучающая закономерности, которых следует придерживаться при разработке и эксплуатации систем для обеспечения оптимального уровня их надежности с минимальными затратами ресурсов.

Надежность — характеристика временная, она может быть ориентирована либо в прошлое, либо в будущее время и не допускает «точечных» во времени оценок. Иными словами, надежность — это свойство системы «штатно» функционировать во времени.

Надежность — комплексное свойство системы; оно включает в себя более простые свойства, такие как безотказность, ремонтопригодность, долговечность и т. д.

Безотказность — свойство системы сохранять работоспособное состояние в течение некоторого времени или наработки (наработка — продолжительность или объем работы системы).

Ремонтопригодность — свойство системы, заключающееся в приспособленности к предупреждению и обнаружению причин возникновения отказов, повреждений и поддержанию и восстановлению работоспособного состояния путем проведения технического обслуживания и ремонтов.

Долговечность — свойство системы сохранять при установленной системе технического обслуживания и ремонта работоспособное состояние до наступления предельного состояния, то есть такого момента, когда дальнейшее использование системы по назначению недопустимо или нецелесообразно.

Одним из основных понятий теории надежности является отказ. Отказом называют полную или частичную потерю работоспособности системы или ее элемента. Отказы бывают: внезапные и постепенные, зависимые и независимые, полные и частичные, устойчивые и самоустраняющиеся, аппаратные и программные и т. п.

Устойчивый отказ обусловливает длительную неработоспособность системы и устраняется только в результате ее технического обслуживания, то есть выполнения специальных мер, принятых для восстановления работоспособности системы. Самоустраняющийся отказ (обычно его называют

сбоем) — отказ, имеющий кратковременный характер и самоустраняющийся произвольно, без принятия специальных мер для его устранения. Ряд сбоев одного и того же характера, следующих друг за другом, называют перемежающимся отказом.

Аппаратный отказ обусловлен нарушением работоспособности технического элемента системы, соответственно эргатический – эргатического элемента, программный — программного элементов системы. В соответствии с приведенной классификацией отказов можно рассматривать и надежность:

аппаратную;

эргатическую;

программную.

Вмногофункциональных системах часто вводят понятие функциональной надежности выполнения локальной функции системы. Это понятие важно тогда, когда разные функции системы различны по значимости, обеспечиваются различными подсистемами и дифференцируются по предъявляемым к ним требованиям.

Все системы в теории надежности классифицируются по ряду признаков. Важными классификационными группами являются:

восстанавливаемые;

невосстанавливаемые;

обслуживаемые;

необслуживаемые системы.

Восстанавливаемой называется такая системы, работоспособность которой в случае возникновения отказа подлежит восстановлению. Невосстанавливаемая система — такая система, работоспособность которой в случае отказа восстановлению не подлежит.

Обслуживаемая система — система, для которой предусматривается проведение регулярного технического обслуживания. Необслуживаемая система — система, для которой не предусматривается проведение регулярного технического обслуживания.

Информационные и вычислительные системы первых поколений, за редким исключением, относятся к восстанавливаемым обслуживаемым системам. Многие современные вычислительные системы относятся к необслуживаемым восстанавливаемым системам (например персональные компьютеры) и даже к необслуживаемым и невосстанавливаемым системам (отдельные узлы вычислительных систем, например микропроцессор).

Основные показатели надежности

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

Ниже приводятся наименования основных показателей надежности систем и их определения в соответствии с ГОСТ 27.002-80 «Надежность в технике. Термины и определения».

Единичные показатели надежности

К единичным показателям надежности в соответствии с ГОСТ 27.002-80 относятся показатели безотказности, показатели ремонтопригодности и показатели долговечности.

Показатели безотказности

1.Вероятность безотказной работы — вероятность того, что в пределах заданной наработки отказ системы не возникнет.

2.Вероятность отказа — обратная величина, вероятность того, что в пределах заданной наработки отказ системы возникнет.

3.Средняя наработка до отказа — математическое ожидание наработки системы до первого отказа (существенно для невосстанавливаемых систем).

4.Средняя наработка на отказ (То, MTBF — Main Time Between Failures) — отношение наработки восстанавливаемой системы к математическому ожиданию числа ее отказов в пределах этой наработки (имеет смысл только для восстанавливаемых систем).

5.Интенсивность отказов — условная плотность вероятности возникновения отказа невосстанавливаемой системы, определяемая для рассматриваемого момента времени при условии, что до этого момента отказ не возник.

6.Параметр потока отказов (X(t)) — отношение среднего числа отказов для восстанавливаемой системы за произвольно малую ее наработку к значению этой наработки.

Показатели ремонтопригодности

1.Вероятность восстановления работоспособного состояния — вероятность того, что время восстановления работоспособного состояния не превысит заданного.

2.Среднее время восстановления работоспособного состояния (Tв) — математическое ожидание времени восстановления работоспособного состояния системы.

Показатели долговечности

1.Средний ресурс — математическое ожидание наработки системы от начала ее эксплуатации или ее возобновления после ремонта до перехода в предельное состояние.

2.Срок службы (Tcc) — календарная продолжительность от начала эксплуатации системы или ее возобновления после ремонта до перехода в предельное состояние.

Комплексные показатели надежности

1.Коэффициент готовности (Кг) — вероятность того, что система окажется в работоспособном состоянии в произвольный момент времени, кроме планируемых периодов, в течение которых применение системы по назначению не предусматривается

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

3.Коэффициент технического использования — отношение математического ожидания интервалов времени пребывания системы в работоспособном состоянии за некоторый период эксплуатации к сумме математических ожиданий интервалов времени пребывания системы в работоспособном состоянии, простоев, обусловленных техническим обслуживанием, и ремонтов за тот же период эксплуатации

где Тп — время простоя системы, обусловленное выполнением планового технического обслуживания и ремонта (время профилактики), пересчитанное на один отказ.

4.Коэффициент сохранения эффективности — отношение значения показателя эффективности за определенную продолжительность эксплуатации к номинальному значению этого показателя, вычисленному при условии, что отказы в системе в течение того же периода эксплуатации не возникают.

Коэффициент сохранения эффективности характеризует степень влияния отказов в системе на эффективность ее применения по назначению. Из ранее приведенного определения теории надежности следует, что коэффициент сохранения эффективности может служить интегральным критерием оптимизации надежности системы. Действительно, критерий оптимизации — это показатель, для кото­ рого указана желаемая его величина или желаемое направление его изменения. Направление изменения коэффициента сохранения правильно выбранного показателя эффективности определяет основные ориентиры в поиске свойств системы, которые обеспечивают ее оптимальную надежность.

Для пользователей сложных информационных систем понятие их надежности ощущается в наибольшей степени по коэффициенту готовности системы, то есть по отношению времени

работоспособного состояния системы к времени ее незапланированного простоя. Для типичного современного сервера Кг = 0,99, что означает примерно 3,5 суток простоя в год. Часто используется следующая классификация систем по уровню надежности:

Коэффициент

Максимальное время

Тип системы

готовности

простоя в год

0,99

3,5

сут.

Обычная (Conventional)

0,999

8,5

ч

Высокой надежности (Hight availability)

0,9999

1

ч

Отказоустойчивая (Fault resilient)

0,99999

5

мин.

Безотказная (Fault tolerant)

Обеспечение надежности функционирования ИС

Информационная система — это сложная человеко-машинная система, включающая в свой состав эргатические звенья, технические средства и программное обеспечение. Все методы обеспечения надежности и достоверности ИС можно отнести к двум классам. Один включает в себя методы, обеспечивающие безошибочность (безотказность, бессбойность) функциональных технических, эргатических и программных звеньев ИС, то есть, в конечном счете, повышающие их надежность. Другой

— методы, обеспечивающие обнаружение и исправление ошибок, возникающих в информации, то есть методы контроля достоверности информации и ее коррекции, косвенно также повышающие функциональную надежность системы.

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

Виды обеспечения надежности

Для построения надежных информационных систем можно использовать различные виды обеспечения:

экономическое;

временное;

организационное;

структурное;

технологическое;

эксплуатационное;

социальное;

эргатическое;

алгоритмическое;

синтаксическое;

семантическое.

Обеспечение можно определить как совокупность факторов (элементов, методов, приемов, процедур, ресурсов и т. п.), способствующих достижению поставленной цели. Экономическое и временное обеспечения, обусловливаемые необходимостью соответственно материальных и временных затрат, используются для реализации процедур обеспечения достоверности. Организационное, эксплуатационное, техническое, социальное и эргатическое обеспечения применяются преимущественно для повышения надежности систем, а структурное и алгоритмическое обеспечения — для обоих классов методов.

Организационное обеспечение включает в себя вопросы разработки:

правовых и методических аспектов функционирования ИС;

нормативов достоверности информации по функциональным подсистемам и этапам преобразования информации;

методики выбора и обоснования оптимальных структур, процессов и процедур

преобразования информации и т. д.

Назначением структурного обеспечения является повышение надежности функционирования технических комплексов и эргатических звеньев, а также ИС в целом. Должно быть обосновано рациональное построение структуры ИС, непосредственно зависящее от качества решения таких вопросов, как выбор структуры технологического процесса преобразования информации, обеспечение

обоснованных взаимосвязей между отдельными звеньями системы, резервирование элементов, узлов, устройств системы и использование специальных устройств, осуществляющих процедуры аппаратного контроля и т. д.

Технологическое и эксплуатационное обеспечения предназначены для повышения надежности работы технических средств и технологических комплексов. Технологическое обеспечение включает в себя выбор схемных и конструктивных решений применения отдельных технических устройств, технологий и протоколов реализации информационных процессов. Эксплуатационное обеспечение связано с выбором режимов работы устройств, технологий профилактического их обслуживания.

Социальное и эргатическое обеспечения имеют своим назначением повышение надежности работы эргатических структурных звеньев системы. Поскольку подавляющее большинство ошибок в информации возникает как раз из-за функциональной ненадежности именно этих звеньев (человеческого фактора), в литературе особенности их работы рассмотрены весьма обстоятельно. Различают пять видов причин ошибок, возникающих в эргатических звеньях:

психологические — неадекватность восприятия информации, выработка и реализация неоптимальной стратегии;

мотивационные — неправильная постановка задачи, несогласованность целей субъекта с целями управления;

эмоциональные — неустойчивые изменения преобразующих свойств субъекта от внешних и внутренних причин;

интуитивные — неформализованный в сознании субъекта опыт, отражающий реальную ситуацию нерелевантно;

эволюционные — устойчивые изменения преобразующих свойств субъекта в результате

обучения или забывания.

Указанные причины могут привести к субъективным ошибкам трех типов:

потере части полезной информации;

внесению дополнительной (полезной или вредной) информации, не содержащейся в исходном сообщении;

неадекватному преобразованию информации.

Ксоциальному обеспечению относятся, например, такие факторы, как создание здоровой психологической обстановки в коллективе, повышение ответственности за выполненную работу, повышение квалификации специалистов, увеличение моральной и материальной заинтересованности в правильности выполнения работы. Особенно важно обеспечить согласованность целей субъекта с целями управления: лишь тогда, когда работник заинтересован в получении объективных, достоверных данных, они могут быть получены.

Эргатическое обеспечение включает в себя комплекс факторов, связанных с рациональной организацией работы человека в системе. Это, в первую очередь, правильное распределение функций между людьми и техническими средствами, обоснованность норм и стандартов работы, оптимальность интенсивности и ритмичности, построение рабочих мест в соответствии с требованиями эргономики.

Алгоритмическое обеспечение широко применяется для повышения надежности системы (обеспечение высокого качества и безошибочности алгоритмов и программ преобразования информации) и для реализации контроля достоверности информации.

Информационное синтаксическое и семантическое обеспечения заключаются во введении в ИС специальной информационной избыточности, соответственно, избыточности данных и смысловой избыточности, обусловливающих возможность проведения контроля достоверности информации.

Практическая реализация надежных информационных систем

Обеспечение надежности технических компонентов информационных систем чаще всего реализуется аппаратным и программным способами.

Впервом случае ИС использует аппаратную избыточность:

все операции выполняются параллельно на одинаковых компонентах системы, а результаты их работы затем сравниваются, что позволяет выявить ошибки;

в случае выхода из строя какого-либо компонента его резервные аналоги продолжают

работу без остановки, а отказавший компонент заменяется на работоспособный. Программный способ предусматривает:

последовательное во времени выполнение одних и тех же информационных процессов и дублирование данных;

автоматическое восстановление отказавших операционных систем, приложений и

искаженных данных.

На сегодняшний день разработано много конкретных практических способов повышения надежности информационных систем.

Для обеспечения надежности технических средств чаще всего производится:

резервирование (дублирование) технических средств (компьютеров и их компонентов, сегментов сетей и т. д.);

использование стандартных протоколов работы устройств ИС;

применение специализированных технических средств защиты информации.

Для обеспечения надежности функционирования программного комплекса И С требуется:

тщательное тестирование программ, опытное исполнение программы с целью обнаружения в ней ошибок (обязательное условие эффективного тестирования — по крайней мере один раз выполнить все разветвления программы в каждом из возможных направлений);

использование стандартных протоколов, интерфейсов, библиотек процедур, лицензионных программных продуктов;

использование структурных методов для обеспечения надежной работы программных комплексов (иерархическое построение программ, разбиение программ на сравнительно независимые модули и т. д.);

изоляция параллельно работающих процессов, в результате чего ошибки в работе одной

программы не влияют на работу операционной системы и других программ. Контрольные точки (точки рестарта, точки отката) — место повторного запуска программы при

аварийном ее завершении. В контрольных точках обычно выполняются: внесение изменений в БД (в том числе всех изменений, ожидающих своей очереди — неоперативные файлы), разблокирование всех файлов, на обращение к которым был наложен запрет, запись информации о контрольной точке в системный журнал.

Использование массивов RAID (Redundant Array of Inexpensive Disks — избыточный массив недорогих дисков) существенно уменьшает риск простоя системы из-за отказов накопителей на магнитных дисках, которые являются одним из наименее надежных компонентов современных компьютеров.

Вкачестве наиболее эффективных мер комплексного обеспечения надежности ИС можно назвать кластеризацию компьютеров и использование отказоустойчивых компьютеров.

Кластер — это несколько компьютеров (узлов кластера), соединенных коммуникационными каналами и разделяющих общие ресурсы. Кластер имеет общую файловую систему и пользователем воспринимается как единый компонент. Надежность работы кластера обеспечивается программами, регулирующими скоординированное использование общекластерных ресурсов, обмен информацией между узлами кластера, и осуществляющими взаимный контроль работоспособности этих узлов. Отличительной особенностью кластера является то, что каждый его работающий компьютер может взять на себя дополнительную нагрузку отказавшего узла. Кластерные системы разрабатываются многими известными фирмами (IBM, Hewlett-Packard, DEC и т. д.). Все известные кластерные решения обеспечивают высокую готовность системы (коэффициент готовности до 0,999 — high availability), возможность наращивания производительности за счет установки нового оборудования или замены устаревшего. Кластерные системы используют специальные программы, осуществляющие оптимальное распределение ресурсов и удобное администрирование.

Например, компания IBM разработала кластерную систему для четырех или пяти компьютеров IBM RISC System/6000, реализующую следующие стратегии:

один компьютер находится в постоянной готовности и подстраховывает три других работающих компьютера;

работают четыре компьютера, а пятый, дополнительный компьютер подстраховывает остальные;

работают четыре компьютера, и в случае отказа одного из них нагрузка пере­ распределяется между тремя работоспособными;

четыре компьютера работают одновременно с одними и теми же общими данными (отказоустойчивый вариант кластера).

Вотличие от кластерных отказоустойчивые системы упор делают на аппаратное обеспечение надежности и гарантируют не просто сокращение времени простоя (увеличение коэффициента

готовности), а вообще предотвращение и исключение возможности появления таких простоев. В основу архитектуры отказоустойчивых систем заложено дублирование, в том числе и многократное, технических компонентов.

В отказоустойчивых компьютерах любая команда выполняется одновременно на всех дублированных компонентах, и результаты выполнения команд сравнива-ются. Окончательное решение принимается по принципу мажоритирования (по большинству одинаковых результатов). Каждый из продублированных компонентов продолжает работу и в случае отказа одного из его дублей таким образом, что система не замечает этого отказа и на ее функционировании это не отражается. Но отказавший компонент идентифицируется и замещается в режиме «горячей замены», то есть без отключения системы.

Достоверность информационных систем

В силу специфики информационных систем, которые априори предназначены для преобразования информации, важнейшим их свойством является достоверность функционирования.

Достоверность функционирования — это свойство системы, обуславливающее безошибочность производимых ею преобразований информации.

Достоверность функционирования ИС полностью определяется и измеряется достоверностью ее результирующей информации. Для ИС достоверность функционирования является не просто одним из свойств их надежности, но приобретает и самостоятельное значение, поскольку именно достоверность конечной информации обусловливает требования к надежности системы.

Как уже указывалось, надежность ИС — не самоцель, а лишь средство обеспечения оптимальной достоверности ее выходной информации, обуславливающей наивысшую эффективность функционирования системы.

Достоверность информации — это свойство информации отражать реально существующие объекты с необходимой точностью. Достоверность (D) информации измеряется доверительной вероятностью необходимой точности, то есть вероятностью того, что отражаемое информацией значение параметра отличается от истинного значения этого параметра в пределах необходимой точности:

D = P{ О[ n ] }

где — реальная точность отображения параметра, [Δn ] — диапазон необходимой точности отображения параметра.

Для более полного понимания вышеприведенного определения следует пояснить некоторые присутствующие в нем понятия.

Истинная информация — информация, объективно, точно и правильно отражающая характеристики и признаки какого-либо объекта или явления (адекватная заданному параметру объекта).

Точность информации — это характеристика, показывающая степень близости отображаемого значения параметра и истинного его значения.

Необходимая точность определяется функциональным назначением информации и должна обеспечивать правильность принятия управленческих решений.

Таким образом, при оценке истинности информации существуют две основные вероятностные задачи:

определение точности информации или расчет математического ожидания абсолютной величины отклонения значения показателя от объективно существующего истинного значения отображаемого им параметра;

определение достоверности информации или вычисление вероятности того, что

погрешность показателя не выйдет за пределы допустимых значений.

Адекватность отражения включает в себя понятия и точности, и достоверности, которые не должны смешиваться.

Из сказанного следует, что нарушение надежности ИС, приводящее к ухудшению точности результирующей информации в пределах необходимой точности, не снижает эффективности функционирования системы (коэффициента сохранения эффективности). И если отсутствие

информации в положенное время (ее несвоевременность) трактовать в обобщенном виде как наличие недостоверной информации, то единственным показателем качества информации, зависящим от надежности ИС и влияющим на эффективность ее функционирования, является достоверность.

Показатели достоверности информации

Достоверность информации может рассматриваться с разных точек зрения. Поэтому для достоверности правомерно и целесообразно использовать систему показателей.

Единичные показатели достоверности информации

1.Доверительная вероятность необходимой точности (достоверность) — D = 1 – Рош Вероятность того, что в пределах заданной наработки (информационной совокупности

— массива, показателя, реквизита, кодового слова, символа или иного информационного компонента) отсутствуют грубые погрешности, приводящие к нарушению необходимой точности.

2.Средняя наработка информации на ошибку — Q = 1/Р. Отношение объема информации, преобразуемой в системе, к математическому ожиданию количества ошибок, возникающих в информации.

3.Вероятность ошибки (параметр потока ошибок) — (Рош) Вероятность появления ошибки в очередной информационной совокупности.

Показатели корректируемости информационных систем

1.Вероятность коррекции в заданное время — Ркорр (τ)— вероятность того, что время, затрачиваемое на идентификацию и исправление ошибки, не превысит заданного т.

2.Среднее время коррекции информации — Ти — математическое ожидание времени, затрачиваемого на идентификацию и исправление ошибки.

Комплексные показатели достоверности

1. Коэффициент информационной готовности — это вероятность того, что информационная система окажется способной к преобразованию информации в произвольный момент времени того периода (Траб), который планировался для этого преобразования, то есть выполнения условия, что в данный момент времени система не будет находиться в состоянии внепланового обслуживания, вызванного устранением отказа или идентификацией и исправлением ошибки.

КИГ =

Т раб − (ТВ ТИ )

Т раб

2. Коэффициент информационного технического использования — это отношение математического ожидания планируемого времени работы системы на преобразование информации, за вычетом времени восстановления, контроля, идентификации и исправления ошибок, к сумме плани­ руемого времени работы системы и профилактического обслуживания.

КТИ =

Т раб − (ТВ + ТК + ТИ )

Т раб + Тпф

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

Обеспечение достоверности информации

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

Классификация методов контроля достоверности по назначению

По назначению следует различать профилактический, рабочий и генезисный контроль. Профилактический контроль и, например, одна из наиболее распространенных его форм —

тестовый контроль, предназначены для выявления состояния системы в целом и отдельных ее звеньев до включения системы в рабочий режим. Целью профилактического контроля, осуществляемого часто в утяжеленном режиме работы системы, является выявление и прогнозирование неисправностей в ее работе с последующим их устранением.

Рабочий контроль, или контроль в рабочем режиме, производится в процессе выполнения системой возложенных на нее функций. Он, в свою очередь, может быть разделен на функциональный контроль и контроль качества продукции. Функциональный контроль может преследовать цель либо только проверки работоспособности (отсутствия неисправностей) системы, либо, кроме того, установ­ ления места и причины неисправности (диагностический контроль). Контроль качества продукции в нашем случае как раз и является контролем достоверности информации как одним из важнейших показателей качества продукции выпускаемой ИС.

Генезисный контроль проводится для выяснения технического состояния системы в прошлые моменты времени с целью определения причин сбоев и отказов системы, имевших место ранее, сбора статистических данных об ошибках, их характере, величине и последствиях (экономических потерях) этих ошибок для И С.

Классификация методов контроля достоверности по уровню исследования

По уровню исследования информации контроль может быть синтаксический, семантический и прагматический.

Синтаксический контроль — это, по существу, контроль достоверности данных, не затрагивающий содержательного, смыслового аспекта информации. Предметом синтаксического контроля являются отдельные символы, реквизиты, показатели: допустимость их наличия, допустимость их кодовой структуры, взаимных сочетаний и порядка следования.

Семантический контроль оценивает смысловое содержание информации, ее логичность, непротиворечивость, согласованность, диапазон возможных значений параметров, отражаемых информацией, динамику их изменения.

Прагматический контроль определяет потребительную стоимость (полезность, ценность) информации для управления, своевременность и актуальность информации, ее полноту и доступность.

Классификация методов контроля достоверности по способу реализации

По способу реализации контроль может быть организационным, программным, аппаратным и комбинированным.

Организационный контроль достоверности является одним из основных в ИС. Он представляет собой комплекс мероприятий, предназначенных для выявления ошибок на всех этапах участия эргатического звена в работе системы, причем обязательным элементом этих мероприятий является человек или коллектив людей.

Программный контроль основан на использовании специальных программ и логических методов проверки достоверности информации или правильности работы отдельных компонентов системы и всей

системы в целом. Программный контроль, в свою очередь, подразделяется на программно-логический, алгоритмический и тестовый.

Программно-логический контроль базируется на использовании синтаксической или семантической избыточности; алгоритмический контроль использует как основу вспомогательный усеченный алгоритм преобразования информации, логически связанный с основным рабочим алгоритмом (тестовый контроль был рассмотрен чуть выше).

Аппаратный контроль реализуется посредством специально встроенных в систему дополнительных технических схем. Этот вид контроля также подразделяется на непрерывный и оперативный (аппаратно-логический) контроль достоверности, а также непрерывный контроль работоспособности.

Непрерывный контроль достоверности функционирует непрерывно в процессе работы системы параллельно с процедурами основного технологического процесса преобразования информации. Во время оперативного (аппаратно-логического) контроля достоверности выполнение основных технологических операций над информацией приостанавливается. Непрерывный контроль работоспособности — это уже не контроль достоверности информации, а контроль значений па­ раметров компонентов системы с помощью встроенных в них датчиков.

Классификация методов контроля достоверности по степени выявления и коррекции ошибок

По степени выявления и коррекции ошибок контроль делится на:

обнаруживающий, фиксирующий только сам факт наличия или отсутствия ошибки;

локализующий, позволяющий определить как факт наличия, так и место ошибки (например символ, реквизит и т. д.);

исправляющий, выполняющий функции и обнаружения, и локализации, и исправления

ошибки.

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

Втехнических системах корректирующие коды получили чрезвычайно широкое применение: в настоящее время, вероятно, нет ни одной эффективно функционирующей сложной технической информационной системы, где бы многократно не использовались эти коды. В современных компьютерах, например, на основе кодов с обнаружением и кодов с автоматическим исправлением ошибок строится весьма разветвленный контроль достоверности многих блоков (ранее уже упо­ миналось об использовании в накопителях CD и DVD корректирующих кодов Рида-Соломона, в дисковых массивах RAID — циклических кодов с исправлением ошибок, в технологии SMART и в модулях оперативной памяти — кодов Хэмминга с исправлением ошибок и т. д.).

Вэрготехнических компонентах ИС чаще используются обнаруживающие ошибки коды, а коды

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

Безопасность информационных систем

Безопасность информационной системы — свойство, заключающееся в способности системы обеспечить конфиденциальность и целостность информации, то есть защиту информации от несанкционированного доступа, обращенного на ее раскрытие, изменение или разрушение.

Информационную безопасность часто указывают среди основных информационных проблем XXI века. Действительно, вопросы хищения информации, ее сознательного искажения и уничтожения часто приводят к трагическим для пострадавшей стороны последствиям, ведущим к разорению и банкротству фирм, к человеческим жертвам, наконец. Достаточно в качестве примера привести мировую трагедию, приведшую к жертвам нескольких тысяч людей — атаку террористов на Всемирный торговый центр в Нью-Йорке и Министерство обороны США в Вашингтоне. Подобный террористический акт был бы невозможен, если бы террористы не вывели предварительно из строя компьютерную систему управления безопасностью страны, то есть не разрушили бы систему информа­ ционного обеспечения безопасности. А тысячи коммерческих компьютерных преступлений, приводящих к потерям сотен миллионов долларов, а моральные потери, связанные с хищением


Подборка по базе: анализ качества знаний_классы_анг.язык 1 тр.docx, Роль банковской системы в национальной экономике.pdf, С.А. Кузнецов, В.Н. Катаргин, Е.Г. Зеленкова, Е.В. Алябьев ПРОФИ, Основные понятия технологии WWW.pptx, реферат Основные требования пожарной безопасности, предъявляемые, Федеральный закон от 24 июня 1999 г N 120 ФЗ Об основах системы , ???? Ответы.Технологии и системы искусственного интеллекта.pdf, Какие существуют формы и системы оплаты труда на предприятии_ от, таблица Сравнительная характеристика качества знаний по предмет, Операционные системы лаб1 (1).docx


1
Тема: Основные понятия качества информационной системы.
Качество информационной системы — это совокупность свойств системы, обусловливающих возможность ее использования для удовлетворения определенных в соответствии с ее назначением потребностей. Количественные характеристики этих свойств определяются показателями, которые необходимо контролировать и учитывать. Основными показателями качества информационных систем являются надежность, достоверность, безопасность (см. выше), эффективность.
Надежность. Это- свойство системы сохранять во времени в установленных пределах значения всех параметров, характеризующих способность выполнять требуемые функции в заданных режимах и условиях применения.
Надежность — важнейшая характеристика качества любой системы, поэтому разработана специальная теория — теория надежности.
Теория надежности может быть определена как научная дисциплина, изучающая закономерности, которых следует придерживаться при разработке и эксплуатации систем для обеспечения оптимального уровня их надежности с минимальными затратами ресурсов.
Надежность — комплексное свойство системы; оно включает в себя более простые свойства, такие как безотказность, ремонтопригодность, долговечность и т д.
Безотказность — свойство системы сохранять работоспособное состояние в течение некоторого времени или наработки (наработка — продолжительность или объем работы системы).
Ремонтопригодность — свойство системы, заключающееся в приспособленности к предупреждению и обнаружению причин возникновения отказов, повреждений и поддержанию, и восстановлению работоспособного состояния путем проведения технического обслуживания и ремонтов.
Долговечность — свойство системы сохранять при установленной системе технического обслуживания и ремонта работоспособное состояние до наступления предельного состояния, то есть такого момента, когда дальнейшее использование системы по назначению недопустимо или нецелесообразно.
Показатель надежности — это количественная характеристика одного или нескольких свойств, определяющих надежность системы. В основе большинства показателей надежности лежат оценки наработки системы, то есть продолжительности или объема работы, выполненной системой.
Показатель надежности, относящийся к одному из свойств надежности, называется единичным.
Комплексный показатель надежности характеризует несколько свойств, определяющих надежность системы.
На сегодняшний день разработано много конкретных практических способов повышения надежности информационных систем.
Для обеспечения надежности технических средств чаще всего выполняется:
1) резервирование (дублирование) технических средств (компьютеров и их компонентов, сегментов сетей и т. д.);
2) использование стандартных протоколов работы устройств ИС;
3) применение специализированных технических средств защиты информации.
Для обеспечения надежности функционирования программного комплекса ИС выполняется:
1) тщательное тестирование программ, опытное исполнение программы с целью обнаружения в ней ошибок (обязательное условие эффективного тестирования — по крайней мере один раз выполнить все разветвления программы в каждом из возможных направлений);
2) использование стандартных протоколов, интерфейсов, библиотек процедур, лицензионных программных продуктов;
3) использование структурных методов для обеспечения надежной работы программных комплексов (иерархическое построение программ, разбиение программ на сравнительно независимые модули и т. д.);
4) изоляция параллельно работающих процессов, в результате чего ошибки в работе одной программы не влияют на работу операционной системы и других программ.
Надежность информационных систем не самоцель, а средство обеспечения своевременной и достоверной информации на ее выходе. Поэтому показатель достоверности функционирования имеет для информационных систем главенствующее значение.
Достоверность.
Достоверность
функционирования — свойство системы, обусловливающее безошибочность производимых ею преобразований информации. Достоверность функционирования информационной системы полностью определяется и измеряется достоверностью ее результатной информации.

2
Достоверность информации — это свойство информации отражать реально существующие объекты с необходимой точностью. Достоверность информации измеряется вероятностью того, что отражаемое информацией значение параметра отличается от истинного значения этого параметра в пределах необходимой точности.
Одним из наиболее действенных средств обеспечения достоверности информации в ИС является ее контроль. Контроль — процесс получения и обработки информации с целью оценки соответствия фактического состояния объекта предъявляемым к нему требованиям и выработки соответствующего управляющего решения.
Методы контроля достоверности информации, применяемые в ИС, весьма разнообразны.
Классификация методов контроля может быть выполнена по большему числу признаков, в частности: по назначению, по уровню исследования информации, по способу реализации, по степени выявления и коррекции ошибок.
Классификация методов контроля достоверности по назначению
Профилактический контроль и одна из наиболее распространенных его форм — тестовый контроль, предназначены для выявления состояния системы в целом и отдельных ее звеньев до включения системы в рабочий режим. Целью профилактического контроля, осуществляемого часто в утяжеленном режиме работы системы, является выявление и прогнозирование неисправностей в ее работе с последующим их устранением.
Рабочий контроль, или контроль в рабочем режиме, выполняется в процессе выполнения системой возложенных на нее функций. Он, в свою очередь, может быть разделен на функциональный контроль и контроль качества продукции. Функциональный контроль может преследовать цель либо только проверки работоспособности (отсутствия неисправностей) системы, либо, кроме того, установления места и причины неисправности (диагностический контроль).
Контроль качества продукции является контролем достоверности информации как одного из важнейших показателей качества продукции выпускаемой ИС.
Генезисный контроль проводится для выяснения технического состояния системы в прошлые моменты времени с целью определения причин сбоев и отказов системы, имевших место в прошлом; сбора статистических данных об ошибках, их характере, величине и последствиях (экономических потерях) этих ошибок для ИС.
Классификация методов контроля достоверности по уровню исследования информации
Синтаксический контроль — это, по существу, контроль достоверности данных, не затрагивающий содержательного, смыслового аспекта информации. Предметом синтаксического контроля являются отдельные символы, реквизиты, показатели: допустимость их наличия, допустимость их кодовой структуры, взаимных сочетаний и порядка следования.
Семантический контроль оценивает смысловое содержание информации, ее логичность, непротиворечивость, согласованность, диапазон возможных значений параметров, отражаемых информацией, динамику их изменения.
Прагматический контроль определяет потребительную стоимость (полезность, ценность) информации для управления, своевременность и актуальность информации, ее полноту и доступность.
Классификация методов контроля достоверности по способу реализации
Организационный контроль достоверности является одним из основных в ИС. Он представляет собой комплекс мероприятий, предназначенных для выявления ошибок на всех этапах участия эргатического звена в работе системы, причем обязательным элементом этих мероприятий является человек или коллектив людей.
Программный контроль основан на использовании специальных программ и логических методов проверки достоверности информации или правильности работы отдельных компонентов системы и всей системы в целом.
Программный контроль, в свою очередь, подразделяется на программно-логический, алгоритмический и тестовый.
Программно-логический контроль базируется на использовании синтаксической или семантической избыточности; алгоритмический контроль использует как основу вспомогательный усеченный алгоритм преобразования информации, логически связанный с основным рабочим алгоритмом.
Аппаратный контроль реализуется посредством специально встроенных в систему дополнительных технических схем. Этот вид контроля также подразделяется на непрерывный и оперативный (аппаратно-логический) контроль достоверности, а также непрерывный контроль работоспособности.
Классификация методов контроля достоверности по степени выявления и коррекции
ошибок
Обнаруживающий фиксирует только сам факт наличия или отсутствия ошибки.

3
Локализующий позволяет определить, как факт наличия, так и место ошибки (например, символ, реквизит и т. д.).
Исправляющий выполняет функции и обнаружения, и локализации, и исправления ошибки.
Эффективность. Это свойство системы выполнять поставленную цель в заданных условиях использования и с определенным качеством. Показатели эффективности характеризуют степень приспособленности системы к выполнению поставленных перед нею задач и являются обобщающими показателями оптимальности функционирования ИС, зависящими от локальных показателей, каковыми являются надежность, достоверность, безопасность.
Кардинальным обобщающим показателем является экономическая эффективность системы, характеризующая целесообразность произведенных на создание и функционирование системы затрат.
Качество ИС связано с дефектами, заложенными на этапе проектирования и проявляющимися в процессе эксплуатации. Любые свойства ИС, в том числе и дефектологические, могут проявляться лишь во взаимодействии с внешней средой, включающей технические средства, персонал, информационное и программное окружение.
В зависимости от целей исследования и этапов жизненного цикла ИС дефектологические свойства разделяют на дефектогенность, дефектабельность и дефектоскопичность.
Дефектогенность определяется влиянием следующих факторов:

— численность разработчиков ИС, их профессиональными и психофизиологическими характеристиками;

— условия и организация процесса разработки ИС;

— характеристики инструментальных средств и компонентов ИС;

— сложность задач;

— степень агрессивности внешней среды (потенциальная возможность внешней среды вносить преднамеренные дефекты, например, воздействие вирусов).
Дефектабельность характеризует наличие дефектов ИС и определяется их числом и местонахождением. Другими факторами, влияющими на дефектабельность являются:

— структурно-конструктивные особенности ИС;

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

— количество, типы и характер распределения дефектов в ИС;

— устойчивость ИС к проявлению дефектов;

— характеристики средств контроля и диагностики дефектов;

— квалификация обслуживающего персонала.
Оценка качества ИС является крайне сложной задачей ввиду многообразия интересов пользователей. Поэтому невозможно предложить одну универсальную меру качества и приходится использовать ряд характеристик, охватывающих весь спектр предъявляемых требований. Наиболее близки к задачам оценки качества ИС модели являются задачи оценки качества программного обеспечения, являющегося одной из важных составных частей системы. В настоящее время используется несколько абстрактных моделей качества программного обеспечения, основанных на определении характеристики и показателя качества, критерия и метрики.
Критерий может быть определен как независимый атрибут ИС или процесса ее создания. С помощью такого критерия может быть измерена характеристика качества ИС на основе той или иной метрики. Совокупность нескольких критериев определяет показатель качества, формируемый исходя из требований, предъявляемых к системе. В настоящее время наибольшее распространение получила иерархическая модель взаимосвязи компонент-качества ИС. Вначале определяются характеристики качества, в числе которых могут быть, например, общая и исходная полезность, удобство эксплуатации. Далее формируются показатели, к числу которых могут быть отнесены: практичность, целостность, корректность, удобство обслуживания, оцениваемость, гибкость, адаптируемость, мобильность, возможность взаимодействия. Каждому показателю качества ставится в соответствие группа критериев. Надо отметить, что один и тот же критерий может характеризоваться несколькими показателями.
Итак, при оценке качества информационной системы используются показатели качества и соответствующие им критерии:

1) практичность — работоспособность, возможность обучения, коммуникативность, объем ввода, скорость ввода-вывода;

2) целостность — регулирование, контроль доступа;

3) эффективность — эффективность использования памяти и функционирования;

4) корректность — трассируемость, завершенность, согласованность;

4

5) надежность — точность, устойчивость к ошибкам, согласованность, простота;

6) удобство обслуживания — согласованность, простота, краткость, информативность, модульность;

7) оцениваемость — наличие измерительных средств, информативность, модульность;

8) гибкость — распространяемость, общность, информатирован-ность, модульность;

9) адаптируемость — общность, информативность, модульность, аппаратная и программная независимость;

10) мобильность — информативность, модульность, аппаратная и программная независимость;

11) возможность взаимодействия- модульность, унифицируемость процедур связи, унифицируемость данных.
С помощью метрик можно дать количественную или качественную оценку качества ИС.
Рассмотрим типы метрик и шкал для измерения критериев.
Первый тип — метрики, которые используют интервальную шкалу, характеризуемую относительными величинами или реально измеряемыми физическими показателями (например, временем наработки на отказ, вероятностью ошибки, объемом информации и др.).
Второй тип — метрики, которым соответствует порядковая шкала, позволяющая ранжировать характеристики путем сравнения с опорными значениями.
Третий тип — метрики, которым соответствует номинальная шкала, определяющая наличие рассматриваемого свойства или признака у рассматриваемого объекта без учета градаций по этому признаку. Например, интерфейс может быть «простым для понимания», «умеренно простым» и
«сложным для понимания».
Развитием иерархического подхода является представленная на рис. модель классификации критериев качества ИС. Имеется два типа критериев:

1) функциональные критерии (с их помощью оценивается степень выполнения ИС основных целей или задач);

2) конструктивные критерии (предназначены для оценки компонентов ИС, не зависящих от ее целевого назначения).
Существует три основных определения, относящихся к качеству ИС:

1.
Качество ИС — совокупность полезных свойств системы с точки зрения пользователей в соответствии с ее назначением и предъявленными к ней требованиями.

2.
Характеристика качества ИС — понятие, отражающее отдельные измеримые факторы, влияющие на качество системы.

3.
Критерий качества — численный показатель, характеризующий оцениваемое свойство системы и обеспечивающий возможность определения затрат, необходимых для достижения требуемого уровня качества.
Критерии качества информационных систем:

5
Рис. Модель классификации критериев качества информационных систем
Стандарты серии ИСО 9000 впервые создали общую основу для стандартов на системы управления качеством, применимых, в том числе и при разработке ИС. Их концептуальной основой является процессный подход, суть которого определяется тем, что любую деятельность можно представить в виде сети процессов, каждый из которых характеризуется входными и выходными данными.
Важнейшей компонентой ИС является ее интеллектуальная составляющая, содержание которой выражено в программных средствах.
Задания для самоконтроля:
1. Составить тест 10 вопросов (1 вопрос – 1 категория).
2. Создать схемы:
— типы метрик и шкал для измерения критериев;
— показатели качества и соответствующие им критерии;
— дефектологические свойства;
— методы контроля достоверности по степени выявления и коррекции ошибок;
— методы контроля достоверности по способу реализации;
— методы контроля достоверности по уровню исследования информации;
— методы контроля достоверности по назначению;
— основные понятия качества информационной системы.

Модуль
15

Методы
повышения надежности информационных
систем

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

Дадим определение
основных понятий надежности ПО в
соответствии с классической работой
Г. Майерса [1]:

  • В программном
    обеспечении имеется ошибка, если оно
    не выполняет того, что пользователю
    разумно от него ожидать.

  • Отказ программного
    обеспечения — это появление в нем ошибки.

  • Надежность
    программного обеспечения — есть
    вероятность его работы без отказов в
    течении определенного периода времени,
    рассчитанного с учетом стоимости для
    пользователя каждого отказа.

Из данных определений
можно сделать важные выводы:

  • Надежность
    программного обеспечения является не
    только внутренним свойством программы.

  • Надежность
    программного обеспечения — это функция
    как самого ПО, так и ожиданий (действий)
    его пользователей.

Основными причинами
ошибок программного обеспечения
являются:

  • Большая сложность
    ПО, например, по сравнению с аппаратурой
    ЭВМ.

  • Неправильный
    перевод информации из одного представления
    в другое на макро- и микроуровнях. На
    макроуровне, уровне проекта, осуществляется
    передача и преобразование различных
    видов информации между организациями,
    подразделениями и конкретными
    исполнителями на всех этапах жизненного
    цикла ПО. На микроуровне, уровне
    исполнителя, производится преобразование
    информации по схеме: получить информацию
    — запомнить — выбрать из памяти (вспомнить)
    — воспроизвести информацию (передать).

Источниками ошибок
(угрозами надежности) программного
обеспечения являются [2]:

  • Внутренние:
    ошибки проектирования, ошибки
    алгоритмизации, ошибки программирования,
    недостаточное качество средств защиты,
    ошибки в документации.

  • Внешние:
    ошибки пользователей, сбои и отказы
    аппаратуры ЭВМ, искажение информации
    в каналах связи, изменения конфигурации
    системы.

Методы проектирования
надежного программного обеспечения
можно разбить на следующие группы [1]:

  • Предупреждение
    ошибок

    методы позволяющие минимизировать или
    исключить появление ошибки.

  • Обнаружение
    ошибок

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

  • Устойчивость к
    ошибкам

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

Методы
предупреждения ошибок концентрируются
на отдельных этапах процесса проектирования
программного обеспечения и включают в
себя:

  • Методы, позволяющие
    справиться со сложностью системы.

  • Методы достижения
    большей точности при переводе информации.

  • Методы улучшения
    обмена информацией.

  • Методы немедленного
    обнаружения и устранения ошибок на
    каждом шаге (этапе) проектирования, не
    откладывая их на этап тестирования
    программы.

Сложность системы
является одной из главных причин низкой
надежности программного обеспечения.
В общем случае, сложность объекта
является функцией взаимодействия
(количества связей) между его компонентами.
В борьбе со сложностью ПО используются
две концепции:

  • Иерархическая
    структура
    .
    Иерархия позволяет разбить систему по
    уровням понимания (абстракции,
    управления). Концепция уровней позволяет
    анализировать систему, скрывая
    несущественные для данного уровня
    детали реализации других уровней.
    Иерархия позволяет понимать, проектировать
    и описывать сложные системы.

  • Независимость.
    В соответствии с этой концепцией, для
    минимизации сложности, необходимо
    максимально усилить независимость
    элементов системы.

Это означает такую
декомпозицию системы, чтобы её
высокочастотная динамика была заключена
в отдельных компонентах, а межкомпонентные
взаимодействия (связи) описывали только
низкочастотную динамику системы. Методы
обнаружения ошибок базируются на
введении в программное обеспечение
системы различных видов избыточности:

  • Временная
    избыточность
    .
    Использование части производительности
    ЭВМ для контроля исполнения и
    восстановления работоспособности ПО
    после сбоя.

  • Информационная
    избыточность
    .
    Дублирование части данных информационной
    системы для обеспечения надёжности и
    контроля достоверности данных.

  • Программная
    избыточность

    включает в себя: взаимное недоверие —
    компоненты системы проектируются,
    исходя из предположения, что другие
    компоненты и исходные данные содержат
    ошибки, и должны пытаться их обнаружить;
    немедленное обнаружение и регистрацию
    ошибок; выполнение одинаковых функций
    разными модулями системы и сопоставление
    результатов обработки; контроль и
    восстановление данных с использованием
    других видов избыточности.

Методы обеспечения
устойчивости
к ошибкам

направлены на минимизацию ущерба,
вызванного появлением ошибок, и включают
в себя:

  • обработку сбоев
    аппаратуры;

  • повторное выполнение
    операций;

  • динамическое
    изменение конфигурации;

  • сокращенное
    обслуживание в случае отказа отдельных
    функций системы;

  • копирование и
    восстановление данных;

  • изоляцию ошибок.

Важным этапом
жизненного цикла программного обеспечения,
определяющим качество и надёжность
системы, является тестирование.
Тестирование — процесс выполнения
программ с намерением найти ошибки.
Этапы тестирования:

  • Автономное
    тестирование, контроль отдельного
    программного модуля отдельно от других
    модулей системы.

  • Тестирование
    сопряжений, контроль сопряжений (связей)
    между частями системы (модулями,
    компонентами, подсистемами).

  • Тестирование
    функций, контроль выполнения системой
    автоматизируемых функций.

  • Комплексное
    тестирование, проверка соответствия
    системы требованиям пользователей.

  • Тестирование
    полноты и корректности документации,
    выполнение программы в строгом
    соответствии с инструкциями.

  • Тестирование
    конфигураций, проверка каждого
    конкретного варианта поставки (установки)
    системы.

Существуют две
стратегии при проектировании тестов:
тестирование по отношению к спецификациям
(документации), не заботясь о тексте
программы, и тестирование по отношению
к тексту программы, не заботясь о
спецификациях. Разумный компромисс
лежит где-то посередине, смещаясь в ту
или иную сторону в зависимости от
функций, выполняемых конкретным модулем,
комплексом или подсистемой.

Качество подготовки
исходных данных для проведения
тестирования серьёзно влияет на
эффективность процесса в целом и включает
в себя:

  • техническое
    задание;

  • описание системы;

  • руководство
    пользователя;

  • исходный текст;

  • правила построения
    (стандарты) программ и интерфейсов;

  • критерии качества
    тестирования;

  • эталонные значения
    исходных и результирующих данных;

  • выделенные ресурсы,
    определяемые доступными финансовыми
    средствами.

Однако, исчерпывающее
тестирование всех веток алгоритма любой
серьёзной программы для всех вариантов
входных данных практически неосуществимо.
Следовательно, продолжительность этапа
тестирования является вопросом чисто
экономическим. Учитывая, что реальные
ресурсы любого проекта ограничены
бюджетом и графиком, можно утверждать,
что искусство тестирования заключается
в отборе тестов с максимальной отдачей.

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

  • предлагаемых
    изменений;

  • найденных дефектов;

  • утвержденных
    корректировок;

  • реализованных
    изменений;

  • пользовательских
    версий.

Рассмотрим
применение описанных выше методов
повышения надёжности программного
обеспечения при разработке автоматизированной
информационной системы комбината
хлебопродуктов (АИС КХП) [3].

Предупреждение
ошибок — лучший путь повышения надёжности
программного обеспечения. Для его
реализации была разработана методика
проектирования систем управления
предприятиями [4], соответствующая
спиральной модели жизненного цикла ПО.
Методика предусматривает последовательное
понижение сложности на всех этапах
анализа объекта. При декомпозиции АИС
были выделены уровни управления системы,
затем подсистемы, комплексы задач и так
далее, вплоть до отдельных автоматизируемых
функций и процедур. Методика базируется
на методах структурно-функционального
анализа (SADT), диаграммах потоков данных
(DFD), диаграммах «сущность-связь»
(ERD), методах объектно-ориентированного
анализа (OOA) и проектирования (OOD).

На основании
методов обнаружения ошибок были
разработаны следующие средства повышения
надёжности ПО.

  • Средства,
    использующие временную избыточность
    :
    авторизация доступа пользователей к
    системе, анализ доступных пользователю
    ресурсов, выделение ресурсов согласно
    ролям и уровням подготовки пользователей,
    разграничение прав доступа пользователей
    к отдельным задачам, функциям управления,
    записям и полям баз данных.

  • Средства
    обеспечения надёжности, использующие
    информационную избыточность
    :
    ссылочная целостность баз данных
    обеспечивается за счёт системы внутренних
    уникальных ключей для всех информационных
    записей системы, открытая система
    кодирования, позволяющая пользователю
    в любой момент изменять коды любых
    объектов классификации, обеспечивает
    стыковку системы классификации АИС
    КХП с ПО других разработчиков, механизмы
    проверки значений контрольных сумм
    записей системы, обеспечивают выявление
    всех несанкционированных модификаций
    (ошибок, сбоев) информации, средства
    регистрации обеспечивают хранение
    информации о пользователе и времени
    последней модификации (ввода,
    редактирования, удаления) и утверждения
    каждой записи информационной системы,
    введение в структуры баз данных системы
    времени начала и окончания участия
    записи в расчётах позволяет ограничить
    объём обрабатываемой информации на
    любом заданном периоде, а также обеспечить
    механизмы блокировки информации для
    закрытых рабочих переводов, ведение
    служебных полей номеров версий баз
    данных и операционных признаков записей
    позволяет контролировать и предупреждать
    пользователей о конфликтах в случае
    несоответствия номеров версий модулей
    и структур баз, либо о нарушении
    технологических этапов обработки
    информации, средства автоматического
    резервного копирования и восстановления
    данных (в начале, конце сеанса работы
    или по запросу пользователей) обеспечивают
    создание на рабочей станции клиента
    актуальной копии сетевой базы данных,
    которая может быть использована в
    случае аварийного сбоя аппаратуры
    локальной и вычислительной сети и
    перехода на локальный режим работы и
    обратно.

  • Средства
    обеспечения надёжности, использующие
    программную избыточность
    :
    распределение реализации одноименных
    функций по разным модулям АИС КХП с
    использованием разных алгоритмов и
    системы накладываемых ограничений и
    возможностью сравнения полученных
    результатов; специальные алгоритмы
    пересчётов обеспечивают в ручном и
    автоматическом режимах переформирование
    групп документов, цепочек порождаемых
    документов и бухгалтерских проводок,
    что повышает эффективность и надёжность
    обработки информации; средства
    обнаружения и регистрации ошибок в
    сетевом и локальных протоколах; в
    программные модули системы встроены
    средства протоколирования процессов
    сложных расчётов с выдачей подробной
    диагностики ошибок; средства отладки
    и трассировки алгоритмов пользовательских
    бизнес-функций.

  • Средства,
    обеспечивающие устойчивость системы
    к ошибкам
    :
    процедура обработки сбоев обеспечивает
    в автоматическом режиме несколько
    попыток повторного выполнения операций
    прежде, чем выдать пользователю сообщение
    об ошибке (например, для операций
    раздельного доступа к ресурсам, операций
    блокировки информации или обращения
    к внешним устройствам); средства
    динамического изменения конфигурации
    осуществляют контроль доступа к сетевым
    ресурсам, а в случае их недоступности
    или конфликта обеспечивают автоматический
    запуск системы по альтернативным путям
    доступа; средства контроля и обслуживания
    данных обеспечивают восстановление
    заголовков баз данных, восстановление
    индексных файлов, конвертацию
    модифицированных структур баз данных;
    средства слияния, копирования,
    архивирования и восстановления данных.

Для обеспечения
качества программного обеспечения АИС
КХП на этапе развития и сопровождения
системы разработан комплекс программных
средств обеспечивающий:

  • управление версиями
    ПО;

  • регистрацию
    поставок;

  • сопровождение
    заявок клиентов.

Использование
рассмотренных в настоящей работе методов
и средств обеспечения надёжности при
проектировании и сопровождении
автоматизированной информационной
системы комбината хлебопродуктов
обеспечило высокий уровень надёжности
системы, необходимый для одновременной
работы десятков пользователей
производственной системы управления
в реальном масштабе времени.

Литература.

1. Майерс Г. Надёжность программного
обеспечения /Мир. — М., 1980. — 360 с.

2. Липаев В.В. Надёжность программных
средств /СИНТЕГ. — М., 1998. — 232 с.

3. Мышенков К.С., Новицкий В.О., Кузьмин
А.Г., Васильев А.Г., Трофимов С.А., Дроздков
А.Н. Автоматизированная информационная
система комбината хлебопродуктов//
Свидетельство об официальной регистрации
программы для ЭВМ №2001611176/РОСПАТЕНТ. —
М., 12.09.2001.

4. Мышенков К.С. Методика проектирования
автоматизированных информационных
систем управления предприятиями /Тезисы
докладов 2-й международной научной
конференции «Управление свойствами
зерна в технологии муки, крупы и
комбикормов» /МГУПП. — М., 2000. — с.109-112.

http://www.aiskhp.ru/articles/15.

Соседние файлы в папке Модуль 15

  • #
  • #

Методы оценки программной надежности

1. Анализ особенностей программной надежности
АСОИУ и методов прогнозирования программных отказов

.1 Основные понятия надежности программного
обеспечения

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

Основным элементом автоматизированной системы управления
войсками является комплекс средств автоматизации КП различных уровней, которые
представляют собой совокупность технических средств (передачи, обработки,
отображения информации) и программного обеспечения.

Одними из самых серьезных недостатков программного
обеспечения АСОИУ является дороговизна и низкая надежность. Многие специалисты
считают первый из этих недостатков продолжением второго. Поскольку программное
обеспечение по самой своей природе ненадежно, его тестирование и сопровождение
требует постоянных существенных расходов.

Перед тем как анализировать надежность программного
обеспечения уточним фундаментальные основные понятия теории надежности.

Надежность программного обеспечения — это свойство
обеспечивать получение в соответствии с заданным алгоритмом правильных результатов
в течении определенного интервала времени.

Отказ программного обеспечения — состояние комплекса
программ связанное с нарушением работоспособности комплекса программ и
прекращением дальнейшего функционирования из-за ошибок.

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

Надежность программного обеспечения АСОИУ определяется его
безотказностью, восстанавлиемостью и устойчивостью.

Безотказность программного обеспечения есть его свойство
сохранять способность правильно выполнять задание функции и решать задачи,
возложенные на вычислительные средства АСУ в процессе обработки информации на
ЭВМ в течение заданного времени. При этом состояние программного обеспечения,
при котором задачи по обработке информации на ЭВМ решаются правильно
(корректно), называется работоспособным состоянием. В противном случае
состояние носит название неработоспособным.

Переход из работоспособного состояния в неработоспособное
происходит под воздействием программных отказов. Особенностью программного
отказа является то, что его устранение осуществляется путем исправления
программы или входных данных.

Важным свойством программного обеспечения является его
восстанавлиемость, под ним понимается свойство, заключающее в приспособленности
программного обеспечения к обнаружению причин возникновения программных отказов
и устранению их. Восстановление после отказа в программе может заключатся в
корректировке и восстановлении текста программы, исправления данных, внесении
изменений в организацию вычислительного процесса (что часто оказывается
необходимым при работе вычислительных средств в реальном масштабе времени).

Известно, что сбой в теории надежности определяется как
самоустраняющийся отказ, не требующий вмешательства из вне для его устранения.
Другим словом — сбой есть автоматически устраняющийся отказ, имеющий достаточно
малое время восстановления. Поэтому применительно к надежности программного
обеспечения АСУ следует конкретно указывать критерий, позволяющий отнести
потерю работоспособности комплекса программ к отказу или сбою. В качестве
такого критерия возьмем некоторое пороговое значение времени восстановления (τв пор).

Таким образом на устранение сбоя затрачивается меньше времени
и ресурсов чем на устранение отказа. В формализованном виде определение сбоя и
отказа программного обеспечения могут быть представлены как:

τв с < τв порв о (1.1)

τв с — время восстановления
после сбоя.

τв о — время восстановления
после отказа.

Устойчивость функционирования программного обеспечения — это
способность ограничивать последствия внутренних ошибок в программах и
неблагоприятных воздействий внешней среды (к которым относится неисправности
аппаратуры, некорректность входных данных, ошибки оператора и другие) и
противостояние им.

В проведенном анализе основных понятий надежности
программного обеспечения даны определения, отказа, ошибки и надежности
программного обеспечения. Выяснилось, что переход из работоспособного состояния
в неработоспособное происходит под воздействием программных отказов. Из
временных показателей видно, что на устранение сбоя затрачивается меньше
времени и ресурсов чем на устранение отказа.

.2 Основные причины и признаки выявления ошибок
программного обеспечения

Основными причинами ошибок программного обеспечения являются:

Большая сложность программного обеспечения, например, по
сравнению с аппаратурой ЭВМ.

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

Источниками ошибок программного обеспечения являются:

Внутренние: ошибки проектирования, ошибки алгоритмизации,
ошибки программирования, недостаточное качество средств защиты, ошибки в
документации.

Внешние: ошибки пользователей, сбои и отказы аппаратуры ЭВМ,
искажение информации в каналах связи, изменения конфигурации системы.

Признаками выявления ошибок являются:

. Преждевременное окончание программы.

. Увеличение времени выполнения программы.

. Нарушение последовательности вызова отдельных подпрограмм.

. Ошибки выхода информации, поступающей от внешних
источников, между входной информацией возникает не соответствие из-за:
искажение данных на первичных носителях, сбои и отказы в аппаратуре, шумы и
сбои в каналах связи, ошибки в документации.

Ошибки скрытые в самой программе: ошибка вычислений, ошибка
ввода-вывода, логические ошибки, ошибка манипулирования данными, ошибка
совместимости, ошибка сопряжения.

Искажения входной информации подлежащей обработке: искажения
данных на первичных носителях информации; сбои и отказы в аппаратуре ввода
данных с первичных носителей информации; шумы и сбои в каналах связи при
передачи сообщений по линиям связи; сбои и отказы в аппаратуре передачи или
приема информации; потери или искажения сообщений в буферных накопителях
вычислительных систем; ошибки в документировании; используемой для подготовки
ввода данных; ошибки пользователей при подготовки исходной информации.

Неверные действия пользователя:

. Неправильная интерпретация сообщений.

. Неправильные действия пользователя в процессе диалога с
программным обеспечением.

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

Неисправности аппаратуры установки: приводят к нарушениям
нормального хода вычислительного процесса; приводят к искажениям данных и
текстов программ в основной и внешней памяти.

Итак, при рассмотрение основных причин возникновения отказа и
сбоев программного обеспечения можно сказать, что эти знания позволяют
своевременно принимать необходимые меры по недопущению отказов и сбоев
программного обеспечения.

.3 Основные параметры и показатели надежности
программ АСОИУ

Термин модели надежности программного обеспечения, как
правило относится к математической модели, построенной для оценки зависимости
программного обеспечения от некоторых определенных параметров.

Параметр — количественные величины, в функции или математической
модели выбираемая или оцениваемая в конкретных условиях.

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

Усложнение алгоритмов функционирования автоматизированных
систем приводит к значительному объему и сложности программного обеспечения.
Увеличение же объема (до 105 и более машинных команд) и сложности
программного обеспечения делает невозможной разработку полностью бездефектных
составляющих программного обеспечения программ. В результате программное
обеспечение сдается в эксплуатацию с ошибками, являющимися причинами отказа
программного обеспечения. Процесс отладки программного обеспечения по выявлению
и устранению ошибок в программах можно представить графиком изменения
интенсивности отказов программного обеспечения lо.

Рис. 1.3.1. t — время жизни программы.

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

1.4
Методы прогнозирования программных отказов и тестирование программ

Предупреждение ошибок — лучший путь повышения надёжности
программного обеспечения. Для его реализации была разработана методика
проектирования систем управления, соответствующая спиральной модели жизненного
цикла программного обеспечения. Методика предусматривает последовательное
понижение сложности на всех этапах анализа объекта. При декомпозиции АСОИУ были
выделены уровни управления системы, затем подсистемы, комплексы задач и так
далее, вплоть до отдельных автоматизируемых функций и процедур.

Методы прогнозирования и тестирования программного
обеспечения позволяют предупредить, минимизировать или исключить появление
ошибок.

Методы прогнозирования и тестирования программного
обеспечения включают в себя:

. Методы, позволяющие справиться со сложностью системы.

Сложность системы является одной из главных причин низкой
надежности программного обеспечения. В общем случае, сложность объекта является
функцией взаимодействия между его компонентами. В борьбе со сложностью
программного обеспечения используются две концепции: [Л.1]

Иерархическая структура. Иерархия позволяет разбить систему
по уровням понимания. Концепция уровней позволяет анализировать систему,
скрывая несущественные для данного уровня детали реализации других уровней.
Иерархия позволяет понимать, проектировать и описывать сложные системы.

Независимость. В соответствии с этой концепцией, для
минимизации сложности, необходимо максимально усилить независимость элементов
системы.

. Методы достижения большей точности при переводе информации.

Методы улучшения обмена информацией базируются на введении в
программное обеспечение системы различных видов избыточности:

Временная избыточность. Использование части
производительности ЭВМ для контроля исполнения и восстановления
работоспособности программного обеспечения после сбоя.

Информационная избыточность. Дублирование части данных
информационной системы для обеспечения надёжности и контроля достоверности
данных.

Программная избыточность включает в себя:

взаимное недоверие — компоненты системы проектируются, исходя
из предположения, что другие компоненты и исходные данные содержат ошибки, и
должны пытаться их обнаружить;

немедленное обнаружение и регистрацию ошибок;

выполнение одинаковых функций разными модулями системы и
сопоставление результатов обработки;

контроль и восстановление данных с использованием других
видов избыточности.

Каждый из методов позволяет повысить надежность программного
обеспечения и устойчивость к ошибкам. Какой из данных методов лучше определить
нельзя, так как каждый метод основан на своих принципах и концепциях. Поэтому
можно использовать оба метода.

Важным этапом жизненного цикла программного обеспечения,
определяющим качество и надёжность системы, является тестирование. Тестирование
— процесс выполнения программ с намерением найти ошибки. Этапы тестирования:
контроль отдельного программного модуля отдельно от других модулей системы;
контроль сопряжений (связей) между частями системы (модулями, компонентами,
подсистемами); контроль выполнения системой автоматизируемых функций; проверка
соответствия системы требованиям пользователей, и корректности документации,
выполнение программы в строгом соответствии с инструкциями.

Существуют две стратегии при проектировании тестов:
тестирование по отношению к спецификациям (документации), не заботясь о тексте
программы, и тестирование по отношению к тексту программы, не заботясь о
спецификациях. Разумный компромисс лежит где-то посередине, смещаясь в ту или
иную сторону в зависимости от функций, выполняемых конкретным модулем,
комплексом или подсистемой.

Качество подготовки исходных данных для проведения
тестирования серьёзно влияет на эффективность процесса в целом и включает в
себя:

. Техническое задание.

. Описание системы.

. Руководство пользователя.

. Правила построения (стандарты) программ и интерфейсов.

. Критерии качества тестирования.

. Эталонные значения исходных и результирующих данных.

. Выделенные ресурсы, определяемые доступными финансовыми
средствами.

Однако, исчерпывающее тестирование всех веток алгоритма любой
программы для всех вариантов входных данных практически неосуществимо.
Следовательно, продолжительность этапа тестирования является вопросом чисто
временным. Учитывая, что реальные ресурсы любого проекта ограничены бюджетом и
временным показателем, можно утверждать, что искусство тестирования заключается
в отборе тестов с максимальной отдачей.

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

1.
Предлагаемых
изменений.

2.
Найденных
дефектов.

3.
Утвержденных
корректировок.

4.
Реализованных
изменений.

5.
Пользовательских
версий.

В данной главе анализируются основные причины и признаки
ошибок, вводятся основные параметры и показатели надежности программного
обеспечения. Также рассмотрены методы прогнозирования программных отказов и
тестирование программ с целью повышения надежности. Для оценки надежности
программного обеспечения используются специальные модели на основание
параметров и показателей приведенных выше.


2. Анализ моделей оценки программной надежности

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

Эти математические модели предназначены для оценки:

1. Показателей надежности комплекса программ в процессе
отладки;

. Количества ошибок оставшиеся не выявленными;

. Времени, необходимого для обнаружения следующей ошибки в
функционирующей программе;

. Времени, необходимого для выявления всех ошибок с заданной
вероятностью.

Существуют ряд математических моделей:

Экспоненциальная модель изменения ошибок в зависимости от времени
отладки.

Дискретно-меняющаяся модель, учитывающая дискретно-повышающую
времени наработки на отказ, как линейную функцию времени тестирования и
испытания.

Модель Шумана. Исходные данные для модели Шумана собираются в
процессе тестирования программного обеспечения в течение фиксированных или
случайных временных интервалов.

Модель La Padula. По этой модели выполнение последовательности
тестов в m
этапов. Каждый этап заканчивается внесением исправлений в программное
обеспечение.

Модель Джелинского — Моранды. Исходные данные собираются в
процессе тестирования программного обеспечения. При этом фиксируется время до
очередного отказа.

Модель Шика — Волвертона. Модификация модели Джелинского —
Моранды для случая возникновения на рассматриваемом интервале более одной
ошибки.

Модель Муса. В процессе тестирования фиксируется время
выполнения программы (тестового прогона) до очередного отказа.

Модель переходных вероятностей. Эта модель основана на
марковском процессе, протекающем в дискретной системе с непрерывным временем.

Модель Миллса. Использование этой модели предполагает
необходимость перед началом тестирования искусственно вносить в программу
некоторое количество известных ошибок.

Модель Липова. Модификация модели Миллса, рассматривающая
вероятность обнаружения ошибки при использовании различного числа тестов.

Простая интуитивная модель. Использование этой модели
предполагает проведения тестирования двумя группами программистов независимо
друг от друга, использующими независимые тестовые наборы.

Модель Коркорэна. Модель использует изменяющиеся вероятности
отказов для различных типов ошибок.

Модель Нельсона. Данная модель при расчете надежности
программного обеспечения учитывает вероятность выбора определенного тестового
набора для очередного выполнения программы.

При таком большом количестве моделей все-таки основными из
них являются экспоненциальная и дискретно-меняющаяся модели.

2.1 Дискретно-меняющая модель

В данной работе под дискретно-меняющей моделью
подразумевается модель, которая основывается на дискретном увеличении времени
наработки на отказ. Такая модель базируется на следующих предположениях:

. Устранение ошибок в программе приводит к увеличению времени
наработки на отказ T на одну и ту же величину, равную:

DT(1) =DT(2) =…=DT(i) =
const (2.1.1)

DT(i) = T(i) — T(i-1)
(2.2.2)

. Время между двумя последовательными отказами:

t i = ti — ti-1 (2.1.3)

является случайной величиной, которую можно представить в
виде суммы двух случайных величин:

ti=ti-1 + DtI (2.1.4)

где Dti — независимые случайные
величины, которые имеют одинаковые математические ожидания M{Dt} и среднеквадратические
отклонения sDt.

. Начальный интервал времени t0 сравним со случайной
величиной Dt0, т.е. t0 » Dt0, поскольку в начальный период эксплуатации
программ отказы в них возникают весьма часто.

На основании второго предположения величину интервала между i-м (i-1) — м отказами можно
определить соотношением:

ti=ti-1 + Dti = t0 + Dtj (2.1.5)

из которого можно получить соотношение для определения времени
наступления m-го отказа в программе:

tm= ti =
(t0 + Dtj) (2.1.6)

исходя из третьего предположения полученные соотношения
примут вид:

ti =
t0 + Dtj = Dtj (2.1.7)

tm= (t0 + Dtj) = Dtij (2.1.8)

При этих предположениях средняя наработка между (m-1) — м и m-м отказами
программы равна:

T0(m) = M{tm-1} = M{Dtj} = Dtij = m M{Dt}. (2.1.9)

Средняя наработка до возникновения m-го отказа может быть определена по соотношению:

Tm = M{tm} = Dtijk) =  M{Dt}. (2.1.10)

2.2 Экспоненциальное распределение

Теперь непосредственно перейдем к анализу собственно
экспоненциального распределения.

Рассматриваемое распределение характеризуется рядом свойств,
такими как:

. Ошибки в комплексе программ являются независимыми и
проявляются в случайные моменты времени. Данное свойство характеризует
неизменность во времени интенсивности проявления и обнаружения ошибок (т.е. lош=const) в течение всего времени
выполнения программы (t=tн-t0).

. Интенсивность проявления и обнаружения ошибок lош (интенсивность отказов)
пропорционально числу оставшихся в ней ошибок:

l(t)= Kn0(t) (2.2.1)

где K — коэффициент пропорциональности, учитывающий реальное
быстродействию ЭВМ и число команд в программе.

3. В процессе исправления ошибок программы новые ошибки не
порождаются. Это означает, что интенсивность исправления ошибок dn/dt будет равна
интенсивности их обнаружения:

 (2.2.2)

Пусть N0 — число ошибок, имеющихся в программе перед
началом испытаний.

n(t) — количество ошибок, устраненных в ходе
испытаний (тестирования) программы;

n0(t) — число оставшихся в программе ошибок на момент
окончания испытаний.

Тогда n0(t)= N0 — n(t). (2.2.3)

Основываясь на предположениях, введенных выше, получим:

Решением этого дифференциального уравнения при начальных
условиях t=0
и t=0
является:

n(t)=N0(1-eKt); (2.5)

Надежность программы по результатам испытаний в течении
времени t
можно охарактеризовать средним временим наработки на отказ, равным:

. (2.2.6)

Если ввести исходное значение среднего времени наработки на отказ
перед испытанием, равного , то получим:

, (2.2.7)

откуда видно, что среднее время наработки на отказ увеличивается
по мере выявления и исправления ошибок.

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

. (2.2.8)

Если обозначить за m — число
обнаруженных отказов, а M0 — число отказов, которое должно произойти,
чтобы можно было выявить и устранить n
соответствующих ошибок, то есть:

, , (2.2.9)

то среднее время наработки на отказ и число обнаруженных
отказов определяется следующими соотношениями:

, (2.2.10)

, (2.2.11)

Если принять, что , получим:

, (2.2.12)

. (2.2.13)

Для практического использования представляет интерес число ошибок Dm, которое должно быть обнаружено и исправлено для того,
чтобы добиться увеличения среднего времени наработки на отказ от T01 до T02. Этот показатель может быть получен из
следующих соотношений:

,

. (2.2.14)

Дополнительное время испытаний, необходимое для обеспечения
увеличения среднего времени наработки на отказ с T01 до T02 определяется из
соотношений:

, (2.2.15)

Оценка надежности программ по времени испытаний определяется
согласно формуле:

. (2.2.16)

2.3 Методика оценки надежности программ по числу исправленных
ошибок

Пусть N0 — число ошибок, имеющихся в программе перед началом
испытаний.

n(t) — количество
ошибок, устраненных в ходе испытаний (тестирования) программы;

n0(t) — число оставшихся в программе ошибок на
момент окончания испытаний.

Тогда n0(t)= N0 — n(t).

Основываясь на предположениях введенных в пункте 2.2.1, а именно:  и l(t)= Kn0(t) то получим:

 (2.3.1)

K — коэффициент, учитывающий быстродействие компьютера.

Решением этого дифференциального уравнения при начальных условиях t=0 и t=0 является:

n(t)=N0(1-e-Kt); (2.3.2)0(t)=N0 — n(t)=N0e-Kt. (2.3.3)

Надежность программы по результатам испытаний в течении
времени t
можно охарактеризовать средним временим наработки на отказ, равным:

.

Если ввести исходное значение среднего времени наработки на отказ
перед испытанием, равного , то получим:

, (2.3.4)

откуда видно, что среднее время наработки на отказ увеличивается
по мере выявления и исправления ошибок.

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

. (2.3.5)

Если обозначить за m — число
обнаруженных отказов, а M0 — число отказов, которое должно произойти,
чтобы можно было выявить и устранить n
соответствующих ошибок, то есть:

, , (2.3.6)

то среднее время наработки на отказ и число обнаруженных
отказов определяется следующими соотношениями:

, (2.3.7)

, (2.3.8)

Если принять, что , получим:

, (2.3.9)

. (2.3.10)

Для практического использования представляет интерес число ошибок Dm, которое должно быть обнаружено и исправлено для того,
чтобы добиться увеличения среднего времени наработки на отказ от T01 до T02. Этот показатель может быть получен из
следующих соотношений:

,

,

Итак, оценка надежности программ по числу исправленных ошибок
определяется по формуле:

. (2.3.11)

2.4 Методика оценки надежности программ по времени испытания

Дополнительное время испытаний, необходимое для обеспечения
увеличения среднего времени наработки на отказ с T01 до T02 определяется из соотношений:

, (2.4.1)

где T01 и T02 определяются согласно формуле (2.3.9):

,

Оценка надежности программ по времени испытаний определяется
согласно формуле:

. (2.4.2)

2.5 Методика оценки безотказности программ по наработке

Наработку между очередными отказами — случайную величину T(i) можно представить в виде суммы двух случайных величин:

T(i) = T(i-1) + DT(i)
(2.5.1)

Последовательно применяя (3.3.1) ко всем периодам наработки между
отказами, получаем:

T(i) = T(0) + DT(ν) (2.5.2)

Случайная величина Тn
наработка до возникновения n-го отказа программы — равна:

Tn= T(i) = [T(0) +DT(ν)] (2.5.3)

Введем следующие допущения:

2) случайная величина T(0) пренебрежимо мала по
сравнению с суммой DT(ν)

Основанием для второго допущения могут служить следующие
соображения: в самый начальный период эксплуатации программы ошибки возникают
очень часто, то есть время T(0) мало. Сумма (2.5.3) быстро растет с увеличением n, и доля T(0) быстро падает. Будем считать что T(0)
DT(0). В соответствии со
вторым допущением имеем:

T(n) =DT(ν). (2.5.4)

Tn=  (2.5.5)

При одинаковых DT(ν) наработка между (n-1) и n отказами —
случайная величина T(n)
имеет математическое ожидание:

mt(n)=M[T(n)]=nmΔt (2.5.6)

и среднеквадратическое отклонение:

σt(n) = σ∆ t; (2.5.7)

Для случайной величины Tn математическое ожидание равно:

=mt; (2.5.8)

и среднеквадратическое отклонение:

= σt; (2.5.9)

Чтобы вычислить значения , и , необходимо по данным об отказах программы в течение периода
наблюдения tн найти статистические оценки числовых характеристик
случайной разности DT(i):

(2.5.10)

(2.5.11)

nн — число
отказов программы за наработку (0, tн).

Учитывая, что при t >tн число отказов nн >> 1, из (2.5.8) и (2.5.9) имеем:

mt(n)
mt , (2.5.12)

σt(n)= σ
tn; (2.5.13)

Поскольку случайные величины T(n) и Tn согласно
(2.5.4) и (2.5.5) равны суммам многих случайных величин, T(n) и Tn можно
считать распределенными нормально с математическими ожиданиями и дисперсиями,
определенными по (2.5.6) — (2.5.9), (2.5.12) и (2.5.13). Так как наработка
положительна, на практике используется усеченное на интервале (0, ∞)
нормальное распределение. Обычно нормирующий множитель с≈1.

При n>nн
плотность распределения наработки между очередными (n-1) и n отказами:

f(n)(τ) = , (2.5.14)

где τ отсчитывается
с момента последнего, (n-1) отказа.


Заключение

В работе было показано, что надежность программного
обеспечения, в десятки раз ниже чем аппаратурная надежность. Требования к
программной надежности это определение необходимого выполнения боевых задач в
течении не менее чем 1872 часов.

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


Список литературы

программный безотказность надежность прогнозирование

1.
В.В. Липаев Проектирование математического обеспечения АСУ. (системотехника,
архитектура, технология). М., «Сов. радио», 1977.

.
Р.С. Захарова Основные вопросы теории и практики надежности.

.
В.А. Благодатских, В.А. Волнин, К.Ф. Поскакалов Стандартизация
разработки программных средств.

.
А.А. Воронов Теоретические основы построения автоматизированных систем
управления. Разработка технического задания.-М.: Наука, 1997.

.
Основы прикладной теории надежности АСУ. Учебное пособие, Тверь, ВА ПВО, 1995,
н/с 32. 965,0-75. В.М. Ионов и др., инв. №8856.

.
Б.Н. Горевич. Расчет показателей надежности систем вооружения и резервированных
элементов. Конспект лекций, ВА ПВО, 1998, н/с 68.501.4, Г68, инв. №9100


Подборка по базе: Практическая работа _Тестирование информационных систем.docx, КР системы развития. трофимов ЗМО-19.docx, Проект системы безопасности.docx, Построение и использование компьютерных моделей.docx, Практическое занятие БЮДЖЕТНАЯ СИСТЕМА РОССИЙСКОЙ ФЕДЕРАЦИИ.docx, Тема 6. Систематизация документов и их хранение.docx, МАЛЫЕ ТЕЛА СОЛНЕЧНОЙ СИСТЕМЫ v.3.docx, Кровеносная система включает в себя определенные понятия.docx, Банковские системы 50 вопросов тест ответы.docx, Валютная система России 2023.doc


Факторы надежности. При любом виде деятельности людям свойственно непредумышленно ошибаться.

§  Факторы надежности. При любом виде деятельности людям свойственно непредумышленно ошибаться.

§  В общем случае под ошибками подразумевается дефект, погрешность или неумышленное искажение объекта или процесса.

§  При строго фиксированных данных программы исполняются по определенным маршрутам и выдают совершенно определенные результаты.

§  Многочисленные варианты использования программ при разнообразных исходных данных представляются наблюдателю, как случайные, поэтому возникновение ошибок считается случайным и имеет разную природу и последствия.

§  Анализ надежности ПС базируется на модели взаимодействия основных компонент представленном в таблице

§ 

Объекты уязвимости

Дестабилизирующие факторы и угрозы надежности

Методы предотвращающие угрозы надежности

Последствия нарушения надежности

Оперативные методы повышения надежности

-Вычислительный процесс
— Объектный код
-Информация для потребителей

Внутренние:
— ошибки проектирования при постановке задачи
— ошибки алгоритмизации задачи
— ошибки программирования
-недостаточное качество средств защиты
Внешние:
— ошибка персонала при эксплуатации
— искажение информации в каналах связи
-сбои и отказы аппаратуры ЭВМ
-изменение конфигурации системы

— предотвращение ошибок проектирования в технологии
— системное тестирование
-обязательная сертификация

— разрушение вычислительного процесса
— разрушение информации базы данных
— разрушение текста программ
— разрушение информации для потребителя

— временная избыточность
-информационная избыточность
— программная избыточность

Объектами уязвимости влияющими на надежность ПС являются:

§  Объектами уязвимости влияющими на надежность ПС являются:

§  1. динамический вычислительный процесс обработки данных, автоматизированной подготовке решений и выработку управляющих воздействий.

§  2. информация, накопленная в БД, отражающая объекты внешней среды в процессе ее обработки

§  3. объектный код программы исполняемых вычислительными средствами в процессе функционирования ПС

§  4. информация подаваемая пользователю и на исполнительные механизмы, являющаяся результатом обработки исходных данных и информации накопленной в БД.

На эти объекты воздействуют различные дестабилизирующие факторы:

§  На эти объекты воздействуют различные дестабилизирующие факторы:

§  Внутренние:

1) системные ошибки при постановке целей и задач, создания ПС, при формулировке требований к функциям и характеристикам решения задач, определения условий и параметров внешней среды.

2) алгоритмические ошибки разработки при непосредственной спецификации функций ПС, при определении структуры и взаимодействии компонент комплекса программ, а также при использовании БД.

3) ошибки программирования в текстах программ и описание данных, а также в исходной и результирующий документации на компоненты и ПС в целом.

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

Внешние:

§  Внешние:

§  1) ошибки оперативного и обслуживающего персонала в процессе эксплуатации ПС.

§  2) искажение в каналах телекоммуникации, информации, поступающей от внешних источников и передаваемой потребителя, а также недопустимые для конкретной информационной системы характеристики потоков внешней информации.

§  3) сбои и отказы в аппаратуре вычислительных средств.

§  4) изменение состава и конфигурации комплекса, взаимодействующей аппаратуры информационной системы за пределы проведенные при испытании или сертификации и отлаженной ПС в эксплуатационной документации.

  • Ошибки проекта частного дома
  • Ошибки продажи на валберис
  • Ошибки продавцов при продажах недвижимости
  • Ошибки продавцов на алиэкспресс
  • Ошибки продавца при продаже квартиры