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

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

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

Цели функциональной архитектуры:

  • Снижение рисков от некорректного результата, реализации не требуемой функциональности

  • Управляемость разработки и внедрения

  • Целостное описание и представление для всех участников разрабатываемой системы.

На практике можно выделить основные артефакты функциональной архитектуры:

  • Требования, на основании которых формируется набор функций приложения

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

  • Компоненты – сами приложения, модули приложений - относительно независимые, заменяемые единицы, выполняющие одну или несколько функций

  • Функции – обособленные элементы поведения компонентов, реализующие сценарии использования компонента

  • Модель данных - объекты данных, отражающие бизнес-сущности в информационной системе и их взаимосвязи

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

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

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

Управление функциональной архитектурой включает активности:

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

  • Управление требованиями (управление жизненным циклом требований, управление прослеживаемостью, приоритизация)

  • Описание существующей архитектуры, управление состоянием архитектуры и процессами изменений

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

  • Формирование функциональных требований – что нужно сделать для настройки и доработки/разработки компонентов информационной системы

  • Формирование иерархической структуры работ перехода от существующего состояния к целевому

  • Формирование базы знаний и документации о функциональной архитектуре.

Большая часть проблем управления функциональной архитектурой связана с ее поддержанием в актуальном состоянии. В интернете широко распространен мем (в различных вариациях): «Не так страшны первые 90% проекта как вторые». Он именно об этом. Состав проекта не статичен, он постоянно меняется, поэтому актуальное состояние требований и функциональной архитектуры позволяет сделать изменения более осознанными и управляемыми.

Основные проблемы актуализации функциональной архитектуры:

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

  • Иерархичность требований и элементов архитектуры –  требования не статичны; в начале проекта требования к системе верхнеуровневые; в ходе проекта требования декомпозируются и детализируются, изменяются, делятся; без использования средств автоматизации (например, учет требований и артефактов архитектуры в Excel) проблематично поддерживать реестр требований в актуальном состоянии

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

    • без использования средств автоматизации в сложных системах реализовать адекватную прослеживаемость невозможно

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

  • Дополнительные трудозатраты по управлению функциональной архитектурой, не очевидные Заказчику.

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

Для отражения в архитектуре всех участвующих артефактов в конфигурации реализована следующая модель данных:

Выделены два базовых справочника:

  • Архитектуры – определяют Enterprise-архитектуру внедрения

  • Проекты – объединяют проектные активности по изменению архитектур, требования и документацию.

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

В границах архитектур реализованы подчиненные справочники:

  • Интеграционные потоки, отражающие информационные потоки между системами

  • Бизнес-информационные системы – техническая сущность для разграничения доступа к артефактам архитектуры

    • Объекты системы – артефакты архитектуры (функции, процессы, бизнес-сущности, объекты данных и др.);

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

В границах проектов реализованы подчиненные справочники:

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

    • Стадии проекта – группировка работ по промежуточным результатам, имеющим ценность в проекте

    • Задачи проектов – собственно работы, выполняемые в проекте

  • Требования – справочник, в котором хранятся различные виды требований

  • Документы – справочник документации к проекту.

В системе реализована прослеживаемость между:

  • требованиями и другими требованиями

  • требованиями и объектами систем

  • задачами, требованиями и объектами систем

  • документами и прочими артефактами системы (задачи, требования, объекты систем).

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

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

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

Реализован подчиненный версиям проектами и стадиям справочник задач проекта.

Помимо учета, в задачах реализована возможность:

  • Автоматизировано формировать связи между требованиями и объектами

  • Регистрировать плановые и фактические трудозатраты по задачам, распределять трудозатраты между требованиями и объектами, привязанными к задачам

  • Фиксировать изменения в элементах архитектуры, связанными с задачами

  • Актуализировать состояние требований и объектов системы.

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

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

Если представить основные активности проекте следующим образом

