|
|
Волгоградский
государственный технический университет |
В процессе нисходящего проектирования рациональной иерархии модулей программы необходимо получить оптимальную подчиненность.
Схеме иерархии можно придать любой топологический рисунок. Так схеме иерархии, изображенной на рисунке 6.1, можно придать вид, изображенный на рис. 5.2.
Рис 5.2. Схема иерархии одной и той же программы а) с вертикальными вызовами, б) с горизонтальными вызовами.
Фрагменты с вертикальными вызовами могут быть преобразованы в вызовы одного уровня посредством введения дополнительного модуля, который может не выполнять никаких полезных функций с точки зрения алгоритма программы. Функция нового модуля может состоять лишь в мониторинге, то есть вызове других модулей в определенном порядке.
Фрагменты с горизонтальными вызовами на одном уровне могут быть преобразованы в вертикальные вызовы модулей разных уровней посредством введения дополнительных переменных. Эти переменные не могут быть получены путем декомпозиции функционального описания на подфункции. Эти дополнительные переменные обычно имеют тип целый или логический и называются флагами (семафорами, ключами) событий. Их смысл обычно характеризуется фразой: в зависимости от предыстории действий, выполнить такие-то действия.
В процессе проектирования нужно сделать несколько проектных итераций, генерируя каждый раз новую схему иерархии и сравнить эти иерархии по критериям оценки качества схемы иерархии.