Уже почти десять лет принимаю участие в проектах внедрения на платформе 1С в роли функционального архитектора. Специализация функционального архитектора появилась относительно недавно, вследствие роста сложности информационных систем, а список активностей по управлению функциональной архитектурой может быть разным и зависит от частного представления о процессах разработки и внедрения в конкретной компании.
В статье не буду погружаться в теории по вопросам функциональной архитектуры, а изложу свое видение основных активностей и проблем, и подходы к их решению, сложившиеся в моей практике.
Одно из определений функциональной архитектуры: функциональная архитектура - это детальное описание и структура функциональности создаваемой системы, спроектированные с учётом технологических, пользовательских и бизнес-требований, а также иерархии функций, их зависимости друг от друга и использования в компонентах такой системы.
Цели функциональной архитектуры:
Важно понимать, что требования являются элементами управления архитектурой (инструмент управления архитектора), в то время как задачи – элементами управления проектом (инструмент управления руководителя проекта). Например, требование по реализации некоторого инструмента обработки данных может быть выделено, в три задачи: анализ требования, разработка функционала, тестирование. Однако, требования являются основанием иерархической структуры работ и формируют структуру и последовательность исполнения проекта.
Управление функциональной архитектурой включает активности:
Основные проблемы актуализации функциональной архитектуры:
Для отражения в архитектуре всех участвующих артефактов в конфигурации реализована следующая модель данных:
Выделены два базовых справочника:
В границах архитектур реализованы подчиненные справочники:
Справочник требований иерархический. В справочнике фиксируются все виды требований: бизнес-цели и задачи, пользовательские и функциональные требования. Требования могут декомпозироваться на неограниченное количество уровней как при проектировании так и в процессе проекта. Для управления жизненным циклом требований реализована система статусов требований. Статусы требований периодические. Автоматизирована прослеживаемость связей с другими требованиями, объектами систем, задачами и документами.
В справочнике объектов систем фиксируются бизнес-процессы и их составляющие, элементы архитектуры (компоненты, функции приложения, объекты данных и пр.) информационных систем. Как и справочник требований, справочник объектов систем иерархический. Для него реализованы управление статусами объектов и прослеживаемость с другими объектами и интеграционными потоками, задачами, требованиями и документами.
Реализован подчиненный версиям проектами и стадиям справочник задач проекта.
Помимо учета, в задачах реализована возможность:
Использование интеграции с системами управления проектами, помимо сокращения трудозатрат на создание задач вручную, позволяет автоматизировать контроль изменений в проекте.
Если представить основные активности проекте следующим образом
Можно выделить две точки контроля функционального архитектора за изменениями в проекта:
В решении реализован инструмент обмена с системами управления проектами. Инструмент в процессе загрузки позволяет выделить новые или изменившие статус задачи проекта и актуализировать состояние требований и объектов систем. На текущий момент реализованы интеграция с системой OpenProject и выгрузка/загрузка задач в Excel.
Таким образом, решение позволяет оперативно отслеживать и актуализировать состояния требований и объектов систем, что снижает риск не качественного отражения в функциональной архитектуре изменений в проекте.
Без использования графических моделей управление функциональной архитектурой трудно представить. Однако:
Например, в системе загружена карта процессов в произвольной нотации:
Загружаемые схемы интерактивные – двойным щелчком можно открыть карточку объекта системы, найти его в списке объектов или перейти в подчиненную схему (если к выбранному объекту так же привязана схема):
Загружаются как сами объекты систем, так и связи между ними. Реализована пользовательская настройка соответствия типов объектов и связей с атрибутами элементов загружаемых схем, что позволяет автоматически определять тип объекта или связи, а в формате archimate реализовать сквозную идентификацию объекта для нескольких схем.
По загруженным артефактам и связям между ними формируется отчетность. Например, для загруженной схемы процесса может быть автоматически сгенерирована табличная форма процесса.
Кроме объектов систем из схем автоматически загружаются данные об информационных потоках:
Таким образом в программном решении:
habr.com
В статье не буду погружаться в теории по вопросам функциональной архитектуры, а изложу свое видение основных активностей и проблем, и подходы к их решению, сложившиеся в моей практике.
Одно из определений функциональной архитектуры: функциональная архитектура - это детальное описание и структура функциональности создаваемой системы, спроектированные с учётом технологических, пользовательских и бизнес-требований, а также иерархии функций, их зависимости друг от друга и использования в компонентах такой системы.
Цели функциональной архитектуры:
- Снижение рисков от некорректного результата, реализации не требуемой функциональности
- Управляемость разработки и внедрения
- Целостное описание и представление для всех участников разрабатываемой системы.
- Требования, на основании которых формируется набор функций приложения
- при внедрении бизнес-приложений также проводится анализ бизнес-процессов, позволяющий выявить сценарии и требования пользователей по использованию приложений, а также бизнес-сущности для автоматизации в информационной системе
- Компоненты – сами приложения, модули приложений - относительно независимые, заменяемые единицы, выполняющие одну или несколько функций
- Функции – обособленные элементы поведения компонентов, реализующие сценарии использования компонента
- Модель данных - объекты данных, отражающие бизнес-сущности в информационной системе и их взаимосвязи
- Интеграционные потоки – элементы, отражающие передачу информации (один или несколько объектов данных) между компонентами приложений.
Важно понимать, что требования являются элементами управления архитектурой (инструмент управления архитектора), в то время как задачи – элементами управления проектом (инструмент управления руководителя проекта). Например, требование по реализации некоторого инструмента обработки данных может быть выделено, в три задачи: анализ требования, разработка функционала, тестирование. Однако, требования являются основанием иерархической структуры работ и формируют структуру и последовательность исполнения проекта.
Управление функциональной архитектурой включает активности:
- Выявление и анализ бизнес-целей и задач, пользовательских требований – для чего нужна внедряемая система и как пользователи хотят ее использовать (пользовательские сценарии)
- Управление требованиями (управление жизненным циклом требований, управление прослеживаемостью, приоритизация)
- Описание существующей архитектуры, управление состоянием архитектуры и процессами изменений
- Моделирование, проектирование целевой архитектуры – на основании требований пользователя и прочих факторов (сопровождение, разработка, внедрение и др.), определение компонентов и функций архитектуры, распределение функций и объектов по компонентам, верхнеуровневое определение интеграционных потоков
- Формирование функциональных требований – что нужно сделать для настройки и доработки/разработки компонентов информационной системы
- Формирование иерархической структуры работ перехода от существующего состояния к целевому
- Формирование базы знаний и документации о функциональной архитектуре.
Основные проблемы актуализации функциональной архитектуры:
- Сложность поддержания в актуальном состоянии графических моделей – в сложных системах с большим количеством элементов формирование целостных графических моделей проблематично, а регистрация изменений в некоторых случаях становится невозможной
- Иерархичность требований и элементов архитектуры – требования не статичны; в начале проекта требования к системе верхнеуровневые; в ходе проекта требования декомпозируются и детализируются, изменяются, делятся; без использования средств автоматизации (например, учет требований и артефактов архитектуры в Excel) проблематично поддерживать реестр требований в актуальном состоянии
- Прослеживаемость артефактов анализа (требований, документации, задач проекта и элементов архитектуры)
- без использования средств автоматизации в сложных системах реализовать адекватную прослеживаемость невозможно
- на текущий момент существует множество программных продуктов для управления требованиями, управления проектами, описания архитектуры, управления знаниями и документацией; однако отсутствуют единый инструмент, позволяющий связать все артефакты между собой и реализовать прослеживаемость между видами требований, между требованиями и элементами архитектуры, между артефактами анализа, документацией и задачами проекта
- Дополнительные трудозатраты по управлению функциональной архитектурой, не очевидные Заказчику.
Для отражения в архитектуре всех участвующих артефактов в конфигурации реализована следующая модель данных:
![c8830abc46b1fb6d6ec8f5ca1e65b885.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/c88/30a/bc4/c8830abc46b1fb6d6ec8f5ca1e65b885.png)
Выделены два базовых справочника:
- Архитектуры – определяют Enterprise-архитектуру внедрения
- Проекты – объединяют проектные активности по изменению архитектур, требования и документацию.
В границах архитектур реализованы подчиненные справочники:
- Интеграционные потоки, отражающие информационные потоки между системами
- Бизнес-информационные системы – техническая сущность для разграничения доступа к артефактам архитектуры
- Объекты системы – артефакты архитектуры (функции, процессы, бизнес-сущности, объекты данных и др.);
- Варианты архитектуры – отражают ключевые состояния архитектуры в процессе ее изменения (например, существующая архитектура, целевая архитектура); интеграционные потоки и объекты систем могут входить в один или несколько вариантов архитектур.
- Версии проектов – отражают версию структуры работ проекта внедрения, например, предпроектное обследование, фактическое исполнение проекта, прогноз изменения проекта; версии можно создавать на основании других версий и сравнивать между собой; версии включают справочники:
- Стадии проекта – группировка работ по промежуточным результатам, имеющим ценность в проекте
- Задачи проектов – собственно работы, выполняемые в проекте
- Требования – справочник, в котором хранятся различные виды требований
- Документы – справочник документации к проекту.
- требованиями и другими требованиями
- требованиями и объектами систем
- задачами, требованиями и объектами систем
- документами и прочими артефактами системы (задачи, требования, объекты систем).
Справочник требований иерархический. В справочнике фиксируются все виды требований: бизнес-цели и задачи, пользовательские и функциональные требования. Требования могут декомпозироваться на неограниченное количество уровней как при проектировании так и в процессе проекта. Для управления жизненным циклом требований реализована система статусов требований. Статусы требований периодические. Автоматизирована прослеживаемость связей с другими требованиями, объектами систем, задачами и документами.
![69484cce2cdbe253147096ebd3077557.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/694/84c/ce2/69484cce2cdbe253147096ebd3077557.png)
В справочнике объектов систем фиксируются бизнес-процессы и их составляющие, элементы архитектуры (компоненты, функции приложения, объекты данных и пр.) информационных систем. Как и справочник требований, справочник объектов систем иерархический. Для него реализованы управление статусами объектов и прослеживаемость с другими объектами и интеграционными потоками, задачами, требованиями и документами.
![deba6044fb78eb8e4830db5ee3ca623f.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/deb/a60/44f/deba6044fb78eb8e4830db5ee3ca623f.png)
Реализован подчиненный версиям проектами и стадиям справочник задач проекта.
![cf198aadb67717704734931917103a9b.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/cf1/98a/adb/cf198aadb67717704734931917103a9b.png)
Помимо учета, в задачах реализована возможность:
- Автоматизировано формировать связи между требованиями и объектами
- Регистрировать плановые и фактические трудозатраты по задачам, распределять трудозатраты между требованиями и объектами, привязанными к задачам
- Фиксировать изменения в элементах архитектуры, связанными с задачами
- Актуализировать состояние требований и объектов системы.
Использование интеграции с системами управления проектами, помимо сокращения трудозатрат на создание задач вручную, позволяет автоматизировать контроль изменений в проекте.
Если представить основные активности проекте следующим образом
![e9bcd95c9fb32cb387fdcd27cc8922d0.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/e9b/cd9/5c9/e9bcd95c9fb32cb387fdcd27cc8922d0.png)
Можно выделить две точки контроля функционального архитектора за изменениями в проекта:
- КТ1 – по завершении детального анализа возникают новые или детализируются требования в проекте - функциональный архитектор в этой точке должен актуализировать требования к системе
- КТ2 – по завершении реализации требования также появляются дополнительные требования, и, кроме того, появляется задача актуализировать архитектуру и откорректировать план работ.
В решении реализован инструмент обмена с системами управления проектами. Инструмент в процессе загрузки позволяет выделить новые или изменившие статус задачи проекта и актуализировать состояние требований и объектов систем. На текущий момент реализованы интеграция с системой OpenProject и выгрузка/загрузка задач в Excel.
![5c4d39247eecf2c44aa8dac563c68e8d.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/5c4/d39/247/5c4d39247eecf2c44aa8dac563c68e8d.png)
Таким образом, решение позволяет оперативно отслеживать и актуализировать состояния требований и объектов систем, что снижает риск не качественного отражения в функциональной архитектуре изменений в проекте.
Без использования графических моделей управление функциональной архитектурой трудно представить. Однако:
- Трудозатратно, а иногда не возможно поддержание целостных моделей сложных систем
- Платформа 1С не поддерживает диаграммы достаточным образом
- Часто различные нотации применяются для отражения разных элементов архитектуры.
Например, в системе загружена карта процессов в произвольной нотации:
![849743231c018e3e47a9c12abeec3652.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/849/743/231/849743231c018e3e47a9c12abeec3652.png)
Загружаемые схемы интерактивные – двойным щелчком можно открыть карточку объекта системы, найти его в списке объектов или перейти в подчиненную схему (если к выбранному объекту так же привязана схема):
![579fe612792714138dc51e9773ce6a92.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/579/fe6/127/579fe612792714138dc51e9773ce6a92.png)
Загружаются как сами объекты систем, так и связи между ними. Реализована пользовательская настройка соответствия типов объектов и связей с атрибутами элементов загружаемых схем, что позволяет автоматически определять тип объекта или связи, а в формате archimate реализовать сквозную идентификацию объекта для нескольких схем.
По загруженным артефактам и связям между ними формируется отчетность. Например, для загруженной схемы процесса может быть автоматически сгенерирована табличная форма процесса.
![ab695cfadfa85978a415b84f4601aeb0.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/ab6/95c/fad/ab695cfadfa85978a415b84f4601aeb0.png)
Кроме объектов систем из схем автоматически загружаются данные об информационных потоках:
![2468db260d6915ae0c01cb82c634594b.png](https://habrastorage.org/r/w1560/getpro/habr/upload_files/246/8db/260/2468db260d6915ae0c01cb82c634594b.png)
Таким образом в программном решении:
- Автоматизирован учет требований и артефактов архитектуры с использованием иерархических структур и возможностью декомпозиции, добавления и изменения; автоматизировано управление жизненным циклом требований и артефактов архитектуры
- В процессе регистрации задач реализована возможность автоматизированной актуализации состояния требований и артефактов архитектуры
- Реализована прослеживаемость между требованиями и артефактами архитектуры
- Посредством импорта из редакторов диаграмм автоматизировано графическое представление артефактов архитектуры в различных нотациях, связь артефактов архитектуры с элементами схем .
- Автоматизирован процесс формирования иерархической структуры работ, оценки планируемых трудозатрат, формирование дорожной карты, в т.ч. с представлением стадий в виде диаграммы Ганта
- Автоматизирован импорт из систем управления проектами задач и фактических трудозатрат
- Автоматизирован учет документации проекта – реестр документации хранится в системе, а сами документы могут находится на диске, в системе управления знаниями в облаке или прикреплены к карточке документа непосредственно в системе
- Автоматизирована подготовка отчетности – реестры требований, объектов, документов; отчетность по связям между объектами.
![habr.com](https://habrastorage.org/getpro/habr/upload_files/ab5/780/676/ab5780676e805a27a69b11ce3ce360ae.png)
Функциональная архитектура в проектах внедрения на платформе 1С
Уже почти десять лет принимаю участие в проектах внедрения на платформе 1С в роли функционального архитектора. Специализация функционального архитектора появилась относительно недавно, вследствие...
![habr.com](https://assets.habr.com/habr-web/img/favicons/favicon-16.png)