Технологии программирования
Шрифт:
Набор эвристических приемов:
1. "Хорошие наглядные иллюстрации — залог успеха!".
2. "Думай от общего к частному!".
3. "Общий процесс определяет работу частных!".
4. "Это не главный процесс, вы увязли в частностях!".
5. "Не забывай вводить новые термины (имена переменных)!".
6. "Выделив главное действие, вы уже решаете более простую задачу!".
7. "Если закончилась информация в обобщающих тестах, то готовьте новые обобщающие тесты для решения все новых частных задач!".
8. "Если в процессе декомпозиции потребуется описать процесс выхода из какой-то точки описания в какую-то иную, то это значит, что были неправильно выполнены предшествующие детализации из-за неправильного выявления наиболее общего действия и требуется корректно переделать предшествующую работу!".
9. "Иногда очередная детализация не получается из-за неосознанной потребности по вводу вспомогательной переменной (флага события), характеризующей, произошло ли ранее какое-то событие!".
Каждое СЛЕДОВАНИЕ соответствует строго одному действию. Главное в действиях — глагол. Основное, что необходимо выполнить при описании отдельной структуры СЛЕДОВАНИЕ: в описании должна содержаться лишь одна мысль. Любая структура вида СЛЕДОВАНИЕ может быть описана простым распространенным предложением естественного (русского) языка. Например, "Следующее действие заключается в погрузке мебели в автомобиль". Однако учитывая то, что в случае составления алгоритмов программ суть типовых структур поясняется самими операторами языка программирования, применяется более краткое описание в виде неполного предложения без сказуемого. В последнем случае подлежащее образуют от глаголов. Например, "Погрузка мебели", "Решение квадратного уравнения", "Ввод данных".
Порядок детализации одиночного СЛЕДОВАНИЯ с использованием модели "черного ящика" показан на рис. 5.2; 5.3:
1) предварительное выявление сути действия;
2) выявление выходной информации, ибо выход определяет вход, а не наоборот;
3) выявление входной информации;
Рис. 5.3. Модель "черного ящика"
4) запись уточненного комментария сути действия
При описании физических и технических систем необходимо использовать более полную модель "черного ящика" (см. рис. 2.2).
ЦЕПОЧКА СЛЕДОВАНИЙ соответствует однозначному описанию последовательности действий.
Признаком ЦЕПОЧКИ СЛЕДОВАНИЙ является никогда не нарушаемая последовательность действий (последовательность СЛЕДОВАНИЙ). ЦЕПОЧКЕ СЛЕДОВАНИЙ соответствует последовательность простых предложений и сложносочиненные предложения, которые лучше преобразовать в простые предложения.
Порядок детализации ЦЕПОЧКИ СЛЕДОВАНИЙ показан на рис. 5.4:
1) предварительное выявление сути действий каждого из СЛЕДОВАНИЙ, определение количества СЛЕДОВАНИЙ;
2) детализация каждого из СЛЕДОВАНИЙ как одиночного СЛЕДОВАНИЯ;
Рис. 5.4. Порядок действий при детализации структуры ЦЕПОЧКА СЛЕДОВАНИЙ
3) проверка информационной согласованности всех СЛЕДОВАНИЙ, а также входной и выходной информации всей ЦЕПОЧКИ СЛЕДОВАНИЙ;
4) рационализация порядка СЛЕДОВАНИЙ (сосредоточение СЛЕДОВАНИЙ, сотрудничающих в информационном обмене);
5) сверка с обобщающими тестами.
Отдельные СЛЕДОВАНИЯ структуры ЦЕПОЧКА СЛЕДОВАНИЙ в дальнейшем могут быть декомпозированы ЦЕПОЧКОЙ СЛЕДОВАНИЙ (более частных). Однако встречаются отдельные структуры СЛЕДОВАНИЯ, которые не могут быть декомпозированы ЦЕПОЧКОЙ СЛЕДОВАНИЙ. Такие СЛЕДОВАНИЯ могут быть описаны или структурой вида ЦЕПОЧКА АЛЬТЕРНАТИВ (ВЕТВЛЕНИЕ), или структурой вида ПОВТОРЕНИЕ (ЦИКЛ).
Признаком ЦЕПОЧКИ АЛЬТЕРНАТИВ или ВЫБОРА является одно или несколько действий, каждое из которых выполняется при определенном условии или не выполняется вообще (обязательно конечное число разных действий при разных условиях).
ЦЕПОЧКА АЛЬТЕРНАТИВ, в частном случае, может состоять из одной или нескольких простейших альтернатив с одним действием. Предложение простейшая АЛЬТЕРНАТИВА с одним действием имеет следующую конструкцию: "Если выполняется какое-то условие, то выполняется такой-то процесс (СЛЕДОВАНИЕ)". (В противном случае СЛЕДОВАНИЕ пропускается.) Предложение АЛЬТЕРНАТИВА из двух действий имеет следующую конструкцию: "Если выполняется какое-то условие, то выполняется СЛЕДОВАНИЕ 1, в противном случае выполняется СЛЕДОВАНИЕ 2". В принципе структура АЛЬТЕРНАТИВА из двух действий эквивалентна цепочке из двух простейших альтернатив с одним действием. При детализации процессов, включающих более двух альтернатив, может быть получена единая структура— ВЫБОР в виде цепочки последовательно записанных структур АЛЬТЕРНАТИВА с одним действием. Здесь следует отметить, что от внешне похожей ЦЕПОЧКИ СЛЕДОВАНИЙ, каждое СЛЕДОВАНИЕ которой является простейшей АЛЬТЕРНАТИВОЙ с одним действием, структура ВЫБОР отличается таким свойством, что при выполнении всей ЦЕПОЧКИ АЛЬТЕРНАТИВ может выполняться лишь одно из альтернативных СЛЕДОВАНИЙ или ни одного из альтернативных СЛЕДОВАНИЙ.
Пример условий альтернатив в случае структуры ВЫБОР:
Если А < В, то выполнить СЛЕДОВАНИЕ1;
Если А = В, то выполнить СЛЕДОВАНИЕ2;
Если А > В, то выполнить СЛЕДОВАНИЕЗ.
АЛЬТЕРНАТИВОЙ с одним действием можно осуществить досрочное прекращение процесса выполнения алгоритма в том случае, который соответствует обнаружению условий невозможности правильного дальнейшего выполнения алгоритма или эвроритма.