Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Силан зачёт.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
449.87 Кб
Скачать

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

 

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

 

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

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

- техническую и информационную совместимость, а также взаимозаменяемость продукции;

- качество продукции, работ и услуг в соответствии с уровнем научно-технического прогресса;

- единство измерений;

- экономию всех видов ресурсов;

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

 

Выделяют семь важнейших принципов стандартизации:

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

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

2. Системность и комплексность стандартизации. Системность – это рассмотрение каждого объекта как части более сложной системы. Комплексность предполагает совместимость всех элементов сложной системы.

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

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

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

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

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

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

7. Четкость формулировок положений стандарта. Возможность двусмысленного толкования нормы свидетельствует о серьезном дефекте НД.

 

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

 

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

 

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

 

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

 

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

 

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

 

Некоторые сиcтeмы ceртификaции дeйcтвующиe в Рoccии

Сиcтeмы oбязaтeльнoй ceртификaции:

- Сиcтeмa ceртификaции «ГОСТ Р»

- Сиcтeмa ceртификaции cрeдcтв зaщиты инфoрмaции

Сиcтeмы дoбрoвoльнoй ceртификaции:

- Сиcтeмa дoбрoвoльнoй ceртификaции cрeдcтв и cиcтeм в cфeрe инфoрмaтизaции "Рocинфoceрт"

- Сиcтeмa дoбрoвoльнoй ceртификaции прoгрaммных cрeдcтв,примeняeмых в oбязaтeльнoм мeдицинcкoм cтрaхoвaнии

- Дoбрoвoльнaя ceртификaция прoгрaммнoгo oбecпeчeния вeдeния Рeecтрa aкциoнeрoв

- Сиcтeмa дoбрoвoльнoй ceртификaции уcлуг cвязи,уcлуг инфoрмaциoнных тeхнoлoгий и cиcтeм кaчecтвa прeдприятий "Интeрэкoмc"

- Сиcтeмa дoбрoвoльнoй ceртификaции прoгрaммнoгo oбecпeчeния дeпoзитaрнoй дeятeльнocти ("ПАРТАД-ДЕПО")

 

Сертификация в Твери: - ФГУП «Государственный испытательный сертификационный центр программных средств вычислительной техники» (г. Тверь, ул. Ржевская, д. 10, тел. (4822) 44-31-72) - орган по сертификации в системе сертификации ГОСТ Р и РОСИНТЕХСЕРТ (№РОСС.RU.В263.04РГ00);

16.Математические модели оценки характеристик качества и надежности программного и информационного обеспечения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

18. Определение надежности программного обеспечения. Проблемы надежности программного обеспечения

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

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

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

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

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

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

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

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

Надежность программного обеспечения АСОИУ определяется его безотказностью, восстанавлиемостью и устойчивостью.

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

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

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

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

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

?в с < ?в пор <?в о (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 этапов. Каждый этап заканчивается внесением исправлений в программное обеспечение.

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

Модель Шика - Волвертона. Модификация модели Джелинского - Моранды для случая возникновения на рассматриваемом интервале более одной ошибки.

Модель Муса. В процессе тестирования фиксируется время выполнения программы (тестового прогона) до очередного отказа.

Модель переходных вероятностей. Эта модель основана на марковском процессе, протекающем в дискретной системе с непрерывным временем.

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

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

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

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

Модель Нельсона. Данная модель при расчете надежности программного обеспечения учитывает вероятность выбора определенного тестового набора для очередного выполнения программы.

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

19.Типы отказов программного обеспечения

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

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