Основы разработки программного обеспечения вычислительных систем. Милованов И.В - 23 стр.

UptoLike

23
Рис. 1.17. Иерархическая структура программной системы
Иерархическая структура не отражает процедурные особенности
программной системы, т.е. последовательность операций, их повторение,
ветвление и т.д. Рассмотрим основные характеристики иерархической
структуры, представленной на рис. 1.17.
Первичными характеристиками являются количество вершин (моду-
лей) и количество рёбер (связей между модулями). К ним добавляются
две глобальные характеристикивысота и ширина:
высота количество уровней управления;
ширина максимальное из количеств модулей, размещённых на
уровнях управления.
В нашем примере высота = 4, ширина = 6.
Локальными характеристиками модулей структуры являются коэф-
фициент объединения по входу и коэффициент разветвления по выходу.
Коэффициент объединения по входу Fan_in(i) это количество мо-
дулей, которые прямо управляют i-м модулем.
В примере для модуля n: Fan_in(n)=4.
Коэффициент разветвления по выходу Fan_out(i) – это количество
модулей, которыми прямо управляет i-й модуль.
В примере для модуля m: Fan_out(m)=3.
Возникает вопрос: как оценить качество структуры? Из практики
проектирования известно, что лучшее решение обеспечивается иерархи-
ческой структурой в виде дерева.
Степень отличия реальной проектной структуры от дерева характе-
ризуется невязкой структурой. Как определить невязку?
Вспомним, что полный граф (complete graph) с п вершинами имеет
количество рёбер
е
с
= n
(n – 1) / 2,