Введение к работе
Актуальность. С усложнением архитектуры современных программных систем возникает необходимость автоматизированного анализа и рефакторинга архитектуры на уровне модели. Рефакторинг — реструктуризация системы с сохранением ее поведения.
Анализ и рефакторинг целесообразно проводить как на начальной стадии жизненного цикла разработки программного обеспечения — при проектировании, так и на этапах разработки программного кода и сопровождения.
На этапе проектирования предварительный анализ модели архитектуры и ее рефакторинг помогут избежать высоких трудозатрат на исправление кода, разработанного на основе модели, содержащей такие недостатки, как отсутствие гибкости, высокая связность и т.д., которые могут негативно сказаться на времени тестировании и отладки программного обеспечения, усложнить внесение изменений в систему.
На этапе, когда код уже разработан, можно при помощи дополнительных инструментальных средств построить модель программной системы для того, чтобы проанализировать ее архитектуру и провести необходимый рефакторинг.
В рамках модельно-ориентированного подхода MDA (Model Driven Architecture) предлагается строить модель объектно-ориентированной архитектуры программного обеспечения при помощи унифицированного языка моделирования UML (Unified Modelling Language), а передавать модели между инструментальными средствами при помощи стандарта XMI (XML Model Interchange).
UML-диаграммы классов языка UML используются системным архитектором для определения основных элементов проектируемой системы: классов, их атрибутов и методов, интерфейсов и их методов, отношений наследования, реализации интерфейса, зависимости, агрегации, композиции, а также распределения элементов по пакетам.
На сегодняшний день разработаны инструментальные средства рефакторинга UML-диаграмм классов Dearthir, Darwin, CODe-Imp, Bunch tool, использующие подход SBSE (Search Based Software Engineering – Поисковая программная инженерия). На входе данные инструментальные средства принимают UML-диаграмму классов и целевую функцию. На выходе пользователь получает UML-диаграмму классов, значение целевой функции которой находится в локальном или глобальном минимуме. Недостатком подхода является то, что трансформации к UML-диаграмме применяются без учёта её семантики. К примеру, в инструментальном средстве Darwin в ходе поиска произвольно применяется паттерн проектирования Адаптер, хотя его использование имеет смысл лишь в очень редких случаях с целью адаптации интерфейса (или нескольких интерфейсов) класса (или нескольких классов) к требуемому виду.
Привлечение методов формализации позволит учитывать семантику UML-диаграммы и её трансформаций при рефакторинге. Разработка формальных методов описания трансформаций, применяемых при рефакторинге, необходима для проведения его алгоритмизации.
Программные средства анализа и рефакторинга UML-диаграмм классов особенно важны для программных систем большого размера, UML-диаграммы которых анализировать и редактировать вручную слишком трудоемко. Для подобных систем удобнее использовать программные средства рефакторинга, позволяющие рассчитывать метрики, анализировать UML-диаграммы на предмет целесообразности применения паттернов проектирования и производить их трансформацию.
Таким образом, разработка программно-математических средств рефакторинга UML-диаграмм классов с учётом заданных критериев качества на основе формализации и
алгоритмического обеспечения трансформации UML-диаграмм классов в рамках модельно-ориентированного подхода MDA является актуальной и важной задачей.
Степень разработанности. В настоящее время разработаны аппараты формального описания UML-диаграмм классов, их трансформации и рефакторинга. Этим исследованиям посвящены работы отечественных ученых: Кузнецова М. Б., Сергиевского М. В., Волковой Е. Д., Страбыкина А. Д. и др., а также западных исследователей: Ziemann P., Hlscher K. and Gogolla M., Rahmoune Y., Chaoui A. and Kerkouche E., Efrizoni L., Wan-Kadir W. M. N., Mohamad R., Rih O. and Vathsavayi S., Lutz R., Simons C. L. and Parmee I. C., O’Keeffe M. and Cinnide M. O., Bowman M., Briand L. C., Labiche Y. и др.
Однако не существует формального описания UML-диаграмм классов, позволяющего проводить алгоритмизацию их трансформации и доказывать, что трансформации семантически эквивалентны.
Цель диссертационного исследования. Создание программно-математических средств рефакторинга UML-диаграмм классов с учётом заданных критериев качества на основе формального описания и разработанного алгоритмического обеспечения трансформации UML-диаграмм классов.
Основные задачи диссертационного исследования:
-
Обзор и анализ основных стандартов модельно-ориентированного подхода к разработке программного обеспечения, методов формального описания, трансформации, рефакторинга UML-диаграмм классов и методов задания целевой функции для рефакторинга UML-диаграмм классов.
-
Разработка формального описания структурной семантики UML-диаграмм классов.
-
Разработка абстрактной структуры данных для представления UML-диаграммы классов в оперативной памяти компьютера.
-
Разработка алгоритмического обеспечения трансформации UML-диаграмм классов, их анализа с целью поиска трансформаций, снижающих значение целевой функции, алгоритмического обеспечения расчёта основных объектно-ориентированных метрик на основе разработанной абстрактной структуры данных для представления UML-диаграммы классов в оперативной памяти.
-
Проектирование, разработка и отладка программного средства рефакторинга UML-диаграмм классов.
-
Разработка методики рефакторинга UML-диаграмм классов по заданным критериям качества.
-
Оценка эффективности использования разработанных методов, алгоритмов и программных средств при решении задачи рефакторинга UML-диаграмм классов сложных программных систем.
-
Внедрение результатов исследований в учебный процесс.
Методы исследования. В диссертации использованы методы математической логики, теории алгоритмов, дискретной математики, семантики языков программирования, теории множеств и информационные технологии.
Объект исследования. Объектно-ориентированная архитектура программных систем (ПС), описанная при помощи UML-диаграмм классов.
Предмет исследования. Предмет исследования — методы рефакторинга UML-диаграмм классов. Предмет исследования определен областью исследования п.1 «Модели, методы и алгоритмы проектирования и анализа программ и программных систем, их эквивалентных преобразований, верификации и тестирования» паспорта специальности (05.13.11) и перечнем решаемых в диссертации задач.
Научная новизна
-
Разработано формальное описание UML-диаграмм классов на основе теоретико-множественного подхода.
-
Разработана абстрактная структура данных UML Map для представления UML-диаграммы классов в оперативной памяти компьютера.
-
Разработано алгоритмическое обеспечение трансформации UML-диаграмм классов, их анализа с целью поиска трансформаций, снижающих значение целевой функции, алгоритмов расчёта основных объектно-ориентированных метрик на основе разработанной абстрактной структуры данных для представления UML-диаграммы классов в оперативной памяти.
-
Разработана методика рефакторинга UML-диаграмм классов с учетом заданных критериев качества.
Достоверность и обоснованность научных результатов и рекомендаций, приведённых в диссертационной работе, подтверждены в ходе вычислительных экспериментов над промышленными программными системами, а также апробацией и обсуждением результатов работы на международных научных конференциях и семинарах, рецензированием и предварительной экспертизой научных статей, опубликованных в ведущих научных изданиях.
Теоретическая и практическая значимость исследования. Внедрение. Теоретическая значимость исследования заключается в разработке формального описания структурной семантики UML-диаграмм классов и доказательства семантической эквивалентности трансформаций «Введение интерфейса», «Стратегия», «Фасад»; а также создании абстрактной структуры данных UML Map, представляющей UML-диаграмму классов в оперативной памяти компьютера таким образом, что становятся удобными её анализ и рефакторинг.
Практическая значимость исследования определяется тем, что на основе полученных в работе теоретических результатов разработаны алгоритмы анализа и рефакторинга UML-диаграмм классов, а также разработано, отлажено и внедрено программное средство, обеспечивающее решение важной научно-практической задачи рефакторинга UML-диаграмм классов.
Результаты работы использованы на предприятии ЗАО «Инженерный центр «ГЕОМИР» для рефакторинга объектно-ориентированной архитектуры библиотеки агенто-реляционного отображения ArPlatform, а также в рамках выполнения реализации проекта № 8.2321.2017/ПЧ государственного задания Министерства образования и науки «Разработка и адаптация систем управления компенсацией динамических отклоняющих воздействий на мобильные объекты, находящиеся в состоянии динамического равновесия».
Основные положения, выносимые на защиту.
-
Способ формального описания структурной семантики UML-диаграмм классов.
-
Методика рефакторинга UML-диаграмм классов с учетом заданных критериев качества. Апробация работы и публикации. Результаты диссертационного исследования
докладывались и обсуждались на конференциях:
-
VIII Межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации», 28 февраля, 2018, Москва. Международная конференция Инжиниринг и Телекоммуникации — En&T 2017, 29-30 ноября, 2017, Москва/Долгопрудный.
-
Международная научно-технической конференция «INTERMATIC-2017», 20 – 24 ноября 2017 г., Москва.
-
VII Межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации», 25 февраля, 2017, Москва.
-
Международная конференция Инжиниринг и Телекоммуникации — En&T 2016, 2016, Москва/Долгопрудный.
-
Международная научно-техническая конференция «INTERMATIC-2016», 21-25 ноября 2016 г., Москва.
-
6-ая межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации» 21 января 2016 г., Москва.
-
Международная научно-техническая конференция «INTERMATIC-2015», 1-5 декабря 2015 г., Москва.
-
Международная конференция Инжиниринг и Телекоммуникации — En&T 2015, 18-19 ноября, 2015, Москва/Долгопрудный.
Основные результаты диссертационного исследования опубликованы в 15 работах, из них 3 в изданиях, включённых в перечень рецензируемых журналов, рекомендованных ВАК, 3 в изданиях, индексируемых Web of Science.
Также получено 2 авторских свидетельства о регистрации программы для ЭВМ в Федеральной службе интеллектуальной собственности – Роспатент.
Личный вклад соискателя в получение результатов, изложенных в диссертации.
Все результаты, выносимые на защиту, получены автором лично.
Структура и объем диссертации
Диссертационное исследование состоит из введения, списка основных терминов, 4 глав и списка использованной литературы. Общий объем работы составляет 162 страницы, в работе присутствует 62 рисунка, 9 таблиц, библиографический список из 105 наименований.