
- •Часть 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 (Питтсбург, сша).
5.7. Тактики реализации практичности
Практичность, как мы уже говорили, выражает простоту выполнения пользователем желаемой задачи и наличие в системе вспомогательных средств, ориентированных на помощь пользователю. На реализацию практичности направлены тактики двух видов, соответствующих двум категориям «пользователей». Первая категория — тактики периода исполнения — поддерживают пользователя во время работы системы. Вторая категория основывается на итеративном характере решений, применяемых в пользовательских интерфейсах, и ориентируется на разработчиков интерфейсов, действующих в период проектирования. Она жестко связана с представленными выше тактиками реализации модифицируемости.
Назначение тактик периода исполнения показано на рис. 5.12.
Тактики периода исполнения
время работы системы качество практичности можно повысить несколькими с0бами. Во-первых, нужно сделать так, чтобы пользователь знал, какие опера- °0 система выполняет в данный момент. Во-вторых, у пользователя должна быть возможность отдавать практичные команды из числа тех, что мы перечислили главе 4. К примеру, команды отмены текущей и аннулирования предыдущей 0пераЦИИ’ группировки и одновременного вывода нескольких представлений помогают пользователю исправить допущенную ошибку и повысить эффективность своих действий.
При описании ролей участников (связки «человек-машина») в выполнении отдельных операций специалисты по человеко-машинному взаимодействию оперируют терминами «инициатива пользователя», «инициатива машины» и «смешанная инициатива». В тех сценариях практичности, которые мы приводили в глазе 4, учитываются оба субъекта инициативы. К примеру, намереваясь отменить исполнение команды, пользователь отдает соответствующее распоряжение (проявляя «инициативу пользователя»), а система на нее реагирует. С другой стороны, во время отмены система может вывести на экран индикатор выполнения (это уже «инициатива системы»). Таким образом, операция отмены являет собой пример «смешанной инициативы». Тактики, при помощи которых архитектор составляет разного рода сценарии, можно разделить по тому же принципу — как относящиеся к инициативе пользователя и инициативе системы.
Реакция на инициативу пользователя проектируется архитектором так же, как любой другой функциональный элемент. Архитектор должен перечислить обязанности системы, связанные с реакцией на команду пользователя. Вернемся к примеру с отменой операции. В тот момент, когда пользователь отдает команду отмены, система должна находиться в состоянии ожидания ее поступления (отсюда — обязанность по содержанию постоянного приемника, устойчивого к блокированию вследствие отмены разного рода операций); затем отменяемую команду следует уничтожить, все ресурсы, задействованные при ее исполнении, — освободить; при этом компоненты, сотрудничавшие с отмененной командой, следует информировать о ее отмене, для того чтобы они смогли предпринять уместные в этом случае действия.
Если инициатива принадлежит системе, она должна располагать определенной информацией (моделью) о пользователе, задаче, которую он пытается выполнить, а также о собственном состоянии. Каждая модель предусматривает разные варианты входных данных, без которых претворить инициативу в жизнь невозможно. Тактики инициативы системы формулируют модели, с помощью которых система может прогнозировать собственное поведение или намерения пользователя. Инкапсулировав эту информацию, архитектор упрощает задачи составления и корректировки этих моделей. Составлять и корректировать модели можно либо динамическим способом — исходя из предшествующего поведения пользователя, либо непосредственно в ходе разработки.
♦ Обслуживание модели задачи. Модель задачи применяется для определения контекста, который дает системе представление о том, что пользователь намерен сделать, и возможность помочь ему. К примеру, если программе
известно, что предложения обычно начинаются с заглавных букв, она может автоматически менять регистр строчных букв после точки.
♦ Обслуживание модели пользователя. Модель пользователя содержит сведения об умении пользователя работать с системой, его представлениях о времени отклика и других аспектах, характеризующих конкретного пользователя или класс пользователей. К примеру, модель пользователя позволяет системе устанавливать определенный темп прокрутки страниц, соответствующий скорости чтения.
♦ Обслуживание модели системы. Модель системы определяет ожидаемое поведение системы с расчетом на предоставление пользователю информации о ее действиях. В частности, она прогнозирует период времени, в течение которого текущая операция должна быть завершена.
Тактики периода проектирования
В процессе тестирования пользовательские интерфейсы обычно подвергаются серьезному пересмотру. Происходит это так: специалист по практичности предоставляет разработчикам список поправок к проекту пользовательского интерфейса, а те их реализуют. В этой связи существенное значение получает уточненный вариант тактики семантической связности, относящейся к реализации модифицируемости.
♦ Отделение пользовательского интерфейса от остальных элементов приложения. Семантическая связность обосновывается необходимостью локализации ожидаемых изменений. Поскольку пользовательский интерфейс часто корректируется в процессе разработки и после ее завершения, отделение его кода помогает локализовать ожидаемые изменения. Для реализации этой тактики и обеспечения возможности модификации пользовательских интерфейсов разработаны специальные программно-архитектурные образцы:
- Модель-представление-контроллер;
- Представление-абстракция-управление;
- «Seeheim»;
- «Arch/Slinky».
Схема тактик реализации практичности периода прогона представлена на рис. 5.13.