- •Часть 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 (Питтсбург, сша).
Часть 3. Анализ архитектуры
Глава 11. Метод анализа компромиссных архитектурных решений — комплексный подход к оценке архитектуры. Метод анализа компромиссных архитектурных решений (Architecture Tradeoff Analysis Method, АТАМ) позволяет оценить архитектурные решения в контексте требований к поведению и атрибутам качества. Наряду с описанием метода АТАМ в этой главе приводится полноценный пример его применения.
Глава 12. Метод анализа стоимости и эффективности — количественный подход к принятию архитектурно-проектных решений. Программные архитекторы и руководители проектов всегда стремятся довести до максимума разницу между прибылью от системы и стоимостью ее реализации. Метод анализа стоимости и эффективности (Cost Benefit Analysis Method, СВАМ) позволяет принимать экономические решения, исходя из анализа архитектуры. Основываясь на АТАМ, метод СВАМ обеспечивает возможность моделирования издержек и прибыли архитектурно-проектных решений и предусматривает средства их оптимизации. В этой главе мы не только представим метод СВАМ, но и охарактеризуем конкретный пример его применения.
Глава 13. Всемирная паутина. Конкретный пример реализации способности к взаимодействию. Начало развитию Всемирной паутины положило намерение руководства отдельно взятой организации наладить обмен информацией между штатными исследователями; в контексте конечного результата эта первоначальная задача кажется незначительной. В данной главе описывается архитектура программного обеспечения, на основе которого функционирует Всемирная паутина, объясняется, каким образом оно определило дальнейший рост глобальной сети и какое влияние этот рост в свою очередь оказал па обращающиеся к ее услугам организации.
Часть 4. От одной системы к множеству
Глава 14. Линейки продуктов. Повторное использование архитектурных средств. Программная архитектура, применяемая в качестве основы для формирования линейки программных продуктов, оказывается крайне эффективной. В этой главе представлены элементарные принципы производства линеек программных продуктов, причем архитектура преподносится в роли основного фактора обеспечения подвижек по части продуктивности, сроков выхода на рынок, качества и затрат. Ряд действий в рамках разработки программных средств и управления Этим процессом рассматриваются в этой главе достаточно подробно, поскольку в контексте формирования линеек продуктов они занимают особое место.
Глава 15. CelsiusTech. Конкретный пример разработки линейки продуктов CelsiusTech — это название компании, которой удалось с успехом реализовать выстроенную на архитектуре линейку продуктов. Эта архитектура и предметом рассмотрения в данной главе; здесь мы делаем попытку объясню] почему именно архитектура оказалась основным условием достижений CelsiusTech Выбери компания какую-либо другую методику, ей не удалось бы сконструировать намеченные системы — у нее просто не хватило бы сотрудников. Ориентация на линейки продуктов отразилась как на организационной структуре компании, так и на стиле аргументации и ведения переговоров с клиентами.
Глава 16. J2EE/EJB. Конкретный пример стандартной вычислительной инфраструктуры. В этой главе речь идет о спецификации корпоративной архитектуры Java 2 (Java 2 Enterprise Edition, J2EE) от компании Sun Microsystems, а также об одной из ее важнейших составляющих — архитектурной спецификации Enterprise JavaBeans (Enterprise JavaBeans, EJB). Спецификация J2EE содержит стандартное описание процессов проектирования и разработки распределенных объектно-ориентированных программ на языке Java. Мы анализируем коммерческие факторы, обусловившие создание стандартной архитектуры производства распределенных систем, а также рассматриваем ориентированные на удовлетворение соответствующих потребностей средства J2EE/EJB.
Глава 17. Архитектура Luther. Конкретный пример мобильных приложений на основе архитектуры J2EE. Архитектура Luther изначально мыслилась как универсальная структура, позволяющая внедрять специализированные решения в предметной области технического обслуживания и эксплуатации крупногабаритных транспортных средств и в рамках промышленной инфраструктуры. Поскольку в ее основе лежит архитектура J2EE, эту главу можно считать обзором одного из вариантов применения рассматриваемой в главе 16 универсальной структуры J2EE/EJB. Приведенный в ней конкретный пример ориентирован на такую среду, в которой конечный пользователь, располагая соединением по беспроводной сети, оперирует неким устройством с ограниченными возможностями ввода- вывода и/или ограниченными вычислительными возможностями.
Глава 18. Конструирование систем из коробочных компонентов. Чем дальше, тем больше в процессе конструирования систем используется готовых, «коробочных», компонентов. Поскольку они способны накладывать на архитектуру определенные ограничения, их использование некоторым образом видоизменяет процесс проектирования. Как правило, отбор компонентов диктуется намерением реализовать некий набор функциональных возможностей; с другой стороны, компоненты предполагают некие архитектурные допущения, а следовательно, и допущения в отношении качества. В этой главе рассматривается довольно простой процесс, при помощи которого любой архитектор сможет отобрать только те компоненты, которые способны к успешному взаимодействию. Иллюстрируется эта методика на примере недавно созданной системы.
Глава 19. Будущее программной архитектуры. Здесь мы еще раз пробежимся по архитектурно-экономическую циклу, попробуем сформулировать задачи программной архитектуры, которые еще предстоит решить, и приведем доводы в пользу проведения дальнейших исследований в этой области.
Систематика конкретных примеров
Для нас совершенно очевидно, что разным читателям требуются разные сведения, а для большинства из них важна возможность усвоения материала с разной степенью детализации. По этой причине все конкретные примеры делятся на несколько категорий:
♦ краткое описание примера и решаемых им задач плюс замечания о соответствующей программной архитектуре;
♦ описание (полной или частичной) реализации в данном примере архитектурно-экономического цикла;
♦ требования и атрибуты качества, обусловившие принятие конкретного проектного решения;
♦ подробное рассмотрение архитектурного решения — именно на нем основана большая часть конкретных примеров;
♦ краткое изложение важнейших проблем, представленных в данной главе.
Архитектурные решения в конкретных примерах описываются наиболее подробно. Если сведения, которые вы считаете нужным извлечь, исчерпываются технической базой, коммерческим контекстом и высокоуровневым описанием архитектурной методики, то для того, чтобы усвоить суть примера, вам достаточно ознакомиться с его краткой характеристикой, требованиями, задачами по качеству и выводами. Более подробный анализ примеров содержится в разделах, посвященных архитектурным решениям.
Основные темы книги
Связующей нитью материала в этой книге, несомненно, является архитектурно-экономический цикл; тем не менее в нем есть и другие магистральные темы. Если ваши интересы связаны с каким-то одним или несколькими аспектами программной архитектуры, то с помощью нижеследующего указателя вы можете проследить их упоминания в различных главах.
♦ Откуда берутся варианты архитектуры? — главы 1, 2, 4, 7, 11 и 12.
♦ Экономические аспекты архитектуры - главы 1, 4, 7, 11, 12, 14, 15 и 18.
♦ Каким образом на основе архитектуры реализуются атрибуты качества? — главы 4, 5, 11, 12 и конкретные примеры;
♦ Конкретные примеры реализации атрибутов качества на основе архитекту-ры — главы 3, 6, 8, 13, 15, 16 и 17.
♦ Архитектура как средство многократного применения — главы 14, 15, 16, 17 и 18.
♦ Компонентные системы и коммерческие инфраструктуры — главы 13, 16, 17 и 18.
♦ Архитектура систем реального времени — главы 3, 5, 6, 8 и 15.
♦ Архитектура информационных систем — главы 13, 16, 17 и 18.
Примечания
На всем протяжении книги встречаются краткие, подписанные, отделенные от основного текста примечания — над написанием каждого такого примечания трудился кто-то один из нас. Нужны они для того, чтобы донести до читателя какие- то дополнительные сведения или мнения, которые в силу разных причин не вписываются в рамки основного повествования.
От издательства
Ваши замечания, предложения и вопросы отправляйте по адресу электронной почты comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
Подробную информацию о наших книгах вы найдете на веб-сайте издательства: http://www.piter.com.
