Читайте также:
|
|
Стиль надежного программирования впитал в себя все идеи модульного и структурного стилей, в то же время акцентируя внимание на некоторых специфических аспектах.
Специфика надежного программирования состоит в выборе таких способов программирования, которые повышают надежность программы. В понятие " надежность " входят две составляющие – корректность и устойчивость.
Надежный стиль программирования обеспечивается применением способов надежного программирования. Эти способы представляют собой совокупность приемов программирования. Каждый из них состоит в применении определенных языковых средств и композиций в конкретных ситуациях, алгоритмах, схемах вычислений и представлениях структур данных.
1. Методы защиты от ошибок. Они позволяют создавать программы, работающие при наличии ошибок.
§ Ограничение последствий ошибки: программа строится так, чтобы ошибка не искажала ее работу вне того участка, где эта ошибка возникла.
§ Локализация ошибки: программа содержит процедуры для возобновления ее правильной работы после устранения ошибки.
§ Дуальное программирование: программа содержит избыточные ветви, позволяющие заменить хотя бы частично неверные ветви в момент возникновения ошибки.
2. Тестирование программ.
Надежная программа гарантирует правильность получаемых результатов и безотказность программы. Программа должна быть такова, что ее исполнение на каждом из допустимых наборов исходных данных приводит к ожидаемым результатам ее выполнения, не должно возникать непредвиденных ситуаций, например переполнения, нехватки памяти, зацикливаний и т.д.
При создании программы нужно не просто программировать вычисления, а представлять, как они будут выполняться с разными значениями операндов. Один из важнейших принципов надежного программирования – определение области допустимых значений данных на основе анализа и тестирования программы.
Программа, построенная с применением приемов надежного программирования, должна:
сообщать пользователю об области допустимых значений исходных данных при формулировке задачи или при вводе данных;
контролировать значения исходных данных при их вводе, сообщать о невозможности выполнения вычислений для недопустимых значений;
обеспечивать для каждой из подобластей допустимых значений соответствующие ей вычисления;
контролировать промежуточные результаты вычислений, прекращать вычисления или изменять их порядок при обнаружении недопустимых ситуаций.
Понятие интерфейса. Описание интерфейса. Поддержка интерфейса классом. Механизм подсчета ссылок в интерфейсах. Расширение интерфейса. Глобально-уникальный идентификатор интерфейса. Совместимость интерфейсов и классов. Получение интерфейса через другой интерфейс. Представление интерфейса в памяти. Механизм вызова метода объекта через интерфейс. Применение интерфейса для доступа к объекту динамически-подключаемой библиотеки.
Дата добавления: 2015-11-16; просмотров: 52 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Для возврата по try используется стек вызова процедур. | | | Описание интерфейса |