- •Часть 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 (Питтсбург, сша).
4.2. Архитектура и атрибуты качества
Вопросы воплощения атрибутов качества решаются в периоды проектировании, реализации и развертывания. Не существует ни одного атрибута качества, который зависел бы исключительно от какого-то отдельного этапа. Для достижения оптимальных результатов требуется правильность в общем (в архитектуре) и в частностях (в реализации).
♦ Практичность имеет как архитектурные, так и не архитектурные аспекты. Среди последних — обеспечение ясности и простоты применения пользовательского интерфейса. Что следует предпочесть: переключатель или флажок? Какая схема размещения информации на экране наиболее интуитивна ? Какая гарнитура шрифта отображается четче других? Все эти вещи имеют существенное значение для конечного пользователя и влияют на практичность, но при этом, являя собой локальные дизайнерские решения, они не имеют отношения к архитектуре. Архитектура в данном случае — это возможность отменять операции, возвращаться к предыдущему состоянию и повторно обращаться к ранее введенным данным. Для реализации этих требований необходимо взаимодействие множества элементов.
♦ Модифицируемость определяется тем, каким образом происходит разделение функциональности (архитектурный аспект) и методик кодирования в рамках отдельного модуля (неархитектурный аспект). Так, назвать систему модифицируемой можно лишь в том случае, если для внесения изменений требуется наименьшее количество отдельных элементов. Именно на этом строится структура декомпозиции модулей системы А-7Е, описанной в главе 3. Чем менее структурирован код, тем хуже система поддается модифицированию.
♦ Производительность также зависит от архитектурных и неархитектурных факторов. Отчасти она зависит от объема информации, передающейся между компонентами (это архитектурный аспект), от распределения функциональности между компонентами (архитектурный аспект), распределения совместно используемых ресурсов (архитектурный аспект), выбранных для реализации функциональности алгоритмов (неархитектурный аспект) и кодирования этих алгоритмов (также неархитектурный аспект).
В этом разделе мы хотим сделать упор на двух моментах:
1. Архитектура определяет возможность реализации предполагаемых атрибутов качества системы; проектирование и оценку этих атрибутов следует проводить на архитектурном уровне.
2. Сама но себе архитектура не реализует никаких атрибутов качества, но она образует основу для достижения качества — впрочем, если не уделять должного внимания деталям, пользы от этой основы не будет никакой.
Реализовать ряд атрибутов качества по отдельности в сложной системе невозможно. Реализация одного такого атрибута всегда каким-то образом ~ иногда положительно, а иногда и отрицательно — влияет на реализацию других. К примеру, такие атрибуты качества, как безопасность и надежность, обычно конфликтуют между собой. У самой защищенной системы наименьшее количество точек отказа — как правило, они концентрируются в ядре безопасности. У самой надежной системы их, напротив, наибольшее количество — как правило, :ло ряд резервируемых процессов или процессоров, причем отказ одного из них не приводит к отказу системы в целом. Другой пример конфликта между атрибутами качества очевиден — практически любой атрибут качества негативно отражается на производительности. Взять хотя бы переносимость. Лучший способ обеспечить переносимость программного продукта — это изолировать системные зависимости. Такое решение увеличивает непроизводительные издержки в ходе исполнения системы (обычно на границах процессов или процедур), а следовательно, снижает производительность.
Теперь приступим к обзору атрибутов качества. Они делятся на три класса:
1. Атрибуты качества системы. Из них мы рассмотрим готовность, модифицируемость, производительность, безопасность, контролепригодность и практичность.
2. Коммерческие атрибуты качества (например, срок вывода продукта на рынок), реализация которых обусловливается архитектурой.
3. Атрибуты качества самой архитектуры (например, концептуальная целостность), которые косвенно влияют на другие качества — например, модифицируемость.
