Проблемно-ориентированное проектирование

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

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

На рисунке 11.5 изображена предметная область «Финансовые документы» для разработки приложения, работающего с бухгалтерскойинформацией. Все элементы представлены в терминах, понятныхконечному пользователю – бухгалтеру.

Проблемно-ориентированное проектирование - student2.ru

Рисунок 11.5. Модель предметной области «Финансовые документы».

Преимущества данного архитектурного стиля состоят в следующем:

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

- расширяемость системы – модель предметной области обычноявляется модульной и гибкой, что упрощает обновление и расширение системы при изменении внешних условий и требований;

- объекты модели предметной области характеризуются слабойсвязанностью, что облегчает их тестирование.

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

Многослойная архитектура

Данная архитектура обеспечиваетгруппировку связной функциональности приложения в разных слоях, выстраиваемых вертикально, «поверх» друг друга. Функциональность каждого слоя объединена общей ролью или ответственностью.

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

При строгом разделении на слои компоненты одного слоя могутвзаимодействовать только с компонентами этого же слоя или компонентами слоя, расположенного «ниже». Более свободное разделение на слои позволяет компонентам взаимодействовать с компонентами того же слоя и всех «нижележащих» слоев.

Слои приложения могут размещаться физически на одном компьютере (на одном уровне) или быть распределены по разным компьютерамn-уровней), связь между компонентами разных уровнейосуществляется через строго определенные интерфейсы.Например, типовое Web-приложение состоит изслоя представления (функциональность, связанная с пользовательским интерфейсомслоялогики (логики обработки данных) и слоя данных (функциональность, связанная с доступом к данным, часто практически полностьюреализуемая с помощью высокоуровневых инфраструктур доступа к данным).

На рисунке 11.6 представлен пример трехслойной архитектуры приложения, где в качестве слоя данных (хранения информации) можетвыступать БД, модуль по хранению и чтению данных с диска. Этотслой может располагаться и на отдельном сервере (выделенный файл-сервер, сервер БД), и совместно с другим слоем (например, простоеWeb-приложение, где сервер и БД располагаются на одном компьютере). Для Web-приложений под слой логики (обработки информации) можно выделить Web-сервер либо, для более сложных проектов, сервер приложений; а в качестве слоя представления (отображения

информации) выступает браузер, где пользователь просматриваетинформацию.

Проблемно-ориентированное проектирование - student2.ru

Рисунок 11.6. Пример трехслойной архитектуры.

Кпреимуществам данного архитектурного стиля можно отнестиследующее:

- абстракция – обеспечивается возможность внесения измененийна абстрактном уровне; используемый уровень абстракции каждогослоя может быть повышен или понижен;

- изоляция – обновления технологий могут быть изолированы вотдельных слоях, что поможет сократить риск и минимизироватьвоздействие на всю систему;

- управляемость – разделение основных функций помогает идентифицировать зависимости и структурировать код программы всекции, что повышает управляемость ПП;

- производительность – распределение слоев по несколькимфизическим уровням может улучшить масштабируемость, отказоустойчивость и производительность;

- возможность повторного использования – роли повышают возможность повторного использования;

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

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

Наши рекомендации