UML

UML - объектно-ориентированный метод анализа бизнес-процессов и проектирования приложений,

UML (Unified Modeling Language - унифицированный язык моделирования) - язык графического описания моделей в области разработки программного обеспечения.

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

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

UML - это унифицированный графический язык моделирования для описания, визуализации, проектирования и документирования объектно ориентированых систем. UML призван поддерживать процесс моделирования ПС на основе объектно ориентированых подхода, организовывать взаимосвязь концептуальных и программных понятий, отражать проблемы масштабирования сложных систем. Модели на UML используются на всех этапах жизненного цикла ПС, начиная с бизнес-анализа и заканчива сопровождением системы. Разные организации могут применять UML по своему усмотрению в зависимости от своих проблемных областей и используемых технологий.

Краткая история UML

К середине 90-х годов различными авторами было предложено несколько десятков методов объектно ориентированых моделирования, каждый из которых использовал свою графическую нотацию. При этом любой их этих методов имел свои сильные стороны, но не позволял построить достаточно полную модель ПС, показать ее <со всех сторон>, то есть, все необходимые проекции (См. статью 1). К тому же отсутствие стандарта объектно ориентированых моделирования затрудняло для разработчиков выбор наиболее подходящего метода, что препятствовало широкому распространению объектно ориентированых подхода к разработке ПС.

По запросу Object Management Group (OMG) - организации, ответственной за принятие стандартов в области объектных технологий и баз данных назревшая проблема унификации и стандартизации была решена авторами трех наиболее популярных объектно ориентированых методов - Г.Бучем, Д.Рамбо и А.Джекобсоном, которые объединенными усилиями создали версию UML 1.1, утвержденную OMG в 1997 году в качестве стандарта.

UML - это язык

Любой язык состоит из словаря и правил комбинировани слов для получения осмысленных конструкций. Так, в частности, устроены языки программирования, таковым является и UML. Отличительной его особенностью является то, что словарь языка образуют графические элементы. Каждому графическому символу соответствует конкретная семантика, поэтому модель, созданная одним разработчиком, может однозначно быть понята другим, а также программным средством, интерпретирующим UML. Отсюда, в частности, следует, что модель ПС, представленная на UML, может автоматически быть переведена на объектно ориентированых язык программирования (такой, как Java, C++, VisualBasic), то есть, при наличии хорошего инструментального средства визуального моделирования, поддерживающего UML, построив модель, мы получим и заготовку программного кода, соответствующего этой модели.

Следует подчеркнуть, что UML - это именно язык, а не метод. Он объясняет, из каких элементов создавать модели и как их читать, но ничего не говорит о том, какие модели и в каких случаях следует разрабатывать. Чтобы создать метод на базе UML, надо дополнить его описанием процесса разработки ПС. Примером такого процесса является Rational Unified Process, который будет рассматриваться в последующих статьях.

Словарь UML

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

Сущности - это абстракции, являющиеся основными элементами моделей. Имеется четыре типа сущностей - структурные (класс, интерфейс, компонент, вариант использования, кооперация, узел), поведенческие (взаимодействие, состояние), группирующие (пакеты) и аннотационные (комментарии). Каждый вид сущностей имеет свое графическое представление. Сущности будут подробно рассмотрены при изучении диаграмм.

Отношения показывают различные связи между сущностями. В UML определены следующие типы отношений:

  • Зависимость показывает такую связь между двум сущностями, когда изменение одной из них - независимой - может повлиять на семантику другой - зависимой. Зависимость изображаетс пунктирной стрелкой, направленной от зависимой сущности к независимой.
  • Ассоциация - это структурное отношение, показывающее, что объекты одной сущности связаны с объектами другой. Графически ассоциация показывается в виде линии, соединяющей связываемые сущности. Ассоциации служат для осуществления навигации между объектами. Например, ассоциация между классами <Заказ> и <Товар> может быть использована для нахождения всех товаров, указанных в конкретном заказе - с одной стороны, или для нахождения всех заказов в которых есть данный товар, - с другой. Понятно, что в соответствующих программах должен быть реализован механизм, обеспечивающий такую навигацию. Если требуется навигация только в одном направлении, оно показывается стрелкой на конце ассоциации. Частным случаем ассоциации является агрегирование - отношение вида <целое> - <часть>. Графически оно выделяется с помощью ромбика на конце около сущности-целого.
  • Обобщение - это отношение между сущностью-родителем и сущностью-потомком. По существу, это отношение отражает свойство наследования для классов и объектов. Обобщение показывается в виде линии, заканчивающейся треугольничком направленным к родительской сущности. Потомок наследует структуру (атрибуты) и поведение (методы) родителя, но в то же время он может иметь новые элементы структуры и новые методы. UML допускает множественное наследование, когда сущность связана более чем с одной родительской сущностью.
  • Реализация - отношение между сущностью, определяющей спецификацию поведения (интерфейс) с сущностью, определяющей реализацию этого поведения (класс, компонент). Это отношение обычно используется при моделировании компонент и будет подробнее описано в последующих статьях.

Диаграммы. В UML предусмотрены следующие диаграммы:

  • Диаграммы, описывающие поведение системы:
    • Диаграммы состояний (State diagrams),
    • Диаграммы деятельностей (Activity diagrams),
    • Диаграммы объектов (Object diagrams),
    • Диаграммы последовательностей (Sequence diagrams),
    • Диаграммы взаимодействия (Collaboration diagrams);


  • Диаграммы, описывающие физическую реализацию системы:
    • Диаграммы компонент (Component diagrams);
    • Диаграммы развертывания (Deployment diagrams).
Представление управления моделью. Пакеты.

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

Что обеспечивает UML.

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

Несмотря на всю привлекательность UML, его было бы затруднительно использовать при реальном моделировании ПС без инструментальных средств визуального моделирования. Такие средства позволяют оперативно представлять диаграммы на экране дисплея, документировать их, генерировать заготовки программных кодов на различных объектно ориентированых языках программирования, создавать схемы баз данных. Большинство из них включают возможности реинжиниринга программных кодов - восстановления определенных проекций модели ПС путем автоматического анализа исходных кодов программ, что очень важно дл обеспечения соответствия модели и кодов и при проектировании систем, наследующих функциональность систем-предшественников.


Разработка программ   Электронные аукционы  Питательные среды  Новинки кино