79422

Процессы проектирования. Архитектурные стили и шаблоны проектирования

Доклад

Информатика, кибернетика и программирование

Шаблон проверяют на: Целостность и непротиворечивость Конструкция полностью покрывает заявленные требования к функционалу Устойчивость и производительность Два подхода проектирования: От общих функций к реализации От частного к общему Архитектурные стили Репозиторий: Описание Все совместно используемые подсистемами данные хранятся в центральной базе данных доступной всем подсистемам. Рекомендации Логично использовать если система обрабатывает большие объёмы данных. Преимущества Совместное использование больших объёмов данных эффективно...

Русский

2015-02-13

80.97 KB

2 чел.

Процессы проектирования. Архитектурные стили и шаблоны проектирования.

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

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

Стандартная структура подхода на основе шаблонов:

  1.  Имя паттерна
  2.  Задача паттерна
  3.  Описание решения (алгоритм без привязки к реализации)
  4.  Плюсы применения паттерна
  5.  Минусы применения паттерна

Иногда 4 и 5 пункт заменяют рекомендацией.

Плюсы применения шаблонов проектирования:

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

Минусы применения шаблонов проектирования:

  1.  Зацикливание разработчика на готовых алгоритмах, усложнение конечных алгоритмов бизнес-логики у конкретного заказчика.

Шаблон проверяют на:

  1.  Целостность и непротиворечивость
  2.  Конструкция полностью покрывает заявленные требования к функционалу
  3.  Устойчивость и производительность

Два подхода проектирования:

  1.  От общих функций к реализации
  2.  От частного к общему

Архитектурные стили

Репозиторий:

Описание

Все совместно используемые подсистемами данные хранятся в центральной базе данных, доступной всем подсистемам. Репозиторий является пассивным элементом, а управление им возложено на подсистемы.

Рекомендации

Логично использовать, если система обрабатывает большие объёмы данных.

Преимущества

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

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

Недостатки

Все подсистемы должны быть согласованы со структурой репозитория (моделью данных). Модернизировать модель данных достаточно трудно.

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

Клиент-сервер:

Описание

Данные и процессы системы распределены между несколькими процессорами. Паттерн имеет три основных компонента: набор автономных серверов, (предоставляют сервисы другим подсистемам), набор подсистем - клиентов (которые вызывают сервисы, предоставляемые серверами) и сеть (служит для доступа клиентов к сервисам). Клиенты должны знать имена серверов и сервисов, в то время как серверам не надо знать имена клиентов и их количество. Клиенты получают доступ к сервисам, предоставляемым серверами посредством удаленного вызова процедур.

Рекомендации

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

Преимущества

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

Недостатки

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

Объектно-ориентированный, Модель предметной области (Domain Model), модуль таблицы (Data Mapper):

Задача

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

Решение

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

Преимущества

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

Недостатки

При использовании сервисов объекты должны явно ссылаться на имена других объектов и знать их интерфейс (это необходимо учесть, если при изменении системы требуется изменить интерфейс).

Пример 1.

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

Пример 2.

Модуль таблицы также является частным случаем данного паттерна. В отличие от модели предметной области Модуль таблицы содержит по одному объекту Контракт для каждого контракта, а Модуль таблицы является единственным объектом. Модуль таблицы используется совместно с множеством записей (Record Set). Сначала создается объект "Контракт", затем - "Продукт", множество записей передается ему в качестве аргумента. Для совершения операций над отдельным контрактом, следует сообщить объекту соответствующий идентификатор (Id).

Модуль таблицы представляет собой промежуточный вариант между "Сценарием транзакции" 4.2.1.1 и "Моделью предметной области" (Пример 1).

Многоуровневая система (Layers) или абстрактная машина:

Описание

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

На рисунке показаны типичные уровни логической архитектуры системы.

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

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

В отличие от архитектурного паттерна "Клиент - сервер" 4.1.2, слои вовсе не обязательно должны располагаться на разных машинах.

Пример

Примером данного подхода может служить модель взаимодействия открытых систем (OSI - Open System Interconnection - международная программа стандартизации обмена данными между компьютерными системами на основе семиуровневой модели протоколов передачи данных в открытых системах).

Преимущества

Многоуровневая система может быть разработана пошагово (итеративно).

Недостатки

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

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

Потоки данных (конвейер или фильтр):

Описание

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

Преимущества

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

Недостатки

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

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


 

А также другие работы, которые могут Вас заинтересовать

81766. Социальная и философская проблематика пьесы М. Горького «На дне» 32.62 KB
  изображением дна являющегося изнанкой современного буржуазного строя Горький утверждал мысль о необходимости решительного обновления этого строя во имя освобождения человека. Горький поновому показал босяка дав строго реалистический анализ бродяжного люда ни разу не отрываясь от трезвого взгляда на босячество как на явление в основе своей антисоциальное. Горький усилил и художественно обобщил одну черту босяка его презрение к мещанским предрассудкам к мещанской морали к мещанскому фетишизму вещей и понятий. Горький использовал эту...
81767. Роль пейзажа в произведениях отечественной литературы 31.46 KB
  В рассказе Хорь и Калиныч Калиныча более трогали природа горы водопад. чутко воспринял тему человек и природа В рассказе того же цикла Бежин луг описание природы начинает повествование. Это рассказ о том что природа сильнее человека и поэтому надо с уважением к ней относиться. Главный герой романа Евгений Базаров так выражает свои отношения с природой: Природа пустяки Природа не храм а мастерская и человек в ней – работник Но далее читаем: Солнце жгло изза тонкой завесы сплошных беловатых облаков.
81768. Татьяны «милый идеал» в романе А.С.Пушкина «Евгений Онегин». Роль сна Татьяны в развитии сюжета 37.82 KB
  Точными деталями Пушкин напоминает о характере жизни крепостной деревни крестьянства. На этом широком фоне воссоздана в Евгении Онегине драматическая судьба лучших людей пушкинского времени передовой дворянской интеллигенции эпохи декабристов. Образ Евгения Онегина обобщает собой все что Пушкин стремился воплотить в образах кавказского пленника и Алеко. Пушкинский герой порождение этого общества но вместе с тем он и чужд ему.
81769. Герои и проблематика одного из произведений А. Платонова 47.7 KB
  Платонова. Платонов Наше узнавание Платонова было длительным: с 20х годов до сегодняшнего дня. Почему многие произведения Андрея Платонова совсем не были опубликованы при его жизни а те что были напечатаны вызывали резко критическое отношение Почему Сталин прочитав бедняцкую хронику Впрок не пожалел самых ругательных выражений а Горький высоко оценив Чевенгур считал что роман этот опубликован не будет Попробуем ответить на эти вопросы. Все это в той или иной степени отразилось в творчестве Платонова от первого сборника стихов ...
81770. Мотивы преступления и возмездия в произведениях отечественной литературы 45.61 KB
  В художественном арсенале Достоевского можно обнаружить множество средств к которым он прибегает при обрисовке Раскольникова. Портрет Раскольникова набросан лаконично: Кстати он был замечательно хорош собою с прекрасными темными глазами темнорус роста выше среднего тонок строен. Особенно обстоятельно Достоевский рассматривает мотивы преступления Раскольникова. В раскрытии безмерности издевательств над людьми и поругания всего живого большое значение приобретает символический сон Раскольникова из V главы где предстаёт зверское...
81771. Образ Маши Мироновой и смысл названия романа 32.62 KB
  И к Екатерине Маша обращается с прошением о помиловании о милости а не о просьбе соблюсти закон. Маша обращается к Екатерине как к матери Отечества мотив материнства и отцовства очень важен для Пушкина. Маша Миронова и Петр Гринев заслужили свое счастье т. Маша и Гринев преодолевая трудности все испытания которые выпали на их долю спасаются любовью.
81772. Тема героя и толпы в произведениях отечественной литературы 31.76 KB
  Горький Старуха Изергиль Герои притч старухи Изергиль – Ларра и Данко – являются по сути вариациями на одну и ту же тему: оба они герои байронического типа сильные личности противопоставленные толпе посредственностей. И толпа губит и положительного Данко и отрицательного Ларру. Геройромантик либо гибнет как Данко либо замыкается в своем страдании и одиночестве отвергнутый обществом против условностей которого протестовал как Ларра. Свобода Данко напротив это свобода взять на себя ответственность за коллектив свобода...
81773. Основные мотивы и образы лирики М.Ю.Лермонтова ( на примере 3 – 4 стихотворений). Чтение наизусть и разбор одного стихотворения 34.41 KB
  Мотив одиночества возникает у Л. в трактовку темы одиночества это прежде всего его абсолютный и глубоко личный характер связанный с неприятием лермонтовским героем мира коренных основ миропорядка. В этой благодарности за все чем я обманут в жизни был обнажается двойственная природа лермонтовского одиночества; враждебный человеку мир с отъединенностью от врагов и друзей и волевое гордое непримиренное Я поэта не желающее пойти на какойлибо компромисс с этим миром ни перед чем не останавливающееся в противостоянии ему...
81774. Сатирическое мастерство М. А. Булгакова 32.21 KB
  Удивительный талант Михаила Афанасьевича Булгакова позволяет ему следуя традициям писателейсатириков XIX века использовать этот художественный прием в своих произведениях Примером таких сатирических произведений могут служить повести Роковые яйца и Собачье сердце такой же прием использует автор и в своем романе Мастер и Маргарита . В основе повести Собачье сердце рискованный эксперимент. Отсюда ирония звучащая на страницах повести. Самым ярким представителем этой жизни на страницах повести является Швондер который норовит немедленно...