Раскрывать структуру системы, но скрывать детали реализации.
Реализовывать все варианты использования и сценарии.
По возможности отвечать всем требованиям различных заинтересованных сторон.
Выполнять требования, как по функциональности, так и по качеству.
Архитектура сегодня и завтра
Важно понимать основные факторы, которые формируют архитектурные решения сегодня и
будут оказывать влияние на то, как изменятся архитектурные решения в будущем. Эти
факторы определяются пожеланиями пользователей, а также требованиями бизнеса о
получении более быстрых результатов, лучшей поддержки изменяющихся стилей работы и
рабочих процессов, а также улучшенной адаптируемости дизайна ПО.
Рассмотрим следующие основные направления:
Наделение пользователя полномочиями. Дизайн, поддерживающий наделение
пользователя полномочиями, является гибким, настраиваемым и
ориентированным на пользователя. Проектируйте приложения, учитывая
соответствующий уровень персонализации и конфигурации для пользователя. Не
диктуйте, а позволяйте пользователям определять стиль взаимодействия с
приложением, но при этом не перегружайте их ненужными опциями и
настройками, что может сбить с толку. Определитесь с ключевыми сценариями и
сделайте их предельно простыми; обеспечьте простоту поиска информации и
использования приложения.
Зрелость рынка. Используйте преимущества зрелости рынка, применяя
существующие платформы и технологии. Создавайте приложения в настолько
высокоуровневых средах, насколько это позволяют предъявляемые к приложениям
требования, это позволит сконцентрироваться на том, что действительно уникально
для вашего приложения, а не на воспроизведении уже существующих функций.
Используйте шаблоны, являющиеся богатыми источниками проверенных решений
распространенных проблем.
Гибкий дизайн. Все большую популярность приобретают гибкие дизайны,
использующие слабое связывание, что делает возможным повторное
использование и упрощает поддержку. Архитектура с возможностью подключения
модулей позволяет реализовать расширяемость после развертывания. Также для
обеспечения взаимодействия с другими системами можно использовать
преимущества таких сервис-ориентированных техник, как SOA.
Тенденции. При построении архитектуры необходимо понимать тенденции,
которые могут оказать влияние на дизайн после развертывания. Например,
тенденции в насыщенных UI и мультимедиа, составных приложениях, увеличение
пропускной способности и доступности сетей, все большее распространение
мобильных устройств, продолжающийся рост производительности оборудования,
интерес к моделям блогов и сообществ, рост популярности вычислений в облаке и
удаленной работы.