Референсная (или типовая абстрактная) модель в программной инженерии — это наборы абстрактных структур и/или предметно-ориентированных онтологий, состоящих из взаимосвязанной совокупности четко определенных, значимых понятий. Архитектура модели может представлять её составные части, от бизнес-функций до компонентов системы, если система содержит их полный набор. Референсная архитектура часто отождествляется с набором концепций с указаниями на отношения между концепциями.
Референсная архитектура предоставляет общую семантику, которая может однозначно использоваться в разных реализациях и объединяет следующие важные понятийные сущности:
- Реферат - описывает типы сущностей, которые дают краткое информационное описание об окружающей среде, а не конкретные сущности в конкретной среде, поскольку является абстрактной.
- Сущности и отношения описывают типы сущностей-объектов и их отношений-связей, взаимодействие и проявление совместных свойств.
- Среда используется при разъяснении сущностей в окружающей среде или проблемном пространстве, включает описание решаемой проблемы и риски заинтересованных сторон.
- Независимость от технологий, поскольку предназначена для понимания класса проблем, а не конкретных способов решений этих проблем. Однако, допустима разработка модели, описывающей набор программных приложений для решения проблемы управления набором программных приложений.
Если создается и применяется архитектура, то она задаёт основу для единого согласованного описания системы. К описанию системы относятся модели и описания ее структуры, компонентного состава, требований, обоснования хода работ, необходимых ресурсов и многого другого, что необходимо в период жизненного цикла системы. В настоящее время в ИТ-индустрии произошла специализация архитектур на три основных направления: бизнес-архитектура, корпоративная архитектура, архитектура прикладных систем. К этим трем направлениям можно добавить формирующуюся математически абстрактную референсную архитектуру, которая призвана обеспечить научно обоснованное понятийное единство.
Можно включить в рассмотрение и другие направления архитектуры, но включение в перечень абстрактной референсной архитектуры делает это избыточным. Добавления обычно связаны с практическими потребностями конкретного проекта и необходимостью специализации его участников [1].
Если все так просто, то в чем состоит проблема, только лишь в её формализованном описании и научно-обоснованном решении? Проблема состоит в том, что для создания системы одномоментно нет одной общей причины, а есть проблемные вопросы. К сожалению, проблемных вопросов слишком много и эти вопросы во многом не равнозначны при решении конкретных прикладных задач. Перечислим некоторые из проблемных вопросов:
- Архитектурные инструментарии визуального моделирования MBSE [2] ориентированы на корпоративные модели управления.
- Архитектурные инструментарии MBSE поддерживают исключительно практики компонентного моделирования и направления декомпозиции компонент, в соответствии с вариантами семантики компонент и их связей в предметной области.
- «Облачные модели» и социально-технические системы требуют особых подходов в архитектурном моделировании.
- Неполная и недостаточная формализация понятий ограничивает создание моделей.
- Затруднены математически обоснованные схемы доказательств, вместо математических доказательств используются метафоры, эвристики и терминологически путаные рассуждения.
- Затруднена типизация, сопоставление и тиражирование различных архитектурных подходов при реализации больших и сложных систем.
Для понижения сложности способов практического решения проблемных вопросов рекомендуется использовать референсные архитектурные модели. Перечислим некоторые преимущества применения референсных архитектур:
- Создание стандартных прототипов для объектов и отношений в модели. Это упрощает работу по созданию объектов, которые ведут себя в соответствии со стандартом. Стандарт может использовать шаблоны проектирования, которые поддерживают ключевые свойства программного обеспечения.
- Обучение до необходимого уровня знаний. Использование референсной архитектуры помогает декомпозировать большое проблемное пространство на разделы, которые можно понять, адаптировать и доработать.
- Улучшение общения в проекте, поскольку референсная модель разбивает проблему на самостоятельные сущности или концепции, которые уже принимаются многими.
- Определение четких ролей и обязанностей. Существование в модели объектов и связей позволяет заранее выполнить назначения ответственных за решение проблемы, касающейся определенного набора сущностей.
- Сопоставление и сравнение концепций разной природы. После выделения базовых концепций в экосистеме, можно обсуждать состав и связи компонент решения относительно друг друга.
Архитектура прикладных систем
При разработке прикладных систем можно или вообще обойтись без архитектуры, или выполнить построение архитектурных моделей, имеющих фрагментарную и не строго формализованную форму представления. Для сложных приложений в компьютерной индустрии соблюдение отраслевых стандартов необходимо несмотря на то, что они увеличивают трудоемкость реализации. Частичное применение стандартов будет лишь мешать в реализации проекта.
Одним из вариантов архитектурного стандарта является язык моделирования систем SysML – объектно-ориентированный язык визуального моделирования систем общего назначения [3]. Конструкции языка поддерживают определение, анализ, дизайн, проверку и подтверждение соответствия для широкого спектра систем. SysML разработан в рамках проекта спецификации с открытым исходным кодом и имеет открытую лицензию для использования и распространения. Язык SysML включает 9 типов диаграмм, часть которых взята из языка UML: Block definИТion diagram; Internal block diagram; Package diagram; Use case diagram; Requirement Diagram; ActivИТy diagram; Sequence diagram; State machine diagram; Parametric diagram.
Обязанности по разработке и/или применению архитектуры прикладных систем возлагаются на системных архитекторов - высоких профессионалов в ИТ, сочетающих платформенные, технологические и др. знания, помноженные на практический опыт. Системный архитектор — это не только ИТ modeller, но и orchestrator, и solid principles гуру. Если оркестрация в ИТ - это принципы и технологии проектного менеджмента, то solid principles определяют структурные ограничения на прикладную систему [4]:
Single ResponsibilИТy Principle — принцип единственной ответственности.
Open-Closed Principle — принцип открытости/закрытости.
Liskov SubstИТution Principle — принцип подстановки Б. Лисков.
Interface Segregation Principle — принцип разделения интерфейсов.
Dependency Inversion Principle — принцип инверсии зависимости.
Разработка и, соответственно, модельное представление ИТ прикладных систем соответствует общим принципам в системной инженерии в части деления на логическую и физическую архитектуры, а также на общие типы группы описаний: функциональные, логические и физические [5].
Корпоративная архитектура
Корпоративная архитектура – это общие модели бизнеса, определяющие политику инвесторов, стратегии, продукты, технологии, процессы, структуры данных и информационную поддержку деятельности. Современная концепция корпоративной архитектуры – это интегральный подход к стандартизации и организации ИТ инфраструктуры в соответствии с бизнес-целями. Концепция включает в себя поддержку трансформации, развития и модернизации подразделений ИТ в компании.
Развитие корпоративного управления является одной из важнейших областей в компьютеризации, для которой создано и развивается большое число технологий таких как DevOps, конвейер программного обеспечения, цифровой бизнес, цифровая трансформация бизнеса, цифровой двойник, цифровая оптимизация, цифровая этика и конфиденциальность, архитектура безопасности, моделирование бизнес-экосистемы и многие другие. Большую роль в унификации и согласовании концепций в корпоративной архитектуре играют стандарты, фреймворки и книги знаний, например, такие как COBИТ и ИТ4ИТ [6].
Бизнес-архитектура
Бизнес-архитектура – это модели (описания) предприятия, которые дают общую картину организации и используются для согласования стратегических целей и тактических потребностей. Бизнес-модель определяется как описание обоснования того, как система создает, доставляет и фиксирует Ценность. К системе может относиться компания, организация, проект, программа, политика. В свою очередь, стратегические цели представляют собой целевое состояние системы, характеризующиеся качественными и/или количественными характеристиками.
Бизнес-архитектора - это тесно связанная с бизнесом область метафор и фантазий. Но от этих фантазий, изложенных на нечеткой и противоречивой терминологии CBok, BIZBok, BABok и т.п., зависят цели, документы, деньги и ресурсы предполагаемых Проектов.
Математическая архитектура
Математический аппарат на базе теории категорий позволяет формально описывать и исследовать процедуры применения моделей в модельно-ориентированной системной инженерии (Model-Based Systems Engineering, MBSE) [7]. Модели рассматриваются как объекты подходящих категорий, а действия формально описываются морфизмами.
Если свести разнообразие архитектур к простейшей классификации (рис.2), то это позволяет отнести исследования по применению математического аппарата к первой строке, а практически все ИТ архитектуры прикладных систем - к последней. Отдельные усилия исследовательских экспертных групп в области стандартизации и внедрения лучших практик в архитектуру относятся к средней строке таблицы.
Достигнутые практические результаты по первым двум уровням таблицы позволяют сделать вывод о возрастании роли формальных математических методов в развитии систем компьютерной индустрии.
Use Cases собственно Архитектуры
Возвращаясь к проблеме описания логики развития ИТ с позиции Архитектуры систем, необходимо дополнительное описание структурных свойств и характеристик. Необходимо более формализованное определение понятия собственно Архитектуры, без содержательных особенностей описания прикладной системы, для которой эти архитектурные модели были созданы.
В качестве конструктивного способа решения проблемы построения адекватного определения понятия воспользуемся следующим подходом – построим определение Архитектуры через описание ее функционального назначения. Такой подход к описанию сути понятия заложен в принципы составления модели Use Case на языке UML в составе MBSE, поскольку Архитектура — это то как и для чего она используется.
В настоящее время отсутствует формальный алгоритм построения модели UseCase для произвольной прикладной системы, но ИТ индустрия предлагает ряд общих методологий. Например, можно воспользоваться методологией Вигерса [Вигерс, 8] по составлению требований к системе, так как требования легко гармонизируются с UseCase. Соответственно, если группировать UseCase как - функциональные, организационные, нормативные и системные, то для определения собственно Архитектуры нас будет интересовать подмножество системных UseCase.
Разработка Архитектур социотехнических систем и систем с полным стеком Архитектур (рис.1) требует усложнения методологии Вигерса, в частности, следует учитывать рассмотрение «этических норм» и построение связанного с этими этическими нормами «дерева целей» (рис.3).
При разработке большинства корпоративных прикладных систем в этих расширениях нет практического смысла. У корпоративного Стейкхолдера определяющая банальная этическая категория – Жадность. Эта этическая категория семантически воплощается в набор целей:
{max_Прибыль; opt_ДоляРынка; min_Затраты; opt_СоставАктивов; opt_ЭффективностьСистем; и т.п. …}.
Конкретный состав набора целей реализуется в конкретной прикладной системе. Соответственно, банальным доказательством правильности Архитектуры прикладной системы является факт ее успешной работы.
Вместо одной нерешенной проблемы «О построении модели UseCase для собственно Архитектуры» появилось две дополнительных – «этические нормы» и «дерево целей». Если опустить эти «дополнительные» проблемы из рассмотрения при архитектурном моделировании, то это не означает, что их нет. В большинстве случаев проектирования прикладных систем результат решения этих дополнительных проблем используется «по умолчанию», неявно. В нашем случае воспользоваться этим простым правилом нельзя, поскольку значения «по умолчанию» входят в противоречие с решаемой проблемой.
Этическая категория «Жадность» не подходит при моделировании UseCase для математика, исследователя, новатора. Соответственно, семантические связи между «этическими нормами» и «деревом целей» для этой категории Акторов будут иными. Этической категории «Жадность» недостаточно и при архитектурном моделировании социотехнических систем, поскольку «Актор - рядовой участник» имеет совсем другие этические нормы и цели, например, в системах образования или здравоохранения. С другой стороны, без уточнения этической категории «Жадность» сложно обойтись в любом масштабном ИТ проекте при определении «Актора – инвестор, стейкхолдер». Это может быть и бизнесмен, и филантроп.
В национальной социотехнической системе Китая «Система социального рейтинга» ключевой этической категорией выбрана «Честность». Уточнения этой категории связаны со значениями показателей в наборе простых Правил расчета рейтинга, допускающих независимый инструментальный контроль, частично с применением систем Искусственного Интеллекта (ИИ). Позитивные последствия применения этой системы в общественной жизни и экосистеме бизнеса весьма значительны.
Теоретические основы построения так называемого «дерева целей» (более строго – иерархической структуры) неоднократно являлись предметом научных исследований с использованием математического моделирования [Саати, 9-10]. Например, предложенный Т.Саати метод анализа иерархий обеспечивает способы решения многих ассоциированных практических задач в их математической постановке. Использование «этических норм» рассматривается через призму прикладной этики, которая в свою очередь реализуется в форме прикладной онтологии (семантической сети). Общие Правила совместного использования «этических норм» и «дерева целей» в составе единой экспертной системы в настоящее время являются предметом самостоятельных научных исследований в области ИИ.
Заключение
В настоящее время не известно о формальном решении проблемы построения доказательной логики архитектуры системы, но есть путь решения, многократно применяемый на практике. Первый шаг на этом пути - построить модели системы, где ядро моделей есть референсная архитектура.
Заранее предусмотреть реализацию требований к этой модели:
- Модели должны быть открыты к внесению изменений и доработок.
- Математическая архитектура должна обеспечить доказательную базу в вопросах непротиворечивости, области существования и полноты.
В некотором смысле референсная архитектура может концептуально соответствовать абстрактной теории в математической логике [11]. Это позволяет говорить об архитектурном подходе к решению многих проблем методами системного анализа.
Рекомендуемые ссылки
1. «Единая технологическая ИТ Архитектура». https://www.tadviser.ru/index.php/Статья:Единая_технологическая_архитектура_информационных_систем_органов_исполнительной_власти_(ЕТА_ИС_ОИВ_РФ)
2. «ИТ Архитектура – это стек моделей». https://vk.com/@de_ps-ИТ-arhИТektura-eto-stek-modelei
3. «OMG System Modeling Language». https://www.omg.org/spec/SysML/
4. «Актуальность принципов SOLID». https://habr.com/ru/post/561216/
5. «Guide to the Systems Engineering Body of Knowledge (SEBoK)». https://www.sebokwiki.org/wiki/Guide_to_the_Systems_Engineering_Body_of_Knowledge_(SEBoK)
6. «How to Use the TOGAF® and ИТ4ИТ™ Standards Together». https://publications.opengroup.org/
7. Ковалев С.П., «Методы теории категорий в модельно-ориентированной системной инженерии» (MBSE). http://www.mathnet.ru/php/archive.phtml?wshow=paper&jrnid=ia&paperid=484
8. Вигерс К., «Разработка требований к программному обеспечению», ИТД «Русская редакция», 2004, - 576с.
9. Саати Т., Керис К., «Аналитическое планирование: Организация систем», Радио и связь, 1991, - 224с.
10. Саати Т. «Принятие решений. Метод анализа иерархий», Радио и связь, 1993, - 278с.
11. Robert Arp, Barry Smith, and Andrew Spear. «Building Ontologies with Basic Formal Ontology», Cambridge, MA: MIT Press, 2015.