Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель

Бесплатный доступ

Применение средств для повышения удобства создания программного обеспечения является важным аспектом при организации процесса разработки. В данной работе определяются причины применения механизмов для наглядного представления структуры современных программных систем в графическом виде. Анализируется структура прикладных решений на платформе «1С:Предприятие». Описывается формат «Дерево типов конфигурации». Приводятся этапы разработки программного комплекса для преобразования конфигураций «1С:Предприятие» в объектную модель UML с целью дальнейшей визуализации в виде диаграмм классов.

Конфигурация, система типов, диаграмма классов, структура системы, объектная модель

Короткий адрес: https://sciup.org/148323193

IDR: 148323193   |   DOI: 10.18137/RNU.V9187.21.04.P.137

Текст научной статьи Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель

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

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

Чтобы оптимизировать процесс создания программ, разработчики могут применять механизмы для визуального представления структуры информационной системы [4; 8].

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

Для программ, написанных на таких языках программирования, как C++, Java, Javascript, Python, существуют средства, например, Star UML и Visual Paradigm, позволяющие выполнять автоматическое конвертирование программного кода в диаграмму классов UML. Та кой процесс называется реверс-инжинирингом программн ого обеспечения [2].

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

Несмотря на распространенное использование языка UML в процессах разработки программного обеспечения, на текущий момент в открытом доступе не существует средств, позволяющих визуально представлять структуру систем, разработанных на платформе «1С:Предприятие» [1]. В связи с этим возникла идея создания программного комплекса для конвертации конфигурации платформы «1С:Предприятие» в UML-модель для визуализации структурного аспекта системы.

Структура прикладных решений на базе «1С:Предприятие»

В конфигурациях платформы «1С:Предприятие» каждый созданный разработчиком объект относится к одному из типов метаданных:

  • 1.    «Подсистема», «Общий модуль», «Роль» и др., которые входят в группу «Общие объекты».

  • 2.    «Справочник», «Документ», «Перечисление», «Регистр сведений», «План видов характеристик» и др., входящих в группу «Прикладные объекты».

Каждый тип метаданных обладает базовой функциональностью, которая определена на платформе «1С:Предприятие». При создании конфигурации разработчики создают общие и прикладные объекты, наследующие всю функциональность соответствующих типов метаданных. Эту функциональность можно переопределить под потребности бизнес-процессов создающейся системы. Важно отметить, что прикладные объекты наследуют функциональность от нескольких типов, которые определены на платформе «1С:Предприятие». Например, прикладной объект метаданных «Справочник» наследует функциональность следующих типов платформы [7]: «СправочникОбъект», «СправочникСсылка», «СправочникВыборка», «СправочникСписок» и «Справоч-никМенеджер».

Все объекты конфигурации имеют свойства, типами которых могут выступать как прикладные объекты конфигурации, так и типы данных встроенного языка платформы «1С:Предприятие». Информация о таких типах содержится во встроенной справке 1С, называющейся «СинтаксисПомощник».

Разработка программного комплекса для конвертации конфигурации платформы ...

Представление конфигурации «1С:Предприятие» в формате XML

Любая конфигурация, разработанная на платформе «1С:Предприятие», может быть выгружена в файлы XML-формата в виде файловой структуры.

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

К примеру, в XML-файле выгрузки прикладного объекта типа метаданных «Справочник» информация представлена так, как показано на Рисунке 1.

  • 1    cMetaDataObject xmlns="..." xmlns:xr="...">

  • 2    ccatalog>

  • 3          clnternal info

  • 4                cxr:GeneratedType name="CatalogObject.Пользователи" category="object"/>

  • 5                cxr:GeneratedType name="CatalogRef.Пользователи" category="Ref" />

  • 6                                           . . .

  • 7          c/lnternal Info

  • 8           cproperties>

  • 9                <мате>пользователис/мате>

  • 10               

  • 11                     

  • 12                     cxr:standardAttribute name="code"/>

  • 13                                           . . .

  • 14                c/standardAttributes>

  • 15          c/properties>

  • 16          cehi1dobjects>

  • 17                

  • 18                      cproperties>

  • 19                           <мате>датарождениж/мате>

  • 20                             cType>

  • 21                                   cv8:Type>xs:dateTimec/v8:туре>

  • 22                             туре>

  • 23                      

  • 24                

  • 25                                . . .

  • 26               

  • 27                      clnternalInfo>

  • 28                                           . . .

  • 29                      

  • 30                        ...

  • 31                      ...

  • 32                

  • 33          

  • 34    

  • 35    