Можно выделить две точки контроля функционального архитектора за изменениями в проекта:

  • КТ1 – по завершении детального анализа возникают новые или детализируются требования в проекте - функциональный архитектор в этой точке должен актуализировать требования к системе

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

Так же в этих точках контролируется качество анализа и реализации требований.

В решении реализован инструмент обмена с системами управления проектами. Инструмент в процессе загрузки позволяет выделить новые или изменившие статус задачи проекта и актуализировать состояние требований и объектов систем. На текущий момент реализованы интеграция с системой OpenProject и выгрузка/загрузка задач в Excel.

Таким образом, решение позволяет оперативно отслеживать и актуализировать  состояния требований и объектов систем,  что снижает риск не качественного отражения в функциональной архитектуре изменений в проекте.

Без использования графических моделей управление функциональной архитектурой трудно представить. Однако:

  • Трудозатратно, а иногда не возможно поддержание целостных моделей сложных систем

  • Платформа 1С не поддерживает диаграммы достаточным образом

  • Часто различные нотации применяются для отражения разных элементов архитектуры.

В конфигурации принято решение отказаться от реализации редактора диаграмм внутри системы. Реализован импорт диаграмм из внешних систем (на текущий момент поддерживаются форматы draw.io и archimate).  Такой подход позволяет использовать разные нотации для разных элементов архитектуры, а также связать один и тот же объект системы с различными элементами нескольких схем.

Например, в системе загружена карта процессов в произвольной нотации:

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

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

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

Кроме объектов систем из схем автоматически загружаются данные об информационных потоках:

Таким образом в программном решении:

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

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

  • Реализована прослеживаемость между требованиями и артефактами архитектуры

  • Посредством импорта из редакторов диаграмм автоматизировано графическое представление артефактов архитектуры в различных нотациях, связь артефактов архитектуры с элементами схем .

Кроме того:

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

  • Автоматизирован импорт из систем управления проектами задач и фактических трудозатрат

  • Автоматизирован учет документации проекта – реестр документации хранится в системе, а сами документы могут находится на диске, в системе управления знаниями в облаке или прикреплены к карточке документа непосредственно в системе

  • Автоматизирована подготовка отчетности – реестры требований, объектов, документов; отчетность по связям между объектами.

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

Видеоролик презентации функций решения на сквозном примере можно посмотреть здесь: https://rutube.ru/video/e0d426c62a6bc8972b25c37980a28bf3/ 

Комментарии (2)


  1. MarksMan09
    02.06.2024 18:02

    Спасибо Виталий, очень интересный материал, не подскажете - ваше решение по разработке 1С базируется на продукте 1С, а не изучали вопросы: 1 у самой то 1С в рамках 1С:Предприятие 8. Система проектирования прикладных решений (СППР) не похожий продукт? 2. А какое аналогичное ПО решает аналогичную задачу, вне 1с - на других языках тоже требуется предварительная разработка архитектуры, с дальнейшей генерацией кода или без, и явно этого должно быть до 1С разработано много?


    1. dci2002 Автор
      02.06.2024 18:02

      по п.1 - похожий продукт. Но ориентирован, по моему мнению, в основном на разработку. Возможности по управлению требованиями и артефактами архитектуры не достаточно развиты, связи между требованиями и другими артефактами не всегда можно установить. Сами артефакты отражаются не универсально, по факту есть только функции, к которым привязываются компоненты конфигурации 1С. Планирую в перспективе сделать интеграцию между СППР и своей конфигурацией - результат работы в Функциональном архитекторе выгружать в СППР для работы уже разработчиков(или обратно, если есть предопределенная модель, например, для 1C ERP)

      по п.2 - здесь есть несколько продуктов, например, сталкивался с информацией о 3SL Cradle, Enterprise Architect, в какой то части Business Studio - там в последней версии поддержку Archimate добавили даже. Но продукты платные, близко с ними не знакомился.