Определение основ языка UML (Unified Modeling Language). 3.3. Создание абстрактного типа данных.
Определение основ языка UML (Unified Modeling Language).
UML – это унифицированный графический язык моделирования для описания, визуализации, проектирования и документирования ОО систем. UML призван поддерживать процесс моделирования ПС на основе ОО подхода, организовывать взаимосвязь концептуальных и программных понятий, отражать проблемы масштабирования сложных систем. Модели на UML используются на всех этапах жизненного цикла ПС, начиная с бизнес-анализа и заканчивая сопровождением системы. Разные организации могут применять UML по своему усмотрению в зависимости от своих проблемных областей и используемых технологий.
Любой язык состоит из словаря и правил комбинирования слов для получения осмысленных конструкций. Так, в частности, устроены языки программирования, таковым является и UML. Отличительной его особенностью является то, что словарь языка образуют графические элементы. Каждому графическому символу соответствует конкретная семантика, поэтому модель, созданная одним разработчиком, может однозначно быть понята другим, а также программным средством, интерпретирующим UML. Отсюда, в частности, следует, что модель ПС, представленная на UML, может автоматически быть переведена на ОО язык программирования (такой, как Java, C++, VisualBasic), то есть, при наличии хорошего инструментального средства визуального моделирования, поддерживающего UML, построив модель, мы получим и заготовку программного кода, соответствующего этой модели.
Следует подчеркнуть, что UML – это именно язык, а не метод. Он объясняет, из каких элементов создавать модели и как их читать, но ничего не говорит о том, какие модели и в каких случаях следует разрабатывать. Чтобы создать метод на базе UML, надо дополнить его описанием процесса разработки ПС. Примером такого процесса является Rational Unified Process, который будет рассматриваться в последующих статьях.
Модель представляется в виде сущностей и отношений между ними, которые показываются на диаграммах.
Зависимость показывает такую связь между двумя сущностями, когда изменение одной из них – независимой – может повлиять на семантику другой – зависимой. Зависимость изображается пунктирной стрелкой, направленной от зависимой сущности к независимой.
Ассоциация – это структурное отношение, показывающее, что объекты одной сущности связаны с объектами другой. Графически ассоциация показывается в виде линии, соединяющей связываемые сущности. Ассоциации служат для осуществления навигации между объектами.
Обобщение – это отношение между сущностью-родителем и сущностью-потомком. По существу, это отношение отражает свойство наследования для классов и объектов.
Реализация – отношение между сущностью, определяющей спецификацию поведения (интерфейс) с сущностью, определяющей реализацию этого поведения (класс, компонент). Это отношение обычно используется при моделировании компонент и будет подробнее описано в последующих статьях.
Диаграммы.
В UML предусмотрены следующие диаграммы:
Диаграммы, описывающие поведение системы:
Диаграммы состояний (State diagrams),
Диаграммы деятельностей (Activity diagrams),
Диаграммы объектов (Object diagrams),
Диаграммы последовательностей (Sequence diagrams),
Диаграммы взаимодействия (Collaboration diagrams);
Диаграммы, описывающие физическую реализацию системы:
Диаграммы компонент (Component diagrams);
Диаграммы развертывания (Deployment diagrams)
Что обеспечивает UML.
· иерархическое описание сложной системы путем выделения пакетов;
· формализацию функциональных требований к системе с помощью аппарата вариантов использования;
· детализацию требований к системе путем построения диаграмм деятельностей и сценариев;
· выделение классов данных и построение концептуальной модели данных в виде диаграмм классов;
· выделение классов, описывающих пользовательский интерфейс, и создание схемы навигации экранов;
· описание процессов взаимодействия объектов при выполнении системных функций;
· описание поведения объектов в виде диаграмм деятельностей и состояний;
· описание программных компонент и их взаимодействия через интерфейсы;
· описание физической архитектуры системы.
Несмотря на всю привлекательность UML, его было бы затруднительно использовать при реальном моделировании ПС без инструментальных средств визуального моделирования. Такие средства позволяют оперативно представлять диаграммы на экране дисплея, документировать их, генерировать заготовки программных кодов на различных ОО языках программирования, создавать схемы баз данных. Большинство из них включают возможности реинжиниринга программных кодов – восстановления определенных проекций модели ПС путем автоматического анализа исходных кодов программ, что очень важно для обеспечения соответствия модели и кодов и при проектировании систем, наследующих функциональность систем-предшественников.