Как проработать архитектурную концепцию it-проекта с помощью attribute-driven design

Содержание:

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

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

Когда эти факторы и принципы принимаются во внимание, повышается энергоэффективность на протяжении всего жизненного цикла здания. Эта эффективность достигается на уровне проектирования, строительства, размещения и эксплуатации

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

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

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

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

Некоторые примеры экологически безопасных зданий включают Torre Reforma (Мексика), здание Transoceánica (Чили) и кооператив Arroyo Bonodal (Испания).

-Вторичная переработка и биоразлагаемые материалы

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

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

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

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

Пример договоренностей

Разберем для примера общеизвестный фреймворк ASP.NET MVC

Если вы работали с этой системой, то наверное обратили внимание на то, что в проекте, который создается Visual Studio по умолчанию присутствуют папки Models, Views, Controllers. Это первая договоренность, что каждый тип файла (класса) лежит в своей собственной папке

Eсли при разработки какого-либо метода контролера вы попробуете создать метод и открыть его, не создав представление (View) этого метода, то система выдаст вам сообщение об ошибке:

Обратите внимание на то, где система попыталась найти «потерянное» представление, прежде чем выдать сообщение. Такое поведение также предопределено договоренностями фреймворка. В данном случае, правило гласит, что если представление (View) не найдено в папке контролера Home, то следует ее поискать сначала в папке Shared, потом всё то же самое, но уже с другим расширением для другого движка рендеринга (при наличии подключенных нескольких движков рендеринга разметки)

На самом деле договоренностей подобного рода в ASP.NET MVC очень большое количество. И тем больше вы их будете встречать, чем глубже будете погружаться в «дебри» фреймворка.

ASP.NET MVC фреймворк как и все фреймворки, во всяком случае в большинстве своем, построены на основе парадигмы «соглашения по конфигрурации» (configuration over convention).

Суть данной статьи показать, что использование упомянутой выше парадигмы применительно к коллективной разработке, может существенно ускорить (упростить) процесс разработки приложений, особенно если в разработке учавствует большое количество разработчиков. «Соглашения по конфигурации» позволяют решить вопросы, на которые зачастую тратятся драгоценные минуты, часы и даже дни и недели. Например, часто возникает вопрос, как правильно назвать создаваемый класс, свойство, метод, проект, переменную, решение (solution)? Сколько разработчиков, столько и вариантов, если не договорится заранее о правилах именования. А если в коллектив пришел новый разработчик, то как он может начать писать корректный код, не зная о правилах, по которым этот код пишется? Безусловно, существуют огромное количество вспомогательных утилит (например, StyleCop), которые упрощают задачу, но и они бывают бессильны в некоторых случаях.

Надо признать, что с каждым годом задачи для разработчиков усложняются в силу сложности задач, которые решает бизнес. Более сложные задачи требуют более комплексных подходов в их решении. Зачастую бывает недостаточно создать приложение (программу, систему), обычно требуется ее поддерживать и развивать после выпуска окончательной версии. И если в вашем коллективе существуют подобные правила и договоренности, вам будет гораздо проще найти место в коде, правильный контролер и метод. Договоренности и правила именования помогают быстрее ориентироваться в коде.

Учитывайте нефункциональные требования

Рассмотрим нефункциональные цели на ранней стадии Концептуальная архитектура не равна идеализированной архитектуре. ADMEMS подчеркивает: 1) Основные потребности формируют концептуальную архитектуру. 2) Концептуальная архитектура — это «этап проектирования архитектуры». Перед этапом детального проектирования архитектуры необходимо сформировать стабильные результаты проектирования архитектуры высокого уровня для основных потребностей, особых потребностей и потребностей высокого риска. 3) Если для проектирования концептуальной архитектуры рассматриваются только «функциональные требования», концептуальная архитектура будет сведена к «идеальной архитектуре», и эта хрупкая архитектура столкнется с «большими изменениями» Давление может даже привести к таким сбоям, как инвестиционный совет.

