Программно-математические средства рефакторинга UML-диаграмм классов с учётом заданных критериев качества тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат наук Дерюгина, Ольга Александровна

  • Дерюгина, Ольга Александровна
  • кандидат науккандидат наук
  • 2018, Москва
  • Специальность ВАК РФ05.13.11
  • Количество страниц 162
Дерюгина, Ольга Александровна. Программно-математические средства рефакторинга UML-диаграмм классов с учётом заданных критериев качества: дис. кандидат наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Москва. 2018. 162 с.

Оглавление диссертации кандидат наук Дерюгина, Ольга Александровна

ОГЛАВЛЕНИЕ

ВВЕДЕНИЕ

Глава 1. Обзор основных стандартов и методов, относящихся к рефакторингу UML-моделей

1.1. Модельно-ориентированный подход к разработке программного обеспечения

1.1.1. Стандарты MDA

1.1.2. Преимущества MDA

1.1.3. Роль автоматизированного рефакторинга UML-диаграмм классов в MDA

1.2. Задача рефакторинга UML-диаграмм классов

1.3. Основные подходы к формальному описанию и трансформации UML-диаграмм классов

1.3.1. Графические схемы для описания UML-диаграмм классов

1.3.2. Стандарт XMI для формального описания и трансформации UML-диаграмм классов

1.3.3. Алгебра логики для формального описания и трансформации UML-диаграмм классов

1.3.4. Теория графов для формального описания и трансформации UML-диаграмм классов

1.3.5. Специализированные языки моделирования для формального описания и трансформации UML-диаграмм классов

1.4. Основные подходы к рефакторингу UML-диаграмм классов

1.4.1. Рефакторинг на основе методов поисковой программной инженерии

1.4.2. Автоматизированный рефакторинг

1.4.3. Программные средства рефакторинга UML-диаграмм классов

1.5. Основные подходы к заданию целевой функции для рефакторинга UML-диаграмм классов

1.5.1. Оценка свойств UML-диаграмм классов при помощи стандартных объектно-ориентированных метрик

1.5.2. Оценка свойств UML-диаграмм классов с точки зрения соответствия основным принципам проектирования объектно-ориентированной архитектуры программного обеспечения. Паттерны объектно-ориентированного проектирования

Выводы по главе

Глава 2. Математические методы рефакторинга UML-диаграмм классов

2.1. Алгебраическое описание объектно-ориентированной архитектуры программного обеспечения

2.2. Структурная семантика UML-диаграмм классов

2.3. Семантически эквивалентные трансформации UML-диаграмм классов

2.3.1. Семантически эквивалентная трансформация «Введение интерфейса»

2.3.2. Семантически эквивалентная трансформация «Фасад»

2.3.3. Семантически эквивалентная трансформация «Стратегия»

2.4. Формальная постановка задачи рефакторинга UML-диаграмм классов

2.5. Критерий структурной сложности UML-диаграмм классов

2.6. Абстрактная структура данных UML Map

Выводы по главе

Глава 3. Алгоритмическое обеспечение рефакторинга UML-диаграмм классов

3.1. Алгоритмы применения трансформаций к UML-диаграммам классов

3.2. Алгоритм рефакторинга UML-диаграмм классов CDTA

3.3. Алгоритмы поиска множеств элементов E диаграммы классов для применения трансформаций

3.3.1. Алгоритм поиска списка классов для применения трансформации «Введение интерфейса»

3.3.2. Алгоритм поиска классов для применения трансформации «Стратегия»

3.3.3. Алгоритм поиска групп классов для применения трансформации «Фасад»

3.3.4. Алгоритм поиска общих методов классов для введения интерфейса

3.4. Алгоритмы расчёта метрик на основе абстрактной структуры данных UML Map

3.4.1. Метрики Chidamber and Kemerer

3.4.2. Метрики Li and Henry

3.4.3. Метрика структурной сложности DSC

Выводы по главе

Глава 4. Программное средство рефакторинга UML-диаграмм классов

4.1. Постановка задачи для разработки программного средства рефакторинга UML-диаграмм классов

4.2. Спецификация программного средства рефакторинга UML-диаграмм классов, выполненная при помощи языка UML

4.3. Внедрение разработанного программного обеспечения

4.3.1. Рефакторинг архитектуры библиотеки агентно-реляционного отображения

4.3.2. Рефакторинг архитектуры программного обеспечения мобильного робота AnyWalker

4.4. Методика рефакторинга ЦМЬ-диаграмм классов с учётом заданных критериев качества при помощи программного средства ЦМЬ Refactormg

Выводы по главе

ЗАКЛЮЧЕНИЕ

ГЛОССАРИЙ

СПИСОК ЛИТЕРАТУРЫ

ПРИЛОЖЕНИЕ 1. АКТЫ ВНЕДРЕНИЯ

ПРИЛОЖЕНИЕ 2. СВИДЕТЕЛЬСТВА О ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ПРОГРАММЫ НА ЭВМ

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Программно-математические средства рефакторинга UML-диаграмм классов с учётом заданных критериев качества»

ВВЕДЕНИЕ

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

Анализ и рефакторинг целесообразно проводить как на начальной стадии жизненного цикла разработки программного обеспечения — при проектировании, так и на этапах разработки программного кода и сопровождения.

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

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

В рамках модельно-ориентированного подхода MDA (Model Driven Architecture) предлагается строить модель объектно-ориентированной архитектуры программного обеспечения при помощи унифицированного языка моделирования UML (Unified Modelling Language), а передавать модели между инструментальными средствами при помощи стандарта XMI (XML Model Interchange).

