Главная Теоретический материал Лабораторные работы Задачи Тесты Контакты

Узбекское Агентство
Связи и Информатизации



Ташкентский Университет Информационных Технологий


Кафедра
«Программное обеспечение информационных технологий»

Направления:

5521900Информатика и
информационные технологии,
5523500Защита информации,
5523600Электронная коммерция,
5811200Сервис (информационный сервис),
5811300Сервис (электронные и
компьютерные технологии),
5320200Информатика и
библиотековедение,
5140900Профессиональное образование
(по направлению
информатика и
информационные технологии).


Преподаватель дисциплины



Доцент
Чернев Дмитрий Алексеевич

Защитное программирование

Защитное программирование - основано на важной пред­посылке: худшее, что может сделать модуль, это принять непра­вильные входные данные и затем вернуть неверный, но прав­доподобный результат.

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

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

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

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

1


Назад


Главная Теоретический материал Лабораторные работы Тесты Контакты