Рисунок 1. XML-описание справочника «Пользователи»

Элементы на рисунке обозначают следующее:

  •    Internal Info – содержит перечисление типов, которые были созданы на платформе «1С:Предприятие» для данного объекта конфигурации;

  •    Properties – определяет стандартные свойства объекта конфигурации, в данном случае Name (наименование) и Standard Attributes (стандартные реквизиты);

  •    Child Objects – перечисляет реквизиты, табличные части, формы, макеты и команды, которые содержит объект конфигурации;

  •    Attribute – обозначает реквизит объекта конфигурации, допустимые типы реквизита перечисляются в элементе Type;

  •    Tabular Section – описывает данные табличной части объекта конфигурации.

Формат XMI

Для графического представления структуры программ в UML наиболее распространенными являются диаграммы классов.

Для хранения UML-моделей и для обмена ими или их частями существует международный стандарт XMI [10], который поддерживается многими графическими редакторами UML.

Элементы UML-модели упаковываются в файл XMI для последующей загрузки в другую UML-модель. В частности, элементы диаграммы классов упаковываются следующим образом.

  • 1.    Описание класса помещается в элемент packaged Element , атрибутами которого являются xmi:id (идентификатор класса) и name (наименование класса). Атрибуты и операции класса перечисляются во вложенных в packaged Element элементах owned Attribute и owned Operation соответственно.

  • 2.    Отношение наследования между классами определяется в виде элементов generalization . В таких элементах в атрибуте specific указывается идентификатор класса, наследующего функциональность от класса, значение xmi:id которого записывается в general .

Поскольку XML-файлы выгрузки конфигурации платформы «1С:Предприятие» содержат исчерпывающее описание всех объектов конфигурации, можно выполнить преобразование из этих XML-файлов в XMI-представление, а после этого при помощи UML-редактора отобразить графически структуру конфигурации.

Определение этапов конвертации конфигурации в XMI

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

Поэтому сначала конфигурация была представлена в упрощенном формате [3], а затем было выполнено преобразование промежуточного документа в XMI.

Упрощенный формат для описания объектов конфигурации и типов платформы в рамках данной работы назван «Дерево типов конфигурации» (далее – ДТК).

Таким образом, файл формата ДТК должен состоять:

  • •    из типов платформы («ветки дерева») – служат основанием для объектов конфигурации;

  • •    объектов конфигурации («листья дерева») – наследуют функциональность типов платформы.

Представление конфигурации в формате дерева типов конфигурации

Для представления конфигурации платформы «1С:Предприятие» в формате ДТК был выбран формат XML [5]. Правила формирования XML-файла с данными конфигурации содержатся в созданной авторами схеме XSD, описание которой приведено далее.

Все объекты конфигурации, а также относящиеся к ним табличные части, формы, макеты и команды представляются в виде элемента context , обязательными атрибутами которого являются наименование ( name ) и идентификатор ( id ), а в качестве необязательного атрибута значится extends – идентификатор элемента context , от которого наследуется функциональность.

Каждое свойство объекта конфигурации описывается в элементе property , а наименование этого свойства указывается в атрибуте name . Свойство может иметь значения нескольких типов, поэтому каждый возможный тип перечисляется внутри property в отдель-

Разработка программного комплекса для конвертации конфигурации платформы ...

ном элементе type , где в одноименном атрибуте type указывается идентификатор элемента context . Элементы type можно назвать множеством допустимых типов свойства.

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

