Нотации и метамодели

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

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

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

Большинство графических языков моделирования являются отнюдь не строгими; их нотация в большей степени апеллирует к интуиции, чем к формальному определению. В целом это не выглядит таким уж большим недостатком. Хотя подобные методы могут быть неформаль­ными, многие разработчики по-прежнему считают их полезными, и это нельзя не принимать во внимание.

Однако методологи ищут способы добиться большей строгости мето­дов, не жертвуя при этом их практической полезностью. Один из спо­собов заключается в определении некоторой метамодели - диаграммы (как правило, диаграммы классов), определяющей понятия языка.


На рис. 1.1 изображена небольшая часть метамодели языка UML, ко­торая показывает отношение между свойствами. (Этот фрагмент при­веден с единственной целью - дать лишь общее представление о том, что такое метамодель. Я даже не буду пытаться давать здесь какие-ли­бо дополнительные пояснения.)

Насколько велико влияние метамодели на того, кто применяет соот­ветствующую нотацию при моделировании? Ответ зависит, главным образом, от режима работы с языком. Создателя эскизов обычно это не слишком волнует; проектировщика это должно беспокоить значитель­но больше. И это жизнено важно для тех, кто использует UML в каче­стве языка программирования, поскольку метамодель определяет абстрактный синтаксис данного языка.

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

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

В этой книге я не слишком строг. Я предпочитаю традиционные пути и обращаюсь к вашей интуиции. Это естественно для такой маленькой книжки, написанной автором, склонным, в основном, работать в ре­жиме эскизного моделирования. Приверженцам большей строгости следует обратиться к более обстоятельным трудам.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: