Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

polevoi_cpp_2013_spring_lecture_04

.pdf
Скачиваний:
7
Добавлен:
20.04.2015
Размер:
134 Кб
Скачать
☆

Оптимизация

•выбор способа хранения в зависимости от разреженности и размерности

•для разреженных – хранение в упорядоченном виде (поддержание упорядоченности при вставке членов)

23.03.2013

31

Спецификация ПО

•точное описание работы программы

•корректность – согласованность с некоторой спецификацией

•ошибка – нарушение спецификации

23.03.2013

32

Методы обработки ошибок

•отсутствие обработки

•глобальный статус

•возвращаемое значение

23.03.2013

33

Глобальный статус

пример:

int getLastErr(); //< получить статус int setLastErr(); //< установить статус

if (ERR_NO == getLastErr())

{

// Основной поток исполнения программы.

}

else

{

// Обработка ошибочной ситуации.

}

23.03.2013

34

Возвращаемое значение

пример:

int doJob();

if (ERR_NO == doJob())

{

// Основной поток исполнения программы.

}

else

{

// Обработка ошибочной ситуации.

}

23.03.2013

35

Сообщения пользователю при возникновению ошибки

•отсутствие внешних проявлений

•протоколирование

•сообщения пользователю

23.03.2013

36

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

•программа всегда должна работать

•каждая функция защищается как может

•кто сломался, тот и виноват

•дублирование кода проверок

•сложность кода

•безответственное программирование

23.03.2013

37

Программирование по контракту

•обязанности сторон

–клиент: корректные входные данные

–поставщик: корректная работа и результат

•соблюдение контракта

23.03.2013

38

Контрактные отношения

• могут быть между частями программы

программа-программа

• не определены с внешней средой

программа-человек программа-внешний мир

23.03.2013

39

Обработка входных данных

•модули ввода (фильтры)

•гарантия корректности входных данных для обрабатывающих модулей

23.03.2013

40