UML-диаграммы классов языка UML используются системным архитектором для определения основных элементов проектируемой системы:

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

На сегодняшний день разработаны инструментальные средства рефакторинга UML-диаграмм классов Dearthoir, Darwin, CODe-Imp, Bunch tool, использующие подход SBSE (Search Based Software Engineering -Поисковая программная инженерия). На входе данные инструментальные средства принимают UML-диаграмму классов и целевую функцию. На выходе пользователь получает UML-диаграмму классов, значение целевой функции которой находится в локальном или глобальном минимуме. Недостатком подхода является то, что трансформации к UML-диаграмме применяются без учёта её семантики. К примеру, в инструментальном средстве Darwin в ходе поиска произвольно применяется паттерн проектирования Адаптер, хотя его использование имеет смысл лишь в очень редких случаях с целью адаптации интерфейса (или нескольких интерфейсов) класса (или нескольких классов) к требуемому виду.

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

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

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

Степень разработанности. В настоящее время разработаны аппараты формального описания UML-диаграмм классов, их трансформации и рефакторинга. Этим исследованиям посвящены работы отечественных ученых Кузнецов М. Б.[24-28], Сергиевский М. В. [13-15], Волкова Е. Д.[16, 17], Страбыкин А. Д. [16, 17] и др. А также западные исследователи Ziemann P., Hölscher K. and Gogolla M. [18], Rahmoune Y., Chaoui A. and Kerkouche E. [10-12], Efrizoni L., Wan-Kadir W. M. N. and Mohamad R. [9], Räihä O. and Vathsavayi S. [47,49-53], Lutz R., Simons C. L. and Parmee I. C. [54-60], O'Keeffe M. and Cinnéide M. O. [66-67], Bowman M., Briand L. C. and Labiche Y. [50] и др.

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

Цель диссертационного исследования. Создание программно-математических средств рефакторинга UML-диаграмм классов с учётом заданных критериев качества на основе формального описания и разработанного алгоритмического обеспечения трансформации UML-диаграмм классов.

Основные задачи диссертационного исследования:

1. Обзор и анализ основных стандартов модельно-ориентированного подхода к разработке программного обеспечения, методов формального

описания, трансформации, рефакторинга ЦМЬ-диаграмм классов и методов задания целевой функции для рефакторинга ЦМЬ-диаграмм классов.

2. Разработка формального описания структурной семантики ЦМЬ-диаграмм классов.

3. Разработка абстрактной структуры данных для представления ЦМЬ-диаграммы классов в оперативной памяти компьютера.

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

5. Проектирование, разработка и отладка программного средства рефакторинга ЦМЬ-диаграмм классов.

6. Разработка методики рефакторинга ЦМЬ-диаграмм классов по заданным критериям качества.

7. Оценка эффективности использования разработанных методов, алгоритмов и программных средств при решении задачи рефакторинга ЦМЬ-диаграмм классов сложных программных систем.

8. Внедрение результатов исследований в учебный процесс.

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

Объект исследования. Объектно-ориентированная архитектура программных систем (ПС), описанная при помощи ЦМЬ-диаграмм классов.

Предмет исследования. Предмет исследования — методы рефакторинга ЦМЬ-диаграмм классов. Предмет исследования определен

областью исследования п. 1 «Модели, методы и алгоритмы проектирования и анализа программ и программных систем, их эквивалентных преобразований, верификации и тестирования» паспорта специальности (05.13.11) и перечнем решаемых в диссертации задач.

Научная новизна

1. Разработано формальное описание UML-диаграмм классов на основе теоретико-множественного подхода.

2. Разработана абстрактная структура данных UML Map для представления UML-диаграммы классов в оперативной памяти компьютера.

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

4. Разработана методика рефакторинга UML-диаграмм классов с учетом заданных критериев качества.

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

Теоретическая и практическая значимость исследования. Внедрение. Теоретическая значимость исследования заключается в разработке формального описания структурной семантики UML-диаграмм классов и доказательства семантической эквивалентности трансформаций «Введение интерфейса», «Стратегия», «Фасад»; а также создании абстрактной

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

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

Результаты работы использованы на предприятии ЗАО «Инженерный центр «ГЕОМИР» для рефакторинга объектно-ориентированной архитектуры библиотеки агенто-реляционного отображения ArPlatform, а также в рамках выполнения реализации проекта № 8.2321.2017/ПЧ государственного задания Министерства образования и науки «Разработка и адаптация систем управления компенсацией динамических отклоняющих воздействий на мобильные объекты, находящиеся в состоянии динамического равновесия».

Основные положения, выносимые на защиту.

1. Способ формального описания структурной семантики UML-диаграмм классов.

2. Методика рефакторинга UML-диаграмм классов с учетом заданных критериев качества.

Апробация работы и публикации. Результаты диссертационного исследования докладывались и обсуждались на конференциях:

1. VIII Межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации», 28 февраля, 2018, Москва. Международная конференция Инжиниринг и Телекоммуникации — En&T 2017, 29-30 ноября, 2017, Москва/Долгопрудный.

2. Международная научно-технической конференция «INTERMATIC-2017», 20 - 24 ноября 2017 г., Москва.

3. VII Межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации», 25 февраля, 2017, Москва.

4. Международная конференция Инжиниринг и Телекоммуникации — En&T 2016, 2016, Москва/Долгопрудный.

5. Международная научно-техническая конференция «INTERMATIC-2016», 21-25 ноября 2016 г., Москва.

