- •Требования к безопасности программного обеспечения (Дополнение к гост 28195-99)
- •1. Тестирование сложности системы (дополнение к показателю с1 в гост 28195-99)
- •2. Принципы объектно-ориентированного подхода (дополнение к показателям с2 и с3 в гост 28195-99)
- •3. Венгерская нотация (дополнение к показателю с3 в гост 28195-99)
- •4. Обработка исключений (дополнение к показателю к4 в гост 28195-99)
- •4. Защита от нсд (дополнение к показателю к5 в гост 28195-99)
Требования к безопасности программного обеспечения (Дополнение к гост 28195-99)
Содержание
-
Тестирование сложности системы
-
Принципы объектно-ориентированного подхода
-
Венгерская нотация
-
Обработка исключений
-
Защита от НСД
1. Тестирование сложности системы (дополнение к показателю с1 в гост 28195-99)
Требования к надежности, правильности и безопасности программного обеспечения должны основываться на сложности анализируемого программного продукта, а так же сложности оборудования или задач, для которых написано программное обеспечение.
Сложность системы, для которой нужно разработать программное обеспечение определяется по пяти признакам:
- система может быть описана в виде иерархии, т.е. может быть разделена на подсистемы, которые тоже могут быть иерархичными;
- в системе могут быть выделены подсистемы, для которых внутриэлементные связи сильнее, чем межэлементные;
- низший уровень одной подсистемы достаточно произволен, и может быть достаточно высоким уровнем для другой подсистемы;
- подсистемы могут быть реализованы в различном порядке, в различных комбинациях и иметь тенденцию к развитию во времени;
- развитие всей системы основано на развитии ее подсистем.
К системам, удовлетворяющим вышеперечисленным признакам, структурное программирование (сверху вниз) не применимо. Такая система никогда не будет полностью работоспособна.
Если система обладает более простой конструкцией, к ней может быть применен ГОСТ 28195-99.
2. Принципы объектно-ориентированного подхода (дополнение к показателям с2 и с3 в гост 28195-99)
Для анализа работоспособности сложной системы, проектирования, программирования и тестирования должен применяться объектно-ориентированный подход, состоящий из следующих основ:
- объектно-ориентированного анализа;
- объектно-ориентированного проектирования;
- объектно-ориентированного программирования.
Для объектно-ориентированного анализа системы необходимо представить ее в виде совокупности объектов, взаимодействующих друг с другом. Для этих объектов необходимо определить свойства, состояние и поведение. Эти характеристики должны быть реализованы в виде подпрограмм (функций).
При реализации этих функций необходимо применить объектно-ориентированное проектирование, состоящее из следующих основ:
- абстрагирование;
- ограничение доступа;
- модульность;
- иерархичность;
- типизация;
- параллелизм;
- устойчивость.
Для реализации объектно-ориентированного проектирования разработаны принципы объектно-ориентированного программирования, состоящие из трех базовых концепций:
- наследование;
- инкапсуляция;
- полиморфизм.
Эти принципы положены в основу реализации любого объектно-ориентированного языка с любой средой для компиляции (Delphi, Borland, Visual и т.д.).
Реализация принципа наследования состоит в создании новых классов (потомков) на основе уже имеющихся классов с передачей их свойств и методов по наследству. Наследование, таким образом, исключает написание одинакового кода.
Принцип инкапсуляции обеспечивает возможность объединения данных и кода в объект. Этим обеспечивается сокрытие информации:
- осуществляется защита информации от ненужных и случайных модификаций, что обеспечивает целостность данных и упрощает отладку программного кода после изменений;
- скрывается реализация объекта и в любой момент одну сущность можно заменить другой, если новая сущность поддерживает все необходимые интерфейсы.
Принцип полиморфизма обеспечивает взаимозаменяемость объектов с одинаковым интерфейсом. В программе должен присутствовать механизм перегрузки методов (функций, операций).
Структура программного продукта должна иметь объектно-ориентированную декомпозицию, представленную на Рисунке 1, т.е. в проекте должны присутствовать модули:
- основной файл;
- файл изменений;
- контрольная сумма.
Рис 1. Объектно-ориентированная декомпозиция