СБОРНИК НАУЧНЫХ ТРУДОВ НГТУ. - 2008. - № 4(54). – 59–62 СОВРЕМЕННЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ УДК 62-50:519.216 СООТНЕСЕНИЕ СТРУКТУРНЫХ И ВРЕМЕННЫХ МАСШТАБОВ UML-ДИАГРАММ А.А. ВОЕВОДА, И.В. ЗИМАЕВ Рассмотрены основные типы UML-диаграмм в аспекте их структурного и динамического масштаба. Предложен критерий определения оптимального набора масштабов при разработке модели системы. Следствием постоянно растущей сложности проектируемых систем стало использование визуальных моделей в виде диаграмм. Фактическим стандартом визуального моделирования служит язык UML, применимый для разработки архитектуры любой системы. Спецификация языка UML довольно сложна, поэтому остановимся лишь на одном из его центральных понятий – диаграммах. Существует три категории UML-диаграмм: 1) структурные диаграммы, описывающие статическую структуру системы; 2) диаграммы поведения, характеризующие различные состояния элементов системы и их изменения в зависимости от различных условий; 3) диаграммы взаимодействия, показывающие взаимодействие элементов системы во времени. К структурным относятся: 1) диаграмма классов (Class diagram). Это статическая структурная диаграмма, описывающая логическое представление системы с позиции разнотипных объектов (классов). Для каждого класса указываются атрибуты и методы, а между классами – структурные взаимосвязи; 2) диаграмма компонентов (Component diagram). Статическая структурная диаграмма, содержащая компоненты системы, в том числе модули, библиотеки, пакеты, файлы; 3) диаграмма композитной структуры (Composite structure diagram). Статическая структурная диаграмма, содержащая элементы структуры класса и описание их взаимодействия. 4) диаграмма развёртывания (Deployment diagram). Описывает физические узлы системы и отношения между ними. Например, в данной диаграмме могут быть описаны аппаратные ресурсы, требуемые для размещения программной системы; Профессор кафедры автоматики, д-р техн. наук Аспирант кафедры автоматики 60 А.А. Воевода, И.В. Зимаев 5) диаграмма объектов (Object diagram). Содержит объекты системы с указанием значений их атрибутов в определенный момент времени (так называемый «мгновенный срез»); 6) диаграмма пакетов (Package diagram). Структурная диаграмма, содержащая пакеты и их взаимосвязи. Пакетом является любое объединение нескольких элементов в одну логическую группу по какому-либо признаку. Как можно заметить, структурные диаграммы различаются преимущественно масштабом, в котором происходит рассмотрение структуры системы. К поведенческим относятся: 1) диаграмма деятельности (Activity diagram). На диаграмме показано разложение некоторой деятельности в виде блок-схемы ее алгоритма. Под деятельностью подразумевается координированное последовательное (или параллельное) выполнение ряда элементарных действий, при этом элементы деятельности соединены управляющими потоками; 2) диаграмма состояний (State Machine diagram). Представляет особую модель системы в виде конечных автоматов, соответствующих классам, кооперациям или методам. Диаграмма состояний позволяет описать поведение сложных систем; 3) диаграмма прецедентов (Use case diagram). Концептуальная модель, основанная на анализе предметной области. Основные элементы: актеры (внешние и внутренние пользователи), варианты использования (набор действий). И, наконец, диаграммы взаимодействия: 1) диаграмма кооперации (Collaboration diagram). Динамическая диаграмма классов, показывающая их роли и взаимодействия при определенном варианте использования. В качестве временной шкалы используются номера вызовов; 2) диаграмма последовательности (Sequence diagram). Динамическая диаграмма, изображающая упорядоченное во времени взаимодействие объектов и последовательный обмен этих объектов сообщениями. Прежде чем задаться вопросом рабочих масштабов диаграмм, объединим диаграммы поведения и взаимодействия в категорию динамических – в противовес структурным и статическим. Обозначим символом S структурный масштаб диаграммы и условимся понимать под этим градацию диаграмм по структурным уровням – от уровня конкретики до уровня абстракций. Тогда из общего списка диаграмм можно отметить три структурных уровня: 1) уровень пакетов – совокупность групп объектов. 2) уровень классов – совокупность объектов. 3) уровень композитной структуры – совокупность элементов внутри объекта. Наиболее абстрактный уровень рассматриваемой системы представлен в диаграмме прецедентов, которая не вошла в приведенный список по причине ее принадлежности к поведенческой категории диаграмм. Для динамических диаграмм также применимо понятие структурного масштаба S исходя из масштаба структуры, рассматриваемой в динамике. Однако динамические диаграммы можно характеризовать вторым показателем – масштабом во времени, или обратным к нему – разрешением (R). Чем больше Соотнесение структурных и временных масштабов UML-диаграмм 61 значение R, тем меньший интервал времени соответствует элементу временной последовательности. Если представить оба показателя на одном графике, то на нем можно разместить динамические диаграммы в соответствии с их традиционно принятыми масштабами (рис. 1). S R Рис. 1. Динамические диаграммы в координатах S и R На рис. 1 видно, что с увеличением структурного S масштаба, диаграммы представляют все более укрупненный план архитектуры системы. Наименьший масштаб – композитный уровень, наибольший – уровень пакетов. Теоретически для любого структурного уровня может быть построена динамическая диаграмма любого типа и разрешения. Однако на практике некоторые сочетания либо нелогичны, либо R редко используются на практике. Например, диаграмма кооперации традиционно строится для клас- Рис. 2. Полное покрытие сов, так же как и диаграмма объектов. масштабов Рассмотрим три временных масштаба (кооперации, последовательности, действий) для трех структурных уровней (пакетов, классов, композитов) в виде таблицы квадратов. НаS личие всех девяти возможных сочетаний соответствует всем закрашенным квадратам и представлено на рис. 2. С точки зрения практики это явно избыточная модель, поэтому чаще можно встретить иную картину распределения, представленную на рис. 3. В данном случае большие масштабы архитектуры системы описываются во времени с соответстR венно большим масштабом (низким разрешением), а работа наименьших структурных элементов предРис. 3. Равномерное ставляется динамическими диаграммами высокого убывание масштабов А.А. Воевода, И.В. Зимаев 62 временного разрешения. Этот подход более логичен, поэтому в данной таблице ему можно сопоставить формальный признак – закрашенные квадраты находятся не выше главной диагонали. Признак можно расширить до принципа, по которому уровень масштабов должен убывать. При этом пустая строка таблицы означает, что для соответствующего структурного уровня нет динамической диаграммы. Если в строке несколько закрашенных квадратов, значит, данный структурный уровень фигурирует в нескольких динамических диаграммах. Наивысший архитектурный уровень представлен динамической диаграммой более высокого временного разрешения, нежели для вложенного структурного уровня (рис. 4). S S R R Рис. 4. Противоречие прогрессии масштабов и ее решение Восприятие подобной модели может быть осложнено, посокльку равномерная прогрессия масштабов нарушена, как это видно на первой схеме, где линия уровня выбранных масштабов переживает взлет. Простейшее решение – рассмотреть верхний архитектурный уровень в более общей динамической диаграмме, а вложенный в него структурный уровень – в диаграмме более высокого временного разрешения. Возможны и другие варианты решения. [1] Современные проблемы информатизации в моделировании и программировании: сб. науч. тр. / под ред. д. т. н., проф. О.Я. Кравца. – Воронеж: Издво «Научная книга», 2006. – Вып. 11. [2] Лаврищева Е.М., Петрухин В.А. Методы и средства инженерии программного обеспечения: учебник. − М.: МФТИ, 2006.