Автор работы: Пользователь скрыл имя, 19 Декабря 2011 в 17:53, реферат
В соответствии с Доктриной информационной безопасности Российской Федерации, утвержденной Президентом Российской Федерации 9 сентября 2000 года № Пр-1895, одна из составляющих национальных интересов Российской Федерации в информационной сфере включает в себя «развитие современных информационных технологий, отечественной индустрии информации, в том числе индустрии средств информатизации, телекоммуникации и связи, обеспечение потребностей внутреннего рынка ее продукцией и выход этой продукции на мировой рынок, а также обеспечение накопления, сохранности и эффективного использования отечественных информационных ресурсов».
Рассмотрим
перечисленные вопросы
В соответствии с принципом абстракции при проектировании программ разработчики могут идти по меньшей мере двумя путями: от аппаратуры «вверх» ¾ к виртуальной машине, или от виртуальной машины «вниз» ¾ к реальному оборудованию. Это и есть два основных метода проектирования ¾ метод снизу вверх и метод сверху вниз. Остальные описываемые методы по своей сути сводятся к этим двум или являются их сочетанием.
Метод снизу вверх предполагает начало проектирования с основного аппаратного оборудования системы. При проектировании модули разбиваются на ряд слоёв, причём нулевой слой виртуальной системы образует аппаратура. Слои добавляются последовательно, реализуя одно или несколько необходимых свойств, пока не будет получена желаемая виртуальная машина.
К недостаткам метода проектирования снизу вверх относят:
При разработке программ, реализующих криптографические алгоритмы, данный метод применим только отчасти и только в том случае, если система команд процессора, на котором будет работать проектируемая программа, имеет в своем составе специфичные команды, реализующие элементарные базовые криптографические преобразования.
При использовании метода проектирования сверху вниз (иерархический метод) исходят от виртуальной машины, представляющей ПО, с требуемыми свойствами и последовательно разрабатывают слои виртуальной системы вплоть до аппаратуры. В этом случае процесс проектирования заключается в следующей последовательности.
Определяется абстракция описания компонент ОС высшего уровня. Далее систематически проводится анализ, достаточно ли определены компоненты, чтобы можно их было реализовать, используя некоторые примитивные понятия. Если нет, то каждая функция каждой компоненты представляется функциями компонент следующего слоя, которому соответствует более низкий уровень абстракции, и снова проводится анализ на возможность их реализации.
В иерархическом методе целесообразно использовать принцип модульного проектирования и структурный принцип.
Принцип модульного проектирования заключается в разделении программ на функционально самостоятельные части (модули), обеспечивающие заменяемость, кодификацию, удаление и дополнение составных частей.
Преимущества использования модульного принципа состоят в следующем:
Структурный принцип имеет фундаментальное значение и составляет основу большинства реализаций. Согласно этому принципу, для построения ПО требуются только три основных составляющих блока:
Функциональный
блок можно представить как
Организация цикла в литературе часто упоминается как элемент DO-WHILE. Конструкция принятия двоичного решения называется IF-THEN-ELSЕ.
Заметим, что эти конструкции могут сами рассматриваться как функциональные блоки, поскольку они обладают только одним входом и одним выходом. Таким образом, можно ввести преобразование операции цикла в функциональный блок и в последующем рассматривать всякий такой оператор цикла эквивалентом (несколько более сложного) функционального блока. Аналогично можно ввести преобразование конструкции принятия решения к функциональному блоку. Наконец, можно привести всякую последовательность функциональных элементов к одному функциональному элементу. В то же время обратная последовательность преобразований может быть использована в процессе проектирования программы по нисходящей схеме, т. е. исходя из единственного функционального блока, который постепенно раскладывается в сложную структуру основных элементов.
Понятие корректности или правильности подразумевает соответствие проверяемого объекта некоторому эталонному объекту или совокупности формализованных эталонных характеристик и правил. Корректность ПО при разработке наиболее полно определяется степенью соответствия предъявляемым к ней формализованным требованиям программной спецификации. В спецификациях отражается совокупность эталонных характеристик, свойств и условий, которым должна соответствовать программа. Основную часть спецификации составляют функциональные критерии и характеристики. Исходной спецификацией, которой должна соответствовать программа, является ТЗ или, в нашем случае, криптографический алгоритм.
Традиционный взгляд на спецификацию требований заключается в том, что она представляет собой документ на естественном языке, который является интерфейсом между заказчиком и изготовителем. Хотя подготовке документа и может предшествовать некоторое взаимодействие, именно этот документ в значительной степени выступает как «отправная точка» для изготовителя программ.
Создание
совокупности взаимоувязанных
Существует несколько подходов к определению спецификаций требований.
Спецификация как описание. Заказчик выдает спецификацию, чтобы изготовители могли снабдить его тем изделием, которое он желает, поэтому заказчик видит этот документ главным образом как описание системы, которую он желал бы иметь. В принципе, в описании должно быть указано, что система должна делать и чего она не должна. На практике обычно по умолчанию предполагается, что система должна делать то, что уточняется в спецификации, и не должна делать ничего более. В этом состоит главная проблема с описательной стороной спецификации. Предполагается, что заказчик всегда точно знает всё, что система должна и не должна делать. Более того, в дальнейшем предполагается, что заказчик полностью перенёс это знание в специфицированный документ.
Спецификация как предписание. Изготовитель смотрит на специфицированный документ как на набор составных частей, подлежащих сборке, чтобы разрешить проблему заказчика. Такой предписывающий взгляд обуславливается не только трудностями создания описательного документа (как указывалось выше), но и сведениями, которые умышленно или неумышленно расширяют или ограничивают свободу изготовителя.
Договорная методология. В этих рамках «описание заказчика ¾ предписание изготовителю» ¾ спецификация рассматривается как формальное разделение между сторонами. Что касается заказчика, он представляет минимально приемлемое, тогда как изготовитель представляет максимально требуемое. Договор предлагается и принимается при зарождении системы и заканчивается после завершения системы, когда заказчик принимает систему как отвечающую его минимальным требованиям. Во время изготовления системы в принципе не предполагается никаких взаимодействий, даже если изготовитель подозревает, что предписываемое маловероятно соответствует тому, что заказчик желает видеть в действительности.
Спецификация как модель. Современные более строгие представления о спецификации трактуют ее как модель системы. При условии, что лежащая в основе модели семантика в достаточной мере обоснована, такая спецификация обеспечивает чёткую формулировку требований.
Соответствующие модели подходят также для автоматизированного контроля целостности и другого прогнозного анализа, который, в частности, обеспечит прекращение разработки системы, в принципе не способной удовлетворить требованиям.
Как было отмечено выше, при разработке программ, реализующих криптографические алгоритмы, для обеспечения высоких гарантий отсутствия неисправностей и последующего доказательства того, что система функционируют согласно представленному алгоритму, используются формальные подходы к ее проектированию. Формальное проектирование алгоритмов базируется, в основном, на языках алгоритмических логик.
Рассмотрение программ в качестве некоего «преобразователя предикатов» позволяет прямо определить связь между начальными и конечными состояниями без каких-либо ссылок на промежуточные состояния, которые могут возникнуть во время выполнения программы.
Преимущество представления алгоритма в виде преобразователя предикатов состоит в том, что оно дает возможность:
Методология формальной разработки и доказательства корректности алгоритмов в настоящее время хорошо разработана и изложена в целом ряде работ. Вкратце суть методов, изложенных в этих работах, сводится к следующему:
Рассмотрим формальный метод разработки программ более подробно.
Введем обозначение
Q {S} R,
где Q и R - предикаты, а S - алгоритм (последовательность команд), которая имеет следующую интерпретацию: если выполнение S началось в состоянии, удовлетворяющем Q, т.е. при таком соотношении входных условий, что Q истинно, то имеется гарантия завершения S через конечное время в состоянии, удовлетворяющем R. Здесь Q называется предусловием, а R - постусловием.
Для детерминированной конструкции S и некоторого постусловия R всякое начальное состояние попадет в одно из трех непересекающихся множеств в соответствии со следующими взаимно исключающими возможностями:
а) Запуск конструкции S приведет к конечному состоянию, удовлетворяющему R.
б) Запуск конструкции S приведет к конечному состоянию, удовлетворяющему non R.
в) Запуск конструкции не приведет к какому бы то ни было конечному состоянию, т.е. работа не может завершиться.
Информация о работе Основные подходы к обеспечению качества программного обеспечения