Научная статья на тему 'ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ФОРМИРОВАНИЯ ОНТОЛОГИИ ДЛЯ МОДЕРНИЗАЦИИ И СОПРОВОЖДЕНИЯ КОМПЛЕКСА ПРОГРАММ'

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ФОРМИРОВАНИЯ ОНТОЛОГИИ ДЛЯ МОДЕРНИЗАЦИИ И СОПРОВОЖДЕНИЯ КОМПЛЕКСА ПРОГРАММ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
17
5
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ONTOLOGY TO SUPPORT THE PROGRAMMER / TOOLS FOR THE FORMATION OF THE ONTOLOGY

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Курбатов Сергей Сергеевич, Красовицкий Иван

В статье описаны предложенные и реализованные инструментальные средства взаимодействия с онтологией для поддержки решений программиста. Решения относятся к модернизации и сопровождению достаточно крупного комплекса программ. Инструментальные средства протестированы в предметной области автоматизации предприятий сетевой торговли (ритейл). Онтология предполагает существенное упрощение и ускорение работы программиста в данной предметной области.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Курбатов Сергей Сергеевич, Красовицкий Иван

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

TOOLS OF FORMATION OF THE ONTOLOGY FOR THE MODERNIZATION AND MAINTENANCE OF COMPLEXPROGRAMS

The article describes the proposed and the implemented tools interact with the ontology to support the decisions of the programmer. Decisions related to the upgrade and maintenance of large complex programs. The tools tested in the subject field of automation of retail chains (retail). Ontology implies a significant simplification and acceleration of the programmer’s work in the subject area

Текст научной работы на тему «ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ФОРМИРОВАНИЯ ОНТОЛОГИИ ДЛЯ МОДЕРНИЗАЦИИ И СОПРОВОЖДЕНИЯ КОМПЛЕКСА ПРОГРАММ»

лей для оптимизации организационно-технологических решений / С.М. Кузнецов, Н.В. Холомеева, С.Э. Ольховиков // Научно-исследовательские публикации. Воронеж. - 2014. - № 7(11). - С. 5 - 13.

7. Кузнецов С.М. Анализ остатков моделей организационно-технологических решений / С.М. Кузнецов, О.В. Соболева, М.П. Шефер // Научно-исследовательские публикации. Воронеж. - 2014. - № 7(11). - С. 24 - 32.

8. Кузнецов С.М. Построение доверительных интервалов работы гидротранспортных систем / С.М. Кузнецов, А.И. Круглов, О.А. Легостаева // Научно-исследовательские публикации. Воронеж. - 2014. - № 13 (17). - С. 5 - 15.

9. Сироткин Н.А. Оценка обоснованности очередно-

сти строительства объектов методом имитационного моделирования / Н.А. Сироткин, С.М. Кузнецов // Изв. вузов. Строительство. - 2007. - № 1. - С. 81 - 86.

10. Сироткин Н.А. Оптимизация продолжительности строительства объектов / Н.А. Сироткин, С.М. Кузнецов, В.П. Перцев // Транспортное строительство. -2007. - № 5. - С. 16 - 17.

11. Сироткин Н.А. Имитационная модель обоснования очередности строительства объектов / Н.А. Сироткин, С.М. Кузнецов, С.Н. Ячменьков // Путь и путевое хозяйство. 2007. - № 10. С. 30 - 31.

12. Сироткин Н.А., Кузнецов С.М. Свидетельство об отраслевой регистрации разработки № 6686 «Оптимизация потока» от 14.08.2006 г.

ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ФОРМИРОВАНИЯ ОНТОЛОГИИ ДЛЯ _МОДЕРНИЗАЦИИ И СОПРОВОЖДЕНИЯ КОМПЛЕКСА ПРОГРАММ

Курбатов Сергей Сергеевич

кандидат технических наук, старший научный сотрудник Научно-исследовательский центр электронной вычислительной техники

г. Москва

Красовицкий Иван

магистрант

Национальный Исследовательский Университет «МЭИ»

г. Москва

TOOLS OF FORMATION OF THE ONTOLOGY FOR THE MODERNIZATION AND MAINTENANCE OF COMPLEX PROGRAMS

Curbatow Sergey, Candidat of Science, senior researcher Research center for electronic computer technology, Moscow Krasovitskiy Ivan, master student National Research University «Moscow Energy Institute», Moskow АННОТАЦИЯ

В статье описаны предложенные и реализованные инструментальные средства взаимодействия с онтологией для поддержки решений программиста. Решения относятся к модернизации и сопровождению достаточно крупного комплекса программ. Инструментальные средства протестированы в предметной области автоматизации предприятий сетевой торговли (ритейл). Онтология предполагает существенное упрощение и ускорение работы программиста в данной предметной области. ABSTRACT