Дизайн по отношению к пользователю

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

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

  1. Эффективно расходуйте энергию.
  2. Эффективно используйте другие ресурсы, особенно воду.
  3. Мысль о формировании прочных и самодостаточных смешанных сообществ.
  4. Быть рассчитанным на долгий срок службы.
  5. Планируйте, чтобы обеспечить гибкость образа жизни и владения.
  6. Предназначен для максимальной утилизации.
  7. Быть здоровым.
  8. Быть адаптированным к экологическим принципам.

Provider

Далее в иерархии уровней бизнес-логики доступа к данным идет Provider. Говоря о нем, приведу пример взаимосвязи между сущностями Tag​ и Post​. Допустим, что метка (tag) связана с записью блога (post) в отношении «многое-ко-многим» и метки для записи блога обязательны. Так вот, получается, что при добавлении записи блога, мне придется каким-то образом обрабатывать метки (tags). Данный функционал подпадает под паттерн Unit of Work, который управляет централизовано несколькими сущностями. Таким образом, PostProvider​ частично реализует паттерн Unit of Work.

Провайдеры через вливание зависимостей принимают в конструктор Repository. То есть провайдеры управляют репозиториями. Таким образом, мы подошли к первому правилу Dependency Injection для уровней Data Access Layer.

Забыл упомянуть, что в классы Repository должны вливаться DbContext (EntityFramework) или его абстрактный представитель. 

Рассмотрим на примере

В заключение расскажем о том, как закладывается архитектура по ADD, на примере одного из наших проектов.

Задача

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

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

Чтобы выполнить проект в срок, мы определили, что в среднем нужно обрабатывать до 10 миллионов страниц в день. Запросы на обработку поступали неравномерно, в некоторые часы их количество было близко к нулю, в другие — составляло порядка одного-двух миллионов. Страница полностью обрабатывалась не позднее чем через час после поступления.

Заказчик планировал развернуть систему в облаке

Поэтому было важно оптимально использовать вычислительные ресурсы, чтобы минимизировать плату за их аренду.

Варианты использования

 

ID

Вариант использования

Описание

UC-1

Извлечение фактов из текста

На вход системы подается отсканированный текст. На выходе получаем JSON с извлеченными фактами на интересующую нас тему.

Атрибуты качества

 ID


Атрибут 


Описание 

QA-1

Быстродействие

До 10 миллионов страниц в день. Результат обработки страницы должен быть получен не позднее чем через 1 час

QA-2

Масштабируемость 

Система должна уметь справляться с ростом нагрузки. Она неравномерная: от 0 до 2 миллионов запросов в час

QA-3

Экономичность 

Необходимо оптимально использовать вычислительные ресурсы, чтобы минимизировать плату за их аренду

Ограничения

ID


Описание 

CON-1

Cистема должна быть развернута в облаке AWS

CON-2

Использовать для вычислений готовые модели TensorFlow. Модели работают с разной скоростью. Требования к ресурсам сильно отличаются: некоторые потребляют много оперативной памяти, другие сильно нагружают процессор, третьим для работы необходим GPU

Шаг 1. Проверка и анализ исходных данных

Первая итерация – это референсная архитектура и общая структура системы.

Категория

Детали 

Цель проектирования

Спроектировать систему с нуля

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

Основные функциональные требования

UC-1 

       

Атрибуты качества

 

ID

Важность для клиента

Сложность реализации

QA-1

Высокая

Высокая

QA-2

Высокая

Средняя

QA-3

Высокая

Средняя

     

Ограничения

 

CON-1

CON-2

     

Архитектурные задачи

 

Шаг 3. Выбор элемента системы для проработки

Прорабатываем структуру всей системы.

Шаг 4. Выбор архитектурных концепций

Решение

Описание 

Архитектурный стиль “Pipes and Filters”

Разобьем процесс обработки страницы на отдельные компоненты (фильтры). Каждый из них решает одну задачу с помощью одной модели TensorFlow.

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

Альтернативное решение

Причина отказа 

Монолит: выполнять всю обработку внутри одного неделимого модуля

Несмотря на то, что один модуль проще разрабатывать, сопровождать и развертывать, данный вариант не позволяет оптимально использовать вычислительные ресурсы из-за различий TensorFlow-моделей

Шаг 7. Анализ созданной архитектуры и прогресса

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

Pixel Building (Австралия)

Он расположен в Мельбурне (Австралия), строительство было завершено в 2010 году и считается очень эффективным сооружением с энергетической точки зрения. В этом здании энергия вырабатывается различными системами возобновляемой энергии, такими как солнечная и ветровая.

С другой стороны, это системы для сбора дождевой воды, зеленых крыш и удаления отходов. Более того, его чистые выбросы CO2 были оценены как нулевые.

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

Целевые зоны платформы и приложений

Существует два типа целевых зон:

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

  • Целевые зоны приложений: Одна или несколько подписок, развернутых в качестве среды для приложения или рабочей нагрузки. Целевые зоны приложений размещаются в группах управления, таких как corp или online, под группой управления «целевые зоны», чтобы обеспечить правильное применение элементов управления политикой. Целевые зоны приложений можно подкатегоризовать следующим образом:

    • Централизованное управление: центральная ИТ-команда полностью управляет целевой зоной. Команда применяет средства управления и платформы как к целевым зонам платформы, так и к целевым зонам приложений.
    • Технологические платформы: с помощью таких технологических платформ, как AKS или AVS, базовая служба часто управляется централизованно. Приложения, работающие поверх службы, делегировали обязанности группам приложений. Это приводит к изменению элементов управления или разрешений доступа по сравнению с централизованно управляемыми целевыми зонами.
    • Рабочая нагрузка: команда администрирования платформы делегирует всю целевую зону команде рабочей нагрузки для полного управления средой и поддержки ее; в то время как они по-прежнему контролируются политиками, применяемыми из групп управления выше, которыми управляет группа платформы. Это может включать добавление дополнительных политик в область подписки и использование альтернативных инструментов для развертывания, защиты или мониторинга рабочих нагрузок, которые полностью контролируются и управляются командой рабочей нагрузки.

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

Происхождение

Концепция устойчивой архитектуры основана на концепции устойчивого развития, выдвинутой в докладе Брундтланд (премьер-министр Норвегии) ​​в 1982 году.

Позже, во время 42-й сессии ООН (1987 г.), в документ «Наше общее будущее» была включена концепция устойчивого развития.

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

В 1993 году Международный союз архитекторов официально признал принцип устойчивости в архитектуре. Затем, в 1998 году Школа архитектуры и городского планирования Мичиганского университета предложила принципы устойчивой архитектуры.

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

Приложения

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

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

Описание архитектуры

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

Архитектурные представления

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

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

Типичный набор архитектурных
представлений

Архитектуру можно представить в виде совокупности архитектурных представлений, каждое из которых описывает «значимый
для архитектуры» элемент модели. В RUP отправной точкой при разработке архитектуры служит типичный набор архитектурных
представлений, который называется «моделью 4+1» []. Модель
содержит следующие компоненты:

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

Manager

Следующим на очереди уровень Manager. Менеджеры служат для управления связанными сущностями (в том числе и провайдерами), но на более высоком уровне абстракции. Допустим, что мне нужно изменить видимость категории, которую я хочу скрыть. Но скрывая категорию, я должен скрыть и записи в этой категории. Решая поставленную задачу, я создам класс CategoryManager​, в котором создам метод SetVisibilityForCategory. В классе PostProvider я создам метод SetVisibilityForPostsByCategoryId(int categoryId)​, который будет использовать класс PostRepository устанавливать свойство IsVisisble​ у всех записей блога принадлежащий выбранной категории. То есть, просто изменять значение одного свойства, а это обычная операция обновления (update).

Ключевым моментом в данном примере является то, что каждый из описанных уровней абстракции реализует свой собственный функционал, который подлежит расширению, если потребуется. Строится, своего рода пирамида, по управлению сущностями. От более «мелких» операций в Repository к более «крупным» в Manager. Причем «размер» операции зависит от количества сущностей, которые она затрагивает.

Иерархическая концептуальная архитектура

Иерархические жанры «3 + 1»: Слой: логический уровень Уровень: физический уровень по слоям по общности Технологический стек

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

Уровень: физический уровень Физический уровень — это программный модуль, который может быть распределен по разным машинам. Между разными физическими уровнями должен быть межсервисный доступ — его можно использовать для протоколов удаленного извлечения или обмена данными.

Многоуровневая универсальность относится к разделению частей с разной универсальностью на разные уровни как общий метод разделения системы.

Вообще говоря, чем выше степень общности, тем ниже уровень. Например

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

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

Органическая архитектура в Японии: пример виллы Shell

Вилла Shell, Karuizawa, Japan. Арх. Kotaro Ide / ARTechnic architects, 2008 Ссылка

Эта загородная вилла для отдыха в Каруизаве чем-то похожа на резиденцию Кауфман Фрэнка Ллойда Райта. Жилище идеально вписывается в естественную среду и отражает природу своим дизайном. Конфигурация дома, отдалённо напоминающая раковину, находится среди леса. Трудно определить, какая именно это форма.

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

Вилла Shell, Karuizawa, Japan. Арх. Kotaro Ide / ARTechnic architects, 2008 Ссылка

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

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

Вилла Shell, Karuizawa, Japan. Арх. Kotaro Ide / ARTechnic architects, 2008 Ссылка

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

Вилла Shell, Karuizawa, Japan. Арх. Kotaro Ide / ARTechnic architects, 2008 Ссылка

Пример органической архитектуры — небоскрёб-огурец

The Gherkin, London, 2001-4, арх. Норман Фостер Ссылка

Сооружение было построено в 2001—2004 годах по проекту знаменитого архитектора Нормана Фостера.  По существу оно является экологическим небоскребом.

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

Лондонцы называют его Геркин (The Gherkin), что в переводе с английского — соленый огурец, за его органическую форму и зеленоватый оттенок стекла.

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

Дизайн дома Геркин, действительно, очень функционален и практичен с точки зрения экономии энергии — использует естественную вентиляцию, энергию солнца и дневное освещение.  Таким образом, несмотря на высоту в 180 метров, здание потребляет вдвое меньше электроэнергии, чем другие постройки такого типа и признано «манифестом Бионики».

Небоскрёб-огурец. 30 St Mary Axe, London, Арх. Норман Фостер, 2001—2004 Ссылка

Органическая архитектура выражает «зелёный» стиль жизни, бережно относится к ресурсам природы и формирует единое пространство жизни и деятельности человека в ладу с природой.

Требования и ограничения

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

Как правило, техническое задание (ТЗ) на разработку продукта содержит требования, но не всегда они указаны в достаточном объеме. По этой причине в числе ключевых задач IT-архитектора – сбор и анализ требований, создание дизайна архитектуры и описание решения, его проверка, а также контроль и надзор во время разработки ПО.

Рассмотрим, что входит в список требований:

1. Цель проектирования

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

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

Эти атрибуты определяют свойства системы, которые она должна демонстрировать — требования к производительности, доступности, безопасности, удобству использования.

Пример: система должна работать 24х7, допускается простой не более 30 минут в месяц.

4. Системные требования

Возникают постепенно в процессе детализации и реализуются итеративно.

Пример: авторизация, ведение журнала действий, кэширование.

5. Ограничения

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

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

Согласно методологии ADD, сбор требований – это первый этап работы. Его назначение:

  • помочь оценить стоимость и график работ;
  • выработать ключевые технологии;
  • обеспечить достижение бизнес-целей в процессе разработки.

Далее рассмотрим остальные этапы проектирования.

Органическая архитектура: особенности

Данное направление стремится создавать гармонию деятельности человека с окружающей средой,

  • максимально бережным отношением к природе,
  • реализуя конструктивные особенности природных форм в зданиях,
  • оформляя экстерьеры и интерьеры, продолжающие ландшафтные виды,
  • уважая натуральные материалы.

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

Заключение

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

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

Видео по этой статье доступно на канале в youtube

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Закон притяжения
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: