Структуризация моделей программ
Основной принцип методологии проектирования - структуризация моделей, что означает упорядочение структур, ограничение количества и разнообразия компонентов и связей - все это для улучшения ясности, понятности проекта и продукта. Другими словами, это меры "борьбы со сложностью".
Подцель – обозримость модели – диктует первое требование: ограничение количества компонентов в модели «психологической» константой 7±2 (Вопрос 7) и, как следствие, необходимость нескольких уровней абстракции. Это означает, что модель любого уровня должна содержать не более десятка компонент (приблизительно таким количеством ограничена графическая емкость страницы А4), каждая из которых может детализироваться на нижележащем уровне абстракции. Из этого следует принцип иерархического поуровневого описания и проектирования - общий принцип не только инженерной и научной деятельности, но и хорошего мышления вообще. Действительно, сказанное справедливо и для текстовых документов; так, здравый смысл подсказывает: если список содержит более дюжины неоднородных сущностей - разбейте его на несколько поименованных групп, объединяя в них родственные сущности. Перечень групп и будет списком более высокого уровня абстракции, способствующим лучшей обозримости. Однородные же сущности следует индекси-ровать (нумеровать), превращая их в подобие именованного массива. Вопросы 8, 9.
Вопросы для обсуждения
1. В чем принципиальное отличие моделей природных явлений (обычно это математические модели непрерывных процессов в форме дифференциальных уравнений) от моделей компьютерных программ (например, в форме алгоритмов) ?
2. В чем заключается эквивалентность ориентированного графа бинарному отношению на множестве его вершин ? Чему в этом смысле эквивалентен двудольный граф ?
3. Почему схема потока управления в общем случае эквивалентна отношению частичного, а не строгого порядка ?
4. Как изменится блок-схема, если файл А столь большого размера, что разбит на N файлов словарных статей, упорядоченных по алфавиту ?
5. Почему в блок-схеме алгоритма отображение асинхронных событий и состояний их ожидания невозможно ?
6. Какие виды задач хорошо «ложатся» на архитектуру MIMD ?
7. Каково происхождение этой константы ?
8. Каковы общепринятые принципы иерархической структуризации научно-технических текстов - статей, диссертаций, монографий, учебников ? Какие части этих текстов не подчиняются им? Какие новые свойства появились в электронных формах этих текстов ?
9. Назовите проявления принципа иерархической структуризации и минимизации сущностей, видимых одновременно, в современных интерфейсах пользователя.
Приложение.
Модели потока данных используются для описания алгоритмов массивных параллельных вычислений в суперкомпьютерах с архитектурой MIMD (Multiple Instructions - Multiple Data), где асинхронно работают десятки и сотни процессоров. В них обрабатываемые данные не столько хранятся в общей памяти (как в классической архитектуре машины Фон-Неймана), сколько пересылаются между процессорами через их порты ввода-вывода, и операции синхронизируются приходом операндов. Например, фрагмент блок-схемы в левой части рисунка изображается фрагментом DFD в правой части. Процессор, ответственный за сложение, выполняет его сразу, как только операнды А и В получены на входе.
Существуют специальные языки программирования вычислительных процессов для параллельных архитектур суперкомпьютеров, основанные на модели DFD или близкие к ней, напр. CSP или OCCAM.