Общая постановка задачи
Формализация разбиения проектируемой АС на модули
Проектирование АСУ с использованием модульного принципа связано с созданием программного и информационного обеспечения АСУ из некоторого множества относительно независимых частей или модулей обработки данных, которые имеют информационные взаимосвязи, определенные таким образом, что каждый модуль не получает информации о внутреннем содержании других модулей, кроме той, которая содержится в спецификациях интерфейса.
Применение модульного принципа проектирования АСУ позволяет свести проектирование АСУ к синтезу функционально независимых отдельных частей (модулей), совместно выполняющих заданные функции системы с требуемой эффективностью. При этом внутреннее содержание модулей может быть не известно.
Модульное проектирование АСУ обладает рядом преимуществ:
— упрощается процесс разработки и отладки программного и информационного обеспечения АСУ;
— упрощается последующая модификация системы, так как модульные программы могут быть улучшены путем простой замены отдельных модулей, которые функционально эквивалентны, но имеют лучшие системные характеристики;
— улучшается организация управляющих программ;
— появляются возможности внедрения передовых методов разработки и автоматизации проектирования АСУ.
Реализация модульного принципа проектирования АСУ предполагает, что каждый модуль обладает следующими качествами:
– функциональность, т.е. модуль должен представлять собой функционально законченную максимально независимую совокупность операций по обработке данных; обращение к модулю осуществляется как к единому целому, и значения вызываемых параметров обычно отражает специфику функций модуля;
– связность, т.е. модуль реализует совокупность взаимосвязанных функций, требующих одних и тех же данных; часть этих данных обычно скрыта для системы в целом;
– алгоритмичность, т.е. функции модуля группируются на алгоритмической основе;
– последовательность, т.е. модуль включает несколько функций, которые реализуются последовательно, причем выходные результаты одной функции являются входными для другой и т.д.; кроме того, функции модуля обычно являются взаимосвязанными во времени;
– однородность, т.е. в модуле объединяются однородные по своему функциональному назначению процедуры.
Основой для формализованной постановки и решения задач анализа и синтеза модульных АСУ является определение модулей системы и межмодульного интерфейса.
Могут быть выделены различные способы разбиения информационного и программного обеспечения АСУ на отдельные модули: функциональный – по числу информационных и управляющих связей между модулями; ресурсный – по имеющимся возможностям технического и программного обеспечения разработки; элементный – по использованию типовых и стандартных элементов решений; смешанный – обеспечивающий выше перечисленные.
Перейдем к формализации.
Пусть А={a1, a2, …, am} – множество задач, выявленных на предпроектной стадии. Каждое ai в общем случае характеризуется n – мерным вектором показателей xi, которыми являются время выполнения, число входных и выходных переменных, требуемый объем памяти и т.д.
Все задачи информационно взаимосвязаны. Это можно задать орграфом Г=(A,D), у которого вершины А={a1, a2, …, am} – это задачи, а ребра D – информационные связи между задачами (процедурами).
Пусть граф Г задан матрицей смежности ║dij║, причем dij=1, если существует информационная дуга из задачи ai в задачу aj, и dij=0 в противном случае. Каждая дуга между элементами ai и aj характеризуется некоторым параметром ρij, который может быть и вектором. Будем считать, что ρij=0, если dij=0.
Обозначим через Е={θ} – множество всех возможных разбиений множества А на отдельные подмножества, т.е. каждое θ таково, что
Θ=(А1θ, …, Аℓθ, …, АL(θ)θ), , , i,j=1,..,L(θ), i≠j.
Рассмотрим некоторое разбиение θ. Подмножество Аℓθєθ будем в дальнейшем называть модулем.
Для данного разбиения θ множество дуг исходного графа Г распадается на L(θ)+1 попарно не пересекающихся подмножеств: а) подмножество внутреннее Gℓθ дуг, соединяющих вершины из Аℓθ; б) подмножество внешнее Dθ дуг, концы которых лежат в разных модулях. Внешние дуги, входящие в какой-либо элемент модуля Аℓθ называют его входом, а выходящие из какого-либо элемента – выходом.
Разбиению θ можно сопоставить агрегированный граф Гθ, получающийся из исходного графа Г в результате объединения всех вершин подмножества Аℓθ в одну для каждого ℓ=1,..,L(θ). Из вершины Аrθ в вершину Аkθ идет дуга тогда и только тогда, когда в графе Г имеется дуга, направленная от некоторой вершины aiє Аrθ в вершину ajє Аkθ. Дугам графа Гθ сопоставим параметры r≠k,
где Crkθ={(i, j): aiєArθ, ajєAkθ, dij=1}.
Агрегированный граф Гθ описывает разбиение исходной системы на модули.
В зависимости от интерпретации дуг и вершин рассмотренной модели, используемых критериев оптимизации и ограничений могут быть рассмотрены различные способы разбиения графа Г.
Мы рассмотрим несколько таких постановок и соответствующих им математических моделей.