The article describes the proposed and the implemented tools interact with the ontology to support the decisions of the programmer. Decisions related to the upgrade and maintenance of large complex programs. The tools tested in the subject field of automation of retail chains (retail). Ontology implies a significant simplification and acceleration of the programmer's work in the subject area.

Ключевые слова: онтология для поддержки программиста, инструментальные средства формирования онтологии

Keywords: ontology to support the programmer, tools for the formation of the ontology

Стремительный рост аппаратных возможностей современных ЭВМ не сопровождается столь же резким увеличением производительности труда программистов. Известные концепции структурного, модульного и объектно-ориентированного программирования, языки спецификаций, CASE-средства и т.п., разумеется, существенно упростили и ускорили процесс создания программных систем. Однако, разрыв между предоставляемыми аппаратурой ресурсами и эффективностью программирования сохраняется. Одно из многообещающих направлений для преодоления это -го разрыва связано с использованием при проектировании программного обеспечения онтологий и именно этому направлению посвящена данная работа. Предполагается, что онтология, содержащая знания как о задаче в предметной области, так и о текущем состо-

янии программной системы, реализующей эту задачу, позволит значительно облегчить процесс модернизации (усовершенствования) программного обеспечения (ПО).

1. Онтологически-ориентированная разработка ПО

Разработка ПО с использованием онтологии (ontology-drivey development soft) исследовалось в ряде работ [1]. Элементы такого подхода содержит и парадигма порождающего программирования [2]. В аспекте эквивалентных преобразований с опорой на содержательную сторону программ дан анализ проблемы в [3]. Экспресс-анализ работ в данном направлении показывает, что основные трудности концентрируются в проблеме эффективного отображения онтологических концептов в программные кода, а также в слабом развитии инструментальных средств, позволяющих

анализировать тексты крупных комплексов программ и представлять их в виде онтологических структур. Предельным вариантом высокоуровневой разработки ПО является синтез программ по описаниям на технически-ориентированном естественном языке (ЕЯ). Эта проблема пока находится в стадии становления, отдельные результаты носят в основном рекламный характер [4 Пегас]. Тем не менее работы в данном направлении представляются весьма перспективными. В настоящей статье предлагается частное решение общей проблемы разработки ПО с использованием онтологии, а именно разработка и реализация инструментальных средства формирования онтологии для поддержки решений программиста в рамках достаточно крупного комплекса программ.

2. Общие сведения о предметной области

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

Конкретно для тестирования использовалась программная система gestori [5], являющаяся оболочкой, настраиваемой для реальных предприятий. В процессе настройки учитывается специфика торгового предприятия: иерархия товаров и подразделений предприятия, сведения о поставщиках и заказчиках, взаимодействие с кассовыми аппаратами, организация складского учета, особенности формирования нормативно-справочной и отчетной документации и многое другое. Концептуальная специфика предметной области во многом зафиксирована в программах и базе данных системы, поэтому основное внимание при разработке инструментальных средств было уделено отнологическому представлению собственно программам и базе данных системы. Концептами такого представления являются: <модуль>, <процедура> , <функция>, <параметр>, <таблица>, <поле> и т.п., а отношениями, например, <вызывает>, <входит_в>, <использует> и т.д.

3. Логика разработки инструментальных средств и программная реализация

Общая логика построения онтологии, хранящей знания о программной системе и предметной области, описана в [6]. В рамках данной работы эта логика развивается и детализируется по следующим пунктам:

• элементы аксиоматики предметной области;

• элементы аксиоматики программ системы;

• фильтры онтологии и элементы визуализации;

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

• элементы сервиса для генерации программ.

Аксиоматика предметной области, как уже отмечалось, в основном неявно фиксирована в програм-

