четверг, 26 сентября 2013 г.

О модели и мета-модели

На самом деле всё начинается у нас не с модели. А с мета-модели.

Мета-модель описывает то из чего могут состоять конечные клиентские модели.

Она описывает какие элементы могут туда входить и какие у них взаимоотношения.

Например, есть стереотип пакета "Interfaces", так вот на мета-модели - он определён и более того в ней описано, что в "Interfaces" могут входить только элементы со стереотипом "Interface" ну или что-то "подобное", а также - "простые типы".

Или есть "Views" - туда могут входить только "View" или что-то подобное.

Также мета-модель контролирует СВЯЗИ между элементами, такие как dependency, realization и generalization. А также - association.

На "оба конца" связей можно вводить ограничения на уровне мета-модели.

Например можно сказать, что Controller "имеет право" знать про "View", но не наоборот. При этом ограничения дифференцируются по типам связей. Для каждого типа (и стереотипа) связей - бывают собственные ограничения.

Таким образом UML и мета-модель - служат некоторого рода тьютором. Хотя "выстрелить себе в ногу" - конечно никто не запретит.

Вот вкратце - "зачем UML".

P.S. А есть ещё мета-мета-модель - в терминах которой описывается естественно мета-модель. В мета-мета-мета-модели - необходимости пока не было :-)

3 комментария: