Скачать 296.87 Kb.
|
Несмотря на широкие возможности пакета «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 и модели ПО ДЦ БРЗ, представлены акты о внедрении результатов диссертационной работы. |
Методические рекомендации по разработке индивидуальных учебных планов... Рекомендовано к печати учебно-методическим советом Института непрерывного образования | Программа по формированию навыков безопасного поведения на дорогах... ОС, сред и систем программирования, и практическим навыкам создания и использования эффективного программного обеспечения для управления... | ||
Тематический план Введение. Предмет курса и его связь со смежными... Целью изучения дисциплины является получение общих представлений о содержании и тенденциях развития базовых информационных технологий... | Формирование конкурентной стратегии на предприятиях сферы услуг (на... Охватывает в совокупности финансовые и нефинансовые показатели деятельности предприятий сферы услуг (на примере розничных торговых... | ||
Доклад «О состоянии и проблемах осуществления государственного, муниципального контроля» ... | 2 2 Ключевые вопросы сопровождения программного обеспечения 152 Программная инженерия и сущность инженерного подхода к созданию программного обеспечения 9 | ||
Государственное образовательное учреждение высшего професионального образования В настоящее время невозможно отрицать потребность системы образования в средствах обеспечения дистанционного обучения. Внедрение... | Программа текущего контроля успеваемости студентов по пм02 Разработка,... Осударственного образовательного стандарта (далее – фгос) по специальности среднего профессионального образования (далее – спо) 09.... | ||
Применение программного обеспечения «skype» в развитии коммуникативных... | План работы на декабрь 2010 года Участие в работе учебного (модульного) очно-дистанционного семинара по теме «Информационно-коммуникационные технологии на основе... | ||
История развития методологии тестирования при разработке программного обеспечения” Санкт Петербургский государственный университет информационных технологий механики и оптики | Алгоритмы безопасного перехода в сетях петри для лицензионной защиты программных систем Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей | ||
Дипломная работа посвящена программной реализации и экспериментальному... Дипломный проект посвящен разработке программного комплекса для оптимизации размещения устройств регулирования напряжения в электроэнергетике... | Рабочая программа учебной дисциплины технологии разработки программного обеспечения Охватывает данный подход? Какие модели используются в качестве функциональных спецификаций при структурном подходе? Какие характеристики... | ||
Рабочая программа дисциплины Целью дисциплины является изучение принципов и методов аппаратного и программного обеспечения систем управления технологическим оборудованием... | Реферат Данная работа посвящена разработке программного обеспечения... В главе 1 рассмотрены задачи автоматизации процессов Оператора связи, а также важность вопроса обеспечения автоматизированного тестирования... |