2013-02-22: MODELSWARD — подвожу итоги
Конференция http://www.modelsward.org/ — International Conference on Model-Driven Engineering and Software Development — закончилась. Впечатления первого дня — здесь. Но второй день — изменил впечатления первого дня о преимущественно недоработанных прототипах или рассуждениях общего уровня от специалистов. Это просто первый день оказался так скомпонован. А во втором — пошли вполне себе нормальные доклады про модели, кодогенерацию по ним конечных приложений, а также верификацию и тестирование моделей, которые в этом случае реально нужны. И это продолжилось на третий день.
Кроме того, в конце второго дня была poster session. Она реально отличалась от стендовых докладов у нас на конференциях, аналогов я не видел и опыт можно использовать. Суть в том, что у автора есть плакат с достаточно подробным изложением идеи, а дальше — ты с ним можешь общаться, задавать вопросы. Этот формат хорошо подходит для представления новых идей и продуктов, которые в докладе объяснять не очень хорошо, потому что нужен интерактив и рефлексия по восприятию. А в таком формате — самое оно. Еще это хорошо подходит для представления идей, заложенных в большие фреймворки и inhouse разработку. В докладе этого не сделать — надо передавать много контекста, либо поднимать уровень абстракции так что получается рекламный доклад. А в этом формате основные идеи — пишешь на плакате, их видят. А в интерактиве собеседник расспрашивает о тех аспектах, которые именно его интересуют. Что интересно, на этой сессии были так же докладчики, которые делали доклад на основных сессиях — то же плакат с кратким изложением презентации, и дальше — общение. И это позволяет более подробно пообщаться с ними. У нас это во многом заменяет общение с докладчиком после его доклада, но, во-первых, ты теряешь следующий доклад, а, во-вторых, вопросы часто должны созреть. И за 1 час такой сессии пообщаться с 5-6 докладчиками — вполне успеваешь. В общем, надо брать на вооружение.
Общение на конференции — достаточно активное. Плюс, в среду был ужин, на котором тоже можно было пообщаться.
Из конференции я вынес для себя, что генерация по моделям сейчас является эффективным инструментом и ее надо осваивать. Собственно, отдельные фрагменты у нас используются, но как разовые вещи. Что характеризует ситуацию? Моделеров и генераторов реально множество. Видел сравнение из 20-30 наименований. При этом утверждается, что они работают над моделью с совместимым XMI-описанием, то есть можно использовать совместно: для бизнес-логики один, для интерфейса — другой, а диаграмму классов (например) можно свободно переносить. Наверняка есть open source разработки, от университетов — точно, их представляли. Они ограниченные по функционалу и могут быть сырые, зато в текстах, можно развивать и вносить вклад. Главное — не тотальная генерация конечного приложения, а только его однородной части. Да, казалось бы, с ней особых проблем нет — берешь и формально реализуешь. Но дальше каждое изменение — согласованные правки в 5+ местах — а это уже дорого, играет человеческий фактор. В общем, буду сюда активно смотреть.
Модели применяются достаточно широко. Конечно, это автомобильное, самолетное и прочее подобное обеспечение, которое работает на железе в жестких режимах, и где важна надежность и стабильность. Там модели были всегда. Для меня было определенной неожиданностью, что модели с кодогенерацией конечного приложения достаточно широко применяются в enterprise-разработке. Это inhouse, примером чего служит Tata. Но не только. Был доклад об испанском проекте, который первоначально делался при гос.поддержке, но сейчас решения на его основе применяются для реальных коммерческих фирм и банков. Был доклад об аналогичном мексиканском проекте. Это — что запомнилось и о чем я выяснял подробности. И это — не единичные вещи. Модель сейчас, как правило, имеет графическое представление. Но это не обязательно, бывают чисто метаданные, по которым идет генерация или интерпретация — как у нас в технологии ядра. Кстати, общаясь с заказчиками и разработчиками я это встречал и в России — и в inhouse, и в продуктовой разработке. При этом применение есть как для приложения в целом, так и для фрагментов, например, для интерфейса.
Если же говорить о конференции в целом, то да, это — научная тусовка. Там представляются идеи и прототипы, а коллеги — доброжелательно спрашивают. Прототипы — разного уровня есть и вполне работающие конструкции. А еще там предтавляют «методологическую» выжимку высокого уровня от inhouse, при этом в общения с докладчиками можно узнать много подробностей. Но надо понимать, что в Европе наука достаточно активно занимается заказами на индустрию, чего в России сейчас по-моему нет. Ну и совмещение преподавания с коммерческой разработкой тоже имеется.
Научное сообщество накладывает определенную рамку на доклад — упор делается на используемые методологии, обязательно сравнение с аналогами, прототип, очень желательны метрики. При этом многие части реально неуместны, но — положено, вот и делают с разным уровнем изобретательности. Это — та форма, которая вредит содержанию, особенно в докладах, где представляются идеи будущих диссертаций — а они составляют существенную часть. Не-докладываемые у нас варианты тут нормально докладываются. Можно представить незавершенную работу, или просто диаграмму классов кусочка своего проекта, например, описания cloud infrastracture — естественно, если правильно обернуты. Так что при желании — на этих конференциях вполне можно делать доклады, вопрос — нужно ли? Профессионалы формой не очень озабочены, но они часто слишком поднимают уровень абстракции, игнорируя необходимость примеров.
Несмотря на эти недостатки, я получил с конференции достаточно много полезного. Это и общее представление о моделях, и некоторые мысли о соотнесении классического моделирования с кодогенерацией и DDD. Но ими я поделюсь отдельно. На этом — все.
А еще — научный подход характеризует уважение к стандартам, общепринятым практикам и нежелание изобретать велосипеды. Поэтому столкнувшись, например, со сложностью UML, научное сообщество предпочитает выделить разумное подмножество, а не сделать альтернативу с нуля. Конечно, дальше бывает по-разному, но предпочтение по умолчанию, на мой взгляд — правильное.
На этом все. Обзора доклада не будет — все равно подробных публикаций материалов нет. В заключении поделюсь цитатой от Oscar Pastor (University Valencia, keynote): CASE tool should help designer to solve problem instead of adding new problem — how to use it properly! Очень характерно.
Я еще 3 дня в Барселоне, буду гулять по городу. Впечатления и фотки, кому интересно — в личном блоге.