автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Разработка программного обеспечения с применением UML диаграмм и сетей Петри для систем управления локальным оборудованием
Автореферат диссертации по теме "Разработка программного обеспечения с применением UML диаграмм и сетей Петри для систем управления локальным оборудованием"
На правах рукописи
М
Романников Дмитрий Олегович
РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПРИМЕНЕНИЕМ иМЬ ДИАГРАММ И СЕТЕЙ ПЕТРИ ДЛЯ СИСТЕМ УПРАВЛЕНИЯ ЛОКАЛЬНЫМ ОБОРУДОВАНИЕМ
Специальность 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
Автореферат диссертации на соискание ученой степени кандидата технических наук
1 2 ИЮЛ 2012
Новосибирск - 2012
005046440
005046440
Работа выполнена в Федеральном государственном бюджетном образовательном учреждении высшего профессионального образования «Новосибирский государственный технический университет»
Научный руководитель доктор технических наук, профессор
Воевода Александр Александрович
Официальные оппоненты: Малышкин Виктор Эммануилович, доктор
технических наук, профессор, Федеральное государственное бюджетное учреждении науки Институт вычислительной математики и математической геофизики СО РАН, заведующий отделом математического обеспечения высокопроизводительных
вычислительных систем
Задорожный Анатолий Филиппович, кандидат технических наук, доцент, Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования Новосибирский государственный архитектурно-строительный университет
(Сибстрин), заведующий кафедрой
информационных систем и технологий
Ведущая организация: Федеральное государственное бюджетное
образовательное учреждение высшего профессионального образования «Национальный исследовательский Томский политехнический университет», г. Томск
Защита состоится «20» сентября 2012 г. в 14.00 часов на заседании диссертационного совета Д 212.173.06 при ФГБОУ ВПО Новосибирском государственном техническом университете по адресу: 630092 РФ, г. Новосибирск, пр. К.Маркса 20.
С диссертацией можно ознакомиться в библиотеке ФГБОУ ВПО Новосибирского государственного технического университета. Автореферат разослан «¡¿£>> г.
Ученый секретарь диссертационного совета
Чубич Владимир Михайлович
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы. В настоящее время программное обеспечение (ПО) используется в большинстве сфер человеческой деятельности. От его надежности и функциональности зависит успешность работы многих предприятий. Поэтому качество разрабатываемого ПО приобретает важное значение. Существующие подходы к разработке ПО не гарантируют его качество в достаточной степени. Тестирование разрабатываемого продукта также не может гарантировать отсутствие ошибок в программе, так как многие из них могут проявляться в специфических условиях, которые невозможно смоделировать в тестовой среде. Таким образом, проблемы качества ПО при его разработке являются достаточно актуальными.
В настоящее время используются некоторые формальные способы разработки качественного ПО. Особый интерес представляют такие из них которые способны гарантировать качество и безотказность создаваемого ПО. Однако вышеприведенные способы разработки редко используются на практике из-за сложности их применения.
Одним из возможных способов формального доказательства верности ПО является применение алгоритмов на основе интеграции 1ЛМЬ диаграмм и сетей Петри, математический аппарат которых достаточно подробно изучен В.Е.Котовым, Дж.Петерсоном и др., что позволяет использовать их для анализа модели системы (Д.А.Колесников, М.А.Ищенко, С.В.Коротиков, А.В.Доля, Ь.Вагез1, М.Регге, З.ВегпагсН, 8.Бопа1еШ, 1.Мегзе^ег, Е.Р.ЫаитоукЬ).
Тем не менее, разработанные на настоящий момент методологические, технологические и инструментальные решения либо не позволяют выполнить моделирование для совокупности диаграмм и моделировать поведение нескольких объектов в системе одновременно, либо используют классические сети Петри, что в совокупности не дает возможность выполнить полное моделирование разрабатываемой системы. Следует также отметить, что рекомендации по анализу результатов моделирования сетей Петри нуждаются в дополнительном исследовании.
Цель работы. Разработать методику написания программного обеспечения с использованием иМЬ диаграмм и сетей Петри, применимую для разработки систем управления локальным оборудованием.
Для достижения поставленной цели решаются следующие задачи:
- анализ современных подходов создания высококачественного программного обеспечения;
- определения ключевых особенностей алгоритмов разработки с использованием иМЬ диаграмм и сетей Петри, подлежащих изменению или улучшению;
- разработка правил обнаружения программных ошибок обращения к несуществующему элементу массива и утечек памяти при работе с объектами на основе анализа результатов моделирования системы в сетях Петри;
- создание методики разработки ПО с использованием 1ЖЬ диаграмм и сетей Петри для применения к разработке ПО систем управления локальным оборудованием и обеспечения возможности моделирования систем с произвольным количеством объектов одного класса одновременно;
- применение методики разработки для решения задачи разработки программного обеспечения системы управления локальным оборудованием водонапорных станций водоканала. Проверить возможность применения предлагаемой методики для разработки ПО для задачи поиска пути движения манипулятора от начальной до конечной координат в замкнутом пространстве с препятствиями и разработке ресурсной задачи из игровой индустрии.
Объект исследования. Объектом исследования является методика разработки программного обеспечения, основанная на использовании иМЬ диаграмм и сетей Петри.
Методы исследования. При решении задач диссертационного исследования использовались следующие методы: системный анализ; аппарат сетей Петри; разделы дискретной математики; объектно-ориентированный анализ.
При реализации примеров применения рассматриваемой методики использовались отраслевые и международные стандарты, САБЕ-технологии, современные инструментальные среды и пакеты моделирования.
Научная новизна. В диссертационном исследовании были достигнуты следующие результаты:
- методика разработки ПО с использованием диаграмм ЦМЬ и сетей Петри для разработки ПО для систем локальной автоматики. Изменен набор используемых иМЬ диаграмм, что позволяет разрабатывать более сложные алгоритмы системы. Внесены изменения в набор правил формального преобразования диаграмм иМЬ в цветные сети Петри, структура которых позволяет выполнять моделирование системы с несколькими объектами одного класса одновременно и моделирование статических методов класса;
- разработаны рекомендации по использованию иМЬ диаграмм состояния и диаграмм действия для описания динамических свойств класса;
- предложены варианты обнаружения некоторых типов программных ошибок: обращение к несуществующим элементам массива, неверное выделение и освобождение памяти объектов - утечка памяти.
Практическая ценность и внедрение. Проведенные исследования подтвердили эффективность применения рассматриваемой методики на всех этапах разработки ПО.
Результаты диссертационной работы были использованы в разработке и внедрении ПО системы управления локальным оборудованием водонапорных станций в водоканале города Тюмень, в гранте Федерального Агентства по образованию ГК № П 694 от 12.08.2009 г. (конкурс НК-81П (2009 - 2011 гг.)), а также в конкурсе фундаментальных и прикладных исследований внутренних грантов НГТУ «Использование иМЬ-диаграмм и аппарата сетей
Петри как формальных методик анализа архитектуры программного обеспечения». Результаты диссертационного исследования используются в учебном процессе НГТУ. Показана возможность применения не только для систем локальной автоматики, но и для других задач, например: упрощенная задача автоматического поиска допустимых перемещений манипулятора в пространстве с препятствиями и разработка ресурсной задач игровой индустрии.
На защиту выносятся следующие положения:
- методика разработки ПО с использованием UML диаграмм и сетей Петри, включающая набор правил преобразования, позволяющих моделировать поведение нескольких объектов одного класса одновременно и выполнять моделирование статических классов системы;
- рекомендации по использованию UML диаграмм действия и состояния для описания динамических свойств класса;
- рекомендации по обнаружению программных ошибок обращения к несуществующим элементам массива и утечки памяти при работе с объектами;
- разработанная на основе методики разработки программного обеспечения с использованием UML диаграмм и сетей Петри программная система управления водонапорными станциями водоканала города Тюмень.
Апробация работы. Основные положения диссертации были изложены на следующих конференциях: международной научной заочной конференции «Актуальные вопросы современной техники и технологии» (Липецк, 24 апреля 2010 г.); XIII международной научно-технической конференции «Информационно-вычислительные технологии и их приложения» (Пенза, декабрь 2010 г.); международной научно-практической конференции «Традиции и инновации в современном социокультурном пространстве» (Новосибирск, 2011 г.); DST-RFBR Sponsored Indo-Russian Joint Workshop «Computational intelligence and modern heuristics in automation and robotics» (Surat, India, 20-22 September 2010); RFBR and DST sponsored The second Russian-Indian Joint Workshop «Computational intelligence and modern heuristics in automation and robotics» (Novosibirsk, Russia, 10-13 September 2011); XIII международной научно-практической конференции «Наука и современность» (Новосибирск, 2011 г.); международной заочной научно-практической конференции «Наука и техника XXI века» (Новосибирск, 2011 г.). А также в школе молодых ученых САИТ-2011 секции №2 «Информационные технологии в системах автоматического и автоматизированного управления» (Новосибирск, 12-16 сентября 2011 г.) и научных семинарах кафедры «Автоматика» НГТУ (2009 - 2011 гг.).
Публикации. Основные положения и результаты диссертационной работы опубликованы в 21 работах, в том числе: статей в изданиях, рекомендуемых ВАК РФ - 3; в сборниках научных трудов - 12, материалах международных симпозиумов и конференций — 6.
Структура и объём диссертации. Диссертация состоит из введения, четырех глав, заключения, библиографического списка использованной литературы и приложений. Работа изложена на 195 с. машинописного текста: основное содержание на 116 с. и включает 49 рисунков, 6 таблиц и список литературы из 106 наименований.
СОДЕРЖАНИЕ РАБОТЫ
Во введении рассмотрена актуальность разработки качественного программного обеспечения при помощи алгоритмов разработки с использованием UML диаграмм и сетей Петри. Определены цели и задачи диссертационного исследования, сформулированы положения, выносимые на защиту, их научная новизна и практическая ценность. Представлены основания для выполнения работы, ее апробация и структура.
В первой главе диссертации анализируются существующие подходы и алгоритмы к разработке ПО принятые в индустрии программирования. Среди всех наиболее подходящих для разработки качественного программного обеспечения подходов можно выделить итеративные методики. Для написания кода в индустрии программного обеспечения широко применяются принципы объектно-ориентированного программирования (ООП). В качестве языка графического отображения принципов ООП активно используются UML диаграммы, что значительно ускоряет процесс разработки ПО.
Однако только программные коды, в том числе через отражение в UML диаграммах, не могут гарантировать качества системы даже при высоком уровне тестирования, так как многие ошибки проявляются в специфических условиях, которые не воспроизводимы в тестовой среде. Для достижения качества программных систем выбираются сети Петри, позволяющие выполнять, как ручное моделирование системы (при помощи специальных программных пакетов), так и анализ пространства состояний системы для выявления вероятных ошибок в ПО. Анализ пространства состояния системы осуществляется при помощи анализа дерева достижимости сети Петри. Математический аппарат сетей Петри достаточно подробно изучен в последние 30-40 лет такими учеными как В. Е. Котов, Дж. Петерсон. Тем не менее, использование сетей Петри не нашло широкого применения на практике.
Сети Петри применяются во многих сферах разработки, например на рис. 1 представлена часть задачи о моделировании протокола связи между диспетчерской станцией и таксофоном. Протокол связи представлен сетью Петри при помощи пакета моделирования CPN Tools. На основании моделирования и анализа сети сделан вывод о наличии ошибок в системе: множественное ветвление сети и ее небезопасность. После введения дополнительных мест SI, S2 и S3, анализ сети проблем не выявил.
Отдельно стоит выделить методики разработки ПО с совместным использованием сетей Петри и UML диаграмм. Они обладают преимуществами математического аппарата сетей Петри, быстротой разработки и наглядностью представления UML диаграмм и с их помощью можно как оценивать
быстродействие разрабатываемых систем, анализа ПО.
так и применять для различного
Однако эти методики не свободны от недостатков, не позволяющих выполнить полное моделирование системы: отсутствие однозначного формального преобразования элементов иМЬ диаграмм в сети Петри, отсутствие примеров использования и правил преобразования для таких инструментов иМЬ диаграмм как (сохранение истории, стереотипы).
Также к недостаткам можно отнести такие проблемы анализа сети Петри, как: «взрыв» пространства состояний сети Петри, сворачи-ваемость сети Петри для идентичных объектов и отсутствие достаточно формальных методик анализа
Рис. 1. Пример сети Петри: сверху с ошибкой, снизу — исправленная
ПО на основе результатов анализа модели, выполненной при помощи сетей Петри.
Во второй главе на основе комбинации и анализа наиболее удачных процедур, сформирован алгоритм разработки ПО, который позволит выявить их общие достоинства и недостатки. Приводятся рекомендации применения диаграмм состояний и действий для описания динамических свойств классов. Формулируются задачи диссертационного исследования.
В программной индустрии разработки ПО применяются различные процедуры с использованием иМЬ диаграмм и сетей Петри, например в работах. Комбинируя и анализируя наиболее удачные процедуры, сформирован алгоритм разработки ПО, который позволяет выявить их общие достоинства и недостатки:
Рассмотрим данные недостатки:
- построение диаграммы состояний на основе сложных состояний, содержащих внутреннюю часть методов, не является правильным, так как в таком случаи диаграмма состояний не отражает реальные состояния объекта, а показывает выполнение метода объекта в данный момент;
- использование диаграмм состояний не является обязательным, так как они могут быть заменены на другие диаграммы, которые описывают поведение системы, например, диаграммы действий;
- использование только диаграммы последовательности не способно отразить взаимодействие между различными классами в достаточной мере (диаграмма взаимодействий не позволяет выполнить построение сложных алгоритмов). Динамическое создание объектов, используемых в данном подходе, ограничивает описание межобъектного взаимодействия системы;
- представленный выше алгоритм разработки ПО является узкоспециализированным и направлен на создание ПО для систем с клиент-серверной архитектурой. Нет примеров его применения для создания систем другого класса;
- ручной прогон модели в сетях Петри по различным последовательностям выполнения является не обязательным и излишним. Так как ручной «прогон» системы в нотации сетей Петри не является целью разработки ПО и, по своей сути, не отличается от ручного «прогона» программы в программных кодах при помощи отладчика (debugger).
Рассмотрим диаграмму состояний (рис. 2) отображающую поведение заслонки. Изначально заслонка находится в положении closed. При срабатывании метода on состояние меняется на opening до того момента, как будет вызван метод checkOn. При его поступлении заслонка переходит в состояние open. Если сигнал не поступил в течение 50 секунд, то объект переходит в состояние error. Аналогичное поведение происходит при срабатывании метода off. Из состояния error в состояние closed задвижка переходит при вызове метода аск.
Далее рассмотрим описание той же задачи при помощи диаграмм действий (рис. 3, 4). Диаграммы действий не имеют функционала для отображения состояний объекта, но при их помощи можно более детально и наглядно отобразить методы классов. Поэтому для описания динамических свойств класса используется описание ме-
Рис. 2. Диаграмма состояний
тодов класса при помощи диаграмм действий. Вызов данных методов также осуществляется при помощи диаграммы отображающей межобъектное взаимодействие.
?
2
setState(2); у
ValveOpenAck
at(50)
( setState(i)T~)
( setState(4); ^
ValveError
Рис. 3. Реализация метода оп при помощи диаграмм действий
1
Приведем некоторые рекомендации по использованию UML диаграмм состояния и действия для описания динамических свойств классов. Использование диаграмм действий обосновано при линейном исполнении программы и описании алгоритмической части ПО. Использование диаграмм действий является более наглядным при наличии малого количества состояния объекта, так как при этом диаграмма состояний будет представлять одно состояние с множеством переходов, замкнутых на данное состояние. Возможным дальнейшим развитием UML диаграмм будет являться объединение диаграмм действий и диа-| грамм состояния. Реко-
мендовано использовать диаграммы состояний
Рис. 4. Реализация метода off при помощи диа- при наличии множества грамм действий состояний у класса, а
также при работе с внешними сигналами. При описании алгоритмической части ПО удобнее использовать диаграммы действий.
Рассмотрим сеть Петри (рис. 5), иллюстрирующую применение «старого» набора правил формального преобразования. Из данной сети видно, что при создании нескольких объектов класса CThreadl посредством вызова сообщений newl и new2, метки попадают в места WaitingForRec и Working. При срабатывании события dell, моделирующего удаление объекта, в сети к
ValveOpenAck
setState(3); j-
at(50)
( setState(0)i~)
( setState(4); )
ValveError
>
удалению будут доступны сразу два существующих объекта, а не только первый объект как следует из логики программы.
Таким образом, сформулируем недостатки правил формального преобразования. К основным относятся неприспособленность сети Петри для моделирования (создания) двух и более объектов одного класса, отсутствие возможности получения результата выполнения метода и моделирования статических методов.
(ТМБ^рре!),!)
(Т^е^ей, Е)0™ЁЗ-
[#1(е7) = пе\»1 оге15е #1(еу) = с!е11 оге^е #1(еу) = 05епс1 оге15е #1(еу) - Wгeпd оге|5е #1(еу) - пем»2]
Рис. 5. Пример сети Петри для иллюстрации «старого» набора правил преобразования
Следует отметить, что в опубликованных работах в основном рассматриваются правила и иллюстрации данных правил преобразования одиночных диаграмм или наборов диаграмм в сети Петри. Есть ряд работ по анализу иМЬ диаграмм в вопросах производительности. Однако данные доводы не являются ключевыми для широкого использования рассматриваемой методики в программной инженерии. Существенным аспектом является возможность обнаружения и указания вероятных программных ошибок уже на этапе разработки программы.
Вторая глава заканчивается постановкой задач диссертационного исследования для устранения вышеприведенных недостатков разработки и создания качественного ПО с использованием иМЬ диаграмм и сетей Петри.
Третья глава посвящена вопросам конструирования методики разработки ПО для систем локальной автоматики, с учетом устранения приведен-
ных недостатков правил преобразования и выявленных ошибок в исходной программе на основе анализа результатов моделирования сетей Петри.
Во второй главе выделены существенные недостатки используемого алгоритма разработки ПО, среди которых наиболее существенными являются: отсутствие возможности моделирования поведения нескольких объектов одновременно, неприспособленность сети Петри к моделированию статических методов и невозможность получения результата выполнения метода. Следствием вышеприведенных недостатков является неполноценное моделирование системы и вероятность потенциального пропуска ошибок моделирования.
Предложены изменения в правилах формирования сети Петри на основе UML диаграмм:
- к переходам сети необходимо добавить защитные условия, которые будут определять, какая метка (метка представляет собой объект) может совершить переход (т.е. для какого объекта будет вызван метод). Защитное условие будет работать на основе уникального идентификатора объекта, к которому может относиться как имя объекта, так и обычный целочисленный номер. Идентификатор объекта должен храниться в метке, которая моделирует его поведение. Для этого необходимо расширить тип метки и ввести дополнительное значение для хранения идентификатора;
- для вызова методов использовать дополнительные места, соединенные с переходом, обозначающим срабатывание метода;
- возврат программы на место вызова метода и возвращение значения выполнения метода осуществлять при помощи дополнительного места, соединенного с переходом, в котором заканчивается выполнение метода;
- для моделирования статических методов использовать такую же схему, как и для моделирования обычных методов, за исключением того, что переходы и места такого метода не соединены с местами и объектами самого метода.
Сформированная с помощью предлагаемых изменений в правилах преобразования сеть Петри представлена на рис. 6.
В дополнение к вышеприведенным правилам преобразования необходимо определить тип места для моделирования вызова методов класса в сетях Петри. Тип места определяется входными параметрами метода в UML диаграмме классов. Кроме параметров метода необходимо передать дополнительные «служебные» параметры, которые требуются для правильного согласования между участками сети Петри. К таким параметрам относятся: идентификатор объекта, для которого вызван данный метод, и идентификатор потока, в котором произошел вызов метода. Отсюда, общая структура типа данных метки будет иметь следующий вид: (ID, OPTIONS), где ID -идентификатор объекта и потока, a OPTIONS - параметры, передающиеся в метод. Идентификатор объекта и потока представляет собой пару ID O*ID_T, где первый - идентификатор объекта, а второй - потока. Для идентификации объектов и потоков можно использовать любые уникальные
идентификаторы, например в данной работе использовались целочисленные значения.
cute_Ack_Ret.
<^waitingOfOffSigna^> <^waffingOfOnSignaP>
Valva
[#l(v)-i]
^Éxecuta_¿ff>———►] off -^Workino^*-
Valve
onAck
<^Exacute_Qff_ReT>4-
Valve
Execute_0^ INT
"Execute_On_Re^> INT
Рис. 6. Сеть Петри, сформированная с помощью модифицированных правил формального преобразования
^xacute_Q^ MalnAlgorithm
(#l(ma), #2(ma))
MalnAlgorithm
На рис. 7 приведен пример вызова метода On класса Valve, изображенного на рис. 6. Вызов метода On осуществляется при помощи мест Оп1 и Onl_Ret. Для моделирования вызова метода необходимо, чтобы сработал переход Onl, при этом одна метка с идентификатором и параметрами переместится в место Onl, а вторая метка, в которой будут сохраняться значения до вызова метода, переходит в место OnlBuff.
Выход из метода осуществляется при помощи перехода Onl_Ret и мест Onl_Ret и OnlBuff. При вызове метода метка попадает в место OnlBuff. Когда метод закончил свое выполнение, то метка переходит в место Onl_Ret. Таким образом, переход Onl_Ret становится доступен при выполнении защитного условия [#1(та) = #2(void) andalso #2(та) = #l(void)], которое определяет, в какой участок сети должна быть возвращена метка.
[#l(ma) - #2(void) andalso #2(ma) = #l(vold)]
Рис. 7. Вызов метода On класса Valve
1' (0,0)++ 1' (0,1)++ AR _ 1" [0,2)
В третьей главе рассмотрены вопросы анализа результатов моделирования сети Петри и сформированы правила обнаружения программных ошибок обращения к несуществующему элементу массива и утечки памяти при работе с объектами.
Рассмотрим сеть Петри (рис. 8), отображающую программу, в которой инициализируется массив размерностью в три элемента, а затем выполняется обращение к пятому элементу массива, т.е. к несуществующему элементу. Данную ошибку можно обнаружиться следующими способами: при ручном моделировании системы (не является приоритетным способом); при анализе сети Петри на основе пространства состояний с ограниченным количеством элементов массива в соответствии с кодом программы; при анализе сети Петри на основе пространства состояний с неограниченным количеством элементов массива. В данном случае моделирование пройдет успешно, но учитывая свойства ограниченности сети и статистику, полученную из отчета анализа состояний, можно сделать вывод о наличии ошибки. Место Fail на сети execution содержит три метки с максимальным значением индекса массива «5» - «execution'Fail 1 3'(0,5)»
Рассмотрим сеть Петри (рис. 9 и 10). Она представляет собой класс memory leak (рис. 9) и основную часть программы (рис. 10), содержащую последовательный вызов десяти конструкторов и одного деструктора, что приводит к ошибке утечки памяти. Обнаружение ошибки утечки памяти основано на анализе результатов моделирования (таблица 1).
Рис. 8. Сеть Петри
____п
<Cjnernory_leak_co'uriC>
HINT
<JI! е m о ry_l е a k_co nstru cto г_7ё&>
Tmemory leak со nstru cto г~Т5П
______ _VOID
[memory leal; destructorrefl
Рис. 9. Сеть Петри для класса memory_leak
1"(1.0)
[not(#2(cm) < 10)]
n—► cy«!e_e:<it
[«2(cm) < 10]
I ' I Ull
Щ]-
_1(1,1)
¡memory i-?ak lonstmctorl Construct or> VOID
I cycle_destructor}-
(1,1)
Imgmorv l»at twstrugf
^onstructorBuffl>
Imemory leak constructor ret I <3pnstructor„reg> VOID Г ~
jL
^destructqr^>
VOID <^g5tructorBuff>
¡memory leat destructor ret! stru ctor_ret>
) constructor„ret[4~
| destructor__ret
(#l(cm), #2(cm) + 1),
Рис. 10. Сеть Петри для программы main Результаты анализа сети Петри
Таблица 1
Boundedness Properties'
Best Upper Multi-set Bounds memory leak'memory leak constructor 1
execution'constructor ret 1 1X1,D
1X1,1)++ memory leak'memory_leak_count 1
r(l,2)-H- 1'1++
1X1,3)++ l-2++
1"(M)-H- 1'3++
1 (1,5)++ 1'4++
1X1,6)++ 1'5++
1"(1,7)++ 1"6++
1"(1,8)++ 1'7++
l'(l,9)++ 1'8++
1X1,10) 1'9++
execution'constructor 1 1"10++
1(1,1) I'll
execution'cycly destructor 1 memory leak'memory leak destructor 1
r(i,io) 1X1,1)
execution'destructor 1 memory leak'memory leak destructor ret 1
1X1,1) 1X1,1)
Из таблицы видно, что обращение к конструктору {execution''constructor_ret) и деструктору {execution''destructor_ret) выполня-
1 В отчете приведены не полный набор свойства ограниченности сети, а только те свойства, которые требуются для определения ошибки.
14
лось разное количество раз, что указывает на наличие ошибки утечки памяти. По схожему принципу можно определить утечки памяти при использовании функций семейства malloc и free.
Третья глава заканчивается формулировкой методики разработки программного обеспечения с использованием UML диаграмм и сетей Петри для систем управления локальным оборудованием. Предлагаемая методика состоит из последовательно выполняемых шагов. Рассмотрим их.
Шаг 1. Формирование требований к разрабатываемой системе при помощи построения диаграмм вариантов использования. На первом шаге выделяются используемые в системе актеры, прецеденты и варианты использования системы.
Шаг 2. Составление диаграммы классов. Выделяются сущности системы, для которых составляются классы или иерархия классов в системе. На втором шаге необходимо выделить методы классов.
Шаг 3. Следующим шагом является составление диаграмм для описания динамических свойств системы. Для выделенных классов составляются диаграммы состояний или действий. Смена состояний достигается за счет обмена сигналами между объектами. Диаграммы действий необходимо составить для каждого метода из диаграммы классов.
Шаг 4. Четвертый шаг - составление диаграммы объектов. На основании диаграммы классов выделяется объекты, которые будут участвовать в системе. Диаграмма объектов определяет начальные значения объектов системы, а также значение меток для сети Петри.
Шаг 5. Далее составляем диаграммы основного алгоритма системы. Данные диаграммы должны отображать динамические свойства системы. Как и в третьем шаге для этих целей могут быть использованы диаграммы состояний или действий.
Шаг 6. На этом шаге осуществляется преобразование составленных UML диаграмм состояний и действий в сеть Петри при помощи правил формального преобразования.
Шаг 7. Анализ полученной сети Петри. Выполняется при помощи программного пакета моделирования CPN Tools или любого другого автоматизированного программного пакета для работы с сетями Петри. Анализ позволяет определять имеющиеся ошибки и, в зависимости от их типа, вносить изменения в набор UML диаграмм на необходимых этапах методики. В случае отсутствия ошибок составленный набор UML диаграмм можно считать верным и приступать к генерации исполняемого кода.
В четвертой главе продемонстрировано применение результатов, полученных в главах 2, 3 при разработке системы управления водонапорными станциями водоканала.
Применение, предложенных в третьей главе методики разработки, правил формального преобразования, позволило разработать алгоритмы работы водонапорных станций в виде набора UML диаграмм, преобразовать полученный набор в сети Петри и выполнить анализ на различные аспекты. На
первом этапе предлагаемой методики разработки, на основании словесного описания поставленной задачи составлены диаграммы вариантов использования системы, которые отображают наиболее значимые функции. На втором этапе формируются диаграммы классов системы. Третий этап включает разработку диаграмм состояния для описания динамических свойств классов. На четвертом этапе составляется диаграмма действий, отображающая основной алгоритм системы. Содержанием пятого этапа является преобразование составленного набора иМЬ диаграмм в сети Петри. Непосредственное моделирование и анализ работы системы в части управления локальным оборудованием с помощью сети Петри, в ходе анализа которой было построено пространство состояний, содержащее более 157 тысяч узлов и более 50 тысяч дуг, позволило тщательно исследовать все особенности функционирования разрабатываемой системы и выявить ряд логических и программных ошибок.
В приложениях приведены акты внедрения программной системы, разработанной на основании предложенной методики разработки и внедрения результатов диссертационного исследования в учебный процесс. Также приведены примеры применения рассматриваемой методики в задачах из других программных областей. Применение предлагаемой методики рассматривается на задаче перемещения манипулятора в пространстве с препятствиями, которая решается перебором возможных вариантов перемещения манипулятора. Другой задачей, к которой применяется предлагаемая методика, является задача индустрии программирования алгоритмов управления ресурсами и изменения положения в пространстве игровых моделей из области игровой индустрии.
ЗАКЛЮЧЕНИЕ
В заключении подводятся итоги проделанной работе, формулируются основные результаты анализа и развития современных подходов индустрии программного обеспечения к разработке высококачественного ПО.
В приложениях приведены акты внедрения программной системы, разработанной на основании предложенной модифицированной методики разработки и внедрения лабораторной работы в учебный процесс. Также приведены примеры применения рассматриваемой методики в задачах различной направленности: при рассмотрении движения манипулятора в замкнутом пространстве с препятствиями и разработки ресурсных задач игровой индустрии (на примере игры «змейка»).
Разработка программного обеспечения в настоящее время является актуальной задачей, для решения которой следует применять методики, способные гарантировать стабильную работу разрабатываемого кода при различных условиях эксплуатации. Актуальность проблемы подчеркивает и важность максимальной автоматизации предлагаемых методик, связанных с необходимостью их использования в реальных проектах, где критичным становится не только время разработки, но и быстрое выявление и устранение возможных ошибок. В соответствии с поставленными в диссертационной работе задачами были получены следующие результаты:
16 •
- предложена методика разработки программного обеспечения, основанная на использовании UML диаграмм и сетей Петри, позволяющая разрабатывать ПО для систем управления локальной автоматикой. В предложенной методике используется измененный набор UML диаграмм, который позволяет разрабатывать более сложные программные алгоритмы. Кроме того, выполнены изменения в правилах формального преобразования UML диаграмм в цветные сети Петри, при помощи которых формируется структура сети. Измененная структура сети Петри позволяет моделировать поведение нескольких объектов одного класса одновременно и выполнять моделирование статических методов классов, что в совокупности приводит к полному моделированию системы и ее анализу;
- предложен вариант обнаружения программных ошибок утечки памяти и обращение к несуществующим элементам массива на основании результатов моделирования сети Петри;
- приведены рекомендации по использованию UML диаграмм действий и состояний для описания динамических свойств класса.
В результате применения рассматриваемой методики разработчик получает возможность анализа разрабатываемого ПО, в котором используется более одного объекта класса одновременно, и его проверки на наличие программных ошибок. Предлагаемая методика была применена к задаче разработки программного обеспечения для системы управления локальным оборудованием водонапорных станций водоканала г. Тюмени. Система успешно прошла опытно-промышленную эксплуатацию и была сдана в промышленную эксплуатацию в 2011 г. Результаты диссертационных исследований используются в учебном процессе на факультете «Автоматика и вычислительная техника» НГТУ. Также методика была опробована на задачах других классов:
- задачи разработки ПО перемещения манипулятора в ограниченном пространстве с препятствиями на примере упрощенной задачи перемещения точки;
- ресурсной задачи из игровой индустрии (упрощенный вариант - игра «змейка»).
Основные публикации по теме диссертации
Статьи в журналах, рекомендованных ВАК для публикации результатов
диссертаций на соискание ученой степени доктора и кандидата наук:
1- A.A. Воевода, Д.О. Романников, И.В. Зимаев. Применение UML диаграмм и сетей Петри при разработке встраиваемого программного обеспечения // Науч. вестн. НГТУ. - 2009. - №4 (37). - с. 169-174.
2. A.A. Воевода, Д.О. Романников. Редуцирование пространства состояний сети Петри для объектов из одного класса // Науч. вестн. НГТУ. - 2011. - №4 (45).-с. 146- 150.
3. Д.О. Романников, A.B. Марков. Пример применения методики разработки ПО с использованием UML диаграмм и сетей Петри // Науч. вестн. НГТУ.-2012.-№1(46).-с. 175-181.
Другие издания:
4. A.A. Воевода, Д.О. Романников. Использование UML-диаграмм и временных сетей петри в методе разработки ПО ч.2 // Сб. науч. тр. НГТУ. -2010.-№4(62).- с. 117-126.
5. A.A. Воевода, Д.О. Романников. Временные сети Петри и диаграммы UML // Сб. науч. тр. НГТУ. - 2010. - №1 (59). - с. 79-84.
6. A.A. Воевода, Д.О. Романников. О проектировании программного обеспечения для микроконтроллера с использованием UML // Сб. науч. тр. НГТУ. - 2009. - №4 (58). - с. 35-40.
7. A.A. Воевода, Д.О. Романников. Моделирование сетей Петри в CPN TOOLS // Сб. науч. тр. НГТУ. - 2008. - №3 (53). - с. 49-54.
8. A.A. Воевода, Д.О. Романников. О компактном представлении языков раскрашенных сетей Петри // Сб. науч. тр. НГТУ. - 2008. - №3 (53). - с. 105108.
9. A.A. Воевода, Д.О. Романников. О моделировании систем реального времени с использованием UML и сетей Петри // Сб. науч. тр. НГТУ. - 2009. -№1 (55). - с. 63-66.
10. A.A. Воевода, Д.О. Романников. Особенности проектирования систем реального времени при по-мощи UML и сетей Петри // Сб. науч. тр. НГТУ. -2009.-№1 (55). - с. 57-62.
11. A.A. Воевода, Д.О. Романников. О преобразовании UML диаграмм в сети Петри // Сборник статей XIV Международной научно-технической конференции «Информационно-вычислительные технологии и их приложения». -2010.-с. 60-64.
12. A.A. Воевода, Д.О. Романников. Разработка ПО встраиваемых систем с использованием UML диаграмм и сетей Петри // Сборник докладов международной научной заочной конференции «Актуальные вопросы современной техники и технологии». - 2010. - с. 24 - 28.
13. Д.О. Романников. Роль автоматизации программирования в инновационных процессах // Труды международной научно-практической конференции «Традиции и инновации в современном социокультурном пространстве». -2010.-с. 60-61.
14. A.B. Марков, Д.О. Романников, A.A. Воевода. Моделирование процесса поиска пути в лабиринте с помощью UML диаграмм и сетей Петри // Материалы международной заочной научно-практической конференции «Наука и техника XXI века». - 2011. - с. 84 - 89.
15. A.B. Марков, Д.О. Романников. Совокупное использование сетей Петри и UML-диаграмм при разработке программного обеспечения. // Сб. науч. тр. НГТУ. - 2011. - №2 (64). - с. 85-94.
16. Д.О. Романников, A.B. Марков, И.В. Зимаев. Обзор работ, посвященных разработке по с использованием UML и сетей Петри // Сб. науч. тр. НГТУ. - 2011. - №1 (63). - с. 91-104.
18
17. Д.О. Романников. Перспективы развития методики разработки программного обеспечения с использованием UML-диаграмм и сетей Петри // Сб. науч. тр. НГТУ. - 2010. - №2 (60). - с. 181 - 184.
18. Д.О. Романников. Применение методики разработки ПО на примере разработки игры «Змейка» // Сб. науч. тр. НГТУ. - 2011. - №4 (66) - с 91 -108.
19. A.A. Voevoda, D.O. Romannikov. Using timed Petri nets in approach of software design with UML diagrams // Proceedings on DST-RFBR Sponsored In-do-Russian Joint Workshop on «Computational intelligence and modern heuristics in automation and robotics». - 20 - 22 September 2010. Surat, India. - p. 95 - 97 [Использование временных сетей Петри в методе разработке программного обеспечения с использованием UML диаграмм].
20. А.А. Voevoda, A.V. Markov, D.O. Romannikov. Petri Nets modeling with supporting of system history storing // Proceedings on RFBR and DST sponsored The second Russian-Indian Joint Workshop «Computational intelligence and modern heuristics in automation and robotics». - 10 - 13 September 2011. Novosibirsk, Russia. - p. 47 - 49 [Моделирования сетей Петри с поддержкой сохранения системной истории].
21. Д.О. Романников. Нахождение ошибок обращения к несуществующим элементам массива на основании результатов анализа сети Петри // Сб. науч. тр. НГТУ. - 2012. - №1 (67). - с. 115-120.
Отпечатано в типографии Новосибирского государственного технического университета 630092, г. Новосибирск, пр. К.Маркса, 20, тел./факс: (383)346-08-57 формат 60x84 1/16, объем 1,25 п.л., тираж 100 экз. заказ № 1013 подписано в печать 25.06.2012 г.
Оглавление автор диссертации — кандидата технических наук Романников, Дмитрий Олегович
ВВЕДЕНИЕ.
СПИСОК ИСПОЛЬЗУЕМЫХ СОКРАЩЕНИЙ И ОБОЗНАЧЕНИЙ.
1. ОСНОВНЫЕ НАПРАВЛЕНИЯ РАЗВИТИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.
1.1. Тенденции развития программной инженерии.
1.2. Использование ЦМЬ диаграмм в разработке ПО.
1.3. Использование сетей Петри в разработке ПО.
1.4. Использование интеграции ЦМЬ диаграмм и сетей Петри в разработке ПО.
1.5. Выводы.
2. АНАЛИЗ СПОСОБОВ РАЗРАБОТКИ ПРОГРАМНОГО ОБЕСПЕЧЕНИЯ ИСПОЛЬЗУЮЩИХ ЦМЬ ДИАГРАММЫ И СЕТИ ПЕТРИ.
2.1. Недостатки способов разработки программного обеспечения с использованием ЦМЬ диаграмм и сетей Петри.
2.2. Достоинства и недостатки диаграмм состояния и действий при описании динамических свойств классов.
2.3. Анализ правил преобразования ЦМЬ диаграмм в сети Петри.
2.4. Постановка задачи.
3. МЕТОДИКА РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ИСПОЛЬЗОВАНИЕМ иМЬ ДИАГРАММ И СЕТЕЙ ПЕТРИ.
3.1. Правила преобразования ЦМЬ диаграмм в сети Петри.
3.1.1. Типы мест при преобразовании ЦМЬ диаграмм в сети Петри.
3.1.2. Правила вызова методов и конструкторов класса, правила обращения к объектам.
3.2. Анализ результатов моделирования пространства состояния сетей Петри.
3.3. Методика разработки программного обеспечения с использованием ЦМЬ диаграмм и сетей Петри.
3.4. Выводы.
4. РАЗРАБОТКА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ДЛЯ СИСТЕМЫ УПРАВЛЕНИЯ ВОДОНАПОРНЫМИ СТАНЦИЯМИ ВОДОКАНАЛА.
4.1. Описание исследуемой системы.
4.2. Разработка ПО системы.
4.3. Составление диаграмм классов и объектов.
4.4. Составление UML диаграмм для описания динамических свойств классов.
4.5. Преобразование диаграмм UML в сети Петри.
4.6. Анализ сетей Петри.
4.7. Выводы.
Введение 2012 год, диссертация по информатике, вычислительной технике и управлению, Романников, Дмитрий Олегович
Актуальность темы. В настоящее время программное обеспечение (ПО) используется в большинстве сфер человеческой деятельности. От его надежности и функциональности зависит успешность работы многих предприятий. Поэтому качество разрабатываемого ПО приобретает важное значение. Существующие подходы к разработке ПО [1-3, 9, 13, 15, 18, 28, 30, 35, 39, 42, 46, 54, 57, 59, 60, 74, 75] не гарантируют его качество в достаточной степени. Тестирование разрабатываемого продукта также не может гарантировать отсутствие ошибок в программе, так как многие из них могут проявляться в специфических условиях, которые невозможно смоделировать в тестовой среде. Таким образом, проблемы качества ПО при его разработке являются достаточно актуальными.
В настоящее время используются некоторые формальные способы разработки качественного ПО [1, 2, 9, 30, 35, 39, 42, 54, 59, 60, 74, 75, 84, 89]. Особый интерес представляют такие из них [30, 42, 59, 60], которые способны гарантировать качество и безотказность создаваемого ПО. Однако вышеприведенные способы разработки редко используются на практике из-за сложности их применения.
Одним из возможных способов формального доказательства верности ПО является применение алгоритмов на основе интеграции ЦМЬ диаграмм и сетей Петри [39-41, 60, 62-71, 75, 77, 78, 81, 85, 88], математический аппарат которых достаточно подробно изучен В.Е.Котовым [45], Дж.Петерсоном [49] и др., что позволяет использовать их для анализа модели системы (Д.А.Колесников [37], М.А.Ищенко [36], С.В.Коротиков [21, 23, 38-44], А.В.Доля [30], Ь.Вагез! [59-60], М.Регге [59-60], З.ВегпагсК [61-69, 88, 89, 91, 94], Б.ОогШеШ [63, 67], 1.Ме^иег [64-69, 71, 91-94], Е.Р.ЫашштсИ [88-89]).
Тем не менее, разработанные методологические, технологические и инструментальные решения либо не позволяют выполнить моделирование для совокупности диаграмм и моделировать поведение нескольких объектов одного класса в системе одновременно, либо используют классические сети Петри, что в совокупности не дает возможность выполнить полное моделирование разрабатываемой системы. Следует также отметить, что рекомендации по анализу результатов моделирования сетей Петри нуждаются в дополнительном исследовании [42].
Цель работы. Разработать методику написания программного обеспечения с использованием ЦМЬ диаграмм и сетей Петри, применимую для разработки систем управления локальным оборудованием.
Для достижения поставленной цели решаются следующие задачи:
- анализ современных подходов создания высококачественного программного обеспечения;
- определения ключевых особенностей алгоритмов разработки с использованием ЦМЬ диаграмм и сетей Петри, подлежащих изменению или улучшению;
- разработка правил обнаружения программных ошибок обращения к несуществующему элементу массива и утечек памяти при работе с объектами на основе анализа результатов моделирования системы в сетях Петри;
- создание методики разработки ПО с использованием ЦМЬ диаграмм и сетей Петри для применения к разработке ПО систем управления локальным оборудованием и обеспечения возможности моделирования систем с произвольным количеством объектов одного класса одновременно;
- применение методики разработки для решения задачи разработки программного обеспечения системы управления локальным оборудованием водонапорных станций водоканала. Проверить возможность применения предлагаемой методики для разработки ПО для задачи поиска пути движения манипулятора от начальной до конечной координат в замкнутом пространстве с препятствиями и разработке ресурсной задачи из игровой индустрии.
Объект исследования. Объектом исследования является методика разработки программного обеспечения, основанная на использовании ЦМЬ диаграмм и сетей Петри.
Методы исследования. При решении задач диссертационного исследования использовались следующие методы:
- системный анализ;
- аппарат сетей Петри;
- разделы дискретной математики;
- объектно-ориентированный анализ.
При реализации примеров применения рассматриваемой методики использовались отраслевые и международные стандарты, САБЕ-технологии, современные инструментальные среды и пакеты моделирования.
Научная новизна. В диссертационном исследовании были достигнуты следующие результаты:
- методика разработки ПО с использованием диаграмм ЦМЬ и сетей Петри для разработки ПО для систем локальной автоматики. Изменен набор используемых ЦМЬ диаграмм, что позволяет разрабатывать более сложные алгоритмы системы. Внесены изменения в набор правил формального преобразования диаграмм ЦМЬ в цветные сети Петри, структура которых позволяет выполнять моделирование системы с несколькими объектами одного класса одновременно и моделирование статических методов класса;
- разработаны рекомендации по использованию ЦМЬ диаграмм состояния и диаграмм действия для описания динамических свойств класса;
- предложены варианты обнаружения некоторых типов программных ошибок: обращение к несуществующим элементам массива, неверное выделение и освобождение памяти объектов - утечка памяти.
Практическая ценность и внедрение. Проведенные исследования подтвердили эффективность применения рассматриваемой методики на всех этапах разработки ПО.
Результаты диссертационной работы были использованы в разработке и внедрении ПО системы управления локальным оборудованием водонапорных станций в водоканале города Тюмень, в гранте Федерального Агентства по образованию ГК № П 694 от 12.08.2009 г. (конкурс НК-81П (2009 - 2011 гг.)), а также в конкурсе фундаментальных и прикладных исследований внутренних грантов НГТУ «Использование ЦМЬ-диаграмм и аппарата сетей Петри как формальных методик анализа архитектуры программного обеспечения». Результаты диссертационного исследования используются в учебном процессе НГТУ. Показана возможность применения не только для систем локальной автоматики, но и для других задач, например: упрощенная задача автоматического поиска допустимых перемещений манипулятора в пространстве с препятствиями и разработка ресурсной задач игровой индустрии.
На защиту выносятся следующие положения:
- методика разработки ПО с использованием ЦМЬ диаграмм и сетей Петри, включающая набор правил преобразования, позволяющих моделировать поведение нескольких объектов одного класса одновременно и выполнять моделирование статических классов системы;
- рекомендации по использованию ЦМЬ диаграмм действия и состояния для описания динамических свойств класса;
- рекомендации по обнаружению программных ошибок обращения к несуществующим элементам массива и утечки памяти при работе с объектами;
- разработанная на основе методики разработки программного обеспечения с использованием ЦМЬ диаграмм и сетей Петри программная система управления водонапорными станциями водоканала города Тюмень.
Апробация работы. Основные положения диссертации были изложены на следующих конференциях: международной научной заочной конференции «Актуальные вопросы современной техники и технологии» (Липецк, 24 апреля 2010 г.); XIII международной научно-технической конференции «Информационно-вычислительные технологии и их приложения» (Пенза, декабрь 2010 г.); международной научно-практической конференции «Традиции и инновации в современном социокультурном пространстве» (Новосибирск, 2011 г.); DST-RFBR Sponsored Indo-Russian Joint Workshop «Computational intelligence and modern heuristics in automation and robotics» (Surat, India, 20-22 September 2010); RFBR and DST sponsored The second Russian-Indian Joint Workshop «Computational intelligence and modern heuristics in automation and robotics» (Novosibirsk, Russia, 10-13 September 2011); XIII международной научно-практической конференции «Наука и современность» (Новосибирск, 2011 г.); международной заочной научно-практической конференции «Наука и техника XXI века» (Новосибирск, 2011 г.). А также в школе молодых ученых С АИТ-2011 секции №2 «Информационные технологии в системах автоматического и автоматизированного управления» (Новосибирск, 12-16 сентября 2011 г.) и научных семинарах кафедры «Автоматика» НГТУ (2009 - 2011 гг.).
Публикации. Основные положения и результаты диссертационной работы опубликованы в 21 работах [4-7, 9-14, 47, 51, 52, 100-104, 106], в том числе: статей в изданиях, рекомендуемых ВАК РФ - 3; в сборниках научных трудов - 12, материалах международных симпозиумов и конференций - 6.
Структура и объём диссертации. Диссертация состоит из введения, четырех глав, заключения, библиографического списка использованной литературы и приложений. Работа изложена на 195 с. машинописного текста: основное содержание на 116 с. и включает 49 рисунков, 6 таблиц и список литературы из 106 наименований.
Заключение диссертация на тему "Разработка программного обеспечения с применением UML диаграмм и сетей Петри для систем управления локальным оборудованием"
4.7. Выводы
В данной главе рассматривается применение предлагаемой методики на примере разработки системы управления оборудованием водонапорных станций водоканала города Тюмени. Разрабатываемое программное обеспечение является объемной и сложной асинхронной системой с множеством вариантов срабатывания оборудования, ручной перебор всех комбинаций которого практически невозможен.
Последовательно выполнены все шаги разработки:
- построены диаграммы прецедентов, на которых отображены функциональные требования к системе;
- построены диаграммы классов и объектов, на которых выделены классы системы, а также приведены начальные значения объектов системы;
- для описания динамических свойств классов разработаны диаграммы состояния и действий, позволяющие описать алгоритмы системы;
- для описания основного алгоритма системы сформирована диаграмма действий;
- при помощи правил формального преобразования, предложенных в п.3.1, получена модель системы в сетях Петри;
- используя программный пакет «CPN Tools», выполнено моделирование системы на основании расчета пространства состояния сети Петри. Первые две итерации позволили выявить программные ошибки в наборе UML диаграмм. Исходя из полученных результатов анализа сети Петри на третьей итерации, сделан вывод о корректности составленных UML диаграмм и готовности набора UML диаграмм к генерации кодов.
Таким образом, представленная методика опробована на задаче разработки ПО для систем управления оборудованием водонапорных станций водоканала г. Тюмень. Также она была применена к задачам других классов: поиска допустимых перемещений манипулятора в пространстве с препятствиями на примере упрощенной задачи перемещения точки (Приложение 4) и ресурсной задаче из игровой индустрии (упрощенный вариант - игра «змейка») (Приложение 5).
5. ЗАКЛЮЧЕНИЕ
Разработка программного обеспечения в настоящее время является актуальной задачей, для решения которой следует применять подходы, способные гарантировать стабильную работу разрабатываемого кода при различных условиях эксплуатации. Актуальность проблемы подчеркивает и важность максимальной автоматизации предлагаемой методики, связанной с необходимостью ее использования в реальных проектах, где критичным становится не только время разработки, но и быстрое выявление и устранение возможных ошибок.
В ходе анализа используемых в индустрии программного обеспечения методов и подходов к разработке и анализу ПО с использованием ЦМЬ диаграмм и сетей Петри были выявлены следующие основные недостатки:
- наработки в сфере программной инженерии, основанные на использовании ЦМЬ диаграмм и сетей Петри, в основном ориентированы на поиск логических ошибок в программных системах связанных с одновременным доступом к критическим секциям и не позволяют находить логические ошибки в программе связанные с программными особенностями;
- используемые правила преобразования ЦМЬ диаграмм в сети Петри не позволяют сформировать структуру сети Петри так, чтобы она позволяла моделировать поведение нескольких объектов класса одновременно. Также она не позволяет получить результат выполнения метода и моделировать статические методы;
- используемый в программной инженерии набор ЦМЬ диаграмм для последующего преобразования в сеть Петри не всегда позволяет строить сложные программные алгоритмы из-за использования только диаграмм состояния для описания динамических свойств класса и диаграмм последовательности для отображения взаимодействия между классами.
В соответствии с поставленными в диссертационной работе задачами были получены следующие результаты:
- предложена методика разработки программного обеспечения, основанная на использовании ЦМЬ диаграмм и сетей Петри, позволяющая разрабатывать ПО для систем управления локальной автоматикой. В предложенной методике используется набор ЦМЬ диаграмм, который позволяет разрабатывать более сложные программные алгоритмы за счет применения комбинации диаграмм состояния и действий для описания динамических свойств класса и межобъектного взаимодействия. Выполнены изменения в правилах формального преобразования ЦМЬ диаграмм в цветные сети Петри, при помощи которых формируется структура сети. Полученная структура сети Петри позволяет моделировать поведение нескольких объектов одного класса одновременно, выполнять моделирование статических методов классов и получать результат выполнения метода, что в совокупности приводит к полному моделированию системы и ее анализу;
- предложен вариант обнаружения программных ошибок утечки памяти и обращение к несуществующим элементам массива на основании результатов моделирования сети Петри;
- приведены рекомендации по использованию ЦМЬ диаграмм действий и состояний для описания динамических свойств класса, рекомендовано использовать диаграммы действий при линейном исполнении программы и описании алгоритмической части ПО, применение диаграмм состояний обосновано при наличии множества состояний у объекта класса, а также при работе с внешними сигналами.
В результате применения рассматриваемой методики разработчик получает возможность анализа разрабатываемого ПО, в котором используется более одного объекта класса одновременно, и его проверки на наличие программных ошибок.
Предлагаемая методика была применена к задаче разработки программного обеспечения для системы управления локальным оборудованием водонапорных станций водоканала г. Тюмени. Система успешно прошла опытно-промышленную эксплуатацию и была сдана в промышленную эксплуатацию в 2011 г. Акт внедрения приведен в Приложении 1. Результаты диссертационных исследований используются в учебном процессе на факультете «Автоматика и вычислительная техника» НГТУ.
Также методика была опробована на задачах:
- задачи разработки ПО перемещения манипулятора в ограниченном пространстве с препятствиями на упрощенной модели манипулятора, особенностью которой является использованием множества потоков поиска искомого решения;
- ресурсной задачи из игровой индустрии (упрощенный вариант - игра «змейка»), особенностями которой является динамическое создание объектов, работа с массивами.
Библиография Романников, Дмитрий Олегович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
1. К. Бек. Экстремальное программирование. Питер, 2002. - с. 224.
2. Э. Брауде. Технология разработки программного обеспечения. Питер, 2004. - с. 655.
3. Г. Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на С++. СПб. : Бином, 2006. - с. 560.
4. A.A. Воевода, Д.О. Романников. Применение UML диаграмм и сетей Петри при разработке встраиваемого программного обеспечения // Науч. вестн. НГТУ. 2009. - №4 (37). - с. 169-174.
5. A.A. Воевода, Д.О. Романников. Использование UML-диаграмм и временных сетей петри в методе разработки ПО ч.2 // Сб. науч. тр. НГТУ. -2010. №4 (62).- с. 117-126.
6. A.A. Воевода, Д.О. Романников. Временные сети Петри и диаграммы UML // Сб. науч. тр. НГТУ. 2010. - №1 (59). - с. 79-84.
7. A.A. Воевода, Д.О. Романников. О проектировании программного обеспечения для микроконтроллера с использованием UML // Сб. науч. тр. НГТУ. 2009. - №4 (58). - с. 35-40.
8. A.A. Воевода, A.M. Марков. Тестирование UML-диаграмм с помощью аппарата сетей Петри на примере разработки ПО для игры "Змейка" // Сб. науч. тр. НГТУ. 2010. - №3 (61). - с. 51-60.
9. A.A. Воевода, Д.О. Романников. Использование UML и временных сетей петри при разработке программного обеспечения // Сб. науч. тр. НГТУ. -2010.-№3 (61).-с. 61-70.
10. A.A. Воевода, Д.О. Романников. Моделирование сетей Петри в CPN TOOLS // Сб. науч. тр. НГТУ. 2008. - №3 (53). - с. 49-54.
11. A.A. Воевода, Д.О. Романников. О компактном представлении языков раскрашенных сетей Петри // Сб. науч. тр. НГТУ. 2008. - №3 (53). - с. 105-108.
12. A.A. Воевода, Д.О. Романников. О моделировании систем реального времени с использованием UML и сетей Петри // Сб. науч. тр. НГТУ. 2009. - №1 (55). - с. 63-66.
13. A.A. Воевода, Д.О. Романников. Особенности проектирования систем реального времени при по-мощи UML и сетей Петри // Сб. науч. тр. НГТУ. 2009. - №1 (55). - с. 57-62.
14. A.A. Воевода, Д.О. Романников. Редуцирование пространства состояний сети Петри для объектов из одного класса // Науч. вестн. НГТУ. -2011.-№4 (45).-с. 146- 150.
15. A.A. Воевода, Д.О. Саркенов. Моделирование протокола связи таксафона и центра дистанционного управления таксафонами при помощи сетей Петри // Сб. науч. тр. НГТУ. 2004. - №2 (36). - с. 3 - 8.
16. A.A. Воевода, Д.О. Саркенов. Сети Петри: семмитричные графы состояний // Сб. науч. тр. НГТУ. 2005. - №3 (41). - с. 1 - 6.
17. A.A. Воевода, Д.В. Прытков, О.В. Прыткова. Применение аппарата сетей Петри для моделирования системы организации и контроля доступа к услугам IP-телефонии // Сб. науч. тр. НГТУ. 2009. - №3 (57). - с. 83 -88.
18. A.A. Воевода, Д.О. Саркенов, В. Хассоунех. Моделирование протоколов с учётом времени на цветных сетях Петри // Сб. науч. тр. НГТУ. -2004. -№3 (37).-с. 133-136.
19. A.A. Воевода, И.В. Зимаев. Моделирование системы многоканальной визуализации с использованием аппарата сетей Петри // Сб. науч. тр. НГТУ. 2008. - №3 (53). - с. 43 - 48.
20. A.A. Воевода, Д.В. Прытков, О.В. Прыткова. О возможностях некоторых популярных CASE-средств // Сб. науч. тр. НГТУ. 2010. - №1 (59). -с. 143- 148.
21. A.A. Воевода, C.B. Коротиков. О компактном представлении языков сетей Петри // Сб. науч. тр. НГТУ. 2005. - №1 (39). - с. 1-4.
22. A.A. Воевода, A.M. Марков. О компактном представлении языков сетей Петри: сети с условиями и временные сети // Сб. науч. тр. НГТУ. -2010.-№2(60). -с. 77-82.
23. А. А. Воевода, С. В. Коротиков. О модификации полного покрывающего дерева и графа разметок сети Петри // Науч. вестн. НГТУ. -2005.-№1 (19). с. 171-172.
24. A.A. Воевода, Д.В. Прытков. Применение сетей Петри на этапе объектно-ориентированного проектирования// Сб. науч. тр. НГТУ. 2010. -№2 (60). - с. 65-76.
25. A.A. Воевода, И.В. Зимаев. Соотнесение структурных и временных масштабов UML-диаграмм // Сб. науч. тр. НГТУ. 2008. - №4 (54). - с. 59 -62.
26. A.A. Воевода, И.В. Зимаев. Об особенностях преобразования UML диграмм деятельности в сети Петри // Сб. науч. тр. НГТУ. 2009. - №2 (56). с. 77-86.
27. А. А. Волков. Использование ролей в сценариях взаимодействия Электронный ресурс. / А. А. Волков ; Ин-т систем, программирования. -2006. Режим доступа: http://www.citforum.ru/SE/project/roleuse/.
28. В. Гуров, А. Нарвский, А. Шалыто. Исполняемый UML из России // PC Week. 2005. - №26. - с. 18-19.
29. У. Дал, Э. Дейкстра, К. Хоор. Структурное программирование. -Мир, 1975.-с. 245.
30. A.B. Доля. Алгоритмы безопасного перехода в сетях петри для лицензионной защиты программных систем // дис. канд. техн. наук. Ростов-на-Дону : Изд-во: ЦВВР, 2007.
31. И.В. Зимаев, A.A. Воевода. Верификация WorkFlow-моделей с применением сетей Петри // Науч. вестн. НГТУ. 2010. - №4 (41). - с. 151 -154.
32. И.В. Зимаев. О возможности автоматической трансляции UML диаграмм деятельности в сети Петри // Сб. науч. тр. НГТУ. 2010. - №1 (59). -с. 149- 156.
33. И.В. Зимаев. Блоки анализирующей сети Петри// Сб. науч. тр. НГТУ. 2010. - №3 (61). - с. 169 - 172.
34. И.В. Зимаев. Интеграция структурных и динамических UML-моделей // Сб. науч. тр. НГТУ. 2010. - №3 (61). с. 77 - 84.
35. И.В. Зимаев, A.A. Воевода. Моделирование асинхронной сети автоматов обработки данных // Сб. науч. тр. НГТУ. 2009. - №4 (58). - с. 147154.
36. М.А. Ищенко. Разработка моделей и методов синтеза модульной структуры автоматизированных информационных систем с использованием сетей Петри // дис. канд. техн. наук. Москва, 2009.
37. Д.А. Колесников. Разработка математического и алгоритмического обеспечения управления режимами работы ситуационного центра регионального уровня на базе сетей Петри // дис. канд. техн. наук. -Краснодар, 2011.
38. C.B. Коротиков. Применение цветных иерархических сетей Петри для верификации UML-диаграмм на этапе анализа требований к системе дистанционного контроля и управления// Сб. науч. тр. НГТУ, 2007.- №1 (47).-с. 81-92.
39. C.B. Коротиков, A.A. Воевода. Применение сетей Петри в разработке программного обеспечения центров дистанционного управления и контроля // Науч. вестн. НГТУ. 2007. - №4 (29). - с. 16 - 30.
40. C.B. Коротиков. Применение шаблонов UML и сетей Петри при разработке системной службы центра дистанционного управления и контроля // Сб. науч. тр. НГТУ. 2007. - №2 (48). - с. 135 - 140.
41. C.B. Коротиков. Проверка согласованности UML-диаграмм проекта службы контроля и управления ДЦ БРЗ с помощью сетей Петри // Сб. науч. тр. НГТУ. 2007. - №2 (48). - с. 51 - 62.
42. C.B. Коротиков. Применение сетей Петри в разработке программного обеспечения центров дистанционного контроля и управления // дис. канд. техн. наук. Новосибирск : Изд-во: НГТУ, 2007.
43. C.B. Коротиков, A.A. Воевода. Представление логики взаимодействия таксафона и СКУТ в виде цветной иерархический сети Петри // Сб. науч. тр. НГТУ. 2004. - №2 (36). - с. 147 - 148.
44. C.B. Коротиков, Д.О. Саркенов. Применение спецификации эквивалентности в моделировании сеанса связи таксофона и центра дистанционного контроля и управления таксофонами раскрашенной сетью Петри // Сб. науч. тр. НГТУ. 2007. - №3 (49). - с. 87 - 94.
45. В. Е. Котов. Сети Петри. Наука, 1984. - с. 164.
46. А. Г. Мамиконов. Использование сетей Петри при проектировании систем обработки данных//Наука, 1988. с. 103.
47. A.B. Марков, Д.О. Романников. Совокупное использование сетей Петри и UML-диаграмм при разработке программного обеспечения // Сб. науч. тр. НГТУ. 2011. - №2 (64). - с. 85-94.
48. А. Е. Пентус, М. Р. Пентус. Объектно-ориентированное представление иерархических сетей Петри. Фундаментальная и прикладная математика. 2000. - Т. 6. -№ 3. - с. 831-840.
49. Дж. Петерсон. Теория сетей Петри и моделирование систем. М. : Мир, 1984.- с. 264
50. Д.В. Прытков. О применении сетей Петри для исполнения алгоритмов на примере решения задачи о кратчайших путях с единственным источником // Сб. науч. тр. НГТУ. 2010. - №3 (61). - с. 77-82.
51. Д.О. Романников, A.B. Марков, И.В. Зимаев. Обзор работ, посвященных разработке по с использованием UML и сетей Петри // Сб. науч. тр. НГТУ. 2011. - №1 (63). - с. 91-104.
52. Д.О. Романников. Перспективы развития методики разработки программного обеспечения с использованием UML-диаграмм и сетей Петри // Сб. науч. тр. НГТУ. 2010. - №2 (60). - с. 181 - 184.
53. А. Н. Савин. Формирование тестирующих программ с использованием сетей Петри-Маркова // дис. канд. техн. наук. Тула, 2009.
54. Е. В. Толстое. Задачи моделирования потоков работ при помощи сетей Петри // дис. канд. техн. наук. Москва, 2006.
55. И. Н. Томилов. Синтаксически ориентированные и графические средства описания и анализа моделей гибридных систем // дис. канд. техн. наук. Изд-во: НГТУ, 2010.
56. В. Г. Тронин Математические модели прикладных элементов вычислительных сетей на основе раскрашенных Петри // дис. канд. техн. наук. Ульяновск, 2010.
57. А. Якобсон, Г. Буч, Дж. Рамбо. Унифицированный процесс разработки программного обеспечения . Питер, 2002. - с. 496.
58. L. Baresi, M. Pezze. Improving UML with Petri Nets // Electronic notes in theoretical computer science. 2001. - №44. - p. 107 - 119.
59. L. Baresi, M. Pezze. On formalizing UML with High-Level Petri Nets // Lecture Notes in Computer Science. 2001. - 2965. - p. 276 - 304.
60. S. Bernardi, J Campos. Computation of performance bounds for realtime systems using time petri nets // Industrial Informatics, IEEE Transactions. -2009. №2 (5).-p. 168 - 180.
61. S. Bernardi, J. Campos. On performance bounds for interval Time Petri Nets // Proceeding QEST '04 Proceedings of the The Quantitative Evaluation of Systems, First International Conference. 2004. - p. 50 - 59.
62. S. Bernardi, A. Bobbio, S. Donatelli. Petri Nets and Dependability// Lectures on Concurrency and Petri Nets: Advances in Petri Nets. 2004. - 3098. - p. 125 - 179.
63. S. Bernardi, J. Merseguer. Performance evaluation of UML design with Stochastic Well-formed Nets // The Journal of Systems and Software. 2007. -№80. - p. 1843-1865.
64. S.Bernardi, J. Merseguer. A UML Profile for Dependability Analysis of Real Time Embedded Systems // In ACM Proc. of the 6th International Workshop on Software and Performance. 2007. - p. 115 - 124.
65. S. Bernardi, J. Merseguer. QoS Assessment via Stochastic Analysis // IEEE Internet Computing. 2006. - №10. - p. 32 - 42.
66. S. Bernardi, S. Donatelli, J. Merseguer. From UML Sequence Diagrams and Statecharts to analyzable Petri Net models // Proceeding WOSP '02 Proceedings of the 3rd international workshop on Software and performance. -2002.-p. 35-44.
67. S. Bernardi, J. Campos, J. Merseguer. Timing-failure risk assessment of UML design using Time Petri Net bound techniques // IEEE Transaction on Industrial Informatics. 2011. - №1 (7). - p. 90 - 104.
68. S. Bernardi, F. Flammini, S. Marrone, J. Merseguer. Model-driven availability evaluation of railway control systems // 30th International Conference on Computer Safety, Reliability and Security. 2011. p. 15-28.
69. A. Brown. An introduction to Model Driven Architecture. Pt I. MDA and today's systems Electronic resource. Mode of access: http://www-106.ibm.eom/developerworks/rational/library/3100.html, 2005.
70. J. Campos, J. Merseguer. On the integration of UML and Petri nets in software development // Lecture Notes in Computer Science. 2006. - p. 19-36.
71. A. Egyed. 29th International Conference on Software Engineering // Fixing inconsistencies in UML design models. 2007. - p. 292-301.
72. J, L.Garrido, M. Gea. A Coloured Petri Net Formalisation for a UML-Based Notation Applied to Cooperative System Modelling // Proceedings of the 9th International Workshop on Interactive Systems. 2007. - p. 16 - 28.
73. N. Feng, W. Ming-Zhe, Y. Cui-Rong. Executable Architecture Modeling and Validation // 2nd Int. Conf. ICCAE. 2010. - p. 10 - 14.
74. K. Jensen, L. M. Kristensen, L. Wells. Coloured Petri Nets and CPN Tools for modelling and validation of concurrent systems // Intern. J. on Software Tools for Technology Transfer (STTT). 2007. - p. 213-254.
75. K. Holscher, P. Ziemann, M. Gogolla. On translating UML models into graph transformation systems // Journal of Visual Languages and Computing. -2006. p. 78-105.
76. Z. Hu, S. M. Shatz. Mapping UML diagrams to a Petri net notation for system simulation // Proceedings of the international conference on software engineering and knowledge engineering (SEKE). 2004. - p. 213-219.
77. J. Kong, K. Zhang, J. Dong, D. Xu. Specifying behavioral semantics of UML diagrams through graph transformations // The Journal of Systems and Software. 2008. - p. 292-306.
78. H. Kwan-Hee, Y. Seock-Kyu, K. Bohyun. Integration of UML and Petri Net for the Process Modeling and Analysis in Workflow Applications // Proceedings of the 13th WSEAS International Conference on COMPUTERS. -2009. p. 255-262.
79. Lam, S. W. Vitus. A formalism for reasoning about UML activity diagrams // Nordic Journal of Computing. 2007. - №1 (14). - p. 43 - 64.
80. E. D. Lazowska, J. Zahorjan, G. S. Graham, K. C. Sevcik.
81. Quantitative system performance: computer system analysis using queueing network models // Upper Saddle River. 1984. - p. 417.
82. C. Lohmann, J. Greenyer, J. Jiang. Applying Triple Graph Grammars For Pattern-Based Workflow Model Transformations // Journal of Object Technology. 2007. - p. 253 - 273.
83. F.J. Lucas, F. Molina, A. Toval. A systematic review of UML model consistency management // Information and Software Technology. 2009. p. 16311645.
84. M. Morgan, J. Chadwicke. Creating Games: Mechanics, Content, and Technology. Wellesley, Massachusetts : A K Peters, 2009. p. 500.
85. J. Meseguer, U. Montanari. Petri Nets are Monoids: a New Algebraic Foundation for Net Theory. 1988. p. 155-164.
86. E. P. Naumovich, S.Bernardi. Integrating TPNs and performance bound techniques in ITPN-PerfBound: a new import functionality // 6th Int. Conference on Quantitative Evaluation of SysTems. 2009. p. 285-286.
87. E. P. Naumovich, S.Bernardi, M. Gribaudo. ITPN-PerfBound: A performance bound tool for Interval Time Petri Nets// In Proc. of 15th Int. Conference on Tools and Algorithms for the Construction and Analysis of Systems. 2009. - p. 50 - 53.
88. OMG UML 2 Superstructure Specification. V2.2// http://www.omg.org/technology/documents/formal/uml.htm.
89. D. Perez-Palacin, J. Merseguer, S.Bernardi. Performance aware open-world software in a 3-layer architecture // First Joint WOSP/SIPEW Int. Conference on Performance Engineering (WOSP/SIPEW'10). 2010. - p. 49 - 56.
90. D. Perez-Palacin, J. Merseguer. Performance evaluation of self-reconfigurable service-oriented software with stochastic Petri nets // Electronic Notes in Theoretical Computer Science. 2010. - 261. - p. 181-201.
91. D. Perez-Palacin, R. Mirandola, J. Merseguer, V. Grassi. QoS-Based Model Driven Assessment of Adaptive Reactive Systems // Proceeding ICSTW '10
92. Proceedings of the 2010 Third International Conference on Software Testing, Verification, and Validation Workshops. 2010. p. 299-308.
93. R.Rodriguez, J. Merseguer, S.Bernardi. Modelling and Analysis Resilience as a Security Issue within UML // Second International Workshop on Software Engineering for Resilient Systems. 2010.
94. P.G. Sapna, H. Mohanty. 10th International Conference on Information Technology // Ensuring consistency in relational repository of UML models. -2007. p. 217-222.
95. A. S. Staines. A triple graph grammar (TGG) approach for mapping UML 2 activities into Petri nets // Proceedings of the 9th WSEAS international conference on Software engineering, parallel and distributed systems. 2010. - p. 90 -95.
96. A. S. Staines. Simplified bi-directional transformation of UML activities into Petri nets// Proceeding SEP ADS'11 Proceedings of the 10th WSEAS international conference on Software engineering, parallel and distributed systems. -2011. p. 24-29.
97. N. Yang, H. Yu, H. Sun. Mapping UML Activity Diagrams to Analyzable Petri Net Models // Proceedings of the 2010 10th International Conference on Quality Software. 2010. - p. 369 - 372.
98. A.A. Воевода, Д.О. Романников. О преобразовании UML диаграмм в сети Петри // Сборник статей XIV Международной научно-технической конференции «Информационно-вычислительные технологии и их приложения». 2010. - с. 60 - 64.
99. А.А. Воевода, Д.О. Романников. Разработка ПО встраиваемых систем с использованием UML диаграмм и сетей Петри // Сборник докладовмеждународной научной заочной конференции «Актуальные вопросы современной техники и технологии». 2010. - с. 24 - 28.
100. Д.О. Романников. Роль автоматизации программирования в инновационных процессах // Труды международной научно-практической конференции «Традиции и инновации в современном социокультурном пространстве». 2010. - с. 60 - 61.
101. А.В. Марков, Д.О. Романников, А.А. Воевода. Моделирование процесса поиска пути в лабиринте с помощью UML диаграмм и сетей Петри // Материалы международной заочной научно-практической конференции «Наука и техника XXI века». 2011. - с. 84-89.
102. Т.Б. Тарасов. Математическое и программное обеспечение многоролевых человеко-машинных интерфейсов для ситуационного управления сложными организационно-техническими объектами // дис. канд. техн. наук. Новосибирск : Изд-во: СГУПС, 2010.
-
Похожие работы
- Автоматизация проектирования и анализа программного обеспечения с использованием языка UML и сетей Петри
- Применение сетей Петри в разработке многопоточного программного обеспечения с ограниченными разделяемыми ресурсами на примере центров дистанционного управления и контроля
- Анализ использования ресурсов встроенных систем реального времени на основе графических спецификаций
- Методология моделирования на основе графа взаимодействия при сопровождении программной системы
- Информационная технология анализа производительности в процессе разработки программного обеспечения
-
- Системный анализ, управление и обработка информации (по отраслям)
- Теория систем, теория автоматического регулирования и управления, системный анализ
- Элементы и устройства вычислительной техники и систем управления
- Автоматизация и управление технологическими процессами и производствами (по отраслям)
- Автоматизация технологических процессов и производств (в том числе по отраслям)
- Управление в биологических и медицинских системах (включая применения вычислительной техники)
- Управление в социальных и экономических системах
- Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей
- Системы автоматизации проектирования (по отраслям)
- Телекоммуникационные системы и компьютерные сети
- Системы обработки информации и управления
- Вычислительные машины и системы
- Применение вычислительной техники, математического моделирования и математических методов в научных исследованиях (по отраслям наук)
- Теоретические основы информатики
- Математическое моделирование, численные методы и комплексы программ
- Методы и системы защиты информации, информационная безопасность