Информационно-безопасные системы. Анализ проблемы: Учебное пособие, страница 20

// Параметр ty передается конструктору базового класса

{

double rad = 3.1415926 / 180;      // Константа перевода в радианы

// Проверка на валидность входных параметров

t - (tt > 90 || tt < 0) ? 0: tt;

f = (fi > 360 || fi < 0) ? 0: fi;

d = (ds < 0) ? 0: ds;

// Перевод углов в радианы

tr = t * rad;  fr = f * rad;

// Проекция радиуса-вектора на горизонтальную плоскость

r = d * cos(tr);

// Декартовы координаты

х = r * sin (fr);  у = r * cos (fr);  z =d  * sin (tr);

};

Конструктор с параметрами создаст объект класса Spheric и присваивает внутренним координатам объекта f, t, d значения своих параметров. Обратите внимание на то что один раз затратив усилия на разработку конструктора, мы навсегда избавляемся от возможности ошибочно или преднамеренно создать объект со значениями коорди­нат вне пределов ОДЗ.

Выражение типа (ds < 0 ) ? О : ds вырабатывает значение нуль, если параметр ds отрицателен и значение, равное ds, в остальных случаях. Синтаксис с использованием символов ? (если) и: (иначе) компактен и достаточно выразителен. Символы || означа­ют операцию логического ИЛИ (дизъюнкция).

Производный класс Spheric имеет свои собственные копии переменных х, у, z. Они унаследованы от родительского класса Coord. Механизм их инициализации обеспечивается конструктором. Выражение:Coord (ty), стоящее в заголовке конструктора класса Spheric, инициализирует конструктор класса Coord и передает ему параметр char *ty (указатель на строку символов, содержащую тип цели). Таким образом, создавая класс, производный от базового, нам нет необходимости что-либо изменять в базовом классе. Более сложный объект класса Spheric унаследовал от более простого класса Coord декартовы координаты цели, добавив к ним свои внутренние данные. При этом структура класса Coord осталась нетронутой. Так как приведенный пример имеет чисто иллюстративный характер, то набор методов класса минимален. На практике он дол­жен быть значительно шире, чтобы иметь возможность адекватно управлять объектами созданных классов. Объектно-ориентированный подход и возможности языка C++ позволяют продолжить развитие иерархии классов, создав, например, класс "Цель", производный от класса Spheric и добавить в нем такие данные, как скорость, масса, дальность полета и т.д.

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

Литература к разделу 5

1.  Е.П.Палусун, Р.М.Юсупов. Оценка надежности ПО, СПб, Наука, 1994.

2.  Н.Н. Безрукое. Компьютерная вирусология: Справочное руководство, Киев, 1994.

3.  Р-М.Юсупм, В.И.Воробьев. Отчет о НИР "Разработка методики оценки степени безопасности про1раммного обеспечения". -СПб.: 1991.

4.  А.Щербаков. Разрушающие программные воздействия. -М.: Эдель, 1993. -64с. 5- М- Элис, Б.Страуструп. Справочное руководство по языку программирования C++ с коммента­риями. Мир,1992.

6. РАЗРАБОТКА ИНФОРМАЦИОННО-БЕЗОПАСНОЙ ТЕХНОЛОГИИ ПРОЕКТИРОВАНИЯ АВТОМАТИЗИРОВАННЫХ СИСТЕМ УПРАВЛЕНИЯ И ПОСТРОЕНИЯ СИСТЕМ ИНФОРМАЦИОННОЙ БЕЗОПАСНОСТИ

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