6. 6-ая межвузовская школа-семинар «Задачи системного анализа, управления и обработки информации» 21 января 2016 г., Москва.

7. Международная научно-техническая конференция «INTERMATIC-2015», 1-5 декабря 2015 г., Москва.

8. Международная конференция Инжиниринг и Телекоммуникации — En&T 2015, 18-19 ноября, 2015, Москва/Долгопрудный.

Основные результаты диссертационного исследования опубликованы в 15 работах, из них 3 в изданиях, включённых в перечень рецензируемых журналов, рекомендованных ВАК, 3 в изданиях, индексируемых Web of Science.

Также получено 2 авторских свидетельства о регистрации программы для ЭВМ в Федеральной службе интеллектуальной собственности -Роспатент.

Личный вклад соискателя в получение результатов, изложенных в диссертации. Все результаты, выносимые на защиту, получены автором лично.

Структура и объем диссертации

Диссертационное исследование состоит из введения, списка основных терминов, 4 глав и списка использованной литературы. Общий объем работы составляет 162 страницы, в работе присутствует 62 рисунка, 9 таблиц, библиографический список из 105 наименований

ГЛАВА 1. ОБЗОР ОСНОВНЫХ СТАНДАРТОВ И МЕТОДОВ, ОТНОСЯЩИХСЯ К РЕФАКТОРИНГУ

UML-МОДЕЛЕЙ

Приведён обзор и анализ основных стандартов и методов, связанных с задачей рефакторинга UML-диаграмм классов.

В разделе 1. 1 рассмотрен подход модельно-ориентированный подход к разработке программного обеспечения: рассмотрены основные стандарты, указаны преимущества модельно-ориентированного подхода, указана роль в нём задачи рефакторинга UML-диаграмм классов.

В разделе 1.2. сформулирована задача рефакторинга UML-диаграмм классов и перечислены функциональные требования к программному средству рефакторинга UML-диаграмм классов.

В разделе 1.3 проанализированы основные подходы к формальному описанию и трансформации UML-диаграмм классов: графические схемы, стандарт XMI, алгебра логики, теория графов, специализированные языки моделирования.

В разделе 1.4 проанализированы основные подходы к рефакторингу UML-диаграмм классов: рефакторинг на основе методов поисковой программной инженерии, автоматизированный рефакторинг. Так же в разделе рассмотрены существующие программные средства рефакторинга UML-диаграмм классов.

В разделе 1.5 проанализированы основные подходы к заданию целевой функции рефакторинга UML-диаграмм классов: на основе объектно-ориентированных метрик, на соответствие объектно-ориентированным принципам.

1.1. Модельно-ориентированный подход к разработке программного обеспечения

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

Для решения данной задачи группой OMG разрабатывается модельно-ориентированный подход MDA [1]:

MDA (Model Driven Architecture - Архитектура под управлением модели) - концепция, предложенная организацией OMG (Object Management Group), заключающаяся в разделении разработки программной системы три основных этапа: PIM (Platform Independent Model - Платформо-независимая модель), PSM (Platform Specific Model - Платформо-зависимая модель) и Code Model (Программная реализация системы) (см. рис. 1).

•PIM

- Platform Independent Model.

Описывает бизнес-логику приложения без технических деталей

•PSM

