В процессе формализации требований к системе и на этапе проектирования система осматривается как совокупность компонентов и взаимосвязей между ними. Для этого используются модели системной архитектуры, которые в графическом виде предоставляют всю организацию системы, т.е. ее компоненты и взаимосвязи между ними.
Архитектура системы обычно представляется в виде блочной диаграммы (блок-схемы), где блоки соответствуют основным подсистемам, а существующие связи между подсистемами обозначаются линиями со стрелками, соединяющими отдельные блоки диаграммы. Связи могут соответствовать потокам данных, последовательности включения подсистем в работ)' или каким-либо другим типам зависимости.
На рис представлена блок-схема основных компонентов системы сигнализации, предупреждающей о несанкционированном проникновении в жилище. В табл. приведено краткое описание подсистем, которым соответствуют определенные блоки на рис
Таблица 2.1. Функциональные подсистемы системы сигнализации
Подсистема
Описание
Датчики движения
Реагируют на движение в комнатах, которые контролирует система
Дверные датчики
Определяют, открыты ли наружные двери дома
Контроллер
Управляет действиями всей системы
Сирена
Издает мощный, звуковой сигнал при незаконном проникновении и жилище
Синтезатор голоса
Синтезирует голосовое сообщение о проникновении и дом
Телефонный информатор
Делает внешний телефонный звонок для уведомлении службы безопасности (например, полиции) о проникновении в дом
На этом уровне детализации система разбивается на отдельные подсистемы. Каждая подсистема, в спою очередь, может быть представлена как декомпозиция своих функциональных компонентов. Это такие компоненты подсистемы, которые, исходя из предназначения подсистемы, выполняют какую-либо одну функцию. В противоположность этому подсистема обычно выполняет несколько функций. Конечно, декомпозицию подсистем (и самой системы) можно проводить по другим признакам, например конструктивным или технологическим.
Исторически сложилось так, что модель системной архитектуры используется для вычленения аппаратных и программных компонентов системы, которые обычно разрабатываются параллельно. Вместе с тем противопоставление "аппаратные средства— программное обеспечение" в современных системах чаще всего неуместно и несущественно. Поскольку практически все системные компоненты обладают определенными вычислительными возможностями. Например, машины,связывающие множество компьютеров в единую есть, состоят из репитеров1, сетевых шлюзов2 и соединительныхкабелей. Репитеры и шлюзы имеют процессоры и программы, управляющие этими устройствами, и, конечно же, другие электронные компоненты.
На уровне системной архитектуры более рационально классифицировать подсистемы в соответствии с выполняемыми ими функциями, не акцентируя специально внимание на том, являются ли они аппаратными или программными компонентами. Вопрос о том, будет ли данная функция реализована аппаратно или программно, часто решается на основе нетехнических факторов, таких как время, необходимое для создания компонента, или исходя из наличия на рынке промышленных изделий подходящих готовых устройств.
Блок-схемы можно использовать для представления систем любого размера, На рис, 2.3 показана архитектура значительно более сложной системы управления полетами. Эта система содержит несколько основных подсистем, которые сами являются системами большого размера. Направление информационных потоков между подсистемами показано соединяющими их линиями со стрелками.
Функциональные компоненты систем
Как отмечалось в предыдущем разделе, системная архитектура описывается в терминах функциональных подсистем, независимо от того, являются ли эти подсистемы аппаратными или программными. Вместе с тем функциональные компоненты в системе можно классифицировать по целому ряду категорий, некоторые из них приведены ниже.
1. Сенсорные компоненты собирают информацию о системном окружении. Примерами могут служить радиолокаторы в системе управления полетами, датчик положения бумаги в лазерном принтере или термопара в топочной камере котла. % Исполнительные компоненты производят некоторые действия в окружении системы. Примерами могут служить регулирующий клапан, закрывающий или отрывающий заслоню, в трубопроводе для уменьшения или увеличения скорости потока жидкости в нем, закрылки крыльев самолета, которые управляют углом наклоне! самолета, механизм подачи бумаги ч лазерном принтере.
3. Вычислительные компоненты ~ па их вход поступают определенные данные, в соответствии с которыми они выполняют вычисления, затем на выходе получают новые данные. Примером вычислительного компонента является математический сопроцессор, выполняющий вычисления с числами в экспоненциальном формате.
4. Коммуникационные компоненты предоставляют возможность другим системным компонентам обмениваться информацией. В качестве примера назовем сетевые интерфейсные платы компьютеров, объединенных в локальную сеть.
5. Координирующие компоненты согласуют работу других компонентов. Примером является планировщик заданий в системах реального времени. Планировщик определяет, какой процесс в данный момент времени может обрабатываться процессором.
6. Интерфейсные компоненты Преобразуют систему представлений, которыми оперирует один системный компонент, в систему представлений, применяемых другим компонентом. Примером "человеческого" интерфейсного компонента может служить модель какой-нибудь системы и представление ее в виде, попятном другому человеку. Другим примером является аналогово-цифровой преобразователь, преобразующий аналоговый сигнал в последовательность чисел.
В табл. 2.2 описан тип функциональных компонентов архитектуры системы сигнализации, представленнойна рис. 2.2.
Таблица 2.2. Типы компонентов системы сигнализации
Тип компонента
Компонент
Функции компонента
Сенсорный
Датчик движения, дверной датчик
Регистрирует движение в защищенном помещении. определяет, открыта ли наружная дверь
Исполнительный
Сирена
Издает звуковой сигнал при незаконном проникновении в жилище
Коммуникационный
Телефонный ин форматор
Делает телефонный звонок в центр управления при проникновении в дом. Получает ответную команду из центра управления
Координирующий
Контроллер
Координирует see системные компоненты.
Действует по командам панели управления и центра управления
Конечно, несложно отнести системные компоненты к одному из перечисленных типов. Вместе с тем, если в системе используется программное обеспечение, то, как правило, программные элементы встраиваются в большинство системных компонентов. Программное обеспечение обычно не пользуется для управления всей системой.
Приведенная классификации компонентов помогает при проектировании систем. Большинство систем содержат компоненты всех типов, и задача разработчика состоит в точном определении типа компонента исходя из спецификации системы. Если несколько компонентов содержат признак» разных типов, это может привести к тому, что при проектировании системы могут возникнуть определенные проблемы.