|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Заинтересовала возможность генерации C++ (Java и т.п.) кода из UML модели. Посмотрел как это делает MS Visual Modeler, StarUML и не пришёл в восторг. Неприятность в том, что концы ассоциаций генерятся как простые указатели, тогда как хотелось бы получать STL коллекции. Конечно всё это можно явно изобразить в модели, но хотелось бы абстрагироваться от таких подробностей. Интересует также возможность преобразования поведенческих UML моделей и OCL ограничений в методы на C++, C#, Java, PL/SQL, SQL. Сейчас пробую писать на JScript генератор спецификаций классов C++ для StarUML. Может быть изобретаю велосипед, но могу поделиться. У кого есть опыт использования или разработки подобных генераторов, поделитесь пзл. впечатлениями. Интересует современное состояние дел в этой области. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 11:42 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
т.к. все пишут код по разному, то и генератор кода тоже лучше написать под себя... Времени это занимает намного меньше, чем кажется, а экономит намного больше... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 12:23 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
sergey888т.к. все пишут код по разному, то и генератор кода тоже лучше написать под себя... Времени это занимает намного меньше, чем кажется, а экономит намного больше... На счёт времени, соглашусь. По крайней мере для генерации спецификаций классов C++ задача не сложная, тем более, что API для работы с моделью стандартизован OMG, полуенные скрипты без больших доработок можно будет использовать и с другим CASE. Про "все пишут код по разному" это, наверное, не совсем так. Есть достаточно устоявшиеся рекомендации. Если ближе к теме, чтобы проектировщик и кодер одинаково понимали модель, нужны чёткие правила отображения модели в код. Например, стрелочка - это указатель на объект, плюсик - public член, 0..* - используем список, зависимость - #include и т.п.. Стандартных правил, как я понял, нет. Правила, которые я видел далеки от моего идеала. Какие ещё правила существуют? Может быть есть C++ библиотеки, поддерживающие конструкции UML? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 13:19 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Может быть в С++ есть устоявшиеся правила, но в Дельфи для решения одной задачи можно использовать разные компоненты у которых разные свойства, возможности, соответственно код получается разный. Можно использовать или не использовать наследование форм, модальность форм или выносить формы в отдельные DLL и т.д. вариантов масса.... ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 15:31 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
sergey888Может быть в С++ есть устоявшиеся правила, но в Дельфи для решения одной задачи можно использовать разные компоненты На таком уровне и для C++ рецептов нет. Под разные библиотеки и код будет разный. Для MFC такой, для STL эдакий. Пока я рассматриваю только STL. Даже в этом случае для реализации конструкции UML можно выбрать один из многих шаблонов, что создаёт нежелательную неоднозначность в понимании модели. Скорее всего поверх STL, чтобы упростить генератор кода, придётся создать небольшую UML ориентированную надстройку. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 16:03 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Про "все пишут код по разному" это, наверное, не совсем так. Есть достаточно устоявшиеся рекомендации. -------------------- Правила, которые я видел далеки от моего идеала. Какие ещё правила существуют? -------------------- так все одинаково или по разному? 8) Posted via ActualForum NNTP Server 1.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 16:05 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
sergey888Может быть в С++ есть устоявшиеся правила, но в Дельфи для решения одной задачи можно использовать разные компоненты у которых разные свойства, возможности, соответственно код получается разный. Можно использовать или не использовать наследование форм, модальность форм или выносить формы в отдельные DLL и т.д. вариантов масса.... +1 Эти генераторы - утопия , если конечно не писать всё ручками, да на С++. Генераторы не учитывают библиотеки. Взять тот ваш "список". На С++ он начнёт генерить код или класс для него. А на Delphi это готовый компонент-класс TList ли немножко_другой_для_другой_задачи TObjectList или ...... и так далее. Поэтому очень далеко "это" от народа (от программистов :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 16:22 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
1024так все одинаково или по разному? Пишут по разному но не все. В конторах, где приняты стандарты кодирования все пишут одинаково, или по крайней мере стремятся к этому. Одна из моих целей - генерить преимущественно стандартный код. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 18:26 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123 sergey888Может быть в С++ есть устоявшиеся правила, но в Дельфи для решения одной задачи можно использовать разные компоненты у которых разные свойства, возможности, соответственно код получается разный. Можно использовать или не использовать наследование форм, модальность форм или выносить формы в отдельные DLL и т.д. вариантов масса.... +1 Эти генераторы - утопия , если конечно не писать всё ручками, да на С++. Генераторы не учитывают библиотеки. Взять тот ваш "список". На С++ он начнёт генерить код или класс для него. А на Delphi это готовый компонент-класс TList ли немножко_другой_для_другой_задачи TObjectList или ...... и так далее. Поэтому очень далеко "это" от народа (от программистов :)) Утопия? Не согласен. Oracle Designer генерит пригодный для работы код. Конечно инструмент не универсальный, но в свою задачу решает. Есть ряд хороших генераторов схем БД, точнее кода для их создания. Delphi в значительной степени избавляет програмииста от кодирования. Я сам писал приложения без единой строчки кода, только соединяя компоненты. Генераторы не учитывают библиотеки? Из того немногочисленного, что я видел могу с этим согласиться, но все ли генераторы кода столь несообразительны? Я знаю тупое, но рабочее решение - указывать классы компонетов в тэгах, как правило нестандартных. Сомневаюсь, что в ближайшее время генераторы кода научатся различать "немножко_другие_задачи" без посторонней помощи. Конкретно, выбрать между TList и TObjectList можно полагаясь на требования к интерфейсу объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 18:52 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenabOracle Designer генерит пригодный для работы код. Конечно инструмент не универсальный, но в свою задачу решает. Есть ряд хороших генераторов схем БД, точнее кода для их создания. Delphi в значительной степени избавляет програмииста от кодирования. Я сам писал приложения без единой строчки кода, только соединяя компоненты. вы сами показали, что генератора универсального нет, а для Delphi - сама Delphi IDE генератор ))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
04.07.2006, 19:13 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
авторЗаинтересовала возможность генерации C++ (Java и т.п.) кода из UML модели. авторУ кого есть опыт использования или разработки подобных генераторов, поделитесь пзл. впечатлениями. Кратко об опыте генерации кода. Занимались этой проблемой очень плотно с 1996 по 2003 год. Использовали очень приличные генераторы. Разрабатывали сами. На генераторах реализованы коммерческие системы. Генераторами пользуются заказчики. До сих пор. Из чего генерировали? Westmount I-CASE, RR, MS Visio, ObjetTeam, Telelogic. Под что: C++, I-4GL, MS Basic, DOORS. Что можно сгенерировать? Сгенерировать можно всё, окна, классы, методы, запросы, проекты, сборку, документацию. Генерировали всё. Сегодня - не пользуемся генераторами. Плюсы генераторов: - работают неквалифицированные программисты. - соблюдается стандарт кодирования и GUI. - легко вносить изменения в общие части кода – поменял и перегенироровал систему. - модель консистентна коду. - и т.д. Минусы генераторов: - квалифицированные программисты связаны генератором. - внесение изменений в общие части требует изменения генератора или перегенерации. - изменения в код вносятся только через модель. - модель нельзя проверить «налету», только после генерации-компиляции. - и т.д. Почему перестали пользоваться? Есть более адекватные средства и практики, сохраняющие плюсы генерации и устраняющие её минусы. Если кратко, то это: - интегрированная среда разработки; - изменения в коде и отладка; - использование шаблонов проектирования; - рефакторинг; - модульное тестирование; - использование framework; - практики XP, наконец. Более подробно можно пообщаться через личку, ну или здесь же, если интерес общий. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 08:49 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
asafreeПочему перестали пользоваться? Есть более адекватные средства и практики, сохраняющие плюсы генерации и устраняющие её минусы. ... Т.е., разработка кодогенератора стала неактуальной, поскольку вы отказались от практики моделирования системы на UML и т.п. языках моделирования в пользу программирования в IDE и XP? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 11:53 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenab asafreeПочему перестали пользоваться? Есть более адекватные средства и практики, сохраняющие плюсы генерации и устраняющие её минусы. ... Т.е., разработка кодогенератора стала неактуальной, поскольку вы отказались от практики моделирования системы на UML и т.п. языках моделирования в пользу программирования в IDE и XP? все смешано - кони, лошади. ================ на UML проектируется модель системы, интерфейс её составных частей. Далее не генерируется код, а отдаётся программистам для реализации. Хоть и говорят, что программирование это не творчество а рутина, но как видно не так . ЗЫ. и ХР тут ещё причём? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 12:43 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123 mcureenab asafreeПочему перестали пользоваться? Есть более адекватные средства и практики, сохраняющие плюсы генерации и устраняющие её минусы. ... Т.е., разработка кодогенератора стала неактуальной, поскольку вы отказались от практики моделирования системы на UML и т.п. языках моделирования в пользу программирования в IDE и XP? все смешано - кони, лошади. ================ на UML проектируется модель системы, интерфейс её составных частей. Далее не генерируется код, а отдаётся программистам для реализации. Хоть и говорят, что программирование это не творчество а рутина, но как видно не так . ЗЫ. и ХР тут ещё причём? Кодированием модели, конечно, могут заниматься программисты, но речь то не об этом, а о том, что, ИМХО, в модель можно внести достаточно данных, чтобы автоматически создать компилируемый код, или, хотя бы его часть. asafree пишет про тоже. В настоящее время наблюдается разделение труда проектировщиков и кодеров. Чем меньше творчества будет в работе кодера, тем более предсказуемым будет результат его работы. Собственно чего я и пытаюсь добиться. Про XP. Когдато кодеры писали дырками на перфоленте, потом были изобретены многочисленные языки программирования, программы стали понятны широкому кругу специалистов, но не конечных пользователей. Зачастую, программисты и пользователи не могут найти точки соприкосновения. XP в позволяет общаться с пользователем на языке прототипов системы не тратя время на создание томов проектной документации. При определённых условиях этот подход вполне приемлем, но с автоматической генерацией кода не совместим. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 13:51 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
авторКодированием модели, конечно, могут заниматься программисты, но речь то не об этом, а о том, что, ИМХО, в модель можно внести достаточно данных, чтобы автоматически создать компилируемый код, или, хотя бы его часть. asafree пишет про тоже. ========= эта часть стремится к нулю, т.к. нельзя формализовать разброс языков-технологий-библиотек-компиляторов В настоящее время наблюдается разделение труда проектировщиков и кодеров. Чем меньше творчества будет в работе кодера, тем более предсказуемым будет результат его работы. Собственно чего я и пытаюсь добиться. ====== если сумеешь, т.к. модель аналитика очень далека от физического кода. И сам аналитик должен быть кодером, т.е. делать его работу самому Про XP. XP в позволяет общаться с пользователем на языке прототипов системы не тратя время на создание томов проектной документации. При определённых условиях этот подход вполне приемлем, но с автоматической генерацией кода не совместим. ============= ХР не запрещает построение моделей. Он говорит, что делай это быстрее - утром модель, в обед - прототип для обкатки. Прототип не заменяет наглядную модель, как эскиз-набросок не заменяет модель из пенопласта. ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 15:10 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenabТ.е., разработка кодогенератора стала неактуальной, поскольку вы отказались от практики моделирования системы на UML и т.п. языках моделирования в пользу программирования в IDE и XP? Мы моделируем на UML, в том числе. Но не делаем с некоторого момента модельно-управляемый код. Мы просто реализуем эти модели квалифицированными специалистами в том числе в IDE и применяем XP практики. Для нас это эффективнее. Однако, сама модельно-управляемая разработка имеет право на жизнь. И для кого-то это ожет быть очень эффективно. Я уже говорил, что мы ей пользовались. Она была оправдана. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:01 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123ЗЫ. и ХР тут ещё причём? Использование кодогенераторов даёт определённые преимущества, например: - стандартные блоки генерируем, ошибок в них не будет, тестировать не надо; - вундеркинд-программист разработал блок, блок разместили в генераторе, программист поплоше его не испортит - код появися автоматом на основании решения проектировщика (аналитика) и т.п. Эти плюсы оборачиваются минусами при определённых условиях. Теперь про XP. XP предлагает практики, которые дают аналогичные плюсы за счёт организационных моментов и инструментов отличных от генераторов, например тесты, рефакторинг, ОО и фреймворки. Вместе с тем, они и минусы генераторов снимают. Хочу заметить, XP - не альтернатива генераторам. Это один из вариантов организации процесса разработки. Привёл его только для сравнительного примера. Скорее всего, возможны варианты, когда генерация и XP могут сосуществовать. Это решать компании разработчиков ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:09 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenab В настоящее время наблюдается разделение труда проектировщиков и кодеров. Чем меньше творчества будет в работе кодера, тем более предсказуемым будет результат его работы. Собственно чего я и пытаюсь добиться. Немного пугает такое отношение к кодерам - в смысле творчества. Хотя, вполне понимаю причины. Боюсь, что этого не добиться. Мы себе представляем это примерно так: - аналитик (проектировщик) - условный представитель интересов заказчика. Если в XP - заказчик. Он определяет чего надо. Определяет суть предмета и концепцию предмета. Говоря другими словами - формализует требования. Он не навязывает программисту способ решения. - программист - у нас он и проектировщик кода, классов и т.п. принимает решение о том, как эффективнее реализовать требования. Он отвечает за внутренний дизайн. При таком подходе - места для творчества с избытком. Есть конечно небольшой минус :( - требуется квалифицированный программист. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:15 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123[quot автор]Кодированием модели, конечно, могут заниматься программисты, но речь то не об этом, а о том, что, ИМХО, в модель можно внести достаточно данных, чтобы автоматически создать компилируемый код, или, хотя бы его часть. asafree пишет про тоже. ========= эта часть стремится к нулю, т.к. нельзя формализовать разброс языков-технологий-библиотек-компиляторов Я и не ставлю задачи генерить код для всех языков-технологий-библиотек-компиляторов из любой модели. Меня интересует генерация для C++, <с технологией не вижу связи>, STL, Visual C++. Для других языков тоже есть потребность генерить код. Понятно, что модель реализации должна быть заточена под целевую среду, и модель для C++ не будет автоматически переносима на PL/SQL . Petro123[quot автор]В настоящее время наблюдается разделение труда проектировщиков и кодеров. Чем меньше творчества будет в работе кодера, тем более предсказуемым будет результат его работы. Собственно чего я и пытаюсь добиться. ====== если сумеешь, т.к. модель аналитика очень далека от физического кода. И сам аналитик должен быть кодером, т.е. делать его работу самому Над поектом последовательно трудятся многие люди, последовательно от модели к модели приближаясь к результату. По аналитической модели невозможно сразу написать код, для этого аналитическую модель нужно преобразовать в модель реализации, и только из неё сгенерить код. Petro123[quot автор]Про XP. XP в позволяет общаться с пользователем на языке прототипов системы не тратя время на создание томов проектной документации. При определённых условиях этот подход вполне приемлем, но с автоматической генерацией кода не совместим. ============= ХР не запрещает построение моделей. Он говорит, что делай это быстрее - утром модель, в обед - прототип для обкатки. Прототип не заменяет наглядную модель, как эскиз-набросок не заменяет модель из пенопласта. Это понятно, ИМХО, в XP основной упор в работе с заказчиком делается на обсуждение и согласование прототипа, тогда как RUP предполагает работу с моделью. Если проект маленький, проще быстро сделать и обсудить прототип, чем поводить скурпулёзный анализ. В большом и сложном проекте этот номер не пойдёт. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:25 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
asafree Petro123ЗЫ. и ХР тут ещё причём? - вундеркинд-программист разработал блок, блок разместили в генераторе, программист поплоше его не испортит - код появися автоматом на основании решения проектировщика (аналитика) и т.п. что такое "блок"? При процедурном проектировании это кусок кода? IMHO программист должен разработать функциональный класс/объект/компонент/COM/пакет, который используют другие. А вот кодогенератор его использовать не сможет. Например, в Delphi ModelMaker при импорте модели из кода совсем не видит файлы *.dfm где расположены визуальные классы IDE Delphi. Кодогенератору не объяснишь: - бросить таблицу на форму - бросить на форму ADOConnection и указать строку подключения к БД - связать источник данных и таблицу показа данных - ВСЁ - ФОРМА ПОКАЗА ИНФЫ ИЗ БД ГОТОВА. imho либо визуальное проектирование в IDE компилятора, либо кодогенераторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:32 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenab Это понятно, ИМХО, в XP основной упор в работе с заказчиком делается на обсуждение и согласование прототипа, тогда как RUP предполагает работу с моделью. Если проект маленький, проще быстро сделать и обсудить прототип, чем поводить скурпулёзный анализ. В большом и сложном проекте этот номер не пойдёт. XP сам по себе не ограничивает размер проекта. RUP сам по себе не даёт гарантии скурпулёзного анализа. XP работает на большом проекте. Прототип требует не менее скурпулёзного анализа, чем модель. Выбирать надо то, что эффективнее. Мы пробовали работать именно так как и говорит автор: продвигались по модели к коду. Шаг за шагом. Модельно-управляемая фабрика, заточенная под конкретную среду, под конкретные библиотеки. Наш опыт показал - это хуже, чем гибкая разработка. Поэтому кодогенераторы умерли. Хотя, в них что-то было :). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:36 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
авторМеня интересует генерация для C++, тогда понятно, это другой мир проектирования. Удачи! ЗЫ. Кстати, для Delphi есть Bold , в котором работает вся цепочка: - модель -> кнопка -> создать код и структуру БД -> Приложение.exe Но неприжилось это "внебрачное" дитя (программист не контролирует ситуацию и не знает даже скока таблиц в этой БД). ______________________________________________ Вы имеете право хранить молчание! Всё что Вы скажете может быть использовано против Вас в суде! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:38 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123что такое "блок"? При процедурном проектировании это кусок кода? IMHO программист должен разработать функциональный класс/объект/компонент/COM/пакет, который используют другие. А вот кодогенератор его использовать не сможет. Попробую объяснить про блок. Термин выбрал неудачный. Им может быть всё, что угодно из перечисленного выше. Даже процесс типовой. Если этот "блок" типовой, его превращают в стереотип. Аналитик использует стереотип в моделе. Кодогенератор (он может всё! :)), "обучен" этому стереотипу. И он, кодогенератор, используя этот стереотип, встроенный в модель, создаёт соответствующий код. Примерно так. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:42 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
asafree Petro123что такое "блок"? При процедурном проектировании это кусок кода? IMHO программист должен разработать функциональный класс/объект/компонент/COM/пакет, который используют другие. А вот кодогенератор его использовать не сможет. Попробую объяснить про блок. Термин выбрал неудачный. Им может быть всё, что угодно из перечисленного выше. Даже процесс типовой. Если этот "блок" типовой, его превращают в стереотип. Аналитик использует стереотип в моделе. Кодогенератор (он может всё! :)), "обучен" этому стереотипу. И он, кодогенератор, используя этот стереотип, встроенный в модель, создаёт соответствующий код. Примерно так. стереотип: - бросить таблицу на форму ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 17:55 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123стереотип: - бросить таблицу на форму На UML, это может быть ассоциация класса доступа к таблице с классом формы. На более высоком уровне абстракции, это может быть зависимость класса формы от класса таблицы или, если речь идёт об SQL запросе из многих таблиц, БД в целом. Как договоримся. ИМХО, из того и из другого можно сгенерить код. Естественно, графическая нотация UML может быть менее наглядна, чем нотация IDE Delphi, тут, несомненно, универсальные системы моделирования будут уступать специальным. Вопрос только в том, на каком этапе начать перенос данных из одной системы в другую. Иногда это стоит сделать уже на этапе анализа. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 18:41 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123Кодогенератору не объяснишь: - бросить таблицу на форму - бросить на форму ADOConnection и указать строку подключения к БД - связать источник данных и таблицу показа данных - ВСЁ - ФОРМА ПОКАЗА ИНФЫ ИЗ БД ГОТОВА. Хм. Если это можно объяснить кодеру, то почему нельзя объяснить кодогенератору? Ведь все когдато учились. Конечно кодер может догадаться, что от него хотят, сделать как он понял, и случайно попасть в цель. Кодогенератор будет ругаться до тех пор, пока ему не объяснишь все необходимые детали: из какой БД, какую таблицу, на какую форму и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.07.2006, 18:55 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123 Кодогенератору не объяснишь: - бросить таблицу на форму - бросить на форму ADOConnection и указать строку подключения к БД - связать источник данных и таблицу показа данных - ВСЁ - ФОРМА ПОКАЗА ИНФЫ ИЗ БД ГОТОВА. еще можно сгенерать кнопочки, форму для редактироваия данных и процедуры, по которым будет открываться форма и данные будут сохраняться в БД. На Кларионе это было реализовано лет 15-20 назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 10:28 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
ребята! есть одно но! - Генератор хуже по определению сделает связь Код: plaintext
- Генератор не поспеет за выпуском IDE_Генераторов (т.е. не научится), т.к. релиз Delphi 2, 3, 4, 5, 6, 7, 8, Net, 2005, 2006, 2007 идёт чаще. И скаждым релизом меняется технология , компоненты в IDE. Хорошо С++, где стандарт языка не так сильно меняется. Но вот заказчикам хорошо ли? Вот вопрос. ЗЫ. Вроде всё выяснили! Спасибо! Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 11:20 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
sergey888еще можно сгенерать кнопочки, форму для редактироваия данных и процедуры, по которым будет открываться форма и данные будут сохраняться в БД. На Кларионе это было реализовано лет 15-20 назад. Для форм БД в области автоматической генерации кода положение действительно хорошее. Основные операции с БД и формой немногочисленные и формализованы. Уже в каждой IDE, которая претендует на звание средства разработки приложений БД есть мастера форм БД. Как правило, достаточно просто прямо в мастере нарисовать форму, сгенерить документацию и согласовать её с клиентом. Т.е. построитель форм является одновременно и средством моделирования и документирования и кодирования. В области разработки невизуальных функций дело обстоит гораздо хуже. Модель и документация создаётся отдельно, код отдельно. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 11:29 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
sergey888еще можно сгенерать кнопочки, форму для редактироваия данных и процедуры, по которым будет открываться форма и данные будут сохраняться в БД. На Кларионе это было реализовано лет 15-20 назад. будет ещё быстрее, если применить ООП. ОДИН раз КАК ПОНРАВИТСЯ настроить форму "Форма ввода платёжек АААА", и сохранить её в репрозитарии/пакете. Далее просто наследоваться от неё. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 11:29 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
mcureenabВ области разработки невизуальных функций дело обстоит гораздо хуже. Модель и документация создаётся отдельно, код отдельно. наверно ты прав, вот только невизуальные функции (я их называю библиотечные), обычно есть в IDE в виде невизуальных компонентов. Если их нет, то это не прикладная задача, а системная (типа разработки драйверов или очень больших проектов). Например, шаблон "Делегат" генерируется в С++. Но в Delphi он уже генерируется компилятором-генератором инструкцией Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 11:34 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
Petro123 mcureenabВ области разработки невизуальных функций дело обстоит гораздо хуже. Модель и документация создаётся отдельно, код отдельно. наверно ты прав, вот только невизуальные функции (я их называю библиотечные), обычно есть в IDE в виде невизуальных компонентов. Если их нет, то это не прикладная задача, а системная (типа разработки драйверов или очень больших проектов). Трудно провести границу между прикладными и системными задачами. Видимо вопрос в том, насколько функциональный блок позволяет нам абстрагироваться от аппаратной части системы. Если задача разработчика сформулирована на уровне абстракции и в терминах библиотеки функциональных блоков, то это прикладная задача, если уровень абстракции задачи выше, то из библиотечных блоков низкого уровня абстракции нужно сначала создать блоки на уровне абстракции решаемой задачи, это системная задача, а затем использовать их для решения прикладной задачи. Petro123Например, шаблон "Делегат" генерируется в С++. Но в Delphi он уже генерируется компилятором-генератором инструкцией Код: plaintext
На "голом" C++ работают только студенты первых курсов на лабораторных работах, и, как оказалось, многие генеаторы кода. Для C++ есть море прикладных библиотек. Для решения наиболее типичных задач используется стандартная библиотека шаблонов - STL. Многое из того, что в Delphi встроено в язык, на C++ реализовано в библиотеках ни чуть не хуже. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 12:00 |
|
Генерация кода из модели
|
|||
---|---|---|---|
#18+
если идти от направления развития стандартов UML и около него, то стоит посмотреть на стандарты OMG MDA и средства QVT = Query-View-Transformation. С уважением, Сергей P.S. не исключаю, что что-то полезное на этот счет найдете в этой презентации . Некоторые общие примеры использования QVT с UML есть в Together Architect 2006 (реализован на платформе Eclipse). ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2006, 17:42 |
|
|
start [/forum/topic.php?all=1&fid=33&tid=1549356]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
187ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 292ms |
0 / 0 |