memento mori
Здравствуйте.
интересует такая вещь как автоматическая генерация кода из диаграмм UML.
сталкивались ли вы с такими продуктами, кто генерирует полный код программы. то есть не только скелет по диаграмме классов. то, что мне попадалось в руки вне зависимости от того, что было написано, что умеют генерировать не только из диаграммы классов все равно генерировали только из нее(ну или я что-то не смогла найти).
и да, каких диаграмм достаточно, чтобы описать код программы.

Комментарии
26.11.2009 в 22:20

Случайности не случайны
ну вообще UML подразумевает только генерирование "скелета" заполнять нужно вручную, вряд ли существует что-то что генерирует полный код программы, это уже магия)
26.11.2009 в 22:31

на самом деле было бы круто, если бы было так можно сделать)
26.11.2009 в 22:39

Случайности не случайны
было бы круто, если бы было так можно сделать)
конечно:) еще если бы не диаграммы составлять по правилам, а просто написать на клавиатуре что хочу или в микрофон сказать:-D
26.11.2009 в 22:42

:D какая прелесть была бы)
26.11.2009 в 22:50

memento mori
rid.er, Лесной Олень, вообще я встречала такую надпись, что генерация кода по конечному автомату. мне очень хочется увидеть именно это в живую. что такая генерация есть где-то уже, я не сомневаюсь.
мб вам встречалась генерация больше, чем скелет классов?
26.11.2009 в 22:55

65 108 101 120 97 110 100 101 114
Rational Rose умеет.
26.11.2009 в 23:06

Случайности не случайны
Rational Rose умеет.
у меня есть пару pdf по нем если нужно, в универе проходили его
26.11.2009 в 23:14

rid.er о! можно мне?) сейчас актуально для меня RR :shy:
26.11.2009 в 23:15

memento mori
keinW, а на сколько хорошо он умеет?

rid.er, а что там именно в pdf о нем? если что-то полезное, то с радостью)
26.11.2009 в 23:33

65 108 101 120 97 110 100 101 114
greetty
это "промышленный Струмент". умеет хорошо. си код генерился "на раз". про остальное врать не буду, давно это было)
но вы почитайте, посмотрите.
26.11.2009 в 23:43

memento mori
keinW, ок. спасибо. буду смотреть.
27.11.2009 в 08:27

Случайности не случайны
greetty Rational Rose генерирует не только сишный код, там есть штук 20 возможных языков, у меня две книжки, одна на примере показывает как сделать систему вроде бы для магазина(точно не помню уже) но там все очень зорошо расписано по примеру можно сделать любую другую, а вторая расписывает подробно что значит каждая диаграмма и как они составляются

ссылки на книжки
27.11.2009 в 09:48

rid.er благодарю)
27.11.2009 в 14:29

memento mori
rid.er, понятно. спасибо.
27.11.2009 в 15:24

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
интересует такая вещь как автоматическая генерация кода из диаграмм UML. сталкивались ли вы с такими продуктами, кто генерирует полный код программы. то есть не только скелет по диаграмме классов.
А зачем? Это всё равно, что интересоваться: "А есть ли такой автокад, который по сделанному чертежу автоматически здание построит?" :) Роза - это инструмент, в первую очередь, программного/системного/бизнес-архитектора/аналитика. А не программиста-кодера. Важную роль в UML-диаграммах могут играть комментарии и документация (которая пишется в неформализованном виде). По этому качественного автосгенерированного кода (в общем случае) не получится. А каркаса классов - чаще всего вполне достаточно.

Далее (по стейт-чартам). Имея опыт разработки кодогенератора на базе конечных автоматов могу сказать, что в общем случае задача - весьма нетривиальная. Да и получаемый результат может быть далёк от идеала (опять же, в общем случае). Statechart, в первую очередь, показыавает эволюцию объекта (его состояния) во времени и на реальный код может быть отображён десятком способов. Цель диаграммы - наглядно продемонстрировать, что и в какой момент можно с объектом делать и как состояния объекта между собой связаны.
27.11.2009 в 15:45

memento mori
Flex Ferrum, нужно - потому что пробую заниматься кодогенерацией из uml. первая подножка появилась после готового скелета классов. придуманное мной решение мне не нравится. вот и хочется посмотреть как делают остальные.

о. а если имеете опыт такой разработки, то может можете порекомендовать какие-нибудь полезные ссылки/книжки?
27.11.2009 в 15:51

IDDQD - Команда молодости нашей, команда, без которой мне не жить.
о. а если имеете опыт такой разработки, то может можете порекомендовать какие-нибудь полезные ссылки/книжки?
Не могу. Генератор писался "с нуля", автоматы описывались в xml-виде (но в терминах UML), имели поддержку в виде замороченной библиотеки (самописной), которая обеспечивала трансляцию событий и щелкала состояниями. Вообщем, то (что получилось) представляло собой реализацию классических событийно-управляемых конечных автоматов. А UML-стейтчарты ими не ограничиваются. Из литературы пользовался спецификацией UML 1.x.

нужно - потому что пробую заниматься кодогенерацией из uml. первая подножка появилась после готового скелета классов. придуманное мной решение мне не нравится. вот и хочется посмотреть как делают остальные.
А из чего конкретный код предполагается генерировать? Из диаграмм активности (разве что)... Только они дают достаточно информации для генерации начинки методов на императивных языках...
27.11.2009 в 16:05

memento mori
Flex Ferrum, ну да. я пока думаю делать с диаграммой активности.