Полные инструменты генерации кода Java / C # из Model? - PullRequest
1 голос
/ 16 февраля 2011

Очень удивительно, что нет реальных инструментов для полной генерации кода из модели. Все инструменты UML, которые я видел, не очень практичны, кроме этого:

http://www.intrinsarc.com/

A hierarchical component model with full connectors
At the heart of Evolve is a hierarchical component model with full connectors. Connectors act like
wires between components, making it simple and intuitive to express detailed structures that are
difficult or impossible in other approaches such as dependency injection.
Resemblance and evolution
These two constructs provide unprecedented levels of support for component reuse. 

Resemblance
    is a form of component inheritance. Evolution builds on this to allow the structure of an existing
    system to be remodeled, without destroying the original definition. These facilities can be used to
    create variants of a system, or to switch in test components.

Кто-то пробовал: что вы думаете? Это похоже на UML, но не на класс UML, а на другие типы диаграмм.

Любой другой инструмент, который может создавать реальный код UML или нет?

Что я подразумеваю под реальным: EMF - не такой инструмент, это всего лишь инфраструктура для построения UML Tool, насколько я вижу, не сам по себе инструмент, который облегчает создание и обслуживание приложения.

То же самое для Visual Studio Ultimate. Хотя инструмент UML внутри довольно хорош, это просто еще один инструмент UML, который на самом деле не помогает модели ypu, а просто делает графически то, что вы можете сделать, набрав код.

Ответы [ 3 ]

2 голосов
/ 16 февраля 2011

Я написал систему Evolve, о которой идет речь.

Evolve генерирует код для соединения классов из компонентных моделей UML.Он также может генерировать полный код для диаграмм состояний, что невероятно удобно.Вы можете легко импортировать и подключать свои собственные классы.Это эффективно позволяет вам создавать программное обеспечение таким же образом, как вы можете подключить вместе микросхемы к плате электроники.

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

Это звучит волшебно, но имеет очень прочную основу - это было результатом недавних исследований PhD, и на самом деле это один из более сложных инструментов проектирования врынок.Профессора, которые курировали исследование, также повлияли на работу COM в Microsoft.

Вот небольшое видео об этом в действии: http://intrinsarc.com/movies/evolve.html

Попробуйте и дайте нам знать, как вы идете!В руководстве есть учебное пособие, в котором показано, как создать рабочий пример GWT / Hibernate.(BTW Evolve использует EMF под крышками для хранения моделей UML)

0 голосов
/ 16 февраля 2011

Eclipse EMF генерирует полный код Java из моделей EMF (ECore).EMF генерирует классы для представления экземпляров модели в памяти с поддержкой сериализации / десериализации XML или XMI, хуков для проверки, необязательного редактора и т. Д.: EMF - не такой инструмент, это всего лишь основа для создания UML Tool, насколько я понимаю, что он сам по себе не является инструментом, который облегчает построение и обслуживание приложения.

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

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

О да.Сделал это сам.По общему признанию, я говорю об определенных видах приложений и определенных видах GUI.

0 голосов
/ 16 февраля 2011

Я использую Sybase Powerdesigner и пользовательский код Ruby (для доступа к модели данных), чтобы сгенерировать свою модель ORM из UML.Может быть сложно сгенерировать код на основе UML, поскольку существует множество способов настройки модели.У меня есть стереотипы, которые на самом деле не являются классами, но используются для других целей генерации кода, которые соответствуют задаче, которую я решаю.Как генератор универсального кода может понять мои пользовательские варианты использования модели?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...