Дж. Рамбо, М. Блаха - UML 2.0 - Объектно-ориентированное моделирование и разработка (1158633), страница 74
Текст из файла (страница 74)
Хранилища данных позволяют четко выделить подсистемы в рамках архитектуры и дают определенную степень постоянства данным приложения. Хранилища могут быть реализованы как структуры данных в памяти, файлы и базы данных. К достоинствам файлов можно отнести простоту, дешевизну и постоянство, но они находятся на слишком низком уровне абстракции и требуют дополнительных усилий при программировании. Базы данных находятся на более высоком уровне абстракции, чем файлы, но они усложняют систему и требуют дополнительных вложений. Проектировщик системы должен выделить глобальные ресурсы и определить механизмы контроля доступа к этим ресурсам.
Наиболее широко применяются следующие механизмы: создание «охраняющего объекта», который делает доступ последовательным, деление глобальных ресурсов на непересекающиеся подмножества, управляемые на более низком уровне, а также блокировка. Аппаратное управление по определению характеризуется параллельностью. Программное управление может быть процедурным, собьггийным и параллельным. 314 Глава 14 ° Проектирование системы Таблица 14.1. Ключевые понятия главы поток управления каркас уровень раздел архитектура клиент-сервер параллелизм одноранговые отношения проектирование системы сервис подсистема управление данными система, управляемая событиями Библиографические замечания Простые приложения не требуют значительных усилий от системных инженеров, а вот сложные системы приходится делить на составляющие части и распределять их между соответствующими специалистами.
[С!ешепьз-02] описывает процесс оценки архитектуры программы. Кратко его можно описать так: группа заинтересованных лиц собирается вместе и определяет критерии, которым должна удовлетворять архитектура, и приоритеты этих критериев. Критерии могут быть оценены количественно при помощи конкретных сценариев. Затем архитектура анализируется на соответствие наиболее высокоприоритетным сценариям. Управление процедурной системой осуществляется кодом программы. Значение счетчика команд, содержимое стека и значения локальных переменных определяют состояние системы. Управление событийной системой осуществляется диспетчером или монитором.
Процедуры приложения сопоставлены событиям и вызываются диспетчером при осуществлении этих событий. В параллельной системе управление осуществляется сразу несколькими независимыми объектами. Параллельные и управляемые событиями реализации получаются гораздо более гибкими, чем те, которые управляются процедурами. Проект системы описывает главным образом ее поведение в стационарном режиме, однако необходимо уделять внимание и пограничным условиям (инициализация, завершение, отказы). Важным аспектом системной архитектуры являются компромиссы между скоростью работы и объемом памяти, аппаратным и программным обеспечением, простотой и универсальностью, эффективностью и удобством обслуживания. Принимаемые решения зависят от целей, которые ставятся перед разработчиками приложения.
Проектировщик должен установить приоритеты, чтобы обеспечить согласованность принимаемых решений на всех этапах разработки. Существует набор распространенных архитектурных стилей, пригодных для большинства приложений. К ним относятся два вида функциональных преобразований: пакетное и непрерывное; три вида систем с временной зависимостью: интерактивный интерфейс, динамическое моделирование и системы реального времени; и система с базой данных — администратор транзакций. Большинство приложений представляют собой комбинацию нескольких архитектурных стилей.
Обычно для каждой из основных подсистем используется какой-либо один стиль архитектуры. Конечно, существуют и другие архитектурные стили. Упражнения 315 Образцы достаточно популярны в литературе, им посвяшеио большое количество книжек. Существуют образцы анализа [Спал-95], архитектуры [Впвс1цпапп-96] [5Ьаю-96], проектирования [Сашша-95] и реализации [Сор1]еп-92].
Регулярные конференции по образцам проводятся уже много лет. Большая их часть финансируется группой Ратгегп 1.апйпайез о! Ргойгапип[пя [Р1.оР]. Литература [Вег!!п-90] Енсу Вег1!п. ЧЧЬеп оЪ]ессз со11Ые: Ехрег(епсеыч!гЬ гепз!пя цш1Вр!е с1азз Ь1егагсЬ1ез. ЕСООР/ООР51.А 1990 Ргосеейпйз, ОсгоЪег 21-25, 1990, Оттава, Опгайо, Сапаг[а, 181 — 193. [ВпзсЬтапп-96] Ггапй ВпзсЬтапп, Вея!пе Мепп!ег, Напз ВоЬпегг, Ресег 5ошшег!ад, апд МкЬае! 5са1.
Рагсегп-Ог|епсед 5о(гааге АгсЫгесгпге: А Вузгеш о1 Раггегпз. СЬ!сЬезгег, (1К: ЪЧ11еу, 1996. [С1етепгз-02] Рап! С!ешепся В!с[с Кагшап, апг! Маг1с К1е!п. Еча!пайпй 5оЪчаге АгсЬйесгпгез. Воз!оп: АсЫ!зоп-ЧЧез!еу, 2002. [Соас1-95] Ресег Соад, 1)ачЫ ХогсЬ, апг[ МагЬ Мауйе1й ОЬ]ест Моде!з: 5сгасе81ез, Ракегпз, апг! АРР1кагюпя (1ррег 5агЫ!е В1чег, Х]; Чопгг!оп Ргезз, 1995. [Сор!!еп-92] ]ашез О. Сор!1еп. Аг[чапсег[ С++ Ргоягапип!пй Всу!ез апб 1йошя Возгоп: Адйзоп-ЪЧез!еу, 1992. [Оапппа-95] ЕпсЬ Оапппа, В1сЬагг[ Не!ш, Ва!рЬ ]оЬпзоп, апд ]оЬп Ч11зядез. Реяяп раттегпз: Е1ешепсз о1 ВепзаЫе ОЬ]ест-Ог!евсей 5ойиаге.
Возсоп: Аг[йзоп)Чез!еу, 1995. [) оЬпзоп-88] Ва!рЬ Е. ]оЬпзоп апг[ Впап Гоосе. 1)еяйп1пя гепзаЫе с!аззез. ]опгпа! о( ОЬ]ест-Опепгег1 Ргойгашпппй 1, 3 ()ппе/]п!у 1988), 22-35. [Когюп-92] Тпп Когзоп апг[ ]оЬп?). Мсйгейог. ТесЬшса! сПГейа 1ог ГЬе зрес!!!сас!оп апд еча1иагюп оЕ оЬ)ест-ойепгег[ 11Ьгайез. ВоЕсюаге Епй!пеег1пя ]опгпа1 (МагсЬ 1992), 85 — 94. [Р1лР] ]еггу.сз.п!пс.ебп/-р!ор [5Ьа~ч-96] Магу 5Ьаю апд ОачЫ Оаг1ап. 5ойлчаге АгсЬйесгпге. 1)ррег БасЫ1е В1чег, Ы]: Ргепг!се НаП, 1996. Упражнения 14.1. (4) Для каждой из перечисленных ниже систем укажите применимые к ией архитектурные стили: пакетное преобразование, непрерывное преобразоваиие, интерактивный интерфейс, динамическое моделирование, система реального времени, администратор транзакций. Объясните свой выбор.
Если к системе подходит несколько стилей, сгруппируйте свойства системы по стилям. 1) Электронный игрок в шахматы. Система состоит из шахматной доски со встроенным компьютером, подсветкой и мембранными переключателями. Человек вводит свои ходы, нажимая иа фигуры, стояшие иа доске, что вызывает срабатывание мембранных переключателей, установленных 316 Глава 11 ° Проектирование системы под всеми клетками. Компьютер указывает свои ходы, подсвечивая клетки. Человек должен двигать фигуры за компьютер. Компьютер должен делать только разрешенные ходы, не должен допускать, чтобы человек делал неразрешенные ходы, и должен стремиться выиграть.
2) Симулятор самолета для видеоигры. Видеоигра уже реализована и состоит из компьютера с джойстиком и клавишами и выходным интерфейсом для подключения к цветному телевизору. Вы должны написать программу, которая будет выводить на экран вид из кабины самолета. Управление самолетом осуществляется при помощи джойстика и клавиш. Изображение должно строиться на основании сведений о местности, хранящихся в памяти. Готовая программа будет продаваться на картриджах, подключаемых к видеоигре. 3) Микроконтроллер гибкого диска.
Микроконтроллер будет осуществлять функции внутреннего управления. Вы должны написать программу для него. Контроллер служит мостом между компьютером и дисководом. Вы отвечаете за позиционирование головки чтения-записи и за чтение данных. Дискета разбита на дорожки и секторы.
Дорожки — это концентрические окружности на дискете. Каждая дорожка разбита на несколько секторов. Архитектура должна поддерживать следующие операции; поиск дорожки О, поиск заданной дорожки, чтение дорожки, чтение сектора, запись дорожки, запись сектора. 4) Сонар.
Вы должны описать часть системы, которая занимается обнаружением подводных объектов и вычислением расстояния до них. Для этого система испускает акустический импульс и анализирует эхосигналы. Для выполнения анализа используется корреляционная методика: переданный импульс с временной задержкой умножается на принятый эхо-сигнал и интегрируется по длительности задержки. Если результат оказывается достаточно большим, это указывает на наличие объекта на соответствующем расстоянии от детектора. 14.2. (3) Обсудите реализацию управления для приложений, описанных в предыдущем упражнении.
11.3. (7) Вы — системный архитектор, занимающийся разработкой новой программы обработки сигналов. Вы должны придумать способ сохранения данных в реальном времени. В системе используются АПП, которые дискретизируют аналоговый входной сигнал со скоростью 16 000 байт/с (128 000 бит/с) в течение 10 секунд. К сожалению, необходимые расчеты невозможно выполнить за это время, поэтому вы должны придумать методику временного хранения данных. Ранее было принято решение ограничить размер буфера величиной 64 000 байтов. В системе имеется дисковод, работающий с 77-дорожечными дискетами общей емкостью 243 000 байтов, Перемещение головки от одной дорожки к другой занимает 10 мс, а поиск начала дорожки после позиционирования головки занимает в среднем 83 мс.
Перед началом получения данных дисковод устанавливается на нужную дорожку. упражнения 317 Вы рассматриваете два решения задачи: 1) Запись данных на дискету по мере их поступления. Почему этот метод не сработает? 2) Использование буфера в памяти. Данные помещаются в память и записываются на дискету с максимальной скоростью. Сработает ли этот метод? Опишите его подробнее. Какой буфер потребуется в действительности? Сколько дорожек будет использовано на дискете? Подготовьте несколько сценариев.
Опишите возможную систему управления. 14.4. (6) Рассмотрим систему для автоматического сверления отверстий в прямоугольных металлических пластинах. Размер и расположение отверстий задаются интерактивно при помощи графического редактора на персональном компьютере. Когда пользователь заканчивает работу над чертежом, специальное периферийное устройство персонального компьютера пробивает отверстия в перфокарте ЧПУ. Эту карту можно использовать на различных промышленных сверлильных станках с ЧПУ, которые способны перемещать сверлильную головку и менять сверла.