Методы и события объекта конфигурации могут содержать как обязательные, так и необязательные параметры, которые, как и свойства, могут принимать разные типы значений. В данном случае было решено воспользоваться определением перегрузки методов, что допускает при отличии в количестве или типах параметров создавать разные методы с одним и тем же наименованием. Ввиду этого для каждого возможного набора типов параметров создается элемент param Set , внутри которого перечислены параметры ( param ), где атрибутами каждого из них являются наименование ( name ) и тип ( type ). Поскольку некоторые параметры могут быть необязательными и, соответственно, в них передается пустое значение из места вызова, то в таком случае элемент param указывается без атрибутов. Некоторые методы могут иметь возвращаемое значение, для них в каждый param Set добавляется элемент returnSet , обозначающий множество допустимых типов возвращаемых значений, в котором перечислены элементы return с атрибутом type . Все param Set помещаются в элемент method , у которого имеется атрибут name , обозначающий наименование метода или события.

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

  • 1    ccontexts>

  • 2    ccontext пате="справочникссылка.пользователи" id="СправочникСсылка.Пользователи" ехгепд$="справочникссылка.&1t;имя справочника&дг;"

  • 3      cproperty пате="Ссылка">

  • 4          ctype туре="справочникссылка.пользователи"/>

  • 5      с/р roperty>

б      cproperty пате="Код">

  • 7          сгуре туре="строка"/>

  • 8      

  • 9                . . .

  • 10    c/context>

  • 11    ccontext пате="СправочникОбъект.Пользователи" 1^="справочникобъект.пользователи" extends="CnpaBO4HHKO6beKT.&!t;Имя справочника&д1;"

  • 12    . . .

  • 13    c/context>

  • 14    ccontext пате="справочникссылка.&1т;имя справочника&дт;" id="CnpaBO4никСсылка.&1t;Имя справочника&дТ;"

  • 15     cproperty пате="код" enName="code">

  • 16         ctype Туре="Число"/>

  • 17         ctype 1уре="строка"/>

  • 18     с/р roperty>

  • 19          . . .

  • 20     cmethod пате="принадлежитэлементу">

  • 21         cparamSet>

22             cparam пате="элемент" 1уре="справочникссылка.&11;имя справочника&д1;"/>

23             creturnSet>

  • 24                creturn 1уре="Булево"/>

  • 25             c/returnSet>

  • 26         c/paramSet>

  • 27    c/method>

  • 28            . . .

  • 29    c/context>

  • 30    . . .

  • 31    c/contexts>

Рисунок 2. XML-описание справочника «Пользователи» в формате ДТК

Для автоматического формирования XML-описания конфигурации в формате ДТК написана программа на языке программирования «1С:Предприятие». Разбор исходных XML-файлов с данными конфигурации выполнен при помощи запросов языка XPath, а формирование XML-описания в формате ДТК реализовано с использованием механизма XDTO.

Таким образом, все типы, определенные в конфигурации, помещаются в файл формата ДТК. Также был создан файл того же формата, в который были добавлены все типы из справочной информации платформы «1С:Предприятие».

Преобразование формата ДТК в XMI

Преобразование конфигурации из формата ДТК в XMI сделано с помощью правил языка XSLT. Процесс конвертации из XML в XMI выполняется следующим образом.

Каждый элемент context соответствует классу в UML и поэтому определяется в XMI как packaged Element . Свойства элемента ( property ) преобразуются в owned Attribute . Так как у property может быть несколько элементов type , а в нотации UML каждому атрибуту соответствует только один тип, было решено сделать вспомогательный параметризованный тип и представлять его в виде отдельного класса. Например, если в элементе property содержится два элемента type , обозначающие типы «Число» и «Строка», то будет создан класс « Сложный Тип<Число, Строка> », который является типом для этого элемента property . Все элементы method промежуточного формата преобразуются в UML в качестве операций класса. Поскольку в method перечислены всевозможные наборы параметров в виде param Set , в XMI количество операций класса ( owned Operation ) соответствует количеству элементов param Set .

После формирования всех packaged Element , выполняется установка связей между классами. Сначала определяется, какие типы без учета повторений есть в каждом классе у атрибутов и параметров операций. Затем для класса устанавливается отношение зависимости с каждым из классов, наименование которого соответствует определенным на предыдущем этапе типам. Если у элемента context присутствует атрибут extends , то класс packaged Element связывается с классом, имя которого указано в extends , отношением наследования ( generalization ). Связь класса с табличными частями, а также с относящимися к нему формами, командами и макетами определяет отношение агрегации.

Фрагмент разработанных правил XSLT представлен на Рисунке 3.

Запуск преобразования на языке XSLT осуществляется средствами платформы «1С:Предприятие» при помощи объекта «ПреобразованиеXSL».

Тестирование программного комплекса

Чтобы выполнить тестирование разработанного программного комплекса, использовалась свободно распространяемая конфигурация «Библиотека стандартных подсистем».

На Рисунке 4 представлен фрагмент конфигурации в формате UML. Для визуализации применялась программа StarUML, в которую был импортирован сгенерированный файл XMI, описывающий структуру конфигурации.

Разработанный программный комплекс, а также инструкция по его установке, доступны в репозитории проекта [6].

Заключение

В результате работы был создан программный комплекс, позволяющий выполнять преобразование любой конфигурации, разработанной на платформе «1С:Предприятие», в UML-модель с целью графического представления ее структуры. Полученную объект-

Разработка программного комплекса для конвертации конфигурации платформы ...

ную модель можно визуализировать в любом графическом редакторе UML, который поддерживает импорт XMI.

  • 1    

  • 2    

  • 3             

  • 4                  

  • 5                            

  • 6                                 

  • 7                            

  • 8                                                                        . . .

  • 9                          ...

  • 10                         ...

  • 11                                              . . .

  • 12                  

  • 13            

  • 14     

  • 15     

  • 16            :xmi xmlns:uml="..." xmlns:xmi="...">

  • 17                    

  • 18                        

  • 19                           

  • 20                                

  • 21                             

  • 22                         

  • 23                                

  • 24                           

  • 25                    

  • 26           

  • 27     

  • 28    

  • 29            ...

  • 30     

  • 31    

  • 32           

  • 33                     . . .

  • 34     

  • 35    

Рисунок 3. XSLT-преобразование XML

Рисунок 4. Представление фрагмента БСП

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

Список литературы Разработка программного комплекса для конвертации конфигурации платформы "1С:Предприятие" в UML-модель

  • С:Предприятие 8.3.17. Документация [Электронный ресурс]. URL: https://its.1c.ru/db/v8317doc (дата обращения: 10.03.2021).
  • Ахапкин А.С. Получение архитектуры программного продукта по его исходному тексту // Научно-технический вестник Санкт-Петербургского государственного университета информационных технологий, механики и оптики. 2005. № 29. С. 183-185.
  • Балюк А.С., Попова В.А. Преобразование конфигурации 1С:Предприятия в UML-модель // Информационные технологии: материалы 59-й Международной научной студенческой конференции (Новосибирск, 12-23 апреля 2021 г.). Новосибирск: ИПЦ НГУ, 2021. С. 30.
  • Зверева В.А., Кознов Д.В., Бережной А.С. Обзор подходов управления согласованностью артефактов разработки ПО при использовании UML // Системное программирование. 2006. № 1 (2). С. 240-267.
  • Попова В.А., Балюк А.С. Статическая проверка типов для программ, разработанных на платформе "1С:Предприятие" // Вестник Иркутского университета. 2020. № 23. С. 54-55.
  • Попова В.А. Программный комплекс для преобразования конфигурации 1С:Предприятия в UML-модель [Электронный ресурс]. URL: https://gitlab.com/converting-1c-to-uml/software-package (дата обращения: 17.05.2021).
  • Работа с прикладными объектами средствами встроенного языка [Электронный ресурс]. URL: https://its.1c.ru/db/metod8dev/content/2698/hdoc (дата обращения: 11.03.2021).
  • Романов В.Ю. Моделирование свободно-распространяемого программного обеспечения с помощью языка UML // International Journal of open information technologies. 2013. № 27 (1). С. 11-15.
  • About the Unified Modeling Language Specification Version 2.5.1. Available at: https://www.omg.org/spec/UML/About-UML/(date of the application: 08.03.2021).
  • About the XML Metadata Interchange Specification Version 2.5.1. Available at: https://www.omg.org/spec/XMI/About-XMI/(date of the application: 10.03.2021).
Еще
Статья научная