- •Часть 1. Планирование архитектуры
- •Заключение
- •Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 8. Моделирование условий полета. Конкретный пример архитектуры, ориентированной на интегрируемость
- •8.4. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 9. Документирование программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 10. Реконструкция программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 6. Управление воздушным движением. Пример разработки, ориентированной на высокую готовность
- •Глава 7. Проектирование архитектуры
- •Глава 11. Метод анализа компромиссных архитектурных
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12. Метод анализа стоимости и эффективности — количественный подход к принятию
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13. Всемирная паутина. Конкретный пример реализации способности к взаимодействию 374
- •Глава 14. Линейки программных продуктов.
- •Заключение
- •Дополнительная литература
- •Глава 15. CelsiusTech. Конкретный пример разработки
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Заключение
- •Часть 1. Планирование архитектуры
- •Часть 2. Создание архитектуры
- •Часть 3. Анализ архитектуры
- •Часть 4. От одной системы к множеству
- •Часть 1
- •Глава 1
- •1.1. Откуда берутся варианты архитектуры?
- •1.2. Программный процесс и архитектурно-экономический цикл
- •1.3. Из чего складывается «качественная» архитектура?
- •1.4. Заключение
- •1.5. Дискуссионные вопросы
- •Глава 2
- •2.1. Чем является программная архитектура и чем она не является
- •2.2. Другие взгляды на архитектуру
- •2.3. Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
- •2.4. Почему программная архитектура так важна?
- •2.5. Архитектурные структуры и представления
- •2.6. Заключение
- •2.7. Дополнительная литература
- •2.8. Дискуссионные вопросы
- •Глава 3
- •3.1. Связь с архитектурно-экономическим циклом
- •3.2. Требования и атрибуты качества
- •3.3. Архитектура авиационной электронной системы а-7е
- •3.4. Заключение
- •3.5. Дополнительная литература
- •3.6. Дискуссионные вопросы
- •Часть 2
- •Глава 4
- •4.1. Функциональность и архитектура
- •4.2. Архитектура и атрибуты качества
- •4.3. Атрибуты качества системы
- •4.4. Практическое применение сценариев атрибутов качества
- •4.5. Другие атрибуты качества системы
- •4.6. Коммерческие атрибуты качества
- •4.7. Атрибуты качества архитектуры
- •4.8. Заключение
- •4.9. Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Глава 5
- •5.1. Определение тактики
- •5.2 Тактики реализации готовности
- •5.3. Тактики реализации модифицируемости
- •5.4. Тактики реализации производительности
- •5.5. Тактики реализации безопасности
- •5.6. Тактики реализации контролепригодности
- •5.7. Тактики реализации практичности
- •5.8. Взаимосвязь тактик и архитектурных образцов
- •5.9. Архитектурные образцы и стили
- •5.10. Заключение
- •5.11. Дополнительная литература
- •5.12. Дискуссионные вопросы
- •Глава 6
- •6.1. Связь с архитектурно-экономическим циклом
- •6.2. Требования и атрибуты качества
- •6.3. Архитектурное решение
- •6.4. Заключение
- •6.5. Дополнительная литература
- •6.6. Дискуссионные вопросы
- •Глава 7
- •7. 1. Архитектура в контексте жизненного цикла
- •7.2. Проектирование архитектуры
- •1. Выбор модуля для декомпозиции
- •2А. Выбор архитектурных мотивов
- •2Ь. Выбор архитектурного образца
- •2D. Задание интерфейсов дочерних модулей
- •7.3. Формирование рабочих групп
- •7.5. Заключение
- •7.6. Дополнительная литература
- •7.7. Дискуссионные вопросы
- •Глава 8
- •8.1 Связь с архитектурно- экономическим циклом
- •8.2. Требования и атрибуты качества
- •8.3. Архитектурное решение
- •8.2 Заключение
- •8.5 Дополнительная литература
- •8.6. Дискуссионные вопросы
- •Глава 9
- •9.1. Варианты применения архитектурной документации
- •9.2. Представления
- •9.3 Выбор значимых представлений
- •9.4. Документирование представления
- •9.5. Перекрестная документация
- •9.6. Унифицированный язык Моделирования
- •9.7. Заключение
- •9.8. Дополнительная литература
- •9.9. Дискуссионные вопросы
- •Глава 10
- •10.1. Введение
- •10.2. Извлечение информации
- •10.3. Создание базы данных
- •10.4. Объединение представлений
- •10.5. Реконструкция
- •10.6. Пример
- •10.7. Заключение
- •10.8. Дополнительная литература
- •10.9. Дискуссионные вопросы
- •Часть 3
- •Глава 11
- •Результаты проведения оценки по методу атам
- •Этапы atam
- •1 Источник: приводится по изданию [Clements 02а] (адаптированная версия).
- •11.4. Система Nightingale: конкретный пример проведения оценки по методу атам
- •11.5. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 12
- •Результаты оценки по методу свам
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 13
- •13.1. Отношение к архитектурноэкономическому циклу
- •13.4. Еще одна итерация архитектурноэкономического цикла: эволюция вариантов веб-архитектуры систем электронной коммерции
- •13.7. Заключение
- •13.8. Дополнительная литература
- •13.9. Дискуссионные вопросы
- •Часть 4
- •Глава 14
- •За счет чего работают линейки программных продуктов?
- •Варианты архитектуры линеек продуктов
- •Факторы, усложняющие применение линеек программных продуктов
- •Заключение
- •Дополнительная литература
- •Дискуссионный вопрос
- •Глава 15
- •Связь с архитектурноэкономическим циклом
- •Требования и атрибуты качества
- •Архитектурное решение
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 16
- •Связь с архитектурноэкономическим циклом
- •16.3. Архитектурное решение
- •16.4. Решения по размещению системы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 17
- •17.2. Требования и атрибуты качества
- •17.3. Архитектурное решение
- •17.4. Механизм реализации атрибутов качества в архитектуре Luther
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 18
- •18.1. Воздействие компонентов на архитектуру
- •18.2. Архитектурное несоответствие
- •18.3. Компонентное проектирование как поиск
- •18.4. Пример приложения aseilm
- •18.5. Заключение
- •18.6. Дополнительная литература
- •Глава 19
- •19.1. Снова архитектурноэкономический цикл
- •19.2. Создание архитектуры
- •19.3. Архитектура в рамках жизненного цикла
- •Влияние коммерческих компонентов
- •Заключение
- •8 Все перечисленные специалисты работают в корпорации Inmedius (Питтсбург, сша).
8.1 Связь с архитектурно- экономическим циклом
Наше внимание во время анализа нижеизложенного конкретного примера будет обращено на изучение того сегмента архитектурно-экономического цикла (architecture business cycle, ABC), который связывает предполагаемые атрибуты качества с архитектурой. ABC систем моделирования условий полета на основе образца "структурная модель" представлен на рис. 8.1. Рассматриваемые здесь Моделирования принадлежат ВВС США. В роли конечных пользователей выступают пилоты и экипажи имитируемых воздушных судов. Системы моделирования условий полета служат трем целям: во-первых, подготовке пило то в к управлению тем или иным воздушным судном; во-вторых, обучению экипажей операциям с размещенными на бортах системами вооружений; и, в-третьих, подготовке к выполнению конкретных боевых задач воздушных судов. Некоторые системы предназначены для индивидуального пользования, однако большинство все-таки ориентированы на одновременную подготовку нескольких экипажей к совместным боевым операциям.
Конструированием систем моделирования условий полета занимаются подрядчики, отбираемые на конкурентных торгах. Системы эти отличаются большим объемом (некоторые из них насчитывают до полутора миллионов строк кода), серьезной продолжительностью жизни (во многих случаях имитируемое воздушное судно состоит на вооружении в течение 40 лет или даже дольше) и строжайшими требованиями по функционированию в реальном времени и по точности (в таких условиях, как нормальный режим полета, аварийные маневры или отказ оборудования, модель должна в точности повторять поведение настоящего воздушного судна).
Появление образца «структурная модель» относят к 1987 году — к тому времени, когда ВВС начали анализировать возможности применения объектно-ориентированных методик проектирования. Необходимость в подобного рода изысканиях диктовались несовершенством традиционных решений, применявшихся при проектировании электронных систем моделирования условий полета, первые из которых появились еще в 1960-х годах. В частности, налицо были констуктивные проблемы (с разрастанием и усложнением систем экспоненциально этап интеграции) и трудности, связанные с жизненным циклом (сто- 1'' '-lb проведения некоторых модификаций превышала стоимость исходных систем).
Как мы увидим, все эти проблемы удалось решить с помощью образца «структурная модель». В частности, на его основе был разработан тренажер-имитатор систем вооружений В-2, система тренировки экипажей С-17 и семейство трена- «Спецназ» (Special Operations Forces).
8.2. Требования и атрибуты качества
У пилотажного тренажера может быть три роли. Первая заключается в подготовке экипажа. Его члены размещаются на подвижной платформе в окружении инструментов, в точности повторяющих оборудование имитируемого воздушного судна, а перед собой наблюдают визуальные образы возможного окружения. Мы не намерены вдаваться в подробности устройства подвижной платформы и формирователя образов. Они находятся под управлением специализированных процессоров, выходящих за рамки рассматриваемой архитектуры. Пилотажный тренажер призван подготовить пилота и экипаж к управлению конкретным воздушным судном — в частности, к выполнению таких маневров, как дозаправка в воздухе и реагирование на атаки. Одной из важнейших составляющих тренировочного процесса является точность моделирования. К примеру, необходимо безупречно сымитировать особенности средств управления, проявляющиеся при выполнении тех или иных маневров. В противном случае пилот и экипаж могут получить неверное представление, что, в свою очередь, иногда приводит к катастрофическим последствиям.
Вторая роль пилотажного тренажера — моделирование окружающей среды. Как правило, она выражается в виде вычислительной модели, хотя в условиях совместной тренировки экипажей в моделировании могут принимать участие сторонние лица. Модель имитирует атмосферные условия, угрозы, вооружение и Другие воздушные суда. К примеру, если экипаж обучается дозаправке, модель воздущного судна имитирует атмосферную турбулентность.
Третья роль, связанная с пилотажным тренажером, - это роль оператора моделирования. Любое учебное упражнение выполняет определенную задачу в опиленных условиях. По мере выполнения упражнения оператор отслеживает действия пилота и экипажа и инициирует учебные ситуации. Иногда эти ситуации планируются заранее, но во всех остальных случаях их организует оператор. Чествует ряд типичных ситуаций - в частности, неисправность оборудования (например, неточный выпуск шасси), вражеские атаки и турбулентность, данная грозой. Сидя за специальной консолью, оператор следит за действиями Типажа, инициирует неисправности и управляет моделирование окружающей среды. На рис. 8.2 приводится фотография зала с современными пилотажными тренажерами.
Применение моделей
Модели воздушных судов и окружения предусматривают почти безграничный диапазон степеней точности. В качестве примера рассмотрим ситуацию моделирования воздушного давления на борт. Наиболее простая модель исходит из того, что воздушное давление зависит только от высоты над уровнем моря. Согласно более сложной модели, к фактору высоты прибавляются местные погодные условия. Моделирование образцов местных погодных условий требует дополнительных вычислительных мощностей, но зато учитывает нисходящие и восходящие потоки воздуха. Возможна и еще более сложная модель с повышенными вычислительными требованиями, в соответствии с которой воздушное давление обусловливается высотой, местными погодными условиями и поведением находящихся поблизости воздушных судов. Действительно, одной из причин возникновения турбулентности может быть недавнее прохождение другого борта в воздушном пространстве моделируемого воздушного судна.
Способность пилотажных тренажеров моделировать воздушные суда и окружающую среду с произвольной точностью достигается за счет максимального использования вычислительных возможностей (так было раньше и так же, судя по всему, будет и впредь). Поскольку обучение экипажей на тренажерах - один из центральных элементов летной подготовки, даже незначительное повышение точности способно значительно улучшить результаты тренировки и, следовательно, укрепить навыки экипажей. Таким образом, одно из основных требований предъявляемых к системам моделирования условий полета, касается производительности
Рабочие состояния
Система моделирования условий полета может находиться в нескольких состояниях.
♦ «Работа» (Operate) соответствует нормальному режиму функционирования системы моделирования в роли тренажера.
♦ «Настройка» (Configure) применяется при необходимости внесения в текущий учебный сеанс каких-либо изменений. К примеру, если инструктор собирается перейти от одиночного пилотажного упражнения на модель дозаправки в воздухе, он переводит систему в состояние настройки.
♦ «Остановка» (Halt) прекращает текущий сеанс моделирования.
♦ «Воспроизведение» (Replay) применяется для просмотра зафиксированных в журнале смоделированных ситуаций без взаимодействия с экипажем. Помимо прочего, этот режим используется для демонстрации экипажу записи выполненных им действий — в тех, к примеру, случаях, когда экипаж, столкнувшись с трудностями в управлении бортом, перестает реагировать на прочие факторы. В главе 5 («Реализация атрибутов качества») мы представили тактику тестирования «запись/воспроизведение». Здесь она используется в процессе тренировки.
Рассматриваемые в этой главе системы моделирования обладают следующими четырьмя свойствами:
1. Ограничения по функционированию в реальном времени. Частота смены кадров в системах моделирования условий полета должна соответствовать требованиям по точности. Объяснить, что такое «частота смены кадров», проще всего по аналогии с кинофильмами. Кадр - это снимок, фиксирующий тот или иной момент времени. Определенное количество кадров, сделанных последовательно в течение заданного периода времени, создает У наблюдателя впечатление непрерывного движения. В зависимости от условий восприятия устанавливаются разные значения частоты смены кадров. Системы моделирования условий полета, как правило, работают на частотах 30 или 60 Гц (при которых обновление производится 30 и 60 раз в секунду, соответственно). Все вычислительные операции при этом должны завершаться в пределах времени, отведенного на один кадр.
Частота любого элемента системы моделирования должна быть кратна базовой частоте (причем коффициент кратности должен быть целым). Если, к примеру, базовая частота равняется 60 Гц, то более медленные элементы системы должны работать на частоте 30, 20, 15, 12, 10, 6, 5, 4, 3, 2 или 1 Гц. Нецелочисленных коэффициентов, приводящих к значениям наподобие 25 Гц, быть, таким образом, не должно. Причина этого ограничения кроется в необходимости жесткого согласования входных сигналов от датчиков.
Неприемлемом считается ситуация, при котором пилот, приступающий к выполнению попорота, ощущает результаты своих действий с задержкой - пусть даже минимальной (скажем, на одну десятую секунды). Задержки, происходящие из-за несогласованности, если даже они настолько малы, что не выводятся на уровень сознания, представляют серьезную проблему. В частности, они вызывают так называемую «тренажерную болезнь» (simulator sickness) — чисто физиологическую реакцию на недостаточно согласованные входные сигналы.
2. Постоянная разработка и модификация. Системы моделирования условий полета заменяют тренировки па настоящих воздушных судах, поскольку последние, во-первых, обходятся значительно дороже, а во-вторых, оказываются значительно опаснее. Для того чтобы максимально приблизить такую подготовку к реальным условиям, тренажер должен в точности повторять оригинальное судно. С другой стороны, как гражданские, так и военные воздушные суда постоянно модифицируются и совершенствуются. Следовательно, точного соответствия тренажера оригиналу можно добиться исключительно при условии его непрерывной модификации. Более того, чем дальше, тем больше в системы моделирования вводится новых ситуаций, охватывающих, с одной стороны, возможные неисправности, а с другой - внешние ситуации, например управление военным вертолетом в городской среде.
3. Масштабность и сложность. Для моделирования самых простых учебных ситуаций в пилотажных тренажерах, как правило, требуется ввод десятков тысяч строк кода. В сложных тренажерах совместной подготовки объем исчисляется миллионами строк. За последние 30 лет сложность систем моделирования условий полета увеличивалась экспоненциально.
4. Географически распределенная разработка. Существуют две причины, по которым разработка военных систем моделирования условий полета проводится распределенным методом, — одна техническая и одна политическая. С технической точки зрения отдельные элементы проекта требуют участия специалистов в разных областях, поэтому генеральные подрядчики имеют обыкновение заключать субдоговоры с компаниями разных специализаций. С другой стороны, высокотехнологичные области (к которым и относится разработка пилотажных тренажеров) — это всегда лакомый кусок для политиков, которые, естественно, прилагают все усилия к тому, чтобы занять в подобных проектах специалистов из своих округов. В любом случае, интегрируемость пилотажных тренажеров, которая и так проблематична вследствие объема и сложности кода, усложняется за счет протяженности каналов взаимодействия.
Еще две проблемы, связанные с пилотажными тренажерами, вынудили ВВС США искать новые решения.
1. Крайне высокая стоимость отладки, тестирования и модифицирования. Среди факторов, из-за которых стоимость тестирования, интеграции и модификации систем моделирования условий полета превышает стоимость разработки, — сложность этих программных продуктов, необходимость
функционирования в реальном времени и тенденция к регулярным модификациям. Все возрастающая сложность (и связанное с ней повышение стоимости) привела к тому, что при проектировании архитектуры подобно- ,о рода продуктов пристальное внимание стали уделять интегрируемости „ модифицируемости.
Одним из последствий усложнения систем стало удорожание интеграции. К примеру, интеграция одной из крупных систем ВВС (объем кода в которой составил 1,7 млн строк) обошлась заказчику значительно дороже суммы, прописанной в бюджете. На очереди в тот момент были системы, объем которых должен был в 1,5 раза превысить этот показатель, и стоимость их изготовления казалась совершенно неподъемной. Так интегрируемость вышла на первый план среди всех архитектурных мотивов.
2. Неясность соответствия между структурами программною продукта и воздушного судна. Традиционно в качестве ведущей задачи по качеству при разработке систем моделирования условий полета выступала вычислительная эффективность в период прогона. В этом нет ничего удивительного, учитывая, с одной стороны, требования к производительности и точности, а с другой — то обстоятельство, что в первое время такие системы конструировались на платформах с крайне ограниченными ресурсами памяти и обработки данных. Традиционные решения пилотажных тренажеров основывались на циклическом следовании контурам управления. Те, в свою очередь, имели движущей силой задачи, запускавшие контур. Предположим, к примеру, что пилот выполняет поворот влево. Он передвигает руль направления и регулирует элероны; вследствие этих действий изменяется положение рулевых поверхностей, и за счет аэродинамических процессов борт начинает поворачивать. Соответствующая модель в тренажере должна выражать связь между элементами управления, поверхностями, аэродинамическими характеристиками и направлением движения воздушного судна. В рамках традиционной архитектуры систем моделирования эта модель заключалась в единый модуль поворота. Аналогичные модули отводились на горизонтальный полет, взлет, приземление и прочие ситуации. Таким образом, стратегия декомпозиции предусматривала анализ стоящих перед пилотом и экипажем задач, моделирование выполняющих эти задачи компонентов и максимально возможную локализацию вычислений.
Такая архитектура способствует повышению производительности — каждая задача моделируется в рамках единичного модуля (или ограниченного набора модулей), вследствие чего продвижение данных, необходимое для проведения вычислений, сводится к минимуму. Недостаток этой архитектуры в том, что один и тот же физический компонент оказывается представлен сразу в нескольких моделях, а значит, и в нескольких модулях. Активное взаимодействие между модулями оказывает негативное влияние как на модифицируемость, так и на интегрируемость. Если предположить, модуль, отвечающий за поворот, интегрирован с модулем, отвечающим горизонтальный полет, и при этом в данных, предоставляемых модулю поворота, обнаруживаются ошибки, можно с достаточной степенью
уверенностью сделать вывод о том, что к тем же данным обращается модуль горизонтального полета. Таким образом, в ходе интеграции и сопровождения нужно было принимать во внимание многочисленные последствия сцепления.
На решение именно этих проблем ориентирован архитектурный образец под названием «структурная модель». Он рассматривается в оставшейся части этой главы. Вкратце его можно охарактеризовать так: это образец, предусматривающий применение объектно-ориентированных методик проектирования и направленный на моделирование подсистем и дочерних модулей контроллера воздушного суда. В целях контроля порядка работы подсистем тренажера и обеспечения точности он сочетает объектно-ориентированное проектирование с механизмом планирования в реальном времени.
