Анализ потоков данных в программе
Поскольку проектирование фактически закладывает основы успешной либо неуспешной реализации задачи разработки продукта, необходимо жестко контролировать процесс проектирования и вовремя исправлять неверные проектные решения. С этой целью весь этап проектирования делят на две крупные стадии:
- разработка эскизного проекта;
- разработка технического проекта.
На стадии эскизного проектирования осуществляется основная работа по окончательному теоретическому и экспериментальному на уровне моделей обоснованию и описанию устройства и работы программ. Основным видом работы на стадии эскизного проектирования является анализ потоков данных, позволяющий выделить основные структурные единицы данных и методов, осуществляющих обработку информации и преобразующих данные из одной формы в другую.
Для представления потоков данных и обрабатывающих их процессов, предложено довольно много формальных аппаратов, представляющих собой, как правило, графы потоков данных (ГПД) различных видов. Рассмотрим основные виды ГПД.
В первой модели данные представляются вершинами графа, а процессы обработки — дугами. Данные при этом именуются существительными, а процессы — глаголами. Заметим, что ГПД такого вида невозможно представлять процессы, имеющие несколько входных и выходных потоков данных.
Во второй модели данные представляются дугами графа, а процессы обработки — вершинами. Такой ГПД свободен от недостатка предыдущего, однако им неудобно представлять данные, используемые несколькими процессами.
Моделью, свободной от недостатков обоих предыдущих, является любой двудольный граф, например, сеть Петри. Сеть Петри G есть ориентированный граф, множество вершин которого V состоит из двух непересекающихся подмножеств P и T: V = P T. Дуги могут соединять только вершины различных типов, а между однотипными вершинами не допускаются. Множество позиций P соответствует множеству элементов данных, а множество переходов T — множеству процессов системы. Графически позиции сети Петри изображают окружностями, а переходы — прямоугольниками (рис. 1). Дуги, ведущие в переход, обозначают, какие ему нужны данные, чтобы он сработал. Дуги, ведущие из перехода, обозначают, какие данные порождаются или модифицируются в результате его срабатывания. На рис. 1 показан пример двудольного ГПД применительно к задаче расчета стоимости и калорийности кулинарных блюд.
Рис.1. Двудольный граф потоков данных
CC-BY-CA Цыганенко В.Н., 20.10.2013