С диссертацией можно ознакомиться в библиотеке Новосибирского государственного технического университета.
диссертационного совета Чубич В.М.
ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ
Актуальность темы исследований. Основная задача разработчика многопоточного (multithread)
программного обеспечения (ПО) с ограниченными разделяемыми ресурсами – обеспечить надежность (стабильность, устойчивость к ошибкам и восстанавливаемость) функционирования ПО. Примером данного класса ПО является
центр дистанционного управления и контроля (ЦДУК), предназначенный для непрерывного дистанционного контроля и управления интеллектуальным оборудованием. При разработке ПО ЦДУК (в современной индустрии ПО) используется
объектно-ориентированный подход к анализу и проектированию (ООАП) с применением языка
UML (Unified Modeling Language). Некорректное представление сложных алгоритмов и механизмов синхронизации на UML-диаграммах приводит к взаимным блокировкам потоков и другим проблемам при функционировании ПО. Подобные ошибки могут обнаруживаться только при очень специфичных условиях эксплуатации ЦДУК, например
центра дистанционного управления и контроля таксофонов (ЦДУКТ) и
диспетчерского центра блоков релейной защиты (ДЦ БРЗ). Их трудно, а иногда невозможно воспроизвести в условиях тестовой среды.
В языке UML и CASE (Computer Aided Software Engineering) средствах на его основе, например «Rational Rose», нет собственных средств обоснования правильности и согласованности наборов диаграмм, поэтому наибольшее внимание уделяется методам и инструментам для преобразования UML-диаграмм в сети Петри и их анализа. При этом различные расширения сетей Петри предлагаются для проверки отдельных видов диаграмм. В решениях для совокупности диаграмм проекта не учитывается применение программных элементов синхронизации и другая специфика разработки объектно-ориентированного многопоточного приложения (в частности ЦДУК). Отсутствует описание технологий применения профессиональных, свободно распространяемых пакетов моделирования раскрашенных иерархических сетей Петри, например «CPN Tools» (Coloured Petri Net), предложений по автоматизации процесса и преодоления ограничений пространства состояний модели. Всё это делает весьма затруднительным применение указанных подходов в инженерии ПО. В известных автору работах не предлагаются шаблоны (типичные образцы проектирования) моделей и кода для проектирования многопоточных системных служб управления и контроля. Отсутствуют предложения по анализу требований к многопоточному ПО с помощью совокупности диаграммы процессов и диаграмм деятельности, детализирующих алгоритмы потоков с учётом используемых при реализации кода элементов синхронизации и аттестации (validation) данного набора диаграмм с использованием раскрашенных иерархических сетей Петри.
Предмет исследования: модели и методы разработки программных средств сбора и обработки данных в вычислительных машинах; методы повышения надежности функционирования программ; теория и практика технологических аспектов программирования, изготовления многопоточных программ, а также программных инструментальных технологических комплексов поддержки разработки программных средств.
Цель работы: разработка методик применения сетей Петри при аттестации наборов UML-диаграмм в процессе разработки многопоточного ПО с ограниченными разделяемыми ресурсами и их применение в разработке программного обеспечения ЦДУК для обеспечения надежности его функционирования.
Основные задачи исследования:
- исследовать и определить набор UML-диаграмм и свойств сети Петри, необходимых и достаточных для обеспечения надежности функционирования создаваемого многопоточного ПО с ограниченными разделяемыми ресурсами;
- разработать методику для этапа анализа многопоточного ПО с ограниченными разделяемыми ресурсами, основанную на создании и аттестации набора UML-диаграмм данного этапа с помощью раскрашенных иерархических сетей Петри и использовании средств автоматизации разработки программ;
- разработать методику для этапа проектирования многопоточного ПО с ограниченными разделяемыми ресурсами, основанную на создании и аттестации набора UML-диаграмм проекта с помощью раскрашенных иерархических сетей Петри и использовании средств автоматизации разработки программ;
- разработать набор шаблонов моделей и программных решений для повышения производительности моделирования и анализа при создании программ и преодоления ограничений компьютерного пакета моделирования;
- разработать ПО ЦДУКТ и ДЦ БРЗ с применением предложенных методик, шаблонов и программных решений.
Методы исследования. Результаты исследования получены на базе аппарата сетей Петри и ООАП. При разработке ПО ЦДУКТ применялись отраслевые и международные стандарты, «Концепция Единой Таксофонной Карты России». При проектировании и реализации ПО ЦДУКТ и ДЦ БРЗ использовались CASE-технологии, инструментальные среды и пакеты моделирования.
Научной новизной обладают
представленные на защиту результаты, полученные для класса объектно-ориентированного многопоточного ПО с ограниченными разделяемыми ресурсами:
- определены необходимые и достаточные, в отличие от известных подходов, наборы UML-диаграмм и свойства сети Петри, что позволяет при разработке данного класса ПО в процессе моделирования и анализа применять для обеспечения надежности его функционирования раскрашенные иерархические сети Петри, которые в известных подходах либо не используются, либо при их эпизодическом использовании не учитываются особенности исследуемого класса ПО;
- впервые разработаны методики для этапов анализа и проектирования данного класса ПО, основанные на создании и аттестации наборов UML-диаграмм с помощью раскрашенных иерархических сетей Петри и использовании средств автоматизации разработки программ, применение которых обеспечивает устранение ошибок и несогласованности набора UML-диаграмм, отражающего требования к разрабатываемому ПО, и гарантирует надежность функционирования спроектированных классов;
- впервые разработаны наборы шаблонов UML-диаграмм (типичных образцов проектирования) и страниц раскрашенных иерархических сетей Петри модели многопоточной системной службы управления и контроля, применение которых на этапах анализа и проектирования позволяет значительно сократить время разработки ПО;
- разработаны шаблоны и программные решения для повышения производительности моделирования в компьютерном пакете моделирования раскрашенных иерархических сетей Петри «CPN Tools», отличающиеся простотой использования и модификации под модель любой сложности. Эти шаблоны и решения позволяют при помощи управления сложностью пространства состояний модели преодолевать ограничения на его размер;
- разработано и успешно внедрено в эксплуатацию ПО ЦДУКТ и ДЦ БРЗ.
Практическая ценность и внедрение результатов исследования.
В результате применения на фазах анализа и проектирования предлагаемых методик программист получает автоматически сгенерированный проект и готовые к реализации в функциях классов алгоритмы, правильность которых обеспечена с помощью анализа полного пространства состояний модели на надежность функционирования и соответствие требованиям. Предложенные методики, шаблоны и программные решения позволяют ускорить и облегчить процесс изготовления программ данного класса, органично вписываются в принятые в индустрии ПО подходы и методы разработки и готовы к реальному применению.
Результаты диссертационной работы были использованы при проектировании и реализации ПО ЦДУКТ, принятого в эксплуатацию СП «Сибирьтелеком» - НГТС в 2003 г.; при проектировании и реализации ПО ДЦ БРЗ, которое поставляется с 2007 г. в комплекте с БРЗ, выпускаемыми ФГУП ПО «Север»; в процессе обучения студентов АВТФ НГТУ.
Апробация работы. Основные результаты работы были представлены на Международном научно-техническом симпозиуме KORUS (Ульсан, 2000; Томск, 2001; Новосибирск, 2002), Международной научно-технической конференции “Информационные системы и технологии” (Новосибирск, 2000), Международной научно-технической конференции “Актуальные проблемы электронного приборостроения” (Новосибирск, 2000), Ежегодной международной сибирской школе-семинаре по электронным приборам и материалам EDM’2003 (Эрлагол, 2003), Международной научно-практической конференции «Электронные средства и системы управления» (Томск, 2004), IV Сибирском конгрессе по прикладной и индустриальной математике “ИНПРИМ-2000” (Новосибирск, 2000). Материалы диссертации обсуждались в 2003 г. в университете г. Айхштет (Германия) на «The 4th Advanced Course on Petri Nets», летней школе «IFAC Summer School on Control, Computing and Communication», проходившей в 2005 г. в Чешском техническом университете (г. Прага), объединенном научном семинаре отдела МОВВС ИВМ и МГ СО РАН, кафедры параллельных вычислительных технологий НГТУ и кафедры параллельных вычислений НГУ, объединенном научном семинаре АВТФ и ФПМИ НГТУ.
Публикации. Основные положения и результаты диссертационной работы опубликованы в 29 работах, в том числе: 5 – в изданиях, рекомендуемых ВАК РФ; 14 – в сборниках научных трудов; 7 – в материалах международных симпозиумов и конференций; 3 – в материалах российских конференций. В конце автореферата приведен список основных публикаций.
Личный вклад. Все разработки и научные результаты, выносимые на защиту и изложенные в тексте диссертации, получены либо самим автором лично, либо при его непосредственном участии.
Структура и объем работы. Диссертация состоит из введения, пяти разделов, заключения, списка использованной литературы, включающего 117 наименований и приложений. Общий объем работы составляет 216 страниц, в том числе основное содержание изложено на 171 странице и включает 75 рисунков, 9 таблиц и приложения размещены на 44 страницах.
ОСНОВНОЕ СОДЕРЖАНИЕ РАБОТЫ
Во введении обоснована актуальность темы диссертации, сформулированы цель и задачи исследования, определены научная новизна и практическая ценность работы, дана общая характеристика полученных результатов, аннотируются основные положения работы.
Первый раздел посвящен методологическим и технологическим особенностям разработки многопоточного ПО с ограниченными разделяемыми ресурсами и обеспечения надежности его функционирования.
Определены: назначение, структура, состав и задачи разработки данного класса систем. Проведен анализ процессов, подходов и моделей разработки систем, методов обеспечения их правильности и возможностей применения сетей Петри на технологическом цикле разработки ПО. В разработке исследуемого класса ПО предлагается использовать ООАП с применением языка UML и CASE средства «Rational Rose», а для аттестации наборов UML-диаграмм на фазах анализа и проектирования использовать сети Петри. Это необходимо для обеспечения надежности ПО, так как в UML и CASE средствах на его основе, нет собственных средств аттестации наборов диаграмм. Актуальность проблемы аттестации UML-диаграмм подтверждается рядом публикаций.
В качестве формального метода выбран аппарат сетей Петри, поскольку он позволяют наилучшим образом решить задачи, связанные с представлением, моделированием и анализом причинно-следственных связей в сложной системе параллельно действующих процессов.
Определение. Сетью Петри называется набор N = {Р, Т, F, W, Mo), где: (Р, Т, F) — конечная сеть; P — непустое множество элементов сети, называемых местами; T — непустое множество элементов сети, называемых переходами; — отношение инцидентности; — функция кратности дуг; — функция начальной разметки сети Петри.
Различные расширения сетей Петри используются для проверки отдельных видов диаграмм в ряде работ. Предложения по использованию ординарных сетей Петри для анализа диаграмм взаимодействия и деятельности предназначены для моделирования потоков работ на отдельных диаграммах в терминах бизнес процессов. Подходы с применением обобщенных стохастических сетей Петри для моделирования диаграмм последовательности, состояний, деятельности являются не связанными работами, направленными на анализ производительности систем, критичных к времени выполнения, и систем реального времени. Указанные подходы не ориентированы на обеспечение надежности функционирования ПО. В них не учитывается иерархия, сложность событий, элементы синхронизации и другие особенности моделирования многопоточного объектно-ориентированного ПО.
Известны два подхода к преобразованию совокупности диаграммы классов, состояний для каждого класса и их взаимодействия в сеть Петри и её анализу. В первом подходе предлагается набор правил преобразования в высокоуровневую сеть Петри без учета событий, указания расширения сетей Петри и практических рекомендаций по преобразованию и анализу, что делает невозможным его применение в индустрии ПО. В цикле статей по второму подходу предлагается использовать раскрашенную иерархическую сеть Петри. Несмотря на подробное описание, в данном событийном подходе различных аспектов преобразования в сеть Петри диаграмм состояний любой сложности отсутствуют правила использования и преобразования в элементы сети Петри широко применяемых для синхронизации в многопоточном приложении реальных программных элементов, не учитываются параметры событий и другая специфика разработки многопоточного объектно-ориентированного ПО ЦДУК.
В указанных подходах можно выделить ряд недостатков, которые затрудняют применение этих подходов в инженерии ПО: 1) в них нет описания технологий применения профессиональных, свободно распространяемых пакетов моделирования раскрашенных иерархических сетей Петри; 2) нет рекомендаций по анализу функционирования ПО сетью Петри на основе его связи со свойствами и структурой сети; 3) нет предложений по автоматизации процесса моделирования и анализа; 4) нет практических рекомендаций для преодоления ограничений пакета моделирования на размер пространства состояний модели.
В результате обзора не обнаружено публикаций, предлагающих шаблоны моделей и кода для проектирования многопоточных системных служб управления и контроля. Отсутствуют предложения по спецификации требований к многопоточному ПО с помощью диаграммы процессов и диаграмм деятельности, детализирующих алгоритмы потоков, с учётом используемых при реализации кода элементов синхронизации, с аттестацией полученного набора диаграмм при помощи раскрашенных иерархических сетей Петри.
Второй раздел посвящен исследованию возможностей применения классических и раскрашенных сетей Петри в разработке многопоточного ПО.
В результате анализа определен набор свойств классических сетей Петри, обязательных для проверки ПО на соответствие требованиям и надежности. Очень важным свойством сети Петри является отсутствие тупиковых («мёртвых») маркировок. Для устранения этого свойства разработчик анализирует проблему возникновения «мертвой» маркировки и изменяет структуру сети Петри и соответствующий ей алгоритм работы моделируемой системы, представленный на UML-диаграммах. При моделировании многопоточного ПО с ограниченными ресурсами должны быть обязательно проверены границы мест, моделирующих семафоры, критические секции и стеки. Свойство живости характеризует достижимость и функциональность всех переходов в сети. Если моделирование выявит, что существуют «мертвые» переходы, то необходимо перестроение модели и исключение нефункционирующих переходов, так как их присутствие означает невыполнение какой-то части алгоритма.
В результате рассмотрения было выявлено стремительное увеличение сложности классической сети Петри при масштабировании и невозможность моделирования многих аспектов объектно-ориентированных моделей, служащих основой для реализации реальной системы. Для решения данных проблем предложено использовать раскрашенные иерархические сети Петри. Приведенные ниже утверждения об эквивалентности, а также описанные в работе Йенсена правила эквивалентности и преобразования позволяют взаимно переносить на раскрашенные иерархические сети Петри все свойства, основные концепции и методы анализа классических сетей Петри.
Утверждение 1: Пусть имеется неиерархическая раскрашенная сеть Петри
. Определим эквивалентную простую сеть Петри
по следующим правилам: 1)
; 2)
; 3)
где
– множество неотрицательных целых чисел,
и
; 4)
. Здесь:
,
,
,
– конечные множества непустых типов (цветов), мест, переходов, дуг, а
N, C, G, E, I – функции вершин, цвета, охраны переходов, выражения дуг и начальной разметки.
Утверждение 2: Пусть имеется иерархическая раскрашенная сеть Петри
. Определим эквивалентную неиерархическую раскрашенную сеть Петри как набор
, который удовлетворяет следующим условиям: 1)
; 2)
; 3)
; 4)
; 5)
; 6)
; 7)
; 8)
; 9)
. Здесь
S, SN – множества страниц и подстановочных вершин (составных переходов);
SA,
PT,
PA,
FT функции связывания страниц, типов портов, связывания портов и типа слияния;
PN – множество портов;
FS – конечное множество множеств мест слияния;
PP – мультимножество первичных страниц.
Рекомендуется при проверке свойства ограниченности раскрашенной сети Петри кроме целых границ определять верхние и нижние границы мультимножеств. Это позволяет разработчику контролировать не только максимальное и минимальное количество меток в местах, но и значение меток.
Анализ пространства состояний модели, отражающего все возможные маркировки, позволяет получить все указанные свойства сети Петри. Его построение и анализ для реальных систем выполняется с помощью компьютерного инструмента. Набор инструментов «CPN Tools» позволяет быстро и легко создавать и редактировать сети Петри, проводить их моделирование и анализ. В данном разделе работы приведен полный стандартный отчёт для модели взаимодействия таксофона и ЦДУКТ и описаны его составляющие. Фрагмент отчета с выводами о правильности модели и соответствии требованиям приведен в таблице 1. Отчет содержит разделы: статистика пространства состояний – число узлов, дуг и статус (полное); свойства обратимости – список возвратных маркировок (Home Markings) и «мертвых» маркировок (Dead Markings); свойства ограниченности – верхние и нижние числовые границы (Integer Bounds) и мультимножеств (Multi-set Bounds); свойства живучести – список «живых» переходов (Live Transition Instances) и «мертвых» переходов (Dead Transition Instances); свойства справедливости срабатывания переходов – Just - обосновано, Fair - доказано, Impartial - объективно и No Fairness - не определено.
Таблица 1. Анализ отчета о пространстве состояний сети Петри
Результаты отчета
|
Выводы
|
State Space (Статистика) Status: Full Nodes: 33093 Arcs: 149580
|
Пространство состояний модели вычислено полностью и содержит 33093 узла и 149580 дуг.
|
Свойства обратимости
Home Markings All
Dead Markings None
|
Все маркировки являются «домашними» - модель обратима. «Мертвые» маркировки отсутствуют – в модели нет тупиков.
|
Свойства живучести
Dead Transition Instances None
Live Transition Instances All
|
«Мертвых» переходов нет.
Все переходы «живые». Во время сеанса связи возникают все события.
|
Свойства ограниченности – верхние и нижние границы: числовые и мультимножеств
Best Integer Bounds (Upper,Lower), Best (Upper,Lower) Multiset Bounds
|
IDackRec 1 0
End 3 0
Ringing 2 0
…………………………
IDackRec 1`(1,(1,1))++1`(2,(1,1))
LineBusy 1`1++1`2
…………………………
|
Сеть ограниченная, с границами равными 3 –для места End, 2 – для места Ringing, 1 – для места IDackRec и т.д., что соответствует исходным данным. На основании данных верхних границ мультимножеств мест делаем вывод о наличии в местах меток в соответствии с правилами функционирования модели.
|
Fairness Properties (справедливость срабатывания переходов)
|
Busy Just
DialN Impartial
MeetMeTone Fair
End No Fairness
|
Справедливость срабатываемости перехода Busy обоснована, перехода Impartial – объективна, MeetMeTone – доказана, а перехода End – и остальных переходов не доказана.
|
Несмотря на широкие возможности пакета «CPN Tools», ввод исходных данных и вывод результатов значительно замедляет процесс. Кроме того, пакет имеет ограничение на размер пространства состояний. Для преодоления этого ограничения, повышения эффективности моделирования и, как следствие, анализа, предлагается набор программных решений. Он позволяет легко манипулировать исходными данными для создания их различных комбинаций при помощи таблицы Microsoft Excel и получать автоматически набор текстовых файлов, которые загружаются в модель при помощи кодовых сегментов (рис.1). Помимо автоматизации это позволяет решить проблему «взрыва» пространства состояний, легко управляя его сложностью при масштабировании модели.
Рис.1. Компоненты технологии инициализации модели
Результаты представленного во втором разделе исследования и предложенные технологические и программные решения обеспечивают разработчика эффективным автоматизированным инструментом создания надежного ПО.
В третьем разделе предлагается итерационная методика для этапа анализа многопоточного ПО с ограниченными разделяемыми ресурсами, основанная на создании и аттестации (validation) набора UML-диаграмм данного этапа с помощью раскрашенных иерархических сетей Петри.
Шаг 1. На
диаграмме вариантов использования отразить функциональное назначение системы (в процессе сбора требований)
.
Шаг 2. На
диаграммах последовательности детализировать критичные варианты использования
.
Шаг 3. На
диаграмме процессов отразить процесс и все необходимые потоки для проектируемого многопоточного программного модуля.
Шаг 4. На
диаграммах деятельности отразить последовательность выполнения действий процессом и потоками, а также их взаимодействие при использовании критических ресурсов с учетом элементов синхронизации.
Шаг 5. Диаграммы деятельности преобразовать в раскрашенную иерархическую сеть Петри с помощью определенного набора правил.
Шаг 6. Исследовать правильность функционирования модели путём выполнения прогона (simulation) с использованием различных комбинаций исходных данных по различным последовательностям выполнения. При обнаружении ошибки выполнить переход на шаг 4,3,2,1 в зависимости от типа ошибки.
Шаг 7. Анализ корректности набора отчетов о полном пространстве состояний с различными комбинациями исходных данных. При обнаружении ошибки выполнить переход на шаг 4,3,2,1 в зависимости от типа ошибки.
Шаг 8. Выполнить этап проектирования с помощью полученного набора UML-диаграмм.
Шаги 1 и 2 широко используются в разработке ПО, и их применение в работе не рассматривается. На
третьем шаге методики предлагается
шаблон диаграммы процессов (рис. 2). Как и все последующие диаграммы, она ориентирована на ЦДУК. Количество потоков ожидания зависит от количества каналов (устройств) связи. Количество потоков опроса зависит от количества управляемых устройств, но при большом интервале между сеансами связи (опросами), достаточном
для опроса всех устройств, может использоваться один поток.
Рис.2. Шаблон диаграммы процессов службы управления и контроля
Рис.3. Детализация деятельности потока слежения и передачи команд
На четвертом шаге методики на диаграммах деятельности детализируются особенности алгоритмической реализации каждого потока. Предлагается использовать траекторию объектов для отображения критических секций, флагов, семафоров и других элементов синхронизации работы параллельных потоков с указанием места взятия и отдачи ресурса для канала передачи, соединения с БД и флага работы службы (рис. 3). Ресурс с множеством экземпляров помечается как Multiple instances для отличия объектов с единичными и множественными экземплярами, учета этой особенности при преобразовании в сеть Петри и выборе элемента синхронизации доступа к ресурсу.
Предложенные шаблоны UML-диаграмм для ЦДУК и правила их построения являются новым результатом, готовым к практическому применению.
На пятом шаге диаграммы деятельности преобразуются в раскрашенную иерархическую сеть Петри, реализуемую в пакете CPN Tools. Элементы диаграмм деятельности преобразуются в соответствующие эквиваленты сети Петри. Известные правила преобразования диаграмм деятельности в ординарную сеть Петри были систематизированы, и на их основе предложены четыре правила преобразования основных элементов диаграммы деятельности и созданы ещё три правила для преобразования элементов синхронизации многопоточного приложения и выделения процессов и потоков в страницы сети Петри.
Рис.4. Страница службы управления и контроля
Пример применения предложенных правил проиллюстрирован на рис.4 для главной страницы модели службы контроля и управления. Флаг работы службы bWorking реализован как место слияния, так как он используется для синхронизации потоков. Такое решение предлагается применять для всех элементов синхронизации и ссылок на общие данные объекта класса «родителя» и классов «потомков». Работа потоков, инициализации и останова отражена в виде составных переходов с соответствующими подстраницами.
На шестом и седьмом шаге работа с сетью Петри выполняется с различными комбинациями исходных данных. «Прогон» модели позволяет разработчику лучше понять функционирование системы и выявить очевидные ошибки. Далее выполняется генерация отчета по полному пространству состояний и по результатам его анализа принимается решение о правильности модели.
Приведенные в данном разделе примеры страниц сети Петри имеют свою практическую ценность и могут быть использованы в качестве шаблонов при анализе требований к службе управления и контроля. Использование предложенных страниц инициализации и завершения службы, в дополнение к основным страницам сети Петри, позволяет провести тщательное исследование вариантов поведения системы при различных комбинациях исходных требований.
В четвёртом разделе предлагается итерационная методика для этапа проектирования многопоточного ПО с ограниченными разделяемыми ресурсами, основанная на создании и аттестации набора UML-диаграмм проекта с помощью раскрашенных иерархических сетей Петри.
Шаг 1. Создать диаграмму
классов с учетом процессов и потоков, отображенных на
диаграмме процессов, реализуемых как активные классы. Задача запуска потока работы с управляемыми объектами при создании экземпляра класса и его останова при завершении работы программного модуля (удалении экземпляра класса) возлагается на активный класс.
Шаг 2. Создать
диаграмму состояний для каждого класса, отражающую последовательность состояний, в которые попадает класс при его создании, удалении и вызове его методов с учетом использования элементов синхронизации потоков, доступа к ресурсам и флагов, влияющих на ход выполнения методов.
Шаг 3. Отобразить на
диаграмме последовательности взаимодействие классов с указанием вызовов конструкторов, деструкторов, методов классов.
Шаг 4. Преобразовать каждую диаграмму состояний в страницу раскрашенной иерархической сети Петри с помощью определенного набора правил.
Шаг 5. Объединить все полученные страницы раскрашенной иерархической сети Петри в единую сеть с помощью страницы связки, реализуемой на основании диаграммы последовательности.
Шаг 6. Исследовать правильность функционирования модели в процессе выполнения прогона (simulation) модели по различным последовательностям выполнения. При обнаружении ошибки выполнить переход на шаг 4,3,2,1 в зависимости от типа ошибки.
Шаг 7. Проанализировать корректность отчета о полном пространстве состояний модели. При обнаружении ошибки выполнить переход на шаг 4,3,2,1 в зависимости от типа ошибки.
Шаг 8. Выполнить автоматическую генерацию проекта и реализацию кода на основании созданного и аттестованного набора UML-диаграмм проекта.
Применение методики проиллюстрировано на примере разработки ПО ЦДУК. На первом шаге в качестве шаблона диаграммы классов службы управления и контроля предлагается диаграмма, представленная на рис.5. Класс CControlService создает и удаляет набор экземпляров класса CDevice, предоставляющего интерфейс доступа к управлению устройством связи, приемом и передачей данных в виде функций: SendData(…) – отправить данные, GetData(…) – получить данные и т.д. На класс CDevice ложится задача синхронизации доступа к разделяемым ресурсам: каналам приема/передачи устройства связи и соединению с базой данных для чтения и записи данных. Класс CDevice является контейнером для активных классов CThread1 и CThread2, реализующих логику работы с объектами управления. Применение данной архитектуры предоставляет разработчику системы удобный механизм синхронизации и управления процессом создания и уничтожения объектов.
Рис.5. Диаграмма классов службы управления и контроля ЦДУК
На втором шаге каждая функция класса создается как составное состояние с детализацией ключевых моментов в выполнении функций, связанных с синхронизацией потоков, созданием и удалением объектов классов. Предлагаемая диаграмма состояний класса CControlService (рис.6) построена с учетом максимальной приближенности к исходному коду функций класса.
Рис.6. Исходная диаграмма состояний класса CControlService
Разработанный набор UML-диаграмм является новым результатом, готовым к практическому применению, и может быть использован в качестве шаблона при разработке ПО ЦДУК. Его состав является базовым и достаточным для автоматической генерации проекта и реализации кода функций, выполняющего синхронизацию потоков, создание и удаление классов.
Четвертый шаг методики выполняется в два этапа с помощью предлагаемого в работе набора правил, которые, в отличие от метода формализации UML-диаграмм сетью Петри, предложенного в работах S.M. Shatz и Z.Hu (2003-2006), учитывают особенности проектирования и реализации многопоточных приложений, особенности пакета CPN Tools. Дополнительно предлагается выполнять следующие действия: 1) список событий для классов представить в виде таблицы (событие, связанные с событием классы и описание события); 2) для уменьшения пространства состояний модели исключить состояния, не участвующие в синхронизации потоков, передаче управления, создании и удалении классов, разделении критических ресурсов; 3) при создании двух (и более) экземпляров класса показывать создание одного экземпляра, а наличие других при необходимости моделировать в сети Петри с помощью дополнительных цветов меток; 4) каждый переход ассоциировать с событием, при этом вызовы методов классов, представленные в виде вызова функций, заменить генерируемыми для соответствующих классов событиями, а если метод класса используется несколькими функциями, то в событие добавляется параметр, который указывает на вызвавшую данное событие функцию.
Рис.7. CPN страница класса CControlService
Представленные технологии описания событий, их параметров и построения промежуточных диаграмм состояний позволяют значительно упростить и ускорить моделирование.
Созданные правила для преобразования элементов синхронизации многопоточного приложения и организации структуры сети Петри позволяют, в отличие от упомянутого в шаге 4 подхода, отразить особенности функционирования многопоточного объектно-ориентированного ПО, работающего с ограниченными разделяемыми ресурсами. Полученная путем их применения CPN страница класса CControlService приведена на рис. 7. Место bWorking является местом слияния страницы класса CControlService и активных классов.
Указанный вариант реализации (на пятом шаге) места-накопителя InternalLinking как места слияния и использование условий ограничений на переходах inside позволяет значительно упростить страницу связки или вовсе отказаться от её использования в отличие от упомянутого подхода.
На шестом и седьмом шаге выполняется работа с сетью Петри. Производится «прогон» модели и генерация отчета по пространству состояний. В случае отсутствия расхождений свойств модели с требованиями к ПО выполняется автоматическая генерация проекта и реализация кода на основе созданного и проверенного набора UML-диаграмм проекта.
Приведенные примеры страниц сети Петри имеют свою практическую ценность и могут быть использованы разработчиками систем в качестве шаблона при моделировании проектов служб управления и контроля.
Предлагаемая методика позволяет создать проект на языке UML и доказать правильность функционирования спроектированных классов разрабатываемого многопоточного ПО, обеспечив тем самым надежность его функционирования. Применение методики продемонстрировано на примере проекта службы управления и контроля ЦДУК, имеющем несомненную практическую ценность как шаблона (типичного образца проектирования).
В пятом разделе продемонстрировано применение результатов, полученных в разделах 2, 3, 4 при разработке ПО ЦДУКТ и ДЦ БРЗ.
Применение в процессе разработки ПО предложенной в разделе 3 методики позволило представить алгоритмы управления и контроля в виде набора UML-диаграмм, провести их исследование и анализ различных аспектов. На основании предоставленных разработчиками управляемого оборудования требований, в виде словесного описания и блок-схем алгоритмов обмена данными, были сформулированы требования к ПО и проверены с помощью сетей Петри. Предложен и проверен набор UML-диаграмм этапа анализа. Приведена полная модель от диаграммы вариантов использования и диаграмм последовательности важных прецедентов до реализованных в CPN Tools страниц сети Петри модели службы управления и контроля. На основании её анализа сделано заключение об отсутствии проблем в функционировании алгоритмов работы, построенных в соответствии с требованиями к ПО и согласованных с заказчиком, позволяющее использовать эти алгоритмы для проектирования и реализации ПО. В частности, в основу ПО ЦДУКТ была заложена многоуровневая архитектура «клиент-сервер», позволяющая быстро и легко реализовывать любую конфигурацию – от локального варианта для небольшой таксофонной сети до корпоративной информационной системы. Непосредственное моделирование и анализ протокола связи и логики функционирования с помощью сети Петри позволило тщательно исследовать все особенности сеанса связи таксофонов и ЦДУКТ и реализовать в проекте оптимальную архитектуру сервера сбора данных и алгоритмы. Применение методики, предложенной в разделе 3, позволило провести всестороннее исследование алгоритмов работы в рамках архитектуры с учетом требований к многопоточному программному модулю управления и контроля, выявить ошибки в требованиях к системе и получить алгоритмы, готовые к реализации в функциях классов.
Модели, полученные на этапе сбора требования и анализа, послужили основой для фазы проектирования. В данном разделе представлены и описаны UML-диаграммы проекта службы управления и контроля и модель сети Петри, разработанные автором в соответствии с методикой раздела 4. Описан процесс разработки ПО на этапе проектирования. Приведена диаграмма классов, список событий классов службы управления и контроля, диаграммы состояний классов и страницы реализованной в CPN Tools модели сети Петри с описанием особенностей реализации диаграмм и модели, и результаты анализа сети Петри. Применение предложенной в разделе 4 методики позволило проверить важные для безотказной работы службы управления и контроля свойства модели, отражающей функционирование многопоточного программного модуля, представленного в виде набора UML-диаграмм проекта, и обеспечить правильность и стабильность его функционирования.
На основе диаграмм проекта с помощью CASE средства «Rational Rose 2003» была выполнена генерация каркаса кода проекта службы управления и контроля для инструментальной среды Visual C++ 6.0 и реализация кода.
В Приложениях даны основные определения и свойства раскрашенных сетей Петри, приведены рекомендации по повышению эффективности моделирования и анализа в пакете CPN Tools и модели ПО ДЦ БРЗ, представлены акты о внедрении результатов диссертационной работы.
Основные результаты исследования
Для класса многопоточного программного обеспечения с ограниченными разделяемыми ресурсами, в соответствии с поставленными целями исследования в диссертационной работе получены следующие новые результаты:
- исследован и определен набор UML-диаграмм и свойств сети Петри, необходимых и достаточных для обеспечения надежности функционирования создаваемого многопоточного ПО с ограниченными разделяемыми ресурсами;
- разработана методика для этапа анализа многопоточного ПО с ограниченными разделяемыми ресурсами, основанная на создании и аттестации набора UML-диаграмм данного этапа с помощью раскрашенных иерархических сетей Петри и использовании средств автоматизации разработки программ, которая в отличие от неформального подхода к анализу позволяет устранять ошибки и несогласованность требований к разрабатываемому ПО;
- разработана методика для этапа проектирования многопоточного ПО с ограниченными разделяемыми ресурсами, основанная на создании и аттестации набора UML-диаграмм проекта с помощью раскрашенных иерархических сетей Петри и использовании средств автоматизации разработки программ, которая в отличие от неформального подхода к разработке позволяет обеспечивать надежность функционирования спроектированных классов;
- разработан набор шаблонов моделей (образцов проектирования) и программных решений для повышения производительности моделирования при создании программ и для преодоления ограничений компьютерного пакета моделирования;
- разработано ПО ЦДУКТ и ПО ДЦ БРЗ с применением предложенных методик, шаблонов и программных решений.
Полученные результаты апробированы в условиях разработки ПО ЦДУК. Правильность
предложенных методик, шаблонов и программных решений подтверждается результатами успешной эксплуатации разработанного автором ПО, а также актами внедрения, приведенными в приложении. Сертифицированное на соответствие концепции «Единая Таксофонная Карта России» ПО ЦДУКТ успешно эксплуатируется в ОАО «Сибирьтелеком» (г. Новосибирск). ПО ДЦ БРЗ поставляется в комплекте с БРЗ клиентам ФГУП ПО «Север» (г. Новосибирск). Результаты, полученные в диссертационной работе, используются в учебном процессе факультета АВТ НГТУ.
ОСНОВНЫЕ ПУБЛИКАЦИИ ПО ТЕМЕ ДИССЕРТАЦИИ:
-
Коротиков С.В. Применение сетей Петри в разработке программного обеспечения центров дистанционного управления и контроля / С. В. Коротиков, А. А. Воевода // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 4 (29). – С. 15–30.
-
Коротиков С.В. Применение цветной иерархической сети Петри для проверки согласованности UML-диаграмм на фазе проектирования ПО ЦДУК / С. В. Коротиков // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 2 (27). – С. 203–206.
-
Воевода А.А. Применение сетей Петри при разработке протоколов / А. А. Воевода, С. В. Коротиков, Д.О. Саркенов // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 2004. – № 2 (17). – С. 183–188.
-
Воевода А.А. О моделировании системы дистанционного контроля и управления цветной временной сетью Петри в пакете CPN Tools: инициализация модели / А. А. Воевода, С. В. Коротиков, В. Хассоунех // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 2004. – № 3 (18). – С. 185–188.
-
Астапчук В.А. О проблемах оптимального построения распределенных информационных систем / В. А. Астапчук, А. А. Воевода, С. В. Коротиков // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 1999. – № 2 (7). – С. 177–178.
-
Воевода А.А. О модификации полного покрывающего дерева и графа разметок сети Петри / А. А. Воевода, С. В. Коротиков // Науч. вестн. НГТУ. – Новосибирск : Изд-во НГТУ, 2005. – № 1 (19). – С. 171–172.
-
Korotikov S.V. Automation works flow of payphones communication operator’s / S.V. Korotikov // Proceedings of the 5 Korea-Russia international symposium on science and technology, KORUS 2001, Tomsk, Russia, 26 June –3 July 2001. – Tomsk, 2001. – Vol. 1. – P. 131–134. [Автоматизация потока работ оператора таксофонной связи]
-
Korotikov S.V. Modeling of payphones management and control system using the unified modeling language / S.V. Korotikov // Materials of the 6 Korea-Russia international symposium on science and technology, KORUS 2002, Novosibirsk, Russia, 24–30 June 2002. – Novosibirsk, 2002. – Vol. 3. – P. 85. [Моделирование системы контроля и управления таксофонов с помощью унифицированного языка моделирования]
-
Korotikov S.V. Optimal building of distributed information system for payphones control / S.V. Korotikov // Proceedings of the 4 Korea-Russia international symposium on science and technology, KORUS 2000, Ulsan, Rep. of Korea 2000. – Ulsan, 2000. – Pt. 2. – P. 150–155. [Оптимальное построение распределенной информационной системы управления таксофонами]
-
Korotikov S.V. Using of Petri nets techniques in information systems design / S.V. Korotikov // International Siberian workshop and tutorials on electron devices and materials. EDM 2003: proc., 4 annu., Erlagol, Altai, 1–4 july 2003.– Novosibirsk, 2003.– P. 171–175. [Применение технологий сетей Петри в проектировании информационных систем]
-
Коротиков С.В. Моделирование сеанса связи таксофона и ЦДУКТ с использованием сетей Петри / С. В. Коротиков, А. А. Воевода // Электронные средства и системы управления : материалы межд. науч.-практ. конф., Томск, 6–8 окт. 2004 г. : в 3 ч. – Томск : Изд-во Ин-та оптики атмосферы СО РАН, 2004. – Ч. 2. – С. 135–139.
-
Коротиков С.В. Применение спецификации эквивалентности в моделировании сеанса связи таксофона и центра дистанционного контроля и управления таксофонами раскрашенной сетью Петри / С. В. Коротиков, Д. О. Саркенов // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 3 (49). – С. 97–104.
-
Коротиков С.В. Представление логики взаимодействия таксофона и СКУТ в виде цветной иерархической сети Петри / С. В. Коротиков, А. А. Воевода // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2004. – № 2 (36). – С. 147–148.
-
Воевода А.А. О компактном представлении языков сетей Петри / А. А. Воевода, С. В. Коротиков // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2005. – № 1 (39). – С. 141–144.
-
Коротиков С.В. Современные подходы к созданию и поддержке программ- ного обеспечения информационных систем / С. В. Коротиков, А. В. Желтов // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2001. – № 1 (23). – С. 64–69.
-
Коротиков С.В. Применение цветных иерархических сетей Петри для верификации UML-диаграмм на этапе анализа требований к системе дистанционного контроля и управления / С. В. Коротиков // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 1 (47). – С. 81–92.
-
Коротиков С.В. Применение шаблонов UML и сетей Петри при разработке системной службы центра дистанционного управления и контроля / С.В. Коротиков // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 2 (48). – С. 135–144.
-
Коротиков С.В. Проверка согласованности UML-диаграмм проекта службы контроля и управления ДЦ БРЗ с помощью сетей Петри / С. В. Коротиков // Сб. науч. тр. НГТУ. – Новосибирск : Изд-во НГТУ, 2007. – № 2 (48). – С.51–62.
Подписано в печать 13.05.08 г. Формат 60 X 84/16
Бумага офсетная. Тираж 110 экз. Печ. л. 1,25.
Заказ № 723
Отпечатано в типографии
Новосибирского государственного технического университета
630092, г. Новосибирск, пр. К. Маркса, 20
тел./факс (383) 346-08-57