Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП / ООП / ры_приложений_полная_книга.pdf
Скачиваний:
500
Добавлен:
18.02.2017
Размер:
7.08 Mб
Скачать

основной целью пользователя и бизнеса может быть производительность, но системный администратор, вероятно, не сможет инвестировать в оборудование, необходимое для реализации этой цели, 100 % своего рабочего времени. Компромиссным решением может быть выполнение данной цели на 80%.

Основное назначение архитектуры – описание использования или взаимодействия основных элементов и компонентов приложения. Выбор структур данных и алгоритмов их обработки или деталей реализации отдельных компонентов являются вопросами проектирования. Часто вопросы архитектуры и проектирования пересекаются. Вместо того чтобы вводить жесткие правила, разграничивающие архитектуру и проектирование, имеет смысл комбинировать эти две области. В некоторых случаях, принимаемые решения, очевидно, являются архитектурными по своей природе, в других – больше касаются проектирования и реализации архитектуры.

Описанные в данном руководстве процессы и предлагаемые в нем сведения помогут создавать архитектуры решений, которые будут реализовывать все требования, могут быть развернуты в выбранной инфраструктуре и обеспечат результаты, отвечающие поставленным целям и задачам.

Рассмотрим основные исходные вопросы при разработке архитектуры ПО:

Как пользователь будет использовать приложение?

Как приложение будет развертываться и обслуживаться при эксплуатации?

Какие требования по атрибутам качества, таким как безопасность, производительность, возможность параллельной обработки, интернационализация и конфигурация, выдвигаются к приложению?

Как спроектировать приложение, чтобы оно оставалось гибким и удобным в обслуживании в течение долгого времени?

Основные архитектурные направления, которые могут оказывать влияние на приложение сейчас или после его развертывания?

Цели архитектуры

Архитектура приложения должна объединять бизнес-требования и технические требования через понимание вариантов использования с последующим нахождением путей их реализации в ПО. Цель архитектуры – выявить требования, оказывающие влияние на структуру приложения. Хорошая архитектура снижает бизнес-риски, связанные с созданием технического решения. Хорошая структура обладает значительной гибкостью, чтобы справляться с естественным развитием технологий, как в области оборудования и ПО, так и пользовательских сценариев и требований. Архитектор должен учитывать общий эффект от принимаемых проектных решений, обязательно присутствующие компромиссы между атрибутами качества (такими как производительность и безопасность) и компромиссы, необходимые для выполнения пользовательских, системных и бизнес-требований.

Необходимо помнить, что архитектура должна:

Раскрывать структуру системы, но скрывать детали реализации.

Реализовывать все варианты использования и сценарии.

По возможности отвечать всем требованиям различных заинтересованных сторон.

Выполнять требования, как по функциональности, так и по качеству.

Архитектура сегодня и завтра

Важно понимать основные факторы, которые формируют архитектурные решения сегодня и будут оказывать влияние на то, как изменятся архитектурные решения в будущем. Эти факторы определяются пожеланиями пользователей, а также требованиями бизнеса о получении более быстрых результатов, лучшей поддержки изменяющихся стилей работы и рабочих процессов, а также улучшенной адаптируемости дизайна ПО.

Рассмотрим следующие основные направления:

Наделение пользователя полномочиями. Дизайн, поддерживающий наделение пользователя полномочиями, является гибким, настраиваемым и ориентированным на пользователя. Проектируйте приложения, учитывая соответствующий уровень персонализации и конфигурации для пользователя. Не диктуйте, а позволяйте пользователям определять стиль взаимодействия с приложением, но при этом не перегружайте их ненужными опциями и настройками, что может сбить с толку. Определитесь с ключевыми сценариями и сделайте их предельно простыми; обеспечьте простоту поиска информации и использования приложения.

Зрелость рынка. Используйте преимущества зрелости рынка, применяя существующие платформы и технологии. Создавайте приложения в настолько высокоуровневых средах, насколько это позволяют предъявляемые к приложениям требования, это позволит сконцентрироваться на том, что действительно уникально для вашего приложения, а не на воспроизведении уже существующих функций. Используйте шаблоны, являющиеся богатыми источниками проверенных решений распространенных проблем.

Гибкий дизайн. Все большую популярность приобретают гибкие дизайны, использующие слабое связывание, что делает возможным повторное использование и упрощает поддержку. Архитектура с возможностью подключения модулей позволяет реализовать расширяемость после развертывания. Также для обеспечения взаимодействия с другими системами можно использовать преимущества таких сервис-ориентированных техник, как SOA.

Тенденции. При построении архитектуры необходимо понимать тенденции, которые могут оказать влияние на дизайн после развертывания. Например, тенденции в насыщенных UI и мультимедиа, составных приложениях, увеличение пропускной способности и доступности сетей, все большее распространение мобильных устройств, продолжающийся рост производительности оборудования, интерес к моделям блогов и сообществ, рост популярности вычислений в облаке и удаленной работы.

Соседние файлы в папке ООП