И. Соммервилл - Инженерия программного обеспечения (1133538), страница 10
Текст из файла (страница 10)
сс компонснты и взаимосвязи между ними. 2. Системотехиика вычислительных систем 39 Рис. 2.2. )Тросэкы аиэмка сипкыизлции Таблица 2.1. Фуикцноивльиьве подсистемы системы сигнализации Описание Подсистема Датчики движения Реагируют на движение в комнатах, которые контролирует система Дверные датчики Контроллер Сирена Определяют, открыты ли наружные двери дома Управляет действиями всей системы Издаст мощный звуковой сигнал при незаконном проникно- вении в жилище Синтезатор голоса Телефонный информатор Синтезирует голосовое сообпгснне о проникновении в дом Делает висящий телефонный звонок для уведомления службы безопасности (например, полиции) о проникновении в дом На этом уровне детализации система разбивается на отдельные подсистемы.
Каждая подсистема, в свою очередь, иожет быть представлена как декомпозиция своих функциональных компонентов. Это такие компоненты подсистемы, которые, исходя из предназначения подсистемы, выполняют какую-либо одну функцию, В противоположность этому подсистема обычно выполняет несколько функций. Конечно, декомпозицию подсистем (и самой системы) можно проводить по другим признакам, например конструктивным или технологическим. Исторически сложилось так, что модель системной архитектуры используется для вы.
членения аппаратных и программных компонентов системы, которые обычно разрабатываются параллельно. Вместе с тем противопоставление "аппаратные средства — программное обеспечение" в современных системах чаще всего неуместно и несущественно, поскольку практически все системные компоненты обладают определенными вычисли- Архитектура системы обычно представляется в виде блочной диаграммы (блоксхемы), где блоки соответствуют основным подсистемам, а существующие связи между подсистемами обозначаются линиями со стрелками, соединяющими отдельные блоки диаграммы. Связи могут соответствовать потокам данных, последовательности включения подсистем в работу или каким-либо др)тим типам зависимости. На рис.
2.2 представлена блоксхема основных компонентов системы сигнализации, предупреждающей о несанкционированном проникновении в жилище. В табл.2.1 приведено краткое описание подсистем, которым соответствуют определенные блоки на рис. 2.2. 40 ч1асть 1. Инженерия программного обеснеченияс обзор тельными возможностями. Например, машины, связывающие множество компьютеров в единую сеть, состоят из репитеров', сетевых цслюзове и соединительных кабелей.
Репитеры и шлюзы имеют процессоры и программы, управляющие этими устройствами, и, конечно жс, другис элсктронныс компонснты. На уровне системной архитектуры более рационально классифицировать подсистемы в соответствии с выполняемыми ими функциями, не акцентируя специально внимание на том, являютсл ли они аппаратными нли программными компонентами. Вопрос о том, будет лн дашил функция реализована аппаратно или программно, часто решается на основе нетехнических факторов, таких как время, нсобходимос для создания компонента, или исходя из наличия на рынке промышленных изделий подходящих готовых устройств. Блок-схемы можно использовать для представления систем любого размера.
На рис. 2.3 показана архитектура значительно более сложной системы управления полетами. Эта система содержит несколько основных подсистем, которые сами являются системами большого размера. Направление информационных потоков между подсистемами показано соединяющими их линиями со стрелками. Рис. 2.3 Лркипиктурп сиспюлсы упремлеппя поветями Репптей- устдойство, пейедающт асекпоы, псетуппющке «о одкапу клбелю, в фгеой кпбель бт.падтрутювакп плп фстьтРазсс» пакетов. — прим.
рел. Шлеп- устройство длл обведикеют сетей, кткюьеующие Рпвличные вйютстолы передачи паюопов.- Прны. Рел. 2. Систеиотехника вычислительньпс систем 41 2.3.1. Функциональные компоненты систем Как отмечалось в предыдущем разделе, системная архитектура описывается в терминах функциональнык подсистем, независимо от того, являются ли эти подсистемы аппа.
ратными или программными. Вместе с тем функциональные компоненты в системе можно классифицировать по целому ряду категорий, некоторые из них приведены ниже. 1. Сенсвпнмс кемяаяенжм собирают информацию о системном окружении. Примерами могут служить радиолокаторы в системе управления полетами, датчик положения бумаги в лазерном принтере или термопара в топочной камере котла. 2. Исяазнивмльнмг канпвненвгм производят некоторыс действия в окружении системы.
Примерами монт служить регулирующий клапан, закрывающий или отрывающий заслонку в трубопроводе для уменьшения или увеличения скорости потока жкшко. стн в нем, закрылки крыльев самолета, которые управляют углом наклона самолета, механизм подачи бумаги в лазерном принтере. 3. Вычкглительнъи кемпокснжм — на их вход поступают определенные данные, в соответствии с которыми они выполняют вычисления, затем на выходе получают новые данные. Примером вычислительного компонента является математический сопроцессор, выполняющий вычисления с числами в экспонеициальном формате.
4. Каммуниклцканньи канпоиелв~ы предоставляют возможность другим системным компонентам обмениваться информацией. В качестве примера назовем сетевые интерфейсные платы компьютеров, объединенных в локальную сеть. 5. Координируклбие канпаигнвгм согласуют работу других компонентов. Примером явля. ется планировщик заданий в системах реального времени. Планировщик определя. ет, какой процесс в данный моиент времени может обрабатываться процессором. 6.
Иквмрфвйсные какяомгнты преобразуют систему представлений, которыми оперирует один системный компонент, в систему представлений, прииеняемых другим компонентом. Примером "человеческого" интерфейсного компонента может служить модель какой-нибудь системы и представление ее в виде, попятном другому человеку. Другим примером является аналогово-цифровой преобразователь, преобразующий аналоговый сигнал в последовательность чисел. Таблица 2.2. Типы компонентов системы сигнализации Функции компонента Тнп компонента Компонент Регистрирует движение в защищенном помещении, определяет, открыта ли наружная дверь Издает звуковой сигнал при незаконном про. никновении в жилище Датчик движения, дверной датчик Сенсорный Исполнительный Сирена Коммуникационный Телефонный ин- форматор Делает телефонный звонок в центр управле- ния при проникновении адом.
Получастот- встную команду из центра управления Координирует все системные компоненты. Действует по командам панели > правления и центра управления Синтезирует сообщение о проникновении адом Координирующий Контроллер Интерфейсный Синтезатор голоса В табл. 2.2 описан тип функциональных компонентов архитектуры системы сигнализации, представленной на рис. 2.2.
42 ч1асть 1. Инженерия программного обеспечения: обзор Конечно, несложно отнести системные компонснты к одному из перечисленных типов. Вмсстс с тем, сели в снстсмс используется программное обеспечение. то, как правило, программныс элементы встраиваются в большинство системных компонентов. Про. граммпос обеспечение обычно используется для управлсния всей системой. Привсдспная классификацил компонентов помогает при проектировании систем.
Большинство систем содсржат компоненты всех типов, и задача разработчика состоит в точном определении типа компонента исходя из спсцификации системы. Если несколько компонентов содержат признаки разных типов, это может привести к тому, что при просктнрованип системы могут возникнуть определенные проблемы. 2.4. Процесс создания систем Этапы процесса создания системы показаны на рис. 2.4. Эти этапы оказывают большое влияние на процесс разработки программного обеспечения в соответствии с каскадной моделью, которая описывается в главе 5. Рис.
2.4. Пропете соединил системы Опишем основные отличия между процессам создания систем и процессом разработки программного обсспсчснил. Е Вовлечение в лзоиесс Вовроботхи систем Розиообуимных иллжеиазиых дисииэлин. Процесс создания систем обычно требует привлсчснил разнообразных инженерных дисциплин. Это может привести к значительным затруднениям в разработке систем, посколлку каждая дисциплина использует свою тсрМинологню. 2. Небольшой мопоэюб ловторлллх Робот пли Возробоелке еиеомн. После принятия решений в процессе разработки систем (например, об установки определенных типов радиолокаторов в слстслес управления полатами) внссснис измснсний в систему мо.
жст оказаться весьма дарогостоящнль Псрспросктированнс системы часто просто невозможно. Это одна из причин широкого использования ПО при создании самых разнообразных систем — программныс компоненты делают системы более гибкими и позволяют внести изменения в разрабатываемую систему в ответ на новые требования, прсдъявлясмыс к ней. В колеанду разработчиков систем неизбежно включаются специалисты разных профилей. Команда разработчиков должна обладать широким кругом знаний, чтобы всссторон. нс рассмотрсть все системные возлеожности прн принятии каких-либо рс|лсний. Рассмот- 2. Системотехиикв вьгчислительиых систем 43 рим систему управления полетом (СУП).