- •Лекция – 1. Предмет, принципы и задачи теории автоматизации управления силами флота.
- •1. Предмет теории автоматизации управления силами флота.
- •2. Принципы и задачи теории автоматизации управления силами флота.
- •3. Структура теории автоматизации управления силами флота.
- •Лекция – 2. Метод моделирования в теории автоматизации управления силами флота.
- •1. Роль и место моделирования.
- •2. Классификация моделей.
- •3. Принципы и этапы моделирования.
- •Групповое занятие. Концепция автоматизации процессов управления вмф.
- •1. Понятие концепции автоматизации процессов управления.
- •2. Структура и содержание концепции автоматизации процессов управления вмф.
- •Групповое занятие. Методологические основы автоматизации процессов управления вмф.
- •Взгляды зарубежных специалистов.
- •2. Отечественная методология проектирования асу военного назначения.
- •Групповое занятие. Факторы и методы обеспечения устойчивости вычислительного процесса в асу.
- •1. Устойчивость сложных систем.
- •2. Факторы, определяющие устойчивость вычислительного процесса в асу.
- •3. Методы обеспечения устойчивости вычислительного процесса в асу.
- •Групповое занятие. Методы защиты вычислительного процесса и информации в асу.
- •1. Методы защиты вычислительного процесса в асу.
- •2. Методы защиты информации.
- •Групповое занятие. Методы обеспечения надежности программных средств в асу.
- •1. Классификация ошибок и показатели надежности программного обеспечения.
- •2. Методы и средства разработки надежного программного обеспечения
Групповое занятие. Методы обеспечения надежности программных средств в асу.
Вопросы:
1. Классификация ошибок и показатели надежности программного обеспечения.
2. Методы и средства повышения надежности программного обеспечения.
Вопросы:
1. Методы защиты вычислительного процесса.
2. Методы защиты информации.
Учебная цель: Ознакомиться с основными методами защиты вычислительного процесса и информации в АСУ военного назначения.
Литература:
В.Ф. Шпак Основы автоматизации управления. Ч.2, стр. 13-16, 26-42.. Петродворец, ВМИРЭ, 1998 г.
Учебная цель: Ознакомиться с основными методами обеспечения надежности программного обеспечения АСУ военного назначения.
Литература:
В.Ф. Шпак Основы автоматизации управления. Ч.2, стр. 16-26. Петродворец, ВМИРЭ, 1998 г.
1. Классификация ошибок и показатели надежности программного обеспечения.
При искажении вычислительного процесса сразу дать однозначный ответ об источнике отказа затруднительно (программное обеспечение, технические средства, личный состав). Статистические данные свидетельствуют о следующем распределении причин искажений вычислительного процесса:
- конструкционные ошибки -15%;
- неисправности аппаратуры - 1%;
- ошибки системного ПО - 3%;
- ошибки функционального ПО - 75%;
- ошибки оператора - 5 %;
- ошибки исходных данных -1 %.
Отсюда видно, какую актуальность приобретает проблема обеспечения надежности программного обеспечения.
Введем понятие отказа программного обеспечения. Отказ программного обеспечения (ПО) - отклонение от правильного хода вычислительного процесса вследствие ошибок, допущенных в процессе разработки ПО.
Программные комплексы современных информационных и управляющих систем представляют собой чрезвычайно сложное изделие, в создании которого принимают участие десятки различных специалистов. В настоящее время наблюдается устойчивая тенденция к расширению масштабов исследований проблемы обеспечения необходимой надежности больших программных комплексов. В последние годы получены интересные результаты в теории надежности ПО и методологии разработки надежных программных средств. Умудренные опытом, профессиональные разработчики программ утверждают: каждая последняя выявленная ошибка в программе - на самом деле оказывается предпоследней.
Программное обеспечение - это один из важнейших видов обеспечения, определяющий интеллектуальные возможности и качество функционирования АСУ. На качественном уровне надежность ПО можно характеризовать следующим образом: программа обладает свойством надежности в той мере, в какой она способна удовлетворительно выполнять функции, для которых она предназначена.
Тогда надежность ПО можно характеризовать вероятностью того, что отказ ПО, вызывающий отклонение вычислительного процесса за допустимые пределы, не произойдет при определенных условиях внешней среды в течение заданного времени. Величина этой вероятности будет влиять на вероятность решения в АСУ конкретных задач в целом.
Обсудим это определение. Во-первых, следует иметь в виду, что не все отказы приводят к уменьшению надежности ПО, а только те, которые вызывают отклонения за допустимые пределы. Во-вторых, под определенными условиями внешней среды следует понимать описание входных данных и состояние вычислительной среды (выделенный объем ОП, способность нормально функционировать при отказах, т. е. например, возможность возобновлять работу с некоторых контрольных точек и т. д.). В-третьих, заданный период наблюдений - время, необходимое для выполнения поставленной задачи. Отказоустойчивость ПО может быть обеспечена введением избыточных программных и технических средств.
По виду проявления программные ошибки можно разделить на следующие основные классы (всего существует 169 категорий, объединенных в 20 классов):
• ошибки вычислений - содержатся в закодированных математических выражениях или получаемых с их помощью результатах;
• логические ошибки - пропуск логической операции или условия, а также ошибки, связанные с отсутствием элемента программы, выполняющего некоторую логическую функцию (в основном это дефекты алгоритмов );
• ошибки ввода-вывода - ошибки в модулях ввода-вывода и интерфейсах (ошибки формирования выдаваемых результатов, размещения информации, нарушение размеров полей ввода-вывода);
• ошибки манипулирования данными - ошибки операций чтения, записи, пересылки, хранения и изменения данных;
• ошибки в операционной системе и вспомогательных программных средствах - ошибки в ПО операционной системы, компилятора, ассемблера и во вспомогательных или специальных служебных программах;
• ошибки компоновки (конфигурации) - ошибки, связанные с тем, что, из-за жёсткой организации работы программ, ПО после некоторой модификации (обычно связанной с разрешением какой-то проблемы) становится несовместимым с операционной системой или прикладными программными средствами;
• ошибки сопряжения - ошибки в межпрограммных интерфейсах прикладных программ, а также в интерфейсах программа - системное ПО (возникают в сопряжениях прикладных программ с операционной системой или служебными программными средствами); ошибки в сопряжениях с устройствами ввода-вывода; ошибки в пользовательских интерфейсах, включающие ошибки во входных данных; ошибки сопряжения с базой данных (происходят из-за несоответствия между действительной структурой базы данных и описанием этой структуры в программах, формирующих базу данных или обращающихся к ней);
• ошибки инициализации базы данных – непосредственно связаны с начальными значениями данных или с константами в базе данных;
• ошибки определения глобальных переменных (данных, предназначенных для использования в различных программах);
ошибки в документации;
ошибки оператора - связаны с работой оператора, разработчика или испытателя;
неопознанные ошибки.
Исследования показали зависимость числа ошибок от величины и сложности модуля программного обеспечения. Так, выявлено, что в среднем на 1000 операторов исходного текста приходится примерно 10-20 ошибок. Зависимость эта практически линейная. Тогда в качестве показателя надёжности можно принять, например, число ошибок, обнаруженных за период тестирования программного модуля.
Ограничивающие условия:
- обнаруженные в ходе тестирования ошибки устраняются;
- вновь возникшие ошибки при устранении обнаруженных не учитываются;
- количество обнаруживаемых в каждый момент времени ошибок не зависит от того, сколько их уже выявлено и исправлено;
- набор тестов полон и соответствует функциональному назначению модуля.
В силу сделанных предположений число ошибок пропорционально ненадежности, так что, если какая-либо процедура тестирования уменьшает число ошибок, например, вдвое, то ненадежность программы также уменьшается вдвое.
Количество ошибок может быть оценено и предсказано с помощью набора показателей сложности. Основные показатели сложности;
Показатель логической сложности, измеряемый числом логических операторов (разветвлений, циклов, условных переходов).
, (1)
где LS – общее число логических операторов программы;
EX – общее число исполняемых операторов программы;
LLOOP – показатель сложности циклов;
LIF – показатель сложности условных операторов;
LBR – число ветвтлений в условных операторах BR, умноженное на коэффициент 0.001, определяющий относительную значимость LBR в выражении общей логической сложности.
Показатель сложности взаимосвязей
, (2)
где АР - число связей с прикладными программами; SYS - число связей с системными программами; 0.5 - коэффициент важности SYS по сравнению с АР.
Показатель сложности вычислений:
, (3)
где CS- число операторов вычислительного характера;
- суммарная логическая сложность программного обеспечения по всем LTOT модулям.
Показатель сложности ввода-вывода
, (4)
где - число операций ввода-вывода.
Удобочитаемость или показатель простоты программы
, (5)
где TS - общее число операторов; СОМ- число комментариев.
Показатель общей сложности
, (6)
где 1 , 0.1, 0.2 , 0.4 , -0.1- коэффициенты важности.
Для прогнозирования уровня ошибок определяются все шесть показателей. Далее, по численным значениям перечисленных показателей, вычисляется ожидаемое количество ошибок в программе. Для того чтобы выполнить эти вычисления, необходимо иметь формульные зависимости числа ошибок от шести приведенных показателей. Эти зависимости строятся обычно методом линейного регрессионного анализа на основании известных из предыдущего статистических данных. Линейный регрессионный анализ позволяет построить линейную функцию числа ошибок от измеряемых параметров сумма квадратов отклонений которой от фактического числа ошибок в программах была бы минимальной.