Pull to refresh

Comments 12

Украли мой комментарий!
Следовало бы упомянуть работы Кодда, Дейта, Камбаяши и др.
Статья не претендует на обзор по методам моделирования данных. Я мог бы для примера взять модель типа «мужчины», «женщины» и отношение «родитель-потомок», типа такой. Но решил сделать более полезный в реальной жизни пример.

Статья всё-таки посвящена разработке, управляемой моделями, и моделирование данных затрагивает очень вскользь. Ну, надеюсь, что это «вскользь» будет кому-то полезным… Наверняка мало кто расшифрует ORM как Object-role modeling, а не как Object-relational mapping. Наверняка не многие ли слышали об Anchor. Думаю, что мало кто использует 6НФ. Я только немного приподнял эти темы из небытия…
Теперь необходимо описать метаклассы (виды сущностей, которые могут быть в наших Anchor-моделях). Добавьте на диаграмму класс и назовите его Anchor. Добавьте ему атрибут name с типом данных EString. В поле Lower Bound укажите 1.


А текстового способа описания так и не появилось, только мышкой стрелочки малевать? Я тот EMF смотрел много лет назад, тогда мне больше всего не хватало возможности задать все эти метамодели в ноутпаде…

Anchor = { 
    attributes: [
        {name: 'Name', type: EString, lower-bound: 1}
    ]
}


Есть Emfatic. Причем, в Epsilon целое семейство именно текстовых языков для разных задач.

Ещё есть EMFText и Xtext, которые позволяют создавать DSL, для Ecore-моделей. Я как-раз в одной из ближайших статей планирую про них написать. Пока не решил: опишу текстовую нотацию либо для Anchor, либо для SQL.
Ещё есть Xcore. Пока обходился без него, но видимо в текущем проекте буду использовать.
Ну вот нарисовали мы модель. А что дальше? Все закончится генератором классов богомерзкой Java? Или есть варианты поинтереснее?
Я в свое время получил редактор пропертей в этой модели бесплатно, и полученный из того редактора хамеель c данными потом скармливал через xslt в legacy систему ;-) С учетом того что мышевожение заняло три вечера, а потом я провел ах какую демонстрацию — было круто. Жаль дальше не пошел проектец, эх.
В следующей статье будет редактор Anchor-диаграмм. Потом транслятор Anchor-моделей в ER-модели. Потом, видимо, пример реализации какого-нибудь DSL (текстовая нотация для того же Anchor или SQL).
Генерировать можно не только Java-код. Видимо, тоже сделаю пример…
Sign up to leave a comment.