• - Platform Specific Model. Описывает модель (1С, реализованной на основе конкретной технологической платформы (например, СУБД}

*Code Model

программная реализация системы

Рис. 1. Основные этапы разработки ПО в рамках подхода MDA

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

Затем PIM-представление проектируемой системы при помощи

автоматических трансформаций отображается в PSM-представление,

описывающее модель программной системы на основе конкретной технологической платформы.

Далее из PSM-представления генерируется код программной реализации системы - Code Model.

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

1.1.1. Стандарты MDA

Для реализации подхода MDA организацией OMG разработаны следующие стандарты: MOF [2], UML[3], XMI [4], OCL [5] и др.

MOF 2 (Meta Object Facilities) - спецификация, разработанная группой OMG для описания метамоделей языков MDA. В основе MOF лежит подмножество языка UML 2.

MOF предлагает концепцию формальных метамоделей и платформонезависимых моделей (Platform Independent Models - PIM) метаданных (к примеру, UML, CWM, SPEM, Java EJB и др.), а также отображения PIM в платформозависимые модели (Platform Specific Models -PSM) [2].

MOF 2 основан на следующих спецификациях, разработанных группой

OMG:

• XMI - для обмена MOF моделями в формате XML

• MOF 2 Facility and Object Lifecycle - для подключения и управления коллекциями элементов MOF-моделей;

• MOF 2 Versioning and Development Lifecycle - для управления версиями и конфигурирования MOF-моделей ;

• MOF Queries and Transformation - для трансформации MOF-моделей;

• MOF Models to Text - для генерации текстовой информации (к примеру, программ) из MOF-моделей;

• Object Constraint Language - для спецификации требований к MOF-моделям.

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

Одними из основоположников UML являются авторы книги [7] Гради Буч, Джеймс Рамбо и Ивар Якбосон.

Язык UML получил своё развитие в рамках концепции MDA (Model Driven Architecture) [1] и спецификаций MOF (Meta Object Facilities), разрабатываемых группой OMG (Object Management Group).

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

Также в документе [3] говорится о том, что одной из задач UML является обеспечение совместимости средств визуального проектирования UML-моделей. Для этого необходима возможность обмена моделями между инструментальными средствами, а также стандартизированные синтаксис и семантика языка UML.

UML-модель - модель системы, описанная при помощи языка UML. UML-модель состоит из следующих основных элементов [3]:

• классификаторы (classifiers);

• события (events);

• действия (behaviors).

UML содержит конструкции для моделирования: спецификации экземпляров, спецификации вхождения, спецификации выполнения для моделируемых объектов.

Для моделирования системы при помощи UML используются следующие диаграммы:

• диаграмма деятельности (Activity Diagram);

• диаграмма классов (Class Diagram);

• диаграмма коммуникации (Communication Diagram);

• диаграмма компонентов (Component Diagram);

• диаграмма составной структуры (Composite Structure Diagram);

• диаграмма развёртывания (Deployment Diagram);

• диаграмма общего взаимодействия (Interaction Overview Diagram);

• диаграмма объектов (Object Diagram);

• диаграмма пакетов (Package Diagram);

• диаграмма профилей (Profile Diagram);

• диаграмма состояний (State Machine Diagram);

• диаграмма прецедентов (Use Case Diagram).

В документе [3] перечислены следующие типы конформности:

1. Абстрактная синтаксическая конформность (Abstract syntax conformance).

2. Конкретная синтаксическая конформность (Concrete syntax conformance).

3. Конформность обмена моделями (Model interchange conformance).

4. Конформность обмена диаграммами (Diagram interchange conformance).

5. Семантическая конформность (Semantic conformance).

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

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

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

Конформность обмена моделями предполагает, что инструментальное средство позволяет импортировать и экспортировать модели в формате XMI. В частности, инструментальное средство, соответствующее UML 2.5, должно импортировать и экспортировать XMI модели в формате UML 2.4.1. и UML 2.4.5.

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

Стандарт XMI специально разработан для обмена моделями между инструментальными средствами.

Как указывается в документе, XMI предоставляет:

• представление объектов в терминах XML элементов и атрибутов;

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

несколькими файлами;

• валидацию XMI документов с использованием XML схем;

• идентификацию объектов посредством обращения к ним через ID или

UUID.

Синтаксис XMI-документа описан в спецификации при помощи EBNF.

Стандарт OCL описывает декларативный язык для задания спецификаций к MOF-моделям, в том числе и к UML-моделям.

Стандарт QVT описывает три языка трансформаций моделей: QVTr (Relations Language), QVTc (Core Language), QVTo (Operational Mappings Language) [6].

QVTr и QVTc - декларативные языки, позволяют описывать двунаправленные преобразования моделей. QVTo - императивный язык, позволяет описывать однонаправленные преобразования.

1.1.2. Преимущества MDA

Модельно-ориентированный подход MDA позволяет на начальном этапе проектирования платформо-независимой модели PIM абстрагироваться от деталей, связанных с выбором той или иной технологической платформы, и сосредоточиться на бизнес-логике.

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

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

1.1.3. Роль автоматизированного рефакторинга UML-диаграмм

классов в MDA

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

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

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

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

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

Задача автоматизированного рефакторинга ЦМЬ-диаграмм классов является актуальной и важной задачей, т.к. она нужна для создания программных средств поддержки проектирования объектно-ориентированной архитектуры программного обеспечения в рамках подхода МОА.

1.2. Задача рефакторинга UML-диаграмм классов

Задача автоматизированного рефакторинга ЦМЬ-диаграмм классов заключается в поиске для заданной ЦМЬ-диаграммы классов d таких трансформаций еТ, которые снижают/увеличивают значение целевой

функции /^ над подмножеством элементов диаграммы Е<^Е, Е^ (см. рис. 2).

Целевая функция /(Ь)

имь-диаграмма классов Ь

о

Система рефакторинга

Множество трансформаций Т

Список трансформаций Т*

Рис. 2. Рефакторинг ЦМЬ-диаграмм классов: общая схема

Программное средство рефакторинга ЦМЬ-диаграмм классов должно решать следующие задачи (см. рис. 3):

1. Для поддержки совместимости с другими инструментальными средствами, поддерживающими стандарты MDA, обеспечивать импорт и экспорт ЦМЬ-диаграмм классов в формате ХМ1.

2. Поддерживать расчёт основных объектно-ориентированных метрик для анализа метрических параметров ЦМЬ-диаграммы классов.

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

4. Обеспечивать автоматизированное применение выбранной пользователем трансформации к ЦМЬ-диаграмме классов.

Рис. 3. Функциональные требования к программному средству рефакторинга ЦМЬ-диаграмм классов

1.3. Основные подходы к формальному описанию и трансформации UML-диаграмм классов

К основным подходам к описанию и трансформации ЦМЬ-диаграмм классов относятся следующие:

1. Графический.

2. Основанный на специализированных языках моделирования.

3. Основанный на алгебре логики.

4. Основанный на теории графов.

Графический подход не удобен для машинной обработки. Подход, основанный на специальных языках моделирования (например, ХМ1) удобен для обмена моделями между инструментальными средствами, но обладает большой вычислительной сложностью поиска и редактирования документа. Основанный на алгебре логики подход обладает высокой степенью формализации, позволяет проверять свойства модели. Основанный на теории графов подход представляет ЦМЬ-диаграмму классов как множество вершин (классов, интерфейсов) и дуг - отношений.

Некоторые исследователи стараются предложить унифицированный подход для описания ЦМЪ-модели в целом [8]. Другие предлагают частные решения для конкретных диаграмм [9-15].

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

Рассмотрим классификацию различных подходов к описанию ЦМЪ-диаграмм классов.

1.3.1. Графические схемы для описания UML-диаграмм классов

Подход заключается в графическом представлении элементов диаграммы и связей между ними (см. рис. 4).

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

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

Рис. 4. Пример представления UML-диаграммы классов в виде графической схемы (поменяй картинку)

1.3.2. Стандарт XMI для формального описания и трансформации

UML-диаграмм классов

Предложенный группой OMG формат XMI (XML Metadata Interchange) [4] специально разработан для обмена моделями между инструментальными средствами.

Как указывается в документе [4], XMI предоставляет:

• представление объектов в терминах XML элементов и атрибутов;

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

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Список литературы диссертационного исследования кандидат наук Дерюгина, Ольга Александровна, 2018 год

СПИСОК ЛИТЕРАТУРЫ

1. OMG Model Driven Architecture (http://www.omg.org/mda)

2. OMG Meta Object Facility Specification 2.5.1. (http: //www. omg. org/spec/MOF/2.5.1/)

3. OMG Unified Modelling Language UML. Version 2.5 (http: //www. omg. org/spec/UML/2. 5)

4. XML Metadata Interchange (XMI) Specification. Version 2.4.2 (http://www.omg.org/spec/XMI/2A2)

5. Object Constraint Language Specification. Version 2.4. (http: //www. omg. org/spec/OCL/2.4)

6. MOF Query/View/Transformation Specification. Version 1.3. (http://www.omg.org/spec/QVT/1.3/)

7. Booch G., Rumbaugh J., Jacobson I. The Unified Modeling Language User Guide // Addison-Wesley Professional, 2005.

8. Evans A. et al. Developing the UML as a formal modelling notation // Proc. UML'98, LNCS. - 1998. - V. 1618.

9. Efrizoni L., Wan-Kadir W. M. N., Mohamad R. Formalization of UML class diagram using description logics // Information Technology (ITSim), 2010 International Symposium in. - IEEE, 2010. - V. 3. - P. 1168-1173.

10.Kerkouche E. et al. A UML and colored petri nets integrated modeling and analysis approach using graph transformation // Journal of Object Technology. -2010. - V. 9. - №. 4. - P. 25-43.

11 .Rahmoune Y., Chaoui A., Kerkouche E. A framework for modeling and analysis UML Activity diagram using graph transformation // Procedia Computer Science. - 2015. - V. 56. - P. 612-617.

12. Rahmoune Y., Chaoui A., Kerkouche E. A framework for modeling and analysis UML Activity diagram using graph transformation // Procedia Computer Science. - 2015. - V. 56. - P. 612-617.

13. Sergievskiy M. N-ary Relations of Association in Class Diagrams: Design

Patterns // International Journal of Advanced Computer Science and Applications. - 2016. - V. 7. - №. 2. - P. 265-268.

14. Sergievskiy M. Description Logic Application for UML Class Diagrams Optimization // International Journal of Advanced Computer Science and Applications. - 2017. - V. 8. - №. 1. - P. 268-272.

15. Сергиевский М. В., Конкин А. Ю. Использование дескрипционной логики для оптимизации диаграмм классов UML // Cloud of science. - 2017. - Т. 4.

- №. 3.

16. Волкова Е. Д., Страбыкин А. Д. Анализ и трансформации исполняемых UML моделей // Труды Института системного программирования РАН. -2006. - Т. 9.

17.Волкова Е. Д., Страбыкин А. Д. Методы композиции и декомпозиции исполняемых UML моделей //Труды Института системного программирования РАН. - 2007. - Т. 13. - №. 2.

18. Ziemann P., Hölscher K., Gogolla M. From UML models to graph transformation systems // Electronic Notes in Theoretical Computer Science. - 2005. - V. 127.

- №. 4. - P. 17-33.

19.Kuske S. et al. An integrated semantics for UML class, object and state diagrams based on graph transformation //International Conference on Integrated Formal Methods. - Springer, Berlin, Heidelberg, 2002. - С. 11-28.

20.Mens T. On the use of graph transformations for model refactoring // International Summer School on Generative and Transformational Techniques in Software Engineering. - Springer, Berlin, Heidelberg, 2005. - С. 219-257.

21. Mens T. et al. Formalizing refactorings with graph transformations // Journal of Software: Evolution and Process. - 2005. - Т. 17. - №. 4. - С. 247-276.

22. An XML Query Language (http://www.w3.org/TR/xquery/)

23.XSL Transformations (XSLT) v1.0. W3C Recommendation, Nov. 1999. (http://www.w3.org/TR/xslt 19)

24.Кузнецов М. Б. Трансформация UML-моделей и её применение в

технологии MDA. М.: ИСП РАН, 2005.

25.Kuznetsov M. Model Driven Architecture and Transformation of UML Models //Proceedings Spring Reseacher's Colloquium on Database and Informationsystems, St. Petersburg, Russia. — 2004. — P. 82-86.

26. Кузнецов М. MDA—новая концепция интеграции приложений // Открытые системы. - 2003. — №. 9. — С. 48-51.

27.Kuznetsov M. Automated Model Transformation in MDA // Colloquium on Database and Information Systems. - 2005. — P. 55-62.

28.Kuznetsov M. B. UML model transformation and its application to MDA technology // Programming and Computer Software. — 2007. — Т. 33. - №. 1. — С. 44-53.

29.Gamma E., Richard H., Ralph J., and John Vl. Design patterns: Abstraction and reuse of object-oriented design. — Springer Berlin Heidelberg, 1993.

30.Fowler M. Refactoring: Improving the Design of Existing Code. — Boston M. A.: Addison-Wesley, 2000.

31.Kerievsky J. Refactoring to Patterns. — Boston M. A.: Addison-Wesley, 2004.

32.Мартин Р., Мартин М. Принципы, паттерны и методики гибкой разработки на языке C#. - Пер. с англ. - СПб.: Символ-Плюс, 2011. - 768 с.

33. Sunye G. et al. Refactoring UML models //International Conference on the Unified Modeling Language. - Springer, Berlin, Heidelberg, 2001. - С. 134-148.

34.Mens T., Tourwe T. A survey of software refactoring //IEEE Transactions on software engineering. - 2004. - Т. 30. - №. 2. - С. 126-139.

35. Moore I. Automatic inheritance hierarchy restructuring and method refactoring // ACM SIGPLAN Notices. - ACM, 1996. - Т. 31. - №. 10. - С. 235-250.

36.Arnold R. S. An introduction to software restructuring // Tutorial on Software Restructuring. - 1986. - С. 1-11.

37.Correa A., Werner C. Applying refactoring techniques to UML/OCL models // International Conference on the Unified Modeling Language. - Springer, Berlin, Heidelberg, 2004. - С. 173-187.

38.Van Gorp P. et al. Towards automating source-consistent UML refactorings // International Conference on the Unified Modeling Language. - Springer, Berlin, Heidelberg, 2003. - C. 144-158.

39.Harman M., Jones B. F. Search-based software engineering //Information and software Technology. - 2001. - V. 43. - №. 14. - P. 833-839.

40.Clarke J. et al. Reformulating software engineering as a search problem //IEE Proceedings-software. - 2003. - V. 150. - №. 3. - P. 161-175.

41. Harman M., Mansouri S. A., Zhang Y. Search-based software engineering: Trends, techniques and applications //ACM Computing Surveys (CSUR). - 2012.

- V. 45. - №. 1. - P. 11.

42.Harman M. The current state and future of search based software engineering //2007 Future of Software Engineering. - IEEE Computer Society, 2007. - P. 342-357.

43.Praditwong K., Harman M., Yao X. Software module clustering as a multi-objective search problem //IEEE Transactions on Software Engineering. - 2011.

- T. 37. - №. 2. - P. 264-282.

44. Jia Y., Harman M. An analysis and survey of the development of mutation testing // IEEE transactions on software engineering. - 2011. - T. 37. - №. 5. - P. 649678.

45. Yoo S., Harman M. Regression testing minimization, selection and prioritization: a survey // Software Testing, Verification and Reliability. - 2012. - V. 22. - №. 2. - P. 67-120.

46.Li Z., Harman M., Hierons R. M. Search algorithms for regression test case prioritization //IEEE Transactions on software engineering. - 2007. - V. 33. -№. 4.

47.Râihâ O. A survey on search-based software design //Computer Science Review.

- 2010. - V. 4. - №. 4. - P. 203-249.

48.Amoui M., Mirarab S., Ansari S. and Lucas C. A genetic algorithm approach to design evolution using design pattern transformation. — International Journal of

Information Technology and Intelligent Computing. — 2006. — V. 1. — P. 235245.

49.Raiha O., Koskimies K., Makinen E. Genetic synthesis of software architecture // Asia-Pacific Conference on Simulated Evolution and Learning. - Springer, Berlin, Heidelberg, 2008. - P. 565-574.

50.Bowman M., Briand L. C., Labiche Y. Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms // IEEE Transactions on Software Engineering. — 2010. — V. 36. — №. 6. — P. 817-837.

51.Vathsavayi S. et al. Tool support for software architecture design with genetic algorithms // Software Engineering Advances (ICSEA), 2010 Fifth International Conference on. — IEEE, 2010. — P. 359-366.

52.Vathsavayi S. et al. Interleaving human and search-based software architecture design // Proceedings of the Estonian Academy of Sciences. - 2013. - T. 62. -№. 1. - P. 16-27.

53.Raiha O., Koskimies K., Makinen E. Generating software architecture spectrum with multi-objective genetic algorithms // Nature and Biologically Inspired Computing (NaBIC), 2011 Third World Congress on. - IEEE, 2011. - P. 29-36.

54.Lutz R. Evolving good hierarchical decompositions of complex systems // Journal of systems architecture. — 2001. — V. 47. — №. 7. — P. 613-634.

55.Ramirez A., Romero J. R., Simons C. A systematic review of interaction in search-based software engineering // IEEE Transactions on Software Engineering. - 2018.

56. Simons C. L., Parmee I. C. A cross-disciplinary technology transfer for search-based evolutionary computing: from engineering design to software engineering design // Engineering Optimization. - 2007. - T. 39. - №. 5. - P. 631-648.

57. Simons C. L., Smith J., White P. Interactive ant colony optimization (iACO) for early lifecycle software design // Swarm Intelligence. - 2014. - T. 8. - №. 2. - P. 139-157.

58. Simons C. L., Parmee I. C. Elegant object-oriented software design via interactive, evolutionary computation // IEEE Transactions on Systems, Man, and Cybernetics, Part C (Applications and Reviews). - 2012. - V. 42. - №. 6. -P. 1797-1805.

59. Simons C. L., Parmee I. C., Gwynllyw R. Interactive, evolutionary search in upstream object-oriented class design // IEEE Transactions on Software Engineering. - 2010. - V. 36. - №. 6. - P. 798-816.

60. Simons C. L., Parmee I. C. Single and multi-objective genetic operators in object-oriented conceptual software design // Proceedings of the 8th annual conference on Genetic and evolutionary computation. — ACM, 2006. — P. 1957-1958.

61.Deryugina O. Improving the structural quality of UML class diagrams with the genetic algorithm // ITM Web of Conferences. — EDP Sciences, 2016. — V. 6.

62.Harman M., Jones B. F. Search-based software engineering // Information and software Technology. - 2001. - T. 43. - №. 14. - P. 833-839.

63.Harman M., Mansouri S. A., Zhang Y. Search-based software engineering: Trends, techniques and applications // ACM Computing Surveys (CSUR). — 2012. — V. 45. — №. 1. — P. 11.

64.Petke J. et al. Genetic improvement of software: a comprehensive survey // IEEE Transactions on Evolutionary Computation. - 2017.

65.Mkaouer M. W. et al. High dimensional search-based software engineering: finding tradeoffs among 15 objectives for automating software refactoring using NSGA-III // Proceedings of the 2014 Annual Conference on Genetic and Evolutionary Computation. - ACM, 2014. - P. 1263-1270.

66.O'Keeffe M., Cinnéide M. O. Towards automated design improvements through combinatorial optimization // Workshop on Directions in Software Engineering and Environments (WoDiSEE'04), W2S International Conference on Software Engineering. — 2004. — P. 75-82.

67.O'Keeffe M., Cinnéide M. O. Search-based software maintenance // Software Maintenance and Reengineering, 2006. CSMR 2006. Proceedings of the 10th

European Conference on. — IEEE, 2006. — P. 249-260.

68.Mancoridis S. et al. Using automatic clustering to produce high-level system organizations of source code // Program Comprehension, 1998. IWPC'98. Proceedings., 6th International Workshop on. — IEEE, 1998. — P. 45-52.

69.Boger M., Sturm T., Fragemann P. Refactoring browser for UML //Net. ObjectDays: International Conference on Object-Oriented and Internet-Based Technologies, Concepts, and Applications for a Networked World. - Springer, Berlin, Heidelberg, 2002. - P. 366-377.

70.ГОСТ 28806-90. Оценка качества программных стредств. Термины и определения. - Введ. 1992-01-01. - М., 1991.

71.ГОСТ 28195-99. Оценка качества программных средств. Общие положения. Введ. 2000-01-03. М., 1998. 49 с.

72.ISO/IEC 25000:2005. Программная инженерия. Требования к качеству и оценка программного продукта (SQuaRE). Планирование и управление. -Введ. 2007-02-01. - Женева: ISO/IEC, 2007.

73.ISO/IEC 20510:2011. Системная и программная инженерия. Требования к качеству и оценка программного продукта (SQuaRE). Модели качества систем и программных средства. - Введ. 2011-03-01. Женева: ISO/IEC, 2011.

74.ISO/IEC 25012:2008. Программная инженерия. Требования к качеству и оценка программного продукта (SQuaRE). Модель качества данных. -Введ. 2008-12-15. - Женева: ISO/IEC, 2008.

75.ISO/IEC 25020:2007. Программная инженерия. Требования к качеству и оценка программного продукта (SQuaRE). Эталонная модель измерений. -Введ. 2007-05-15. - Женева: ISO.IEC, 2007.

76.ISO/IEC 25021:2012. Системная и программная инженерия. Требования к качеству и оценка программного продукта (SQuaRE). Элементы мер качества. - Введ. 2012-11-01. - Женева: ISO/IEC, 2012.

77.Chidamber S. R., Kemerer C. F. Towards a metrics suite for object oriented design. - ACM, 1991. - T. 26. - №. 11. - P. 197-211.

78.Chidamber R.S., Kemerer C. F. Metrics Suite for Object Oriented Design, IEEE Transactions on Software Engineering. - V. 20. - №6. - 1994. - P. 476-493.

79.Chidamber S. R., Darcy D. P., Kemerer C. F. Managerial use of metrics for object-oriented software: An exploratory analysis // IEEE Transactions on software Engineering. - 1998. - T. 24. - №. 8. - P. 629-639.

80. Li W., Henry S. Maintenance metrics for the object oriented paradigm // Software Metrics Symposium, 1993. Proceedings., First International. - IEEE, 1993. - P. 52-60.

81. Li W., Henry S. Object-oriented metrics that predict maintainability // Journal of systems and software. - 1993. - T. 23. - №. 2. - P. 111-122.

82. Lorenz M. and Kidd J.: Object-Oriented Software Metrics: A Practical Guide, Prentice Hall, Englewood Cliffs, New Jersey, 1994.

83.Abreu F. B., Carapuça R. Object-oriented software engineering: Measuring and controlling the development process // Proceedings of the 4th international conference on software quality. - 1994. - V. 186. - P. 1-8.

84.Abreu F. B., Melo W. Evaluating the impact of object-oriented design on software quality // Software Metrics Symposium, 1996., Proceedings of the 3rd International. - IEEE, 1996. - P. 90-99.

85.Abreu F. B., Ochoa L. and Goulao M.: "The MOOD metrics set", INESC/ISEG Internal Report, 1998.

86.Basili V. R., Briand L. C., Melo W. L. A validation of object-oriented design metrics as quality indicators // IEEE Transactions on software engineering. -1996. - V. 22. - №. 10. - P. 751-761.

87. Briand L., Devanbu P., Melo W. An investigation into coupling measures for C++ // Proceedings of the 19th international conference on Software engineering. - ACM, 1997. - P. 412-421.

88.Briand L. C., Daly J. W., Wust J. K. A unified framework for coupling measurement in object-oriented systems // IEEE Transactions on software Engineering. - 1999. - V. 25. - №. 1. - P. 91-121.

89.Briand L. C., Daly J. W., Wüst J. A unified framework for cohesion measurement in object-oriented systems // Empirical Software Engineering. - 1998. - V. 3. -№. 1. - P. 65-117.

90.Bansiya J. Class Cohesion Metric For Object Oriented Designs // Journal of Object-Oriented Programming. - 1999. - V. 11. - №. 8. - P. 47-52.

91.Bansiya J., Davis C. G. A hierarchical model for object-oriented design quality assessment // IEEE Transactions on software engineering. - 2002. - V. 28. - №. 1. - P. 4-17.

92.Marchesi M. OOA metrics for the Unified Modeling Language // Software Maintenance and Reengineering, 1998. Proceedings of the Second Euromicro Conference on. - IEEE, 1998. - P. 67-73.

93.Genero M., Piattini M., Calero C. Early measures for UML class diagrams // L'objet. - 2000. - V. 6. - №. 4. - P. 489-505.

94.Genero M., Piattini M., Jimenez L. Empirical validation of class diagram complexity metrics // Computer Science Society, 2001. SCCC'01. Proceedings. XXI Internatinal Conference of the Chilean. - IEEE, 2001. - P. 95-104.

95.Genero M. Defining and validating metrics for conceptual models // Computer Science Department. - 2002.

96.Genero M. et al. Assessing object-oriented conceptual models maintainability // International Conference on Conceptual Modeling. - Springer, Berlin, Heidelberg, 2002. - P. 288-299.

97.Genero M. et al. Building UML class diagram maintainability prediction models based on early metrics // Software Metrics Symposium, 2003. Proceedings. Ninth International. - IEEE, 2003. - P. 263-275.

98.Genero M., Piattini M., Calero C. Early measures for UML class diagrams // L'objet. - 2000. - V. 6. - №. 4. - P. 489-505.

99.Дерюгина О. А. Программно-математические средства рефакторинга с учетом заданных критериев качества // Cloud of Science. — 2018. — Т. 5 — №1. — С. 86-138.

100. Дерюгина О. А., Никульчев Е. В. Инструментальное средство автоматизированного рефакторинга UML-диаграмм классов по заданным критериям качества // Кибернетика и программирование. — 2017. — № 1.

— С. 107-118.

101. Дерюгина О. А. Семантика и семантически эквивалентные трансформации UML-диаграмм классов // Труды МФТИ. — 2015. — Т. 7.

— №. 2. - С. 146.

102. Deryugina O. Tool support for the UML class diagram refactoring // V International Conference «Engineering & Telecommunication En&T 2017». — 2017. — P. 24-26.

103. Deryugina O., Nikulchev E. Algorithms of the UML Class Diagram Analysis and Their Effectiveness: Strategy and Interface Insertion Transformations // ITM Web of Conferences. — 2017. — V. 10. — P. 04002

104. Nikulchev E., Deryugina O. Model and Criteria for the Automated Refactoring of the UML Class Diagrams // International Journal of Advanced Computer Science and Applications. — 2016. — V. 7. — №. 12. — P. 76-79.

105. Clang: C Family Language Frontend for LLVM [электронный ресурс] //

URL: http://clang.llvm.org// (дата обращения 02.04.2018).

ПРИЛОЖЕНИЕ 1. АКТЫ ВНЕДРЕНИЯ

УТВЕРЖДАЮ

Директор ЗАО «Инженерный центр «ГЕОМИР»

' «Ю» сс*осГ

В. Н. Воронков _20 / /I ода

АКТ

внедрения результатов диссертационной работы Дерюгиной Ольги Александровны, представленной на соискание учёной степени кандидата технических наук

Настоящим актом подтверждаю, что результаты диссертационного исследования, выполненного Дерюгиной Ольгой Александровной, посвященного решению научно-практической задачи рефакториига иМЬ-диаграмм классов с учётом заданных критериев качества, использованы при разработке программного обеспечения ЗАО «Инженерный I Центр «ГЕОМИР».

Программное средство рефакторинга иМЬ-диаграмм классов иМ1 ГШайопг^, разработанное О, А. Дерюгиной, внедрено в технологический процесс создания программного обеспечения в ЗАО «Инженерный Центр «ГЕОМИР». Оно позволило провести анализ объектно-ориентированной архитектуры разработанного программного обеспечения и выявить шаблоны проектирования, применение которых позволит увеличить её гибкость и сопровождаемость.

г. Мытищи

« 10 » ^^ЧО-^'д ^ 2Ш7-Г,

Директор,

доктор технических наук, профессор

/

Воронков В. Н.

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение высшего образования «Московский технологический университет»

МИРЭА

Институт комплексной безопасности и специального п _Кафедра КБ-3 «Управление и моделирование с

Акт внедрения в учебный процесс материалов диссертационной работы «Программно-математические средства рефакторинга иМЬ-диаграмм классов с учётом заданных критериев качества» Дерюгиной Ольги Александровны

Настоящим актом подтверждается, что основные положения и результаты диссертационного исследования внедрены в учебный процесс кафедры КБ-3 «Управление и моделирование систем» Московского технологического университета МИРЭА.

Результаты исследований, полученных Дерюгиной О. А., используются на практических занятиях по дисциплинам «Технологии разработки программного обеспечения». «Принципы построения, проектирования и эксплуатации информационно-аналитических систем», «Методология программной инженерии информационных систем».

Зав. кафедрой КБ-3 «Управление и моделирование сист™»

д. в. н„ профессор

Лось В. П.

ПРИЛОЖЕНИЕ 2. СВИДЕТЕЛЬСТВА О ГОСУДАРСТВЕННОЙ РЕГИСТРАЦИИ ПРОГРАММЫ

НА ЭВМ

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