мах gestori и схеме базы данных. Известно, что в явном виде отношения между объектами предметной области представляются в концептуальной модели базы данных [https://ru.wikipedia.org/wiki/проектирова-ние_баз_данных], которая естественно отображается в онтологии. Вопросы создания такой модели получили достаточное развитие и в рамках данной работы не рассматриваются. Дополнительные элементы аксиоматики относятся к бизнес-логике системы, например, <приход товара> увеличивает общее количество товара в системе, а <расход> - уменьшает. Важным элементом аксиоматики является фиксированный в системе метод учета цены по среднему значению, в отличие от учета по партиям. Это позволяет при организации с помощью онтологии высокоуровневого интерфейса (в отличие от стандартного интерфейса gestori) объяснить пользователю неудачу при формулировке запроса, противоречащего принятому в системе методу уче-

В качестве первоочередных элементов аксиоматики программ системы выбирались те, которые непосредственно ориентированы на программиста, например, позволяющие отвечать на вопросы типа:

• Почему отсутствует диагностическое сообщение в недавно измененном тексте?

• Где объявлена некоторая переменная и какова ее область действия?

• Выполняет ли данный модуль запись в базу данных?

• Каковы предполагаемые места изменений текстов программ по заданному на естественном языке тексту технического задания?

Вследствие масштабности задачи, для которой предназначена онтология, важны фильтры по концептам, позволяющие вычленить обозримый фрагмент онтологической структуры. Далее этот фрагмент может использоваться для логического вывода или для визуализации. Типичным примером фильтра является выделение цепочки вызовов от модуля А к модулю Б. Для онтологии спроектированы и реализованы фильтры, которые в диалоговом режиме вычленяют в броузерах интересующие программиста подмножества концептов онтологии. Визуализация результатов выполняется с помощью свободно распространяемого фреймворка treebolic, для которого соответствующие данные конвертируются в XML-файл.

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

Элементы сервиса для генерации программ сканируют тексты модулей верхнего уровня системы, имеющие ЕЯ-описания в онтологии. В результате сканирова-

ния должны быть выявлены возможности интеграции работы этих модулей и получения новой функциональности в системе. Например, в системе имеются модуль, позволяющий получить остатки товаров на дату и модуль отчета по товарам, проданным на кассах. Тогда по ЕЯ-описанию «Найти кассы, на которых был продан товар, остатки которого на 10.03.2016 больше 1000» для генерация программы надо вычленить в соответствующих модулях фрагменты, ответственные за формирование параметров и результатов расчета.

Предполагается, что после вычленения может быть сгенерирована программа, интегрирующая работу модулей, в данном случае через концепт <дата>. Отметим, что данная ситуация аналогична организации представления (view), но отличается сложной бизнес логикой, реализуемой модулями <остатки_товара> и <продажа_на_кассах>, которая не представляется непосредственно конструкциями SQL.

По каждому из перечисленных пунктов были разработаны и программно реализованы модули, воплощающие логику декларируемых инструментальных средств. Технические результаты разработки отражены на HTML-странице [9].

4. Тестирование

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

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

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

5. Заключение

В отличие от макетного варианта [6], данные инструментальные средства непосредственно ориентированы на поддержку программиста, модернизирующего и сопровождающего комплекс достаточно крупных программ. Дальнейшее развитие этих средств связано с выявлением и снятием ограничений как в лингвистическом, так и в алгоритмическом компонентах онтологии. Большой корпус ЕЯ-описаний реальных ТЗ приведен на HTML-странице [9]. Предполагается использование этого корпуса для более масштабного тестирования инструментальных средств.

Работа выполнена при финансовой поддержке Российского Фонда Фундаментальных Исследований (РФФИ), проект №15-07-03847. Благодарим разработчиков выбранной для экспериментального исследования системы управления сетевой торговлей за консультации и ценные советы по улучшению интерфейса с онтологией.

Литература:

1. Jeff Z. Pan, Steffen Staab, Uwe Aßmann, JurgenEbert, Yuting Zhao Ontology-Driven Software Development, Springer-Verlag Berlin Heidelberg, 2013

2. Чернецки К., Айзенекер У. Порождающее программирование: методы, инструменты, применение / Пер. с англ. СПб: Питер, 2005.

3. Саберфельд В.К., Автореферат диссертации по теме «Анализ свойств и эквивалентные преобразования на моделях программ», Новосибирск 1994.

4. Пегас, http://www.pegasus-project.org/ru/Teoria_

Tehnika.html

5. http://www.flt.ru/solutions/software/gestori/

6. Курбатов С.С., Лобзин А.П., Хахалин Г.К. Онтология для автоматизированного синтеза программ по описанию на предметно-ориентированном естественном языке // Труды IV Всероссийской конференции с международным участием «Знания - Онтологии - Теории» (30HT-13). -Новосибирск: Институт математики СО РАН, 2013.

7. Kushman Nate, Barzilay Regina. Using Semantic Unification to Generate Regular Expressions from Natural Language // Computer Science and Artificial Intelligence Laboratory Massachusetts Institute of Technology - 2013.

8. Мерзляков Д.А. Генерация регулярных выражений для автоматизации проверки текстов открытого характера. Пермский государственный национальный исследовательский университет, 2010.

9. http://www.eia--dostup.ru/RFFI-15-17.htm

10. Фаулер М., Рефакторинг: улучшение существующего кода, Пер. с англ. СПб: Символ - Плюс, 2003, 432 с.

i Надоели баннеры? Вы всегда можете отключить рекламу.