close

Вход

Забыли?

вход по аккаунту

?

Лаб НПО

код для вставкиСкачать

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
О.М.Раводин
НАДЕЖНОСТЬ КОНТРОЛЬ И ДИАГНОСТИКА ЭВС И ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Сборник лабораторных и контрольных работ
Томск 2005г.
Введение3
1. Разработка технического задания3
1.1 Цель работы3
1.2. Задание.3
1.3. Структура технического задания3
1.4 Оформление пояснительной записки7
1.5. Защита работы.8
1.6. Пример оформления ТЗ8
1.7. Контрольные вопросы.10
2. Изучение самокоррекирующего кода Хэмминга.12
2.1. Цель работы.12
2.2. Задание к работе12
2.3. Принцип кодирования информации и исправление ошибок12
2.4. Выполнение работы15
Рис. 2.1. Пример интерфейса программы16
2.5. Контрольные вопросы16
3. Исследование надежности программного обеспечения18
3.1. Цель работы18
3.2. Задание к работе18
3.3. Теоретическая часть18
3.3.1. Основные понятия.18
3.3.2. Оценка надежности программного обеспечения по входным наборам.21
3.4. Проведение эксперимента24
3.4.1. Фиксированное число сбойных наборов (например n=10)25
3.4.2. Случайное число сбойных наборов27
3.5. Контрольные вопросы:28
4. Исследование надежности программного обеспечения на модели калькулятора30
4.1. Цель работы30
4.2. Задание к работе30
4.3. Теоретическая часть30
4.5. Проведение эксперимента31
4.6. Контрольные вопросы.34
5. Список литературы36
Введение
Данный сборник содержит два варианта 1-ой контрольной работы для студентов Томского Межвузовского Центра Дистанционного Обучения (ТМЦДО) и два варианта 2-ой контрольной работы. Каждый вариант содержит описание одной лабораторной работы с небольшой теоретической частью и набор вопросов, на которые студенты должны обязательно ответить в письменной форме.
Поскольку теория надежности широко использует аппарат теории вероятностей, студенты должны вспомнить соответствующие разделы высшей математики.
Первая контрольная работа носит несколько теоретический характер: студенты должны либо написать грамотное техническое задание на разработку программного обеспечения, реализующее самокорректирующий код Хэмминга, либо написать саму программу для формирования данного кода. Вторая контрольная работа носит экспериментальный характер: студенты должны исследовать надежностные характеристики некоторой программной модели.
1. Разработка технического задания Контрольная работа № 1 (вариант 1)
1.1 Цель работы
Научиться разрабатывать техническое задание (ТЗ) на разработку и экспериментальное исследование программного обеспечения (ПО).
1.2. Задание.
1.2.1. Разработать техническое задание на создание программы, формирующей самокорректирующий код Хэмминга (см. Контрольная работа № 1 вариант 2).
1.2.2. Провести анализ обоснованности сформулированного ТЗ, его полноты и качества.
1.2.3. Ответить на контрольные вопросы (номер БЛОКА задает преподаватель).
1.3. Структура технического задания
Современные вычислительные системы обладают очень высокой надежностью. Время наработки на отказ может составлять несколько лет. Как правило, техника успевает морально устареть прежде, чем происходят сбои. Поэтому на практических занятиях исследовать надежность аппаратного обеспечения вычислительных системы представляется достаточно затруднительным. Современное программное обеспечение так же достаточно надежно, хотя сбои программ происходят довольно часто.
Из за того, что нет возможности в лабораторных условиях исследовать надежность аппаратуры из-за временных ограничений, а сбои в программном обеспечении трудно проследить, требуется создать такую программу, на которую пользователь самостоятельно может воздействовать и вызывать сбои, а затем исследовать ее на надежность.
Всю работу можно условно разбить на несколько этапов:
Этап 1 - создание технического задания. На этом этапе студенты учатся разрабатывать техническое задание, в котором должны быть изложены все требования к системе.
Этап 2 - создание программы, которая производит исправление ошибок заданным методом.
Этап 3 - исследование системы на надежность при воздействии на нее случайных помех.
Этап 4 - написание документации (пояснительной записки).
Последний этап - защита проекта.
С точки зрения системного анализа, процесс проектирования технической системы можно разделить на следующие шаги:
1. Оценка необходимости в проектировании системы со свойствами, заданными в ТЗ, задание критериев эффективности её функционирования.
2. Разработка математической модели системы, описание её в терминах логических и языковых средств, реализация в виде пакета прикладных программ на языке программирования для конкретного вида ЭВМ.
3. Анализ математической модели при помощи многократных расчётов с различными условиями по программе, описывающей модуль, на ЭВМ.
4. Оптимизация модели при помощи специального математического и программного аппарата, анализ результатов и доработка модели, а при необходимости, изменение постановки задачи и возвращение процесса проектирования на исходную стадию разработки.
Надежность находится в прямой зависимости от корректности, удобства обслуживания, ясности, гибкости и практичности ПО и в обратной зависимости от возможности использования данного ПО для решения ДРУГИХ задач.
70% всех проблем, возникающих при эксплуатации ПО, связаны с неадекватной трансляцией требований заказчика разработчиком! Стоимость одной ошибки на стадии выработки требований к ПО увеличивается в 7 раз на стадии программирования, в 35 раз на стадии готовности ПО и в 70-500 раз на стадии эксплуатации. Трудности разработки надежного ПО связаны с тем, что:
* теоретически невозможно априори установить характеристики программ,
* отсутствуют четкие, строго формализованные методы формирования ТЗ на разработку ПО.
Необходимость разработки качественной документации для программного обеспечения систем связана с получением следующих преимуществ.
* Обеспечивается живучесть программ и систем независимо от их создателей. Можно сказать, что работоспособность больших развивающихся программно-информационнных систем невозможно обеспечить без аккуратной и четкой документации.
* Резко сокращаются трудовые затраты при передаче программ и систем другим пользователям, что особенно важно в связи с намечаемым тиражированием в другие организации.
* Резко сокращается время опытных специалистов на консультации по ранее составленным программам.
Составление технического задания один из самых важных этапов при выполнении любого технического проекта, на оформление ТЗ существует стандарт. Этот Стандарт распространяется на автоматизированные системы (АС) для автоматизации различных видов деятельности (управление, проектирование, исследование и т. п.), включая их сочетания, и устанавливает состав, содержание, правила оформления документа "Техническое задание на создание (развитие или модернизацию) системы". ТЗ на автоматизированную систему (АС) является основным документом, определяющим требования и порядок создания (развития или модернизации - далее создания) автоматизированной системы, в соответствии с которым проводится разработка АС и ее приемка при вводе в действие.
После того, как техническое задание подписано, вносить какие-либо исправления участникам проекта без взаимного согласования запрещается.
В техническом задании оговариваются заказчик и исполнитель. В роли заказчика выступает кафедра в лице преподавателя, проводящего данный курс. В роли исполнителя выступает студент.
В ТЗ обязательно должны быть оговорены следующие пункты.
1. Общие сведения о разрабатываемой системе: область применения, ожидаемый положительный эффект от применения. 2. Цель работы. Для чего создается программная система, какие функции она должна выполнять.
3. Характеристика объектов (пользователей), с которыми будет использоваться система. Если система рассчитана на работу с человеком, указываются требования к его квалификации, если с техническими объектами - особенности их, принципы функционирования и принципы связи с ними.
4. Требования к разрабатываемой системе или к проводимым исследованиям. Это один из самых главных пунктов технического задания. В нем указывается все, что должно быть в системе или в исследовательской работе и чего в ней быть не должно. Указываются требования к функционированию объекта исследования, его необходимые параметры, цель и условия проведения эксперимента. 5. Структура системы. Рассматриваются состав и основные элементы разрабатываемой системы, и взаимные связи. Если речь идет о программной системе, то обязательно рассматривается структура входных и выходных данных.
6. Состав и содержание работ по созданию системы. Здесь могут быть указаны этапы работ с их детальной расшифровкой. Если работа разбита на этапы, то должны быть оговорены сроки выполнения каждого этапа (что особенно важно для студентов заочной формы обучения). Обязательно должен быть указан общий срок выполнения работы. Если временные рамки исполнителем не соблюдаются, то возможно наступление санкций, указанных в пункте "особые условия". 7. Интерфейс с пользователем. Этот раздел особенно важен, если с системой будет работать не специалист в области вычислительной техники. Интерфейс должен быть доброжелательным и интуитивно понятным не квалифицированному пользователю.
8. Требования к условиям эксплуатации системы. В этом пункте указывается, в каких условиях будет проводиться эксперимент или эксплуатироваться система. Так как система является программой, то она будет работать на определенном классе машин с заранее известным системным и прикладным программным обеспечением.
9. Требования к заказчику по обеспечению выполнения работы исполнителем. Исполнителю для выполнения работ в полном объеме, возможно, понадобятся некоторые ресурсы, которые заказчик может ему предоставить. Например, заказчик может предоставить исполнителю машинное время, обеспечить необходимым программным обеспечением, предоставить методический материал.
10. Порядок контроля и приемки системы. В этом разделе подробно рассматриваются, какие необходимо провести испытания, какие оценки определяют качество работы, условия, в которых происходит сдача работы заказчику. Может быть определены программы приемо-сдаточных испытаний.
11. Требования к составу и содержанию работ по подготовке системы к вводу в эксплуатацию. Здесь должны быть сформулированы требования к условиям использования системы, например, необходимые вычислительные ресурсы, требования к обслуживанию системы и т.п.
12. Требования к документированию. Программная система обязательно должна сопровождаться соответствующей документацией: описание системы, алгоритмы функционирования, листинги (для небольших программ) или исходными и загрузочными модулями (для больших). В нашем случае обязательна "Пояснительная записка", оформленная в соответствии со стандартом ВУЗа. Ее примерное содержание при разработке программного обеспечения представлено ниже. 13. Источники разработки. Это может быть список литературы, описание прототипов системы, модели системы, ссылки на другие источники, ТЗ на смежные системы. 14. Особые условия. В этом пункте технического задания оговариваются различные моменты, которые не имеют принципиального значения для исследуемого объекта, но которые важны для организации работы.
Здесь могут указываться санкции, которые наступают при невыполнении условий технического задания исполнителем. Оговаривается вознаграждение исполнителя в случае выполнения им технического задания в полном объеме. Оговариваются условия, при которых возможно изменение технического задания.
1.4 Оформление пояснительной записки
Кроме создания программы и исследования ее на надежность студенты должны составить пояснительную записку. Пояснительная записка является основной формой отчетности о проделанной работе. Пояснительная записка оформляется в соответствии со стандартом предприятия (СТП) ТУСУР. В пояснительную записку (ПЗ) должны входить обязательные пункты, перечисленные в этом СТП. В состав ПЗ должны входить следующие обязательные пункты:
- Титульный лист;
- Введение;
- Постановка задачи;
- Теоретические подходы к решению задачи;
- Описание методов решения поставленной задачи или методика проведения исследований;
- (в данной контрольной работе здесь должно быть представлено разработанное техническое задание)
- Алгоритм программы;
- Листинг программы (или краткое описание особенностей программы;
- Результаты исследования;
- Выводы;
- Список литературы;
Приложение (листинги, блок-схемы алгоритмов, разработанные программные модули и т.п.).
Для оценки качества ПО как технического ПРОЕКТА используют критерии:
* ПРОСТОТА принятое решение должно быть легко доступно для понимания.
* НАДЕЖНОСТЬ реализация принятого решения должно обеспечить режим работы, заданный ТЗ для нормальных условий. В не нормальных условиях могут только изменится несущественные показатели или должно выдаваться предупреждение о невозможности выполнения заданных функций.
* ЭФФЕКТИВНОСТЬ реализация принятого решения должна обеспечивать эффективное выделения ресурсов под обслуживание системы.
* АДАПТИРУЕМОСТЬ принятое решение должно быть достаточно общим для работы системы в изменяющихся условиях.
* ТЕСТИРУЕМОСТЬ принятое решения должно быть структурировано таким образом, чтобы было возможно получить количественные сравнительные оценки рабочих характеристик с указанными в ТЗ.
* СОПРОВОЖДАЕМОСТЬ реализация принятого решения должна быть понятной для инженерных служб сопровождения внедряемого проекта.
1.5. Защита работы.
Это последний этап проекта. На этом этапе происходит проверка полноты выполнения исполнителем технического задания. Если все требования технического задания выполнены, то работы считается завершенной. В том случае, если требования технического задания не выполнены, то проект заказчиком не принимается и проект отправляется на доработку.
1.6. Пример оформления ТЗ
Данный пример представляет собой реальное ТЗ, разработанное студентом 5-го курса, но следует помнить, что это не идеал!
"Утверждаю"
профессор каф. КИБЭВС ___________ О.М.Раводин
"___" __________2005 г
ТЕХНИЧЕСКОЕ ЗАДАНИЕ На разработку системы для исследования надежности
программного обеспечения
1. Система (программа) разрабатывается по заданию О.М.Раводина. Система предназначена для решения оптимизационных задач методом " золотого сечения".
2. Ее цель - постановка лабораторной работы по курсу "Надежность программного обеспечения" для исследования :
* оценки влияния шумов на проведение эксперимента ;
* опеделение точки срыва нормальной работы ;
* определение надежности, времени безотказной работы, интенсивности потока отказов.
3. Структура устройства или программного обеспечения :
Структура:
* модуль ввода информации (функция и шумы);
* модуль поиска и контроля экстремума;
* модуль отображения полученной информации;
* модуль анализа надёжности.
4. Структура данных :
- Обьект : вход - X [-100,100] , выход- Y [9700,10300] .
- Система управления: вход - Q [Y], выход - U , поиск экстремума методом золотого сечения .
- Шумы на входе могут быть неограничены - h [X] .
5. Интерфейс с оператором:
Набор команд управления:
- Инициализация;
- Останов/Пуск;
- Сброс;
- Расчет параметров;
- Выход.
Параметры расчета:
- Начало интервала;
- Конец интервала;
- Уровень шумов.
Ввод данных:
- Начало расчетного интервала ;
- Конец расчетного интервала;
- Максимальный уровень шумов.
Вывод информации :
- График функции обьекта F(x): Y=X²+3X;
- График функции Q(t) от уровня шумов;
- Вывод собшений при ошибках;
- Вывод параметров надежности при заданных пользователем условиях.
5. Условия эксплуатации:
- Требуется компьютер с процессором Pentium -166 и выше, ОЗУ - 16 МБ и выше, операционная система Windows'95/98 ;
- Температура помещения - от 10 С до 30 С;
- Относительная влажность - 40 - 96 % ;
- Требования к электропитанию - 220+5%, 50 ГЦ+3 %;
- Программа выполнена с использованием среды для разработки программных продуктов - Delphi 4.0;
6. Оформление результатов:
Пояснительная записка:
Содержание:
- Введение;
- Постановка задачи;
- Алгоритм;
- Листинг программы;
- Результаты исследования;
- Выводы;
- Список литературы.
7. Сроки выполнения:
Составление ТЗ - 3 октября 2005 г.
Работающая программа - 1 декабря 2005 г.
Пояснительная записка - 15 декабря 2005 г
Сдача работы - 27 декабря 2005 г.
8. Условия сдачи работы:
- Пояснительная записка;
- Работающая программа;
- Результаты исследования надежности работы программы;
9. Особые условия:
- Данное техническое задание может уточняться и согласовываться по усмотрению сторон;
- При сдаче работы, разработчики получают зачет автоматом;
10. Дата выдачи задания 15.09.05 г
Задание принял к исполнению cтудент гр. 575-1 _________ А.В.Пряхин "___" __________2005г 1.7. Контрольные вопросы.
БЛОК 1
1. Основные понятия эксплуатационного обслуживания ЭВМ.
1. Понятия: тактовая частота, производительность ЦВМ, быстродействие.
2. Что такое "Коэффициент готовности" и "Коэффициент использования" (формулы)?
3. Возможность исправления ошибок с помощью линейных кодов.
4. Понятие "неисправность программного обеспечения" и причины отказов программного обеспечения.
БЛОК 2
1. Основные понятия теории надежности применительно к задачам разработки программного обеспечения. 2. Абстрактные алфавиты. Возможные соотношения между алфавитами по мощности. Кодирование информации.
3. Самокорректирующие коды. Принципы построения, возможность обнаружения ошибки с помощью такого кода.
4. Типы отказов- устойчивые, самоустраняющиеся.
5. Концепция эксплуатационного обслуживания ЭВМ и аппаратно-программных средств поддержки эксплуатации.
БЛОК 3
1. Что такое "Теория надежности программного обеспечения"? Что она дает разработчику ПО?
2. Повышение надежности при кодировании информации. Контроль четности. Самокорректирующие коды.
3. Различные модели для оценки надежности программного обеспечения.
4. Расчет коэффициента готовности ЭВС.
5. Системный подход при разработке концепции RAS (Realibility- Availbility- Servibility). Технология проектирования:"Надежность-Готовность-Обслуживаемость".
БЛОК 4
1. Надежность как внутреннее свойство системы, проявляющееся во ВРЕМЕНИ.
2. Понятия: кодовое расстояние в кодовой выборке, кратность ошибки, расстояние Хэмминга.
3. Понятие "неисправность программного обеспечения" и причины отказов программного обеспечения.
4. Практический подход к расчету показателей надежности ЭВМ (коэффициенты готовности, использования).
БЛОК 5
1. Основные эксплуатационные характеристики ЭВМ и их связь с программным обеспечением.
2. Как можно количественно оценить надежность системы? Что такое "Вероятность правильной работы" (формулы)? 3. Основные эксплуатационные характеристики ЭВМ.
4. Понятия: кодовая последовательность, расстояние между кодовыми выборками, кодовое расстояние.
5. Основные эксплуатационные характеристики ЭВМ и их связь с программным обеспечением.
2. Изучение самокоррекирующего кода Хэмминга.
Контрольная работа № 1 (вариант 2)
2.1. Цель работы.
Изучить возможности исправления ошибок и принципы построения самокоррекирующего кода Хэмминга.
2.2. Задание к работе
2.2.1. Изучить теорию.
2.2.2. Составить коды Хэмминга для десяти чисел, предложенных преподавателем (например- 0, 1,4,7,12 и т.д.).
2.2.3. Разработать программу для формирования кода Хэмминга и исправления ошибок.
2.2.4. Исследовать защищенность разработанной программы от ошибок при вводе кодовой последовательности.
2.2.5. Ответить на контрольные вопросы (номер БЛОКА задает преподаватель).
2.3. Принцип кодирования информации и исправление ошибок
Шеннон установил, что по каналу связи информация может передаваться безошибочно в том случае, если скорость передачи не превышает его пропускной способности. Однако доказательство Шеннона носило неконструктивный характер. Более поздние его исследования и другого американского ученого С. О. Райса показали, что практически любой случайно выбранный код позволяет достичь теоретического предела помехоустойчивости приема сообщений. Однако такой код имел высокую сложность декодирования: число операций, необходимых для декодирования принятой кодовой комбинации, возрастало экспоненциально росту его длины. Хэмминг был первым, кто предложил конструктивный метод построения кодов с избыточностью и простым декодированием. Его труд предопределил направление большинства работ в этой области, последовавших позже.
Код Хэмминга представляет собой блочный код, который позволяет выявить и исправить ошибочно переданный бит в пределах переданного блока. Контроль целостности данных осуществляется путём добавления к данным определённого количества контрольных бит, которое зависит от размера передаваемых данных. Количество необходимых контрольных бит можно определить из следующего неравенства:
d + p + 1 ≤ 2p
где d - размер блока данных в битах, p - количество необходимых контрольных бит. Обычно для характеристики кода Хэмминга используют пару (c, d), где с - длина передавемого блока данных с контрольными битами, а d - чистая длина данных. Например, (11, 7) означает, что передаваемая длина данных - 7 бит, количество контрольных бит равно 4, что составляет общую длину блока 11 бит.
В отличие от других методов коррекции ошибки, где контрольные биты дописываются в конец или начало блока данных (либо вообще в другом пакете данных), биты кода Хэмминга записываются вместе с данными в строго определённых позициях. Здесь и далее мы будем нумеровать биты не с нуля, а с единицы. Тогда позиции в которых записываются контрольные биты соответствуют степеням двойки (2k, k = 0, 1, 2, ...), то есть 1, 2, 4, 8 и т.д.
Рассмотри механизм работы кода Хэмминга на примере передачи 7-битового кода 1110011. Для контроля целостности блока данных такогой длины, нам необходимо 4 бита кода Хэмминга, которые записываются в позициях 1, 2, 4, 8:
Таблица 2.1 - Расположение битов кода Хэмминга (отмечены '*')
Позиция бита1110987654321Значение бита111*001*1**
Контрольная сумма формируется путем выполнения операции "исключающее ИЛИ" над кодами позиций ненулевых битов. В данном случае это 11, 10, 9, 5 и 3.
Таблица 2.2 - Нахождение контрольной суммы
111011101010091001050101030011Сумма1110
Полученная контрольная сумма записывается в соответствующие разряды блока данных - младший бит в младший разряд. Таким образом, формируется следующий блок данных:
Таблица 2.3 - Результирующий блок данных
Позиция бита1110987654321Значение бита11110011110 Просуммировав коды позиций с ненулевыми битами получаем 0, что является признаком корректного блока данных.
Таблица 2.4 - Проверка корректности блока данных
111011101010091001081000050101040100030011020010Сумма0000 Исправлять ошибки труднее, чем их детектировать или предотвращать. Процедура коррекции ошибок предполагает два совмещенные процесса: обнаружение ошибки и определение места (идентификация сообщения и позиции в сообщении). После решения этих двух задач, исправление тривиально - надо инвертировать значение ошибочного бита.
Рассмотрим два случая ошибки:
* ошибка в бите 7 - бит 0 заменён на бит 1 и * ошибка в бите 5 - бит 1 заменён на бит 1. Просуммируем коды позиций с ненулевыми битами:
* Таблица 2.5. Контрольная сумма в блоках данных, содержащих ошибку
111011111011101010101010091001091001081000081000070111040100050101030011040100020010030011020010сумма0111сумма0101
В обоих случаях контрольная сумма равна позиции бита, переданного с ошибкой. Теперь для исправления ошибки достаточно инвертировать бит, номер которого указан в контрольной сумме.
Более детальное рассмотрение кодов Хемминга позволяет сформулировать простой алгоритм проверки и исправления передаваемой последовательности бит:
1. произвести проверку всех битов четности;
2. если все биты четности верны, то перейти к п.(e);
3. вычислить сумму номеров всех неправильных битов четности;
4. инвертировать содержимое бита, номер которого равен сумме, найденной в п.3;
5. исключить биты четности, передать правильный информационный код.
Избыточность кодов Хемминга для различных длин передаваемых последовательностей приведена ниже:
Таблица 2.6.
Число информационных битЧисло контрольных битИзбыточность841,501651,313261,06 Из сопоставления видно, что выгоднее передавать и хранить более длинные последовательности бит. Безусловно, данный способ кодирования требует увеличения объема памяти компьютера приблизительно на одну треть при 16-битной длине машинного слова, однако, он позволяет автоматически исправлять только одиночные ошибки. Оценивая время наработки на отказ, следует исходить из вероятности появления парной ошибки в одной последовательности (т.е. сбои должны произойти в двух битах одновременно). Расчеты показывают, что для количества ячеек в памяти объемом 1 Мбайт среднее время появления двойной ошибки составляет более 80 лет, что, безусловно, можно считать вполне приемлемым с практической точки зрения.
2.4. Выполнение работы
2.4.1. Разработать программу, реализующую код Хэмминга.
2.4.2. Программа должна работать в двух режимах:
* на входе принимать правильный натуральный двоичный N разрядный код (значение N задано в БЛОКЕ вопросов) и на выходе формировать код Хэмминга.
* на входе принимать код Хэмминга с ошибкой, а на выходе формировать исправленный код.
2.4.3. Возможный интерфейс программы представлен на рис. 2.1.
2.4.5. Провести исследования, оценив, какие разряды дают большую вероятность ошибки, сколько ошибочных разрядов может с высокой вероятностью исправить Ваша программа.
Рис. 2.1. Пример интерфейса программы
2.5. Контрольные вопросы
БЛОК 1 N=8
1. Надежность как внутреннее свойство системы, проявляющееся во ВРЕМЕНИ.
2. Понятия: тактовая частота, производительность ЦВМ, быстродействие.
3. Что такое "Коэффициент готовности" и "Коэффициент использования" (формулы)?
4. Возможность исправления ошибок с помощью линейных кодов.
5. Понятие "неисправность программного обеспечения" и причины отказов программного обеспечения.
БЛОК 2
N=16
1. Основные понятия теории надежности применительно к задачам разработки программного обеспечения.
2. Различные модели для оценки надежности программного обеспечения.
3. Самокорректирующие коды. Принципы построения, возможность обнаружения ошибки с помощью такого кода.
4. Типы отказов- устойчивые, самоустраняющиеся.
5. Концепция эксплуатационного обслуживания ЭВМ и аппаратно-программных средств поддержки эксплуатации.
БЛОК 3
N=10
1. Основные эксплуатационные характеристики ЭВМ и их связь с программным обеспечением. 2. Повышение надежности при кодировании информации. Контроль четности. Самокорректирующие коды.
3. Расчет коэффициента готовности ЭВС.
4. Системный подход при разработке концепции RAS (Realibility- Availbility- Servibility). Технология проектирования:"Надежность-Готовность-Обслуживаемость".
5. Как можно количественно оценить надежность системы? Что такое "Вероятность правильной работы" (формулы)?
БЛОК 4
N=20
1. Основные понятия эксплуатационного обслуживания ЭВМ.
2. Понятия: кодовое расстояние в кодовой выборке, кратность ошибки, расстояние Хэмминга.
3. Абстрактные алфавиты. Возможные соотношения между алфавитами по мощности. Кодирование информации.
4. Понятие "неисправность программного обеспечения" и причины отказов программного обеспечения.
5. Практический подход к расчету показателей надежности ЭВМ (коэффициенты готовности, использования).
БЛОК 5
N=12
1. Что такое "Теория надежности программного обеспечения"? Что она дает разработчику ПО?
2. Как можно количественно оценить надежность системы? Что такое "Вероятность правильной работы" (формулы)?
3. Основные эксплуатационные характеристики ЭВМ.
4. Понятия: кодовая последовательность, расстояние между кодовыми выборками, кодовое расстояние.
5. Основные эксплуатационные характеристики ЭВМ и их связь с программным обеспечением.3. Исследование надежности программного обеспечения
Контрольная работа № 2 (вариант 1)
3.1. Цель работы
Цель работы изучить принципы оценки надежности программного обеспечения.
3.2. Задание к работе
3.2.1. Изучить теорию.
3.2.2. Ознакомиться с моделью для исследования надежности программного обеспечения.
3.2.3. Провести исследования надежности ПО.
3.2.4. Обработать результаты и оценить:
* вероятность правильной работы в зависимости от времени,
* среднее время наработки на отказ,
* возможность прогнозирования не исправленных ошибок в исследуемой модели,
* интенсивность потока отказов и восстановления,
* коэффициент готовности исследуемой модели,
* закон распределения ошибок 3.2.5. Ответить на контрольные вопросы(номер БЛОКА задает преподаватель).
3.3. Теоретическая часть
3.3.1. Основные понятия.
Проблема создания надежного программного обеспечения (ПО) приобретает все большее значение в связи с ростом затрат на разработку систем, усложнением их, дефицитом квалифицированных программистов, трудностью формализации и управления процессом подготовки ПО.
При проектировании систем особо выделяются работы по исследованию и обеспечению надежности, которые должны иметь ЕДИНОЕ руководство и четко планироваться. В процессе проектирования непрерывно анализируются характеристики надежности компонент, и прогнозируется надежность системы в целом.
Возникает вопрос: что такое ОШИБКА ПО? Возможные варианты ответа:
а) Если ПО не соответствует спецификациям. Но подготовка спецификаций- одна из главных причин реальных ошибок! Дело в том, что заказчик ПО и разработчик не всегда понимают друг друга, в частности потому, что у них различные сферы деятельности и интересы. Если бы заказчик мог сам программировать, он бы не искал программиста.
б) Если ПО не соответствует спецификациям в установленных при разработке пределах. Но при выходе за допустимы пределы система должна оставаться РАЗУМНОЙ!
в) Если ПО ведет себя не в соответствии с документацией! Но в документации невозможно предусмотреть все ситуации, в частности, ошибки оператора!
Надежность - это свойство системы выполнять заданные функции, сохраняя во времени установленных эксплуатационных параметров в заданных пределах, соответствующих заданным режимам и условиям использования, технического обслуживания, ремонта, транспортировки и хранения.
Надежность- это внутреннее свойство системы, заложенное при ее изготовлении и проявляющееся во ВРЕМЕНИ.
Надежность - свойство объекта выполнять заданные функции, сохраняя во времени значения установленных эксплуатационных показателей в заданных пределах, соответствующих заданным режимам и условиям использования, технического обслуживания, ремонта, транспортировки и хранения.
Работоспособность - свойство объекта выполнять заданные функции с параметрами, установленными техническими документами.
Неисправность - состояние, при котором работоспособность сохраняется, но нарушается второстепенная функция.
Отказ -случайное событие, происходящее с вероятностью Q(t), заключающееся в нарушении работоспособности. Отказы бывают:
- устойчивые;
- неустойчивые;
- самовосстанавливающиеся.
Вероятность безотказной работы P(t)= 1- Q(t)- это вероятность того, что при заданных условиях эксплуатации в течение времени t не возникнет отказ.
Восстановление - переход из неработоспособного состояния в работоспособное.
Безотказность - свойство сохранять работоспособность без вынужденных перерывов в работе.
Восстанавливаемость - способность объекта к предупреждению, обнаружению и устранению отказов. Невосстанавливаемые объекты не допускают ремонта или замены отказавших компонент.
Объект называется обслуживаемым, если допускается периодическое проведение профилактических испытаний.
Контроль работоспособности предназначен для своевременного выявления отказов и накопления информации для оценки работоспособности.
Диагностика - локализация отказов, установление их характера и причин, поиск неисправностей и их устранение.
Время восстановления Тв, в свою очередь, зависит от времени поиска неисправности tn и времени ее устранения tу:
Тв= tn + tу.
Тогда качество работы ЭВС можно характеризовать коэффициентом готовности:
.
При эксплуатации вычислительной системы случайным образом во времени происходят отказы, т.е. система перестает выполнять свои функции, определенные техническим заданием (ТЗ), или техническими условиями (ТУ). Полезное время работы машины составит Тп, а общее время: Т= Тп +То+ Тв + Тож,
где Тв- время восстановления работоспособности системы,
Тож- время ожидания начала восстановления.,
Тв- время восстановления работоспособности системы,
Коэффициент готовности определяется как отношение полезного времени работы компьютера к общему рабочему времени, включающему в себя помимо полезного времени и время, связанное с восстановлением системы после обнаружения сбоя:
Кг=Тп / (Тп +То+ Тв+ Тож)
Из этого следует, что необходимо не только приглашать квалифицированных специалистов для ремонта вычислительной системы, но и правильно организовать ремонтную службу с целью уменьшения времени ожидания ремонта.
При длительной эксплуатации ЭВС имеет смысл ввести оценку среднее время наработки на отказ:
=,(1.4)
где I=1..n на интервале времени исправного функционирования вычислительной системы.
Для увеличения необходимо периодически проводить контрольные испытания системы и профилактику в соответствии с регламентом обслуживания. На К контрольных операций будет истрачено время:
=.
На m профилактических мероприятий будет затрачено время:
=.
Для оценки совокупного качества работы вычислительной системы введен коэффициент использования Kи:
Kи= (Тп- Тк - Тр)/ (Тп +То+ Тв+ Тож).
3.3.2. Оценка надежности программного обеспечения по входным наборам.
Будем полагать, что:
* аппаратура работает без ошибок, т.е. сбои происходят исключительно за счет программного обеспечения,
* для каждого набора входных данных Ni имеем один детерминированный результат;
* множество Ni входных данных определяет все вычисления, выполняемые программой;
* каждая ошибка программы приводит к сбою при определенном наборе входных данных;
* запуск программы с заданным набором представляет собой единичное наблюдение.
Тогда вероятность СБОЯ Qi связана с вероятностью Pi выбора именно сбойного набора входных данных:
Q= 1- Σ Pi * Yi ,
где Yi=0 / 1 в зависимости от того, является i-тый набор сбойным или нет. Вероятность отказа для некоторого числа используемых наборов Nис можно представить в виде:
Q1= Σ Pi* (1-Yi), где i=1 ... Nис.
В процессе отладки программы из общего числа входных наборов Nис -L наборов дают отказы. Тогда вероятность отказа составит:
QL= L/ Nис.
Предполагаем, что после устранения очередной ошибки программного обеспечения, она вновь повториться уже не может. Однако могут встретиться новые ошибки. Поскольку отказы происходят случайно во времени, интересно найти функцию распределение вероятности отказов Q(t), плотность распределения отказов (dQ(t)/ dt) и оценить закон распределения. В работе [Серафинович] подробно рассматриваются вопросы, связанные с анализом данных характеристик.
При дальнейших запусках программы на выявлено и устранено еще M ошибок. Считая, что устраненные ошибки программного обеспечения повториться не могут, имеем линейную зависимость: QL+M = QL- M/Nиc.(3.1)
В этом случае можно считать, что программа будет надежна, т.е. QL+M=0, если количество выявленных ошибок будет равно:
M= QL *Nис.(3.2)
Предположим, что устранение одной ошибки вызывает К новых:
QL+M = QL- M/Nиc + M* K/ Nдоп(1.3)
где Nис- число первоначально используемых наборов,
Nдоп- общее число допустимых наборов.
Количество оставшихся ошибок, если исправление одной ошибки вызывает К новых при QL+M = 0 составит:
M=QL*NИC *NДОП/ (Nдоп-KNис)
Объектом исследования в данной работе выступает созданная программа-приложение (рис. 3.1), принцип работы которой состоит в следующем.
На начальном этапе генерируется массив из заданного преподавателем (1000) целых чисел. Затем случайное (или заданное) количество четных чисел заменяется на "неправильные" и считается, что эти числа представляют собой сбойные наборы. Для исправления ошибки необходимо сбойной число заменить на "правильное".
В процессе работы программы каждые 100 миллисекунд из массива случайным образом выбирается элемент, далее производится проверка и в том случае, если элемент является "сбойным", пользователю предлагается заменить его любым "допустимым" (рисунок 3.2).
В рабочем окне постоянно присутствуют часы текущего времени.
Рис. 3.1
Рис. 3.2
По окончании эксперимента на экран выводятся следующие данные:
* количество допустимых значений до начала работы программы и после ее окончания;
* количество сбойных значений до начала работы программы и после ее окончания;
* количество внесенных исправлений;
* время наработки на отказ ti ;
* количество произведенных выборок, при котором произошел отказ исследуемой программы.
Полученные данные впоследствии используются для расчета вероятности отказа, среднего времени безотказной работы и интенсивности отказов. 3.4. Проведение эксперимента
В ходе работы должен быть проведен эксперимент по исследованию надежности ПО, должны быть вычислены вероятности отказа, среднее время безотказной работы, интенсивности отказов.
Обработка массива полученных данных является важным заключительным этапом проведения различного рода экспериментов. Такую обработку можно проводить на ЭВМ и без нее. Целями статистической обработки опытных данных могут быть: нахождение закона распределения исследуемой случайной величины, определение числовых характеристик распределения и т.д. Достижение поставленных целей зависит от объема выборки. Например, числовые характеристики можно определять для любого количества статистических данных, начиная обычно с двадцати. Но для определения закона распределения выборка должна содержать не менее 50 измерений. В любом случае выборка должна быть случайной, а исследуемая совокупность однородной.
Метод статистической обработки опытных данных состоит из следующих этапов:
* исключение грубых ошибок наблюдений;
* построение интервального ряда и эмпирических кривых распределения;
* определение числовых характеристик эмпирического распределения;
* приближенное определение доверительных границ и интервалов;
* выбор теоретического распределения;
* определение оценок параметров теоретического распределения;
* расчет теоретических кривых распределения;
* проверка согласия;
* уточнение доверительных интервалов.
Задание по проведению эксперимента
1. Снять характеристики надежности программной модели и провести их обработку.
2. Провести статистическую обработку выборки, т.е. найти:
* Tсреднее - среднее время наработки на отказ;
* Q - вероятность отказа; * - интенсивность потока отказов;
* Кгот --коэффициент готовности;
* построить график зависимости среднего времени наработки на отказ от количества ошибок с учетом доверительных интервалов.
* построить график зависимости вероятности отказа от времени работы с учетом доверительных интервалов;
* Произвести прогноз оставшихся в программе ошибок после проведенного эксперимента.
Последовательность действий:
Сгенерировать массив. Для этого выбрать в меню <Опции> команду Сгенерировать массив или нажать первую кнопку на панели.
Выбрать необходимое количество выборок.
Зафиксировать время начала эксперимента Тнач.
Запустить процесс. Для этого выбрать в меню Опции команду Запуск процесса или нажать вторую кнопку на панели.
В процессе работы программы возможны так называемые "сбои". При их возникновении необходимо фиксировать время наработки на отказ и номер выборки.
После того, как будет просмотрена вся выборка, зафиксировать текущее время Ткон.
Практическая часть лабораторной работы включает в себя два пункта: определение критериев надежности ПО при фиксированном числе сбойных наборов и при случайном их числе.
3.4.1. Фиксированное число сбойных наборов (например n=10)
Особенности проведения эксперимента.
Nэксп - номер эксперимента (не менее 10);
Nвыб - номер выборки, содержащей сбойные данные;
Тi - время наработки на отказ (в секундах);
Тнач - время начала эксперимента;
Токонч - время окончания эксперимента.
Расчет производится по формулам:
1) вероятность отказа Q=Nсбойных/Mиспользуемых
2) среднее время безотказной работы Tсреднее=Ti/n,
где n - количество произошедших "сбоев" 3) интенсивность потока отказов=1/ Tсредн
4) коэффициент готовности 5) При построении графиков зависимости среднего времени наработки на отказ от количества ошибок необходимо учитывать доверительные интервалы. Доверительный интервал рассчитывается в предположении, что с вероятностью 95% его можно выразить через дисперсию случайной величины:
2 к = (Тк- Ti)2/ N
Т = Тогда среднее время наработки на отказ с учетом доверительного интервала составит:
Тотк. = Tk  Т
Доверительный интервал означает диапазон равновероятных значений оценки случайной величины. Тогда результирующий график должен представлять собой плавную кривую (прямую), проходящую внутри доверительных интервалов.
Результаты заносятся в таблицу и находятся усредненные результаты по десяти экспериментам. Пример расчета приведен в таблице 3.1.
Таблица 3.1
NэкспNвыбTiТначТокончQTсрΛКгот, %1616.67219:26:4019:28:360.01013.6650.073294.24150.53134037.187636.87518820.546444.81213214.43818.266230.32819:29:5519:31:520.01010.9320.091593.436131.422202.172363.937303.281202.188616.656424.57820.21984.547Среднее???????Дисперсия???????
Используя полученные данные, можно спрогнозировать, какое число экспериментов необходимо выполнить для устранения конкретного числа ошибок. Для этого строится график, на оси абсцисс которого откладывают количество проверенных выборок, а на оси ординат - вероятность отказов. График будет представлять собой прямую линию, имеющую отрицательный наклон.
График строится по двум точкам, соответствующим отказам во время эксперимента. Вероятность отказа вычисляется по формуле:
где L - количество отказов, произошедших к данному моменту;
N - количество выборок.
Если произошло еще М сбоев, то вероятность станет равной Пример.
Из графика на рис. 3.3. следует, что для исправления всех ошибок в программе требуется провести, примерно, 260 экспериментов. Рис.3.4. Прогнозирование оставшихся в программе ошибок.
3.4.2. Случайное число сбойных наборов
Если в эксперименте задавать случайное число сбойных наборов, то можно оценить зависимость вероятности отказа от количества имеющихся в программе ошибок.
Эксперимент проводится аналогично выше рассмотренному. На основе полученных данных требуется построить вероятность безотказной работы и зависимость среднего времени безотказной работы от количества сбойных значений в выборке (рис.3.4). Рис.3.5. Зависимость среднего времени безотказной работы
от количества сбойных значений в выборке
3.5. Контрольные вопросы:
БЛОК ВОПРОСОВ 1
1. Дать определение понятия надежности программного обеспечения.
2. Дать определение понятия работоспособности.
3. Определение количества отказов на малом интервале времени t.
4. Особенности ЦВМ с точки зрения возможных отказов и ошибок в работе. 5. Особенности контроля и диагностики ЭВС.
6. Что такое "Корректность" и "Устойчивость" по отношению к программному обеспечению? Связь этих понятий с отказом ПО.
БЛОК ВОПРОСОВ 2
1. Модель надежности программного обеспечения, учитывающая входные наборы. 2. Дать определение понятия неисправности и определение понятия восстановления. Дать определение понятия отказа.
3. Оценка надежности ПО с использованием метода Милса.
4. Приведите некоторые требования, предъявляемые к хорошо написанной программе.
5. Типы аппаратных дефектов ЭВС и особенности их воздействия на работоспособность.
6. Факторы, влияющие на надежность ПО, связанные с его разработкой.
БЛОК ВОПРОСОВ 3
1. Дать определение понятия безотказности и понятия восстанавливаемости. Для чего предназначен контроль работоспособности?
2. Модель надежности Джелинского- Моранды.
3. Как можно оценить количество неисправленных ошибок в программе на основании проведенного эксперимента?
4. Технологические и конструктивные факторы, влияющие на надежность ПО.
5. Расчет коэффициента готовности ЭВС с учетом потока отказов и потока восстановления.
6. Цели, которые могут быть поставлены при разработке программного обеспечения.
БЛОК ВОПРОСОВ 4
1. Модель надежности программного обеспечения Шумана. Что такое вероятность безотказной работы?
2. Какие бывают отказы? Как оценить надежность программного обеспечения при наличии потоков отказов и восстановления?
3. Цели, которые могут быть поставлены при разработке программного обеспечения.
4. Информационные характеристики системы технического диагностирования.
5. Особенности логического и структурного уровня проектирования вычислительной системы с точки зрения повышения надежности. Цели, задачи, документация.
6. Охарактеризуйте возможные деградационные процессы в ЭВС.
БЛОК ВОПРОСОВ 5
1. Что такое диагностика? Системы тестового и функционального диагноза.
2. Назовите основные средства повышения надёжности сложной систем.
3. Как оценить надежность программного обеспечения при наличии потока отказов? 4. Задачи и классификация систем технического диагностирования.
5. Повышение надежности при кодировании информации. Контроль четности. Самокорректирующие коды.
6. Аппаратно-программные средства автоматизации контроля и диагностики.
4. Исследование надежности программного обеспечения на модели калькулятора
Контрольная работа № 2 (вариант 2)
4.1. Цель работы
Цель работы: изучить принципы оценки надежности программного обеспечения.
4.2. Задание к работе
* Изучить теорию;
* ознакомиться с моделью для исследования надежности программного обеспечения;
* провести исследования надежности ПО;
* обработать результаты и оценить;
* вероятность правильной работы в зависимости от времени;
* среднее время наработки на отказ;
* интенсивность потока отказов и восстановления;
* коэффициент готовности исследуемой модели;
* закон распределения ошибок;
* ответить на контрольные вопросы(номер БЛОКА задает преподаватель).
4.3. Теоретическая часть
Показатели надежности - это величина или совокупность величин, характеризующих качественно или количественно степень приспособенности ЭВС к выполнению поставленной задачи.
КАЧЕСТВЕННЫЕ показатели не могут быть выражены в виде некоторого числа и не могут быть оценены путем сравнения. Пример- зеленый и красный цвет.
ПОРЯДКОВЫЕ показатели могут быть оценены путем сравнения.
КОЛИЧЕСТВЕННЫЕ показатели имеют некотрую количественную оценку - это основные показатели качества.
Возможные причины отказов программного обеспечения.
* Ошибки в самой программе.
* Ошибочные действия пользователя: случайные, по незнанию или по недопониманию системы и преднамеренные. Неверная интерпретация сообщений ЭВМ.
* Сбои аппаратуры: искажение данных во внешней памяти, сбои в системе ввода/вывода, сбои и шумы в каналах связи, потеря информации, искажения и сбои буферных накопителей, .
* Ошибки вычислений: ошибки преобразований и использования типов, ошибки последовательности выполнения операций, неправильно расставленные скобки, ошибки в индексации, переполнение или исчезновение порядка.
* Пропуск нужной функции. Определение не нужной функции. Неверное определение связей между блоками.
* Логические ошибки: неверно запрограммирован алгоритм, ошибочные метки, ошибки переходов, ошибки условных операторов, изменение параметра цикла, неверное задание параметров цикла. Проблемы, связанные с НЕЯСНОСТЬЮ системы при внесении в нее изменений.
* Неверное манипулирование данными: число, порядок следования, начальные значения, длина строки, размер и размерность массива, имена переменных, функций, п/программ.
* Ошибки совместимости: с ОС или другими прикладными программами.
* Ошибки сопряжения: несовместимость аргументов п/программ и функций, отсутствие необходимых п/программ, неверные ссылки на глобальные имена, нарушение синхронизации вычислительных процессов.
* Искажения входной информации: аппаратные, ошибки типов, ошибки формата, ошибки пользователя, ошибки в типах, размерах файлов.
Остановимся на последнем типе ошибок, конкретизируем, что ошибки связаны со входным набором данных.
Будем полагать, что:
* для каждого набора входных данных Ni имеем детерминированный результат;
* множество Ni входных данных определяет ВСЕ вычисления, выполняемые программой;
* каждая ошибка программы приводит к сбою при определенном наборе входных данных;
* запуск программы с заданным набором представляет собой единичное наблюдение.
4.5. Проведение эксперимента
Исследовать надежность программного обеспечения будем на программе "Калькулятор". При работе с данной программой в ней периодически возникают ошибки, которые пользователь должен обнаружить и определить тип ошибки. Это позволяет промоделировать не только сами ошибки программного продукта, но и промоделировать поиск неисправностей ПО и оценить время поиска и реальный коэффициент готовности. Обработка результатов должна проводиться по аналогии с описанной в Контрольной работе № 2 (первый вариант). Вид интерфейса программы представлен на рис. 4.1.
Рис. 4.1. Рабочее окно программы "Калькулятор"
Программа позволяет выполнять следующие математические операции: * сложение (+), * вычитание (-), * умножение (*), * деление (/), * смена знака (+/-), * возведение в квадрат(sqr), * извлечение квадратного корня (sqrt), * взятие модуля числа (Abs), * вычисление длины окружности, * вычисление площади круга (аргумент для длины и площади - радиус).
В программе реализована функция возникновения ошибок выполнения действий. Через некоторое время после запуска программы с определенным интервалом начинают возникать ошибки. Как только выполняющий лабораторную работу заметит ошибку, он должен нажать на кнопку "ошибка". После этого появится форма, содержащая список возможных ошибок (рис. 4.2). Из этого списка нужно выбрать замеченную ошибку и нажать на кнопку "выбрано".
Рис. 4.2. Выбор ошибки.
Таким методом нужно выявить по возможности все ошибки программы, при условии, что:
* правильно распознанная ошибка более не появляется,
* если ошибка распознана неверно, то появляется дополнительная ошибка.
В процессе эксперимента необходимо фиксировать время начала и конца всего эксперимента, количество обнаруженных ошибок (всего и правильно исправленных), время наработки на отказ при каждом сбое (см. Контрольную работу № 2 (первый вариант).
Особенности проведения эксперимента.
Nэксп - номер эксперимента (не менее 20);
Тi - время наработки на отказ (в секундах);
Тнач - время начала эксперимента;
Токонч - время окончания эксперимента.
Расчет производится по формулам:
1) вероятность отказа Q=Nсбойных/Mиспользуемых
2) среднее время безотказной работы Tсреднее=Ti/n,
где n - количество произошедших "сбоев" 3) интенсивность потока отказов=1/ Tсредн
4) коэффициент готовности При построении графиков зависимости среднего времени наработки на отказ от количества ошибок необходимо учитывать доверительные интервалы. Доверительный интервал рассчитывается в предположении, что с вероятностью 95% его можно выразить через дисперсию случайной величины:
2 к = (Тк- Ti)2/ N
Т = Тогда среднее время наработки на отказ с учетом доверительного интервала составит:
Тотк. = Tk  Т
Доверительный интервал означает диапазон равновероятных значений оценки случайной величины. Тогда результирующий график должен представлять собой плавную кривую (прямую), проходящую внутри доверительных интервалов.
4.6. Контрольные вопросы.
БЛОК 1
1. Назовите основные причины не работоспособности ПО. Обоснуйте ответ.
2. Оценка надежности ПО по входным наборам.
3. Как оценить надежность программного обеспечения при наличии потока отказов?
4. Общий подход к проблеме диагностирования технических устройств и программного обеспечения.
5. Эксплуатационные факторы, влияющие на надежность ПО.
6. Этапы процесса проектирования программного обеспечения.
БЛОК 2
1. Оценка надежности ПО с использованием метода Милса.
2. Опишите основные проблемы, которые возникают при проектировании и критерии, которые используются для определения надежности ПО.
3. Особенности организации функционального контроля аппаратной части ЭВС. Глубина тестирования.
4. Связь между кодовым расстоянием последовательности с возможностью обнаружения и исправления ошибок. Контроль четности.
5. Как оценить надежность программного обеспечения при наличии потоков отказов и восстановления 6. Понятие "неисправность программного обеспечения" и причины отказов программного обеспечения.
БЛОК 3
1. Дать определение понятия надежности программного обеспечения и понятия работоспособности.
2. Методы повышения надежности программного обеспечения.
3. Спецификация документации, входящей в состав технического проекта при разработке программного обеспечения.
4. Как можно оценить количество неисправленных ошибок в программе на основании проведенного эксперимента?
5. Охарактеризуйте возможные деградационные процессы в ЭВС.
6. Как оценить надежность программного обеспечения при наличии потоков отказов и восстановления?
БЛОК 4
1. Что такое вероятность безотказной работы? Модель надежности программного обеспечения Шумана. 2. Особенности организации тестового контроля аппаратной и программной части ЭВС. Глубина тестирования.
3. Организационные факторы, влияющие на надежность программного обеспечения на этапе разработки.
4. Основы системного подхода к проектированию программного обеспечения. Свойства целевой функции и элементов системы. Особенности синтеза и анализа системы.
5. Различные модели для оценки надежности программного обеспечения.
БЛОК 5
1. Модель надежности Джелинского- Моранды.
2. ЭВС может находиться в исправном состоянии. В как еще состояниях она может находиться и возможные переходы между состояниями?
3. Организация этапа сдачи заказчику надежного программного обеспечения и этапа сопровождения ПО.
4. Оценка надежности ПО путем введения искусственных ошибок в программу.
5. Задачи и классификация систем технического диагностирования.
6. Установить зависимость коэффициента готовности от потоков отказов и восстановления. 5. Список литературы 1. Раводин О.М. Конспект лекций по курсу НКиД ЭВС и ПО. Электронный вариант.
2. Серафинович Л.П. Статистческая обработка опытных данных. Учебное пособие. ТУСУР, Томск 1999г. 66с.
3. Каган Б.М., Мкртумян И.Б. Основы эксплуатации ЭВМ: Учеб. пособие для вузов/ Под ред. Б.М. Когана. 2е изд., перераб. и доп. М.: Энергоатомиздат,1988.-432с.: ил.
4. Байда Н.П. и др. Микропроцессорные системы поэлементного диагностирования РЭА/Н.П. Байда, И.В.Кузмин, В.Т.Шпилевой. М.:Радио и связь,1987.-256с., ил.
5. Г.Майерс. Надежность программного обеспечения. М.:Мир, 1980г.,360с.
2
Документ
Категория
Рефераты
Просмотров
129
Размер файла
921 Кб
Теги
лаб, нпо
1/--страниц
Пожаловаться на содержимое документа