
- •Часть 1. Планирование архитектуры
- •Заключение
- •Дополнительная литература
- •4.10. Дискуссионные вопросы
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 6. Управление воздушным движением. Пример разработки, ориентированной на высокую готовность
- •Глава 7. Проектирование архитектуры
- •Глава 8. Моделирование условий полета. Конкретный пример архитектуры, ориентированной на интегрируемость
- •8.4. Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 9. Документирование программной архитектуры
- •Заключение
- •Дополнительная литература
- •Дискуссионные вопросы
- •Глава 10. Реконструкция программной архитектуры
- •Глава 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 (Питтсбург, сша).
6.1. Связь с архитектурно-экономическим циклом
На рис. 6.3 приводится схема архитектурно-экономического цикла (Architecture Business Cycle, ABC) применительно к системе управления воздушным движением. Конечными пользователями системы должны были стать специалисты по управлению полетами; заказчиком выступило Федеральное авиационное агентство США; на роль компании-разработчика выбрали крупную корпорацию, имевшую обширный опыт создания важных, преимущественно программных, систем по заказу правительства США. Среди факторов формирования технической базы следует назвать требование о применении для реализации крупных правительственных программных систем языка Ada, а также появление распределенной обработки данных — стандартной методики конструирования систем и обеспечения отказоустойчивости.
6.2. Требования и атрибуты качества
С учетом того, что управление воздушным движением представляет собой от-крытую сферу, в которой переплетаются правительственные, коммерческие и общественные интересы, а в случае возникновения неисправностей существует риск гибели людей, два основных атрибута качества можно сформулировать следующим образом:
1. Сверхвысокая готовность — другими словами, нарушение работоспособности системы с превышением заданного интервала времени абсолютно недопустимо. Количественные требования к готовности системы ISSS выражались показателем 0,99999, из которого следовало, что период ее неготовности необходимо было ограничить пятью минутами в год. (Правда, если система оказывалась способна восстановиться после отказа и возобновить работу в пределах 10 секунд, этот отказ при подсчете периода неготовности не учитывался.)
2. Высокая производительность. Системе предстояло обрабатывать данные о почти 2440 рейсах, не «теряя» из виду ни один из них. Сети должны выдерживать серьезные нагрузки, а программное обеспечение — проводить вычисления быстро и предсказуемо.
Следует перечислить и некоторые другие требования, которые, не будучи стать значимыми в контексте обеспечения безопасности самолетов и пассажиров, все же в значительной степени обусловили характер и принципы построения архитектуры.
♦ Открытость. Система должна оъ:ла предусматривать возможность ввода в свей состав коммерческих программных компонентов — Б частности, функции управления воздушным движением и основных вычислительных служб наподобие пакетов графического отображения.
♦ Способность к выделению подмножеств системы — на случай, если проект стоимостью во многие миллиарды долларов падет жертвой сокращения бюджета (а значит, и функциональности), как. в конечном итоге, и случилось.
♦ Возможность дополнения функциональности, модернизации аппаратного if программного обеспечения (в частности, установки новых процессоров, устройств ввода-вывода и драйверов, новых версий компилятора языка Ada).
♦ Способность к взаимодействию и сопряжению с неопределенным набором внешних систем — как аппаратных, так и программных, почтенного возраста и до сих пор не реализованных.
Наконец, отличительной чертой этой системы является наличие огромного количества заинтересованных лиц — в частности, диспетчеров, выступавших в роли конечных пользователей. В этом, на первый взгляд, нет ничего удивительного, но диспетчеры могли отказаться от пользования непонравившейся системой, даже если бы она отвечала всем эксплуатационным требованиям. Из-за этого весьма существенного фактора процессы выявления требований и проектирования системы сильно растянулись.
Термином блок управления секторами (sector suite) обозначается комплект контроллеров (каждый из которых находится на консоли — см. рис. 6.4), предназначенных для управления воздушным движением в отдельном секторе воздушного пространства района. Итак, представленную выше упрощенную схему управления воздушным движением можно дополнить тем, что обязанности но координации передвижения воздушных судов передаются не только от района к району, но и от сектора к сектору. Принципы выделения секторов определяются индивидуально в каждом районе. В частности, основным фактором может быть стремление равномерно распределить нагрузку между диспетчерами района; если это так, то чем интенсивнее воздушное движение в том или ином секторе, тем он меньше.
Проект системы ISSS предусматривает гибкость в отношении количества диспетчерских пунктов в каждом секторе; допустимые значения находятся в диапазоне от одного до четырех, причем во время работы системы они могут корректироваться командным способом. В любом секторе должно быть не менее двух диспетчеров. Один из них — диспетчер радиолокационного контроля — следит обзорными показаниями РЛС, ведет переговоры с бортами и обеспечивает безопасное эшелонирование. На его плечи, таким образом, ложится тактическое управление ситуацей в секторе. Второй диспетчер ответствен за данные — он получает информацию (в частности, планы полетов) обо всех бортах, находящихся в секторе или приближающихся к нему. Диспетчер данных оповещает диспетчера РЛС о намерениях борта, а тот, в свою очередь, старается максимально безопасно и эффективно провести борт через воздушное пространство сектора.
ISSS — крупная система. Некоторое представление о ее масштабах, возможно, смогут дать следующие цифры.
♦ В каждом центре управления полетами ISSS способна обеспечивать работу до 210 консолей. В каждой консоли установлен процессор класса «рабочая станция» — IBM RS/6000.
♦ Согласно требованиям к ISSS, каждый центр должен одновременно управлять движением 400-2440 бортов.
♦ В каждом аппаратном блоке воздушным движением может быть установлено от 16 до 40 РЛС.
♦ В каждом районном центре может быть от 60 до 90 пунктов управления (и в каждом из них по одной или по несколько консолей).
♦ Реализация ISSS состоит примерно из одного миллиона строк кода на языке Ada.
Итак, перед системой ISSS были поставлены следующие основные задачи:
♦ Получение отчетов о радиолокационных целях, которые хранятся в существующей системе управления полетами — в так называемом хост-компьютере (Host Computer System).
♦ Преобразование радиолокационных отчетов в форму, пригодную для отображения на экране, и их пересылка на все консоли. Каждая консоль выбирает из них только те, которые ей требуются; при этом любая консоль может отобразить любую область.
♦ Обработка предупреждений о конфликтах (потенциально ведущих к столкновению воздушных судов) и всех прочих данных, передаваемых с хост- компьютера.
♦ Предоставление хост-компьютеру интерфейса для подачи входных данных и получения планов полетов.
♦ Предоставление подробных данных текущего контроля и управляющей информации (в частности, относящейся к сетевому управлению), при помощи которых администраторы узлов проводят реконфигурацию систем в реальном времени.
♦ Обеспечение возможности записи и последующего считывания.
♦ Размещение на консолях элементов графического пользовательского интерфейса — в частности, оконная организация экранного пространства. Кроме того, необходимы дополнительные меры предосторожности — например, если окна не будут прозрачными, диспетчеры могут упустить из виду критические данные.
♦ Обеспечение средств резервирования на случай сбоев на хост-компьютере, в основной сети передачи данных и в основных радиолокационных датчиках.
В следующем разделе мы проанализируем архитектуру, при помощи которой эти требования удалось выполнить.