Научная статья на тему 'Верификация UML-моделей программных систем'

Верификация UML-моделей программных систем Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
894
235
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЕРИФИКАЦИЯ / ВЕРИФИКАЦИЯ UML / ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / АРХИТЕКТУРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ / UML / XMI

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Волович М. Е., Дерюгина О. А.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

UML models of software systems verification

In this paper a scheme of automatic UML model consistency verification based on the formulation of systems’ modelling restrictions has been offered. As requirements necessary conditions are considered, which can guarantee the integrity and coherence of the UML model in XMI format.

Текст научной работы на тему «Верификация UML-моделей программных систем»

Электронный журнал Cloud of Science. 2015. T. 2. № 1

http:/ / cloudofscience.ru ISSN 2409-031X

Верификация UML-моделей программных систем

1 12 3

М. Е. Волович , О. А. Дерюгина ' '

1Московский государственный университет приборостроения и информатики 107996, г. Москва, ул. Стромынка, 20

Московский технологический институт 119334, Москва, Ленинский проспект, 38а

3Российский государственный социальный университет 129226, г. Москва, ул. Вильгельма Пика, 4

e-mail: i@volovich.me, o.a.derugina@yandex.ru

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

1. Введение

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

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

ПРИКЛАДНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ПРОЦЕССЫ

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

UML-диаграммы

Структурные диаграммы Диаграммы поведения Диаграммы взаимодействия

Диаграмма классов Диаграмма объектов Диаграмма развёртывания Диаграмма пакетов Диаграмма компонентов и др. Диаграмма состояний Диаграмма прецедентов Диаграмма деятельности Диаграмма последовательности Диаграмма кооперации!! др.

Рисунок 1. Канонические типы UML-диаграмм

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

2. Способы формального описания UML-диаграмм

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

Значительно упростить анализ UML-модели возможно, если произвести переход от графического представления к эквивалентному описанию на формальном языке. Существуют различные направления формального описания UML-диаграмм. Развиваются семантические подходы, в частности (рис. 2): трансформации на основе графов [2], сети Петри [3], темпоральная логика [4], операционная семантика [5], денотационная семантика [6], конечные автоматы [7].

В настоящее время существует разработанный Object Management Group открытый формат XML Metadata Interchange (XMI), облегчающий обмен метаданными XML, который используется в частности для передачи UML-моделей между приложениями.

Рисунок 2. Подходы к заданию семантики UML-диаграмм

Согласно спецификации XMI [8] (Version 2.4.2), формат был создан с целью поддержки ядра Meta Object Facility (MOF), определенного в ISO/IEC 19508, и может быть использован в качестве эквивалента графическому представлению UML.

В [8] перечисляются следующие возможности XMI:

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

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

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

- идентификация объектов, которая позволяет обращаться к ним из других объектов по ID и UUID.

Тем не менее, хотя проверка XMI-модели и осуществляется, но все же полная верификация на соответствие семантическим ограничениям не может быть проведена [8].

В [1] предложена инфраструктура, позволяющая применять трансформации к UML-модели в формате XMI, задавая различия между изначальной и конечной моделью и параметры (операций добавления, удаления, изменения). Кроме того, используется UML-репозиторий, позволяющий осуществлять контроль версий.

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

ПРИКЛАДНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ПРОЦЕССЫ

позволяет проводить автоматические проверки модели на соответствие правилам моделирования, предусмотренным в процессе моделирования.

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

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

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

1. При создании диаграмм Activity и Sequence необходимо, чтобы все вызовы (Sequence) и действия (Activity) использовали только методы и атрибуты, представленные на диаграмме классов.

2. В диаграммах состояний могут использоваться только методы и атрибуты, присутствующие на диаграмме классов.

3. Все имена, используемые в описании диаграмм, кроме диаграммы прецедентов должны содержать только элементы диаграммы классов и объекты-экземпляры специфицированных классов.

4. Все прецеденты на диаграмме прецедентов должны присутствовать на диаграмме классов.

5. Все блоки диаграммы деятельности должны быть отображены на диаграмме классов.

6. Все классы должны быть размещены по компонентам на диаграмме компонентов.

7. На диаграмме классов не должно быть методов, которые присутствуют только на диаграмме классов.

8. Стереотипы компонентов (исполнимые файлы, dll-файлы и т. д.) должны быть размещены на диаграммах внедрения.

9. При композиции и агрегации типы данных должны совпадать.

10. Если класс поддерживает интерфейс, он должен реализовывать все его методы.

При заданном наборе ограничений требуется произвести верификацию модели программной системы, заданной в формате XMI.

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

Рисунок 3. Верификация UML-диаграмм, представленных в формате ХМ1

В качестве промежуточного представления предлагается ссылочная абстрактная структура данных (АСД) ИМЬМар.

АСД содержит хеш-таблицы или списки объектов, соответствующих диаграммам классов, прецедентов, последовательностей, состояний и т. д. Каждый объект содержит в себе информацию о соответствующей ему диаграмме в формате ХМ1. К примеру, для диаграммы классов объект хранит информацию о классах, их названиях, методах, свойствах, о связях между классами, об интерфейсах, методах, которые они реализуют.

Требования к структуре данных:

- удобство добавления/удаления/модификации/поиска диаграмм;

- удобство добавления/удаления/модификации/поиска элементов диаграммы;

- быстрый доступ к элементу/диаграмме по ¡ё;

- вычислительная эффективность расчета объектно-ориентированных метрик;

- простота трансформации ИМЬ диаграмм в процессе эволюционного поиска.

В рамках создания ссылочной АСД на начальном этапе требуется разработать следующий набор классов (рис. 4):

ПРИКЛАДНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ПРОЦЕССЫ

- UMLMap — «карта» модели системы, содержит в себе хеш-таблицы для быстрого доступа к диаграммам классов, прецедентов, последовательностей, состояний, взаимодействия. Позволяет добавлять, редактировать, удалять диаграммы, считать метрики, осуществлять проверку на целостность.

- ClassDiagram — диаграмма классов, содержит данные о классах, их id, полях и методах, отношениях между классами.

- SequenceDiagram — диаграмма последовательностей, содержит данные об объектах, сигналах и сообщениях.

- ActivityDiagram — диаграмма деятельности, содержит данные о действиях и решениях.

- StateChartDiagram — диаграмма состояний, содержит данные о состояниях и переходах.

- UseCaseDiagram — диаграмма прецедентов, содержит данные об актерах, прецедентах и отношениях.

- ComponentDiagram — диаграмма компонентов.

Рисунок 4. Диаграмма классов, описывающая ссылочную АСД UMLMap

API (Application Programming Interface) структуры данных приведен в табл. 1. После того, как UML-модель программной системы переведена из формата XMI в промежуточное представление UMLMap и заданы требования согласованности программной системы, может быть осуществлена верификация программной системы.

Таблица 1. API структуры данных UMLMap

Класс UMLMap

Double calculateMetricN()

void addClassDiagram()

void addSequenceDiagram()

void addActivityDiagram()

void addStateChartDiagram()

void addUseCaseDiagram()

void editClassDiagram()

void editSequenceDiagram()

void editActivityDiagram()

void editStateChartDiagram()

void editUseCaseDiagram()

void deleteClassDiagram()

void deleteSequenceDiagram()

void deleteActivityDiagram()

void deleteStateChartDiagram()

void deleteUseCaseDiagram()

ClassDiagram getClassDiagram()

SequenceDiagram getSequenceDiagram()

ActivityDiagram getActivityDiagram()

StateChartDiagram getStateChartDiagram()

UseCaseDiagram getUseCaseDiagram()

Верификация осуществляется в шесть шагов.

1. Для каждого элемента диаграммы классов проверяется, задействован ли он на одной из других диаграмм.

2. Для каждого прецедента из диаграммы прецедентов проверяется, задействован ли он в диаграмме классов.

3. Каждый блок диаграммы Последовательностей и диаграммы Деятельности проверяется на наличие в диаграмме Классов.

4. Каждый класс из диаграммы классов проверяется на наличие в диаграмме компонентов.

5. Для каждого отношения агрегации и композиции выполняется проверка на совпадение типов данных.

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

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

4. Заключение

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

ПРИКЛАДНЫЕ ИНФОРМАЦИОННЫЕ СИСТЕМЫ И ПРОЦЕССЫ

В дальнейшем применение подобных проверок позволит выполнять преобразование моделей UML в эквивалентное с точки зрения соответствия процессу моделирования.

Литература

[1] Никульчев Е. В., Плужник Е. В., Лукьянчиков О. И. Проектирование распределенных информационных систем обработки больших объемов данных в гибридной облачной инфраструктуре // Вестник РГРТУ. 2014. № 50-1. С. 135-138.

[2] Kuske S., Gogolla M., Kollmann R., Kreowski H. An Integrated Semantics for UML Class, Object and State Diagrams Based on Graph Transformation // Integrated Formal Methods. Lecture Notes in Computer Science. 2002. Vol. 2335. P. 11-28. (doi: 10.1007/3-540-47884-1_2)

[3] Baresi L., Pezzd M. On Formalizing UML with High-Level Petri Nets // Concurrent Object-Oriented Programming and Petri Nets. Lecture Notes in Computer Science 2001. Vol. 2001. P. 276-304. (doi: 10.1007/3-540-45397-0_9)

[4] Li M., Yang H., Nian F., Wang X. The formalization of UML state chart with the temporal description logics // 2nd International Symposium on Knowledge Acquisition and Modeling. KAM '09. 2009. Vol. 3. P. 73-76. (doi: 10.1109/KAM.2009.282)

[5] Engels G., Hausmann J. H., Heckel R., Sauer S. Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML // «UML» 2000 — The Unified Modeling Language. Lecture Notes in Computer Science. 2000. Vol. 1939. P. 323337. (doi: 10.1007/3-540-40011-7_23)

[6] Evans A., Kent S. Core Meta-Modelling Semantics of UML: The pUML Approach // «UML»'99 — The Unified Modeling Language. Lecture Notes in Computer Science. 1999. Vol. 1723. P. 140-155. (doi: 10.1007/3-540-46852-8_11)

[7] Reggio G., Astesiano E., Choppy C., Hussmann H. Analysing UML Active Classes and Associated State Machines — A Lightweight Formal Approach // Fundamental Approaches to Software Engineering. Lecture Notes in Computer Science. 2000. Vol. 1783. P. 127-146. (doi: 10.1007/3-540-46428-X_10)

[8] XML Metadata Interchange (XMI) Specification. Version 2.4.2. Realise Data — April 2014. (http://www. omg.org/spec/XMI/2.4.2)

Авторы:

Волович Михаил Евгеньевич — кандидат технических наук, доцент кафедры управления и моделирования систем Московского государственного университета приборостроения и информатики

Дерюгина Ольга Александровна — преподаватель кафедры программных систем Московского технологического института, аспирант МГУПИ

UML models of software systems verification

1 12 3

Mikhail Volovich , Olga Deryugina ' '

Moscow State University of Instrument Engineering and Computer Science 20 Strominka Str., Moscow, Russia, 107996

2Moscow Technological Institute 38a Leninsky Pr., Moscow,Russia, 119334,

3Russian State Social University 4/1 Vilgelma Pika Str.., Moscow, Russia, 129226 e-mail: i@volovich.me, o.a.derugina@yandex.ru

Abstract. In this paper a scheme of automatic UML model consistency verification based on the formulation of systems' modelling restrictions has been offered. As requirements necessary conditions are considered, which can guarantee the integrity and coherence of the UML model in XMI format. Keywords: UML, XMI, verification, UML verification, software design, software architecture, model checking.

Reference

[1] Nikulchev E. V., Pluzhnik E. V., Lukynchikov O. I. (2014) Proektirovanie rasprede-lennyh in-formacionnyh sistem obrabotki bol'shih obemov dannyh v gibridnoj oblachnoj infrastructure.

VestnikRGRTU, 50-1, 135-138. (In Rus)

[2] Kuske S.' Gogolla M., Kollmann R., Kreowski H. (2002) An Integrated Semantics for UML Class, Object and State Diagrams Based on Graph Transformation. LNCS, 2335, 11-28. (doi: 10.1007/3-540-47884-1_2)

[3] Baresi L., Pezze M. (2001) On Formalizing UML with High-Level Petri Nets. LNCS, 2001, 276-304. (doi: 10.1007/3-540-45397-0_9)

[4] Li M.' Yang H.' Nian F., Wang X. (2009) The formalization of UML state chart with the temporal description logics. 2nd Inter. Symp. on Knowledge Acquisition and Modeling. KAM'09, 3, 73-76. (doi: 10.1109/KAM.2009.282)

[5] Engels G.' Hausmann J. H.' HeckelR.' Sauer S. (2000) Dynamic Meta Modeling: A Graphical Approach to the Operational Semantics of Behavioral Diagrams in UML. LNCS, 1939, 323337. (doi: 10.1007/3-540-40011-7_23)

[6] Evans A.' Kent S. (1999) Core Meta-Modelling Semantics of UML: The pUML Approach. LNCS, 1723, 140-155. (doi: 10.1007/3-540-46852-8_11)

[7] Reggio G.' Astesiano E.' Choppy C.' Hussmann H. (2000) Analysing UML Active Classes and Associated State Machines — A Lightweight Formal Approach. LNCS, 1783, 127-146. (doi: 10.1007/3-540-46428-X_10)

[8] XML Metadata Interchange (XMI) Specification. Version 2.4.2. (April 2014). (http://www. omg.org/spec/XMI/2.4.2)

i Надоели баннеры? Вы всегда можете отключить рекламу.