
- •Часть 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 (Питтсбург, сша).
4.5. Другие атрибуты качества системы
Итак, мы провели обобщенный анализ атрибутов качества. В классификациях атрибутов, исследовательской литературе и учебниках по программной инженерии упоминается ряд других атрибутов, которые частично отражены в наших сценариях. К примеру, во многих случаях существенное значение имеет масштабируемость (scalability); в нашем обзоре этот атрибут качества учитывается как модификация мощности системы — количества пользователей, которые могут работать в ней одновременно. Переносимость (portability) представлена как изменение платформы.
Если для вашей организации заметную роль играет какой-либо атрибут качества из числа неупомянутых — например, способность к взаимодействию, — для него также имеет смысл составить общий сценарий. Для этого нужно лишь наполнить содержанием шесть универсальных элементов сценария: источник стимула, стимул, условия, артефакт, реакция и количественная мера реакции. Если речь идет о способности к взаимодействию, в роли стимула можно представить потребность во взаимодействии с другой системой, в роли реакции — создание нового интерфейса или нескольких интерфейсов, а в роли единицы измерения (количественной меры) реакции — степень сложности в категориях времени, количества изменяемых интерфейсов и т. д.
4.6. Коммерческие атрибуты качества
Помимо атрибутов качества, экстраполируемых непосредственно на систему, существует ряд коммерческих (business) задач качества, которые также нередко оказывают существенное влияние на характер системной архитектуры. Эти задачи связаны со стоимостью, планированием, выходом на рынок и другими вопросами сбыта. Все они не менее абстрактны, чем вышеперечисленные атрибуты качества системы, и поэтому в целях влияния на процесс проектирования и обеспечения возможности тестирования их также следует конкретизировать при помощи сценариев. Впрочем, составление конкретных сценариев мы, пожалуй, доверим вам (см. соответствующий дискуссионный вопрос).
♦ Срок выхода продукта на рынок. При наличии серьезной конкуренции, а также при условии ограниченности времени, в течение которого система или продукт имеют шансы на успех, существенное значение приобретает продолжительность разработки. Это, в свою очередь, приводит к потребности в приобретении или повторном использовании существующих элементов.
Для сокращения сроков выхода продукта на рынок часто используются готовые элементы наподобие коммерческих коробочных продуктов (сот- mercial off-the-shelf products, COTS) или элементы из предшествующих проектов. Возможность вставки или размещения в данной системе подмножества сторонней системы зависит от декомпозиции системы на элементы.
♦ Стоимость и прибыль. Совершенно естественно, что под разработку системы составляется бюджет, который желательно не превышать. Стоимость разработки напрямую зависит от конкретной архитектуры. К примеру, если архитектура основывается на технологиях (или специальных технологических знаниях), которыми компания-разработчик не располагает, на ее реализацию уйдет больше средств, чем если бы было принято решение об использовании освоенных технологий. Архитектура с повышенными требованиями к гибкости, как правило, оказывается дороже негибкой (хотя впоследствии ее будет дешевле сопровождать и модифицировать).
4- Предполагаемый срок службы системы. Чем больше намеченный срок службы системы, тем выше требования к модифицируемости, масштабируемости и переносимости. С другой стороны, встраивание дополнительной инфраструктуры (например, дополнительного уровня, обеспечивающего возможность переносимости), как правило, увеличивает срок выхода продукта на рынок. Впрочем, у продукта с возможностью модифицирования и расширения больше шансов продержаться на рынке в течение длительного времени.
♦ Целевой сегмент рынка. Если речь идет об универсальном (массовом) программном обеспечении, потенциальный объем рынка определятся набором платформ и функций. Таким образом, чем больше внимания уделяется переносимости и функциональности, тем больше доля рынка. Определенную роль в этом контексте играют и другие атрибуты качества — в частности, производительность, надежность и практичность. В случаях, когда компания планирует выйти на масштабный рынок с рядом родственных продуктов, лучше всего подходит стратегия линейки продуктов с общим для всех систем ядром (которое, кстати, зачастую обеспечивает переносимость), вокруг которого строятся разные программные уровни — чем дальше, тем специфичнее. Методика построения линеек программных продуктов рассматривается в главе 14.
♦ График развертывания. Если продукт планируется сначала выпустить в базовом варианте, а затем дополнять новыми возможностями, на первый план выходят гибкость и настраиваемость архитектуры. В частности, систему следует конструировать с расчетом на удобство расширения и сокращения.
♦ Интеграция с существующими системами. Если новую систему планируется интегрировать с существующими системами, следует обратить особое внимание на фиксацию механизмов интеграции. Этот атрибут качества, несомненно важный с точки зрения маркетинга, имеет непосредственное отношение к архитектуре. В частности, в течение предыдущего десятилетия многие корпорации стремились к тому, чтобы интегрировать существующие системы с HTTP-серверами и, таким образом, обеспечить доступ к ним через Интернет. Вряд ли нужно напоминать, что все архитектурные ограничения, связанные с интеграцией, требуют тщательного анализа.