
- •Лекция – 1. Предмет, принципы и задачи теории автоматизации управления силами флота.
- •1. Предмет теории автоматизации управления силами флота.
- •2. Принципы и задачи теории автоматизации управления силами флота.
- •3. Структура теории автоматизации управления силами флота.
- •Лекция – 2. Метод моделирования в теории автоматизации управления силами флота.
- •1. Роль и место моделирования.
- •2. Классификация моделей.
- •3. Принципы и этапы моделирования.
- •Групповое занятие. Концепция автоматизации процессов управления вмф.
- •1. Понятие концепции автоматизации процессов управления.
- •2. Структура и содержание концепции автоматизации процессов управления вмф.
- •Групповое занятие. Методологические основы автоматизации процессов управления вмф.
- •Взгляды зарубежных специалистов.
- •2. Отечественная методология проектирования асу военного назначения.
- •Групповое занятие. Факторы и методы обеспечения устойчивости вычислительного процесса в асу.
- •1. Устойчивость сложных систем.
- •2. Факторы, определяющие устойчивость вычислительного процесса в асу.
- •3. Методы обеспечения устойчивости вычислительного процесса в асу.
- •Групповое занятие. Методы защиты вычислительного процесса и информации в асу.
- •1. Методы защиты вычислительного процесса в асу.
- •2. Методы защиты информации.
- •Групповое занятие. Методы обеспечения надежности программных средств в асу.
- •1. Классификация ошибок и показатели надежности программного обеспечения.
- •2. Методы и средства разработки надежного программного обеспечения
2. Методы и средства разработки надежного программного обеспечения
Методы и средства разработки надежного программного обеспечения рассматриваются как стандарты и процедуры, используемые как при разработке, так и при сопровождении ПО. Основное назначение этих средств и методов следующее:
- исключить ошибки до их попадания в конечное изделие;
- выявить ошибки, которые попали в программный продукт на предыдущих этапах разработки;
- облегчить исполнителю проекта выполнение рутинных задач.
Для реализации этих возможностей используются стандарты проектирования и программирования (анализ и выявление ошибок вычислений, логики, ввода-вывода, манипулирования данными, сопряжений), осуществляется проверка соответствия решений и программ, ветвей алгоритма, функциональных возможностей ПО в экстремальных условиях (пошаговая проверка через 100 операторов).
Средства выявления программных ошибок подразделяются на предупредительные, обнаружительные и вспомогательные.
К предупредительным методам относятся:
имитаторы - ориентированы на логические и вычисли тельные аспекты программного комплекса;
языки проектирования - ориентированны на программную логику, включая такие наиболее часто встречающиеся логические ошибки, как пропуск логических проверок и проверок условий.
К обнаружительным и вспомогательным можно отнести:
• ревизор стандартов программирования - главная ценность этого обнаружительного средства - строгое выполнение установленных стандартов программирования;
анализатор - обеспечивает согласованность единиц измерения;
определитель присваивания и обращений - средство для обнаружения ошибок манипулирования данными (идентификация точек присвоения значений данным и программ, которые к ним обращаются);
фиксатор согласованности элементов — имеется ввиду согласованность двух элементов программы (выявляет до 10% всех ошибок); динамический анализатор ветвей - осуществляет идентификацию и выявление сегментов и ветвей программы с целью прослеживания ее исполнения и определения частей программы, участвующих в работе;
генератор текстовых данных - обеспечивает динамический анализ по всем ветвям и исходным данным;
универсальные средства конструирования базы данных - для генерирования таблиц и массивов данных для целей стендовых испытаний;
компаратор баз данных - обеспечивает поэлементное сравнение базы данных в исходном состоянии и регистрацию всех случаев несовпадений после использования программ. Грамотное использование средств разработки и испытаний позволяет обнаружить своевременно 60-70% ошибок.
Для прогнозирования числа ошибок в j-й программе наиболее широко используется регрессионная модель вида
,
(7)
где Zi,j- вычисленные по формулам (1) – (6) величины показателей сложности j-й программы;
ai - коэффициенты влияния i-го показателя сложности на число ошибок.
Коэффициенты ai находятся следующим образом. Предположим, что в нашем распоряжении имеется N отлаженных программ, для каждой из которых известно число ошибок до начала отладки. Обозначим число ошибок j-й программы Yj.
Тогда для определения неизвестных коэффициентов аj, необходимо минимизировать сумму квадратов отклонений фактического числа ошибок от ожидаемого по каждой программе, т. е. найти минимум
.
Для того, чтобы найти минимум данной квадратичной функции достаточно взять частные производные этой функции по неизвестным параметрам ai и приравнять их к нулю. В результате получится система из шести уравнений с шестью неизвестными, решив которую мы найдем коэффициенты ai. Подставляя эти коэффициенты в формулу (7) для других программ, мы можем определять ожидаемое число ошибок в них. Этот метод, обеспечивающий минимум квадратов отклонений ошибок называется методом наименьших квадратов и лежит в основе регрессионного анализа.
Многообразие категорий, типов, форм проявления ошибок приводит к появлению множества моделей надежности ПО в зависимости от определенных параметров. Термин модель надежности ПО, как правило, относится к математической модели, построенной для оценки зависимости надежности ПО от некоторых определенных параметров. Значения таких параметров могут быть измерены в ходе наблюдений или экспериментального исследования процесса функционирования ПО.
Одним из видов модели надежности ПО, которая заслуживает особого внимания, является так называемая феменопогическая или эмпирическая модель. При разработке моделей такого типа предполагается, что связь между надежностью и другими параметрами является статической. С помощью подобного подхода пытаются количественно оценить те характеристики ПО, которые свидетельствуют либо о высокой, либо о низкой его надежности. При разработке феменологической модели надежности ПО стремятся иметь дело с такими параметрами, соответствующее изменение значений которых должно приводить к повышению надежности ПО. Так, например, параметр сложность программы характеризует степень уменьшения уровня ее надежности, поскольку усложнение программы всегда приводит к нежелательным последствиям и в том числе к неизбежным ошибкам программистов при составлении программ и трудностям их обнаружения и устранения.
Модель Шумана. Предполагается, что в начальный момент компоновки программных средств в систему ПО в них имеется ET ошибок. С этого момента начинается отсчет времени отладки τ, которое включает затраты времени на выявление ошибок с помощью тестов, на контрольные проверки и т.д. При этом время исправного функционирования системы не учитывается.
В
течение времени отладки τ устраняется
ошибок в расчете на одну команду в
машинном языке. Таким образом, удельное
число ошибок на одну машинную команду,
оставшихся после времени отладки τ
равно
,
где Im – общее число машинных команд, которое предполагается постоянным.
Предполагается, что значение функции частоты отказов Z(t) пропорционально числу ошибок, оставшихся в ПО после израсходования на отладку времени τ, т.е.
.
Тогда, если начальный момент времени отладки принять равным нулю, а τ фиксировано, то вероятность безотказной работы программ на интервале (0,t) равна
.
Модель Джелинского-Моранды. Данная модель предназначена для прогнозирования надежности ПО и представляет собой частный случай модели Шумана. В ней предполагается дополнительно, что время между обнаружением ошибок в ходе отладки подчинено экспоненциальному закону.
Модель Шика-Волвертона. Данная модель является модификацией модели Джелинского-Моранды. В ее основе лежит предположение, согласно которому частота обнаружения ошибок пропорциональна не только количеству ошибок в программах, но также и времени отладки. Тогда вероятность обнаружения ошибок с течением времени возрастает.
Модели Дженинского-Моранды и Шика-Волвертона могут быть обобщены, если допустить возможность возникновения на рассматриваемом интервале более одной ошибки и считать, что исправление ошибок производится лишь после истечения интервала времени, на котором они возникли.
Перечисленные модели нашли ограниченное применение, так как в них слабо учитываются свойства программ, режимы функционирования и стратегии испытаний. Эти модели основываются главным образом на таких общих закономерностях теории вероятностей, как экспоненциальная зависимость надежности от числа испытаний, и на весьма упрощенных представлениях относительно последствий программных ошибок.
Для устранения недостатков, которыми характеризуются описанные выше модели, была разработана модель Нельсона. Модель Нельсона разработана с учетом основных свойств машинных программ и использует методы теории вероятностей лишь в тех случаях, когда невозможно получение полной информации о том или ином факторе. Все приближения, принятые в модели, четко определены и известны границы их применимости. Поскольку в основу модели Нельсона положены свойства ПО, она допускает развитие за счет более детального описания других аспектов надежности. Вследствие отмеченных особенностей модели ее следует рассматривать как математическую теорию надежности ПО, а не как простую модель надежности.
Основным методом проектирования надежных сложных комплексов является метод структурного проектирования. В его основе лежит использование модульно-иерархического принципа на основе декомпозиции целей и задач функционирования системы. Проектирование ведется сверху вниз с последовательной детализацией задач и методов их решения. На каждом уровне сложность связей и взаимодействия ограничены; В результате общая сложность системы ПО при усложнении задач растет значительно медленнее, чем при неструктурированном проектировании. При этом методе решаются следующие автономные задачи.
• создание структуры комплекса программ и правил взаимо действия модулей;
• разработка правил и методов структурного построения компонент:
• определение правил построения и структур массивов данных, отдельных компонент.
Таким образом, актуальность проблемы "выживания" сложных организационных систем в кризисных ситуациях породила необходимость разработки методологии моделирования крупномасштабных развивающихся систем при неполных и нечетких знаниях и слабой формализации задач. В любой системе критические условия функционирования, вызванные ее коренными структурными преобразованиями, выдвигают на первый план вопросы обеспечения выживания подобной системы при внутренних и внешних структурных и параметрических воздействиях на нее.