Структура использования А-7Е
Следует иметь в виду, что при документировании структуры использования в спецификации фиксируются лишь отношения разрешения использования; фактические варианты использования выводятся по результатам реализации. Спецификация разрешения использования для архитектуры А-7Е предстает в виде семистраничной таблицы, небольшой отрывок которой приводится в табл. 3.4. Сокращения из двух символов в начале каждой новой строки обозначают модули второго уровня. Справа от точки размещаются имена подмодулей, о которых мы в этой главе практически не упоминаем. Посмотрим, какой в результате получается образец: ♦ Процедурам модуля расширения компьютера не разрешается обращаться к процедурам других модулей; с другой стороны, все остальные модули могут использовать некоторые его элементы. ♦ Процедуры модуля прикладных типов данных могут обращаться только к процедурам расширенного модуля компьютера. ♦ Процедуры модуля интерфейса устройства (по крайней мере, те из них, которые представлены в табл. 3.4) могут обращаться к процедурам модуля расширения компьютера, модуля прикладных типов данных и модуля физических моделей. ♦ Процедуры модулей управления функциями и совместно используемых служб могут обращаться к процедурам модуля банка данных, модуля расширения компьютера, модулей прикладных типов данных и интерфейса устройства. ♦ Обращение к процедурам модуля управления функциями со стороны любых других процедур недопустимо. ♦ Обращаться к процедурам модуля совместно используемых служб имеют право только процедуры модуля управления функциями. Итак, перед нами многоуровневая система. На нижнем уровне находится модуль расширения компьютера, чуть выше — модуль прикладных типов данных. Совместно они образуют виртуальную машину, разрешающую любой процедуре, расположенной на любом данном уровне, использование процедур, находящихся на том же и на всех нижележащих уровнях. На верхних уровнях находятся модули управления функциями и совместно используемых служб; для исполнения своих функций они могут обращаться к любым средствам системы. В средней части иерархии уровней расположены модули физических моделей и фильтрации поведения, а также модуль банка данных. Модуль обслуживающих программ, занимающий особое, параллельное по отношению к этой структуре, положение, для выполнения своих задач имеет право обращаться к любым модулям, за исключением модуля управления функциями. Многоуровневый архитектурный образец, имеющий широкое распространение, будет довольно часто встречаться в наших конкретных примерах. Наличие иерархии уровней является следствием применения структуры использования; в то же время уровни, не содержащие сведений о возможных подмножествах, не способны заменить эту структуру. Именно в этом суть структуры использования — конкретный модуль управления функциями может обращаться к конкретному набору операций, содержащихся в банке данных, модулях совместно используемых служб, интерфейсов устройств, прикладных типов данных и в модуле расширения компьютера. Совместно используемые службы, в свою очередь, имеют право обращаться к заданному набору процедур более низкого уровня, и так далее по нисходящей. Произведенный таким способом набор процедур в целом образу ет подмножество. Структура разрешения использования дает представление о способе взаимодействия процедур модулей в период прогона — взаимодействия, посредством которого они выполняют свои задачи. Любая процедура модуля управления функциями управляет выходным значением определенного выходного устройства — например, положением отображаемого символа. Обобщенно процедуры управления функциями можно охарактеризовать так: они (при помощи процедур банка данных) забирают у производителей данные, применяют правила подсчета корректного выходного значения, а затем путем вызова процедуры интерфейса соответствующего устройства отправляют этому устройству конечный результат. Данные поступают из нескольких источников. ♦ Процедуры интерфейсов устройств сообщают данные о состоянии окружения, с которым взаимодействует данное программное средство. ♦ Процедуры физических моделей, ответственные за вычисление прогнозирующих показателей, сообщают сведения о внешнем мире (например, на основе текущего положения и скорости самолета рассчитывают координаты цели, которую мог бы поразить снаряд, будь он выпущен в данный момент). ♦ Процедуры совместно используемых служб сообщают о текущем режиме, достоверности текущих показаний датчиков и инициированных пилотом операций на панели управления. По результатам проектирования структуры разрешения использования конструкторам становится известно, о каких интерфейсах им следует собрать информацию, чтобы выполнить свои задачи. Документирование структуры фактического использования и получение подмножеств начинается после завершения реализации. Способность к развертыванию отдельных подмножеств системы является одним из основных элементов эволюционного жизненного цикла поставки (Evolutionary Delivery Life Cycle — см. главу 7 «Создание архитектуры»). Как правило, лучший способ сделать хорошую мину при плохой игре, когда бюджет сокращается (или перерасходуется), а сроки горят, — это подготовить подмножество. В таких ситуациях правомерно утверждать, что при условии тщательного проектирования структуры использования можно было бы поставить больше подмножеств (все же лучше, чем ничего!).
|