Форум Сообщества Аналитиков

Общий раздел => ПО Аналитика => Тема начата: HelpMePls от 19 Марта 2007, 14:42:51

Название: Eclipse: Генерация исходного кода по модели классов
Отправлено: HelpMePls от 19 Марта 2007, 14:42:51
Всем доброго дня!


  Задача: генерация кода на PL/SQL по модели классов.
(у классов помимо стандартных атрибутов также имеются свои собственные.)

подскажите есть ли софт способный по шаблоному языку генерить ЗАДАЧУ.
или же другим способом.

если нет то возможно ли написать собственную программу. известно что к старой розе можно было достучатся по COM-интерфейсу.



Спасибо за отзывы!
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: bas от 19 Марта 2007, 15:08:52
Немного прояснений:
Задача = job?
У вас есть некая приблуда для Еклипс, которая умеет рисовать ДК?


З.Ы. К сожалению, я Еклипс никогда не юзал, поэтому ответить не смогу, вопросы для прояснения для других участников форума.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Юрий Булуй от 19 Марта 2007, 15:49:41
Задача: генерация кода на PL/SQL по модели классов.
(у классов помимо стандартных атрибутов также имеются свои собственные.)
подскажите есть ли софт способный по шаблоному языку генерить ЗАДАЧУ.
или же другим способом.
если нет то возможно ли написать собственную программу. известно что к старой розе можно было достучатся по COM-интерфейсу.
Спасибо за отзывы!

PL/SQL уже стал объектно-ориентированным (!) языком? Для работы с ним лучше использовать таки средства Oracle.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Denis Beskov от 19 Марта 2007, 17:38:34
Задача: генерация кода на PL/SQL по модели классов (у классов помимо стандартных атрибутов также имеются свои собственные).
Задача интересная, я сам на такую сейчас смотрю, но пока особого смысла не вижу.

Цитировать
Подскажите есть ли софт способный по шаблоному языку генерить ЗАДАЧУ или же другим способом.
Не понятно, что имеется в виду под шаблонным языком.

Цитировать
Если нет то возможно ли написать собственную программу.
Принципиальная возможность есть всегда.

У вас есть некая приблуда для Еклипс, которая умеет рисовать ДК?
А у тебя что, нет? Ну так зайди, скачай :)

PL/SQL уже стал объектно-ориентированным (!) языком? Для работы с ним лучше использовать таки средства Oracle.
Да, и давно. Действительно, стоит посмотреть Oracle Designer - там наверняка уже всё есть.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Юрий Булуй от 19 Марта 2007, 18:14:21
Денис, просвяти ... PL/SQL таки объектный или объектно-ориентированный в полном смысле (с наследованием и полиморфизмом)?
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: bas от 19 Марта 2007, 18:22:27
Денис, просвяти ... PL/SQL таки объектный или объектно-ориентированный в полном смысле (с наследованием и полиморфизмом)?
Ну есть там объектные фичи, но все это фигня по моему.

Народ наверное хочет из ДК получить некую er-диаграмму, как это было сделано в Розе, а потом в код
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Denis Beskov от 19 Марта 2007, 18:53:15
Денис, просвяти ... PL/SQL таки объектный или объектно-ориентированный в полном смысле (с наследованием и полиморфизмом)?
Скажем так - с элементами объектов - есть инкапсуляция через методы, наследование, нет полиморфизма (или я плохо понял). См. книгу "Object-oriented Oracle": http://www.isbnonline.com/Object-Oriented-Oracle/book/9781591408109/

Ну есть там объектные фичи, но все это фигня по моему.
Выглядит как "я булгакова не читал, но считаю нужным заявить" :) Уж хотя бы на Кайта сослался, что-ли :)

Цитировать
Народ наверное хочет из ДК получить некую er-диаграмму, как это было сделано в Розе, а потом в код
Зачем ER? Из UML-диаграммы класса - код класса (TYPE) Oracle PL/SQL.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 19 Марта 2007, 18:56:35
Всем доброго дня!
И Вам не стареть

Цитировать
  Задача: генерация кода на PL/SQL по модели классов.
(у классов помимо стандартных атрибутов также имеются свои собственные.)
Может не в тему, а что значит кроме стандартных атрибутов есть еще свои собственные?

Цитировать
подскажите есть ли софт способный по шаблоному языку генерить ЗАДАЧУ.
или же другим способом.
Под задачей имеется ввиду генерация ДК в код PL/SQL?
А на сайте Eclipse никаких разве инструментов нет?

Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: bas от 19 Марта 2007, 19:42:33
Выглядит как "я булгакова не читал, но считаю нужным заявить" :) Уж хотя бы на Кайта сослался, что-ли :)
Ну Вы батенька ту не правы - читал я его. Да, не применял, т.к. задач таких не было. И считаю, что практически все можно реализовать на РБД, и оптимально, а если что-то нельзя, то скорее Вы проектировщик хреновый ...
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Denis Beskov от 19 Марта 2007, 19:48:09
Ну Вы батенька ту не правы - читал я его. Да, не применял, т.к. задач таких не было.

И считаю, что практически все можно реализовать на РБД, и оптимально, а если что-то нельзя, то скорее Вы проектировщик хреновый ...
Саша, объектный PL/SQL - это про реализацию бизнес-логики и логику приложения - при чём тут БД?
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 19 Марта 2007, 20:11:28
Не пойму чего Вы тут спорите. Хозяин вопроса пока не объявлялся. Уточнения не внес, пояснений не дал. А тут уже битва!

Кто чего лучше знает, а кто ничего не знает, и т.д.....

Мне лично вопрос заданный не ясен!
С эклипс у меня знакомоство шапочное, с оракл тоже? Так что я особо в дискуссию не лезу.

Саша, ты вроде тоже высказался, что не копенгаген.

Денис, кажется, знает о че говорит - ну и дай человеку спокойно обсудить с хозяином вопроса проблему, чего на грубость нарываться:-)
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 19 Марта 2007, 20:18:25
Саша, объектный PL/SQL - это про реализацию бизнес-логики и логику приложения - при чём тут БД?
Денис, а что бизнес-логику разве нельзя внедрять в БД? Мне казалось, что довольно часто это делается: и через validation rules и через целостность, да сама метамодель чем не бизнес-логика, а триггеры, хранимые процедуры?
Архитектуры разные бывают: толсты тонкий клиент(сервер), трехзвенка, многозвенка, распределенные объекты.
Логика приложения - это согласен, скорее реализуют с помощью скриптовго языка PL и чкорее на стороне клиента, хотя и не обязательно.
В твоих словах просматривается такой тезис БД - просто средства хранения фактов? Т.е. правила их формирующие,  ограничение целостности и другое - все это что-то другое?
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Denis Beskov от 19 Марта 2007, 20:45:37
Денис, а что бизнес-логику разве нельзя внедрять в БД? Мне казалось, что довольно часто это делается: и через validation rules и через целостность, да сама метамодель чем не бизнес-логика, а триггеры, хранимые процедуры?
WikiPedia говорит (http://en.wikipedia.org/wiki/Business_logic):
Цитировать
Business logic comprises:
    * business rules that express business policy (such as channels, location, logistics, prices, and products); and
    * workflows that are the ordered tasks of passing documents or data from one participant (a person or a software system) to another.
Т.е. состоит из бизнес-правил и потоков работ, с чем я вобщем согласен, если добавить процессы, события, состояния и семантические отношения. Бизнес-моделирование в IT - это структурная модель ПрОбл+Бизнес-Логика, если первую можно более или менее удачно положить в РБД, то вторую - далеко не всегда.
Цитировать
В твоих словах просматривается такой тезис БД - просто средства хранения фактов? Т.е. правила их формирующие,  ограничение целостности и другое - все это что-то другое?
Целостность конечно является частью бизнес-логики, только к сожалению в большинстве случаев её слишком мало, т.к. бизнес-правила нетривиальны. Если в данном конкретном приложении хватало бы "базовой бизнес-логики", то никто бы про PL/SQL не заикался.

Твоей фразы про "скриптовый язык PL" не понял. PL/SQL - это компилируемый язык. Его можно использовать в интерактивном режиме, но это имеет смысл только для задач администрирования, но не работающих кусков приложения.

Опять же "логика приложения скорее на клиенте" не понял, сейчас обычно логикой приложений занимается сервисный слой, см. Фаулера (http://www.martinfowler.com/eaaCatalog/serviceLayer.html). Что такое "метамодель" тоже не понял.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 20 Марта 2007, 09:59:20
Спасибо за разъяснение. Вероятно, у меня было не свосем верное представление о бизнес-логике.

Думаю не имеет смысл дальше дискутировать об этом именно в этой теме.

Насчет некоторых твоих вопросов. Про PL/SQL мне мало, что известно, потому и назвал его "скриптовым" по аналогии с некоторыми другими системами.

Насчет логики приложения на клиенте. Если следовать классической архитектуре клиент-сервер, тогда на стороне клиента обычно размещают  средства представления , логику представления, бизнес-логику, логику управления данными. Правда спекрт клиент-серверных архитектур сильно варьируется от толстого до тонкого клиента.

Поскольку современные архитектуры тяготеют к многозвенным (что улучшает масштабируемость как минимум), то логика приложения и логика управления данными мигрирует на сервер(ы) приложения.

Насчет метамодели - база данных - это самодокументируемая система(?), потому и метамодель:-)

Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Denis Beskov от 20 Марта 2007, 11:05:56
Насчет логики приложения на клиенте. Если следовать классической архитектуре клиент-сервер, тогда на стороне клиента обычно размещают  средства представления, логику представления, бизнес-логику, логику управления данными.
Из классического определения "Клиент-сервер" (http://ru.wikipedia.org/wiki/%D0%9A%D0%BB%D0%B8%D0%B5%D0%BD%D1%82-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80), да из самих терминов следует, что "клиент" - это тот, кто запрашивает и воспольуется результатами, а сервер - кто выполняет запрошенную задачу (обработка, сохранение, whatever). В тех же Оракловых технологиях традиционной реализацией такой архитектуры например, для банковских систем, является помещение бизнес-логики и логики приложения на сервер БД, тесно интегрируя их с БД, тебе Саша подтвердит.

Тему можно перенести в соотв. раздел.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: HelpMePls от 20 Марта 2007, 12:43:47
Вот автор вопроса :)

и так. есть диаграмма классов. под каждый класс в оракл должен создаватся объектный тип. так вот с С++ Роза знает как генерит код, а вот с Ораклом только таблицы процедуры функции. для таблиц использую CASE-средство.

насчет шаблонного языка и генератора. генератор лезет в розу через СОМ интерфейс берет класс смотрит его дополнительные атрибуты и смотрит на шаблон по которому делает описание объектного типа оракла. create ....

так вот вопрос как написать этот генератор под Эклипс. т.е. Роза то вошла в комплект Софтваре Архитект ИБМ. и как оттуда то все это выдрать.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: HelpMePls от 20 Марта 2007, 12:45:16
PL/SQL уже стал объектно-ориентированным (!) языком? Для работы с ним лучше использовать таки средства Oracle.
да дело не в ОО оракла. а в автоматической генерации кода.

И Вам не стареть
Может не в тему, а что значит кроме стандартных атрибутов есть еще свои собственные?
Под задачей имеется ввиду генерация ДК в код PL/SQL?
А на сайте Eclipse никаких разве инструментов нет?



в розе есть закладка Атрибуты класса :) так вот так же есть создание своих собственных расширений. появляется новая закладка в описании класса в которой прописываются новые атрибуты. тоже можно и для метода сделать.
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 20 Марта 2007, 13:13:08
в розе есть закладка Атрибуты класса :) так вот так же есть создание своих собственных расширений. появляется новая закладка в описании класса в которой прописываются новые атрибуты. тоже можно и для метода сделать.

Все равно не могу понять. Ты имеешь в виду, что при использовании нотации С++, роза уже предоставляет набор стандартных классов этого языка? Но насколько я понимаю добавление новых атрибутов в стандартных класс запрещено, это уже будет не стандартный. Для добавления как ты говоришь дополнительных атрибутов или методов, сначала надо сделать наследника стандартного класса, а уже потом доопределить его атрибуты и методы, или вовсе переназначить имеющиеся.
Насколько я понимаю работу Розы, то мы формируем некий стандартный фреймворк - скажем С++, который уже содержит набор стандартных классов, который мы и используем.
Если следовать такой логике, то очевидно, что нужно разработать фреймворк на основе PL/SQL - если это вообще возможно (наверное да, но требует серьезной работы)
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: HelpMePls от 20 Марта 2007, 17:23:34
Z
Все равно не могу понять. Ты имеешь в виду, что при использовании нотации С++, роза уже предоставляет набор стандартных классов этого языка? Но насколько я понимаю добавление новых атрибутов в стандартных класс запрещено, это уже будет не стандартный. Для добавления как ты говоришь дополнительных атрибутов или методов, сначала надо сделать наследника стандартного класса, а уже потом доопределить его атрибуты и методы, или вовсе переназначить имеющиеся.
Насколько я понимаю работу Розы, то мы формируем некий стандартный фреймворк - скажем С++, который уже содержит набор стандартных классов, который мы и используем.
Если следовать такой логике, то очевидно, что нужно разработать фреймворк на основе PL/SQL - если это вообще возможно (наверное да, но требует серьезной работы)

Я наверное плохо рассказываю :)
(есть в розе Add-in. так и расширяется... в розе работали? так можно например на VB писать аддоны к розе скажем автоматом подкрашивать классы итд)

предположим делаете проект на С++. в розе рисуете модель классов - class diagram. потом говорите розе хочу код. она вам генерит... так? она знает си ++ :)

что с ораклом. создаете class diagram. (в CASE - скажем пауэр дизайнере создаете модель таблиц.) так вот что делает роза 2003. для нее есть программа (исходники потеряны) написанная на какомто языке высокоуровневом. ей указывается файл  она его открывает через СОМ-интерфейс лезет в розу и создает описание объектных типов по классам в соответствии с шаблоном - есть специальные файлы шаблонов. (я уже не знаю как объяснить).

вообщем как работать с классами розы через СОМ-интерфейс? что делать с эклипсом?

вот ссылка http://www.rationalrose.com/addins/RosePerl-1_0_1.htm
на генерацию Перловского кода из розы
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: Galogen от 20 Марта 2007, 18:46:08
Проблема Ваша в целом понятна. Хотя не понятно зачем ее решать с этого конца.

Может взять те инструменты, которые позволяют уже делать, что вы желаете.

Не понятно почему свет клином сошелся на РОзе. Розу я конечно немного юзал, но не до такой степени. Да делал адд-онсы для конвертации руссифицированных имен классов, атрибутов и методов в англоязычной транслитерации при переводе диаграммы классов в BOLD.

Генерацией кода с использованием Розы к сожалению (или к счастью) не пользовался.

Может все-таки посмотреть в сторону тех инструментов, которые делают то, что вам нужно?

Не уверен поможет ли это - но: ссылка (http://www.wadim.ru/cgi-bin/download_resource.pl?lng=rus&ACT=6&id_platform=3&id_category=3&id_theme=70&ORDER_BY=name&CURR_PAGE=18&id_resource=133&os=&ls=) или ссылка 2 (http://www.pbl.narod.ru/orarose.htm)

Еще попробуйте сходить на форум http://mda-delphi.ru
Название: Re: Платформа Эклипс. Генерация исходного кода по модели классов.
Отправлено: HelpMePls от 21 Марта 2007, 14:55:31
Проблема Ваша в целом понятна. Хотя не понятно зачем ее решать с этого конца.

Может взять те инструменты, которые позволяют уже делать, что вы желаете.

Не понятно почему свет клином сошелся на РОзе. Розу я конечно немного юзал, но не до такой степени. Да делал адд-онсы для конвертации руссифицированных имен классов, атрибутов и методов в англоязычной транслитерации при переводе диаграммы классов в BOLD.

Генерацией кода с использованием Розы к сожалению (или к счастью) не пользовался.

Может все-таки посмотреть в сторону тех инструментов, которые делают то, что вам нужно?

Не уверен поможет ли это - но: ссылка (http://www.wadim.ru/cgi-bin/download_resource.pl?lng=rus&ACT=6&id_platform=3&id_category=3&id_theme=70&ORDER_BY=name&CURR_PAGE=18&id_resource=133&os=&ls=) или ссылка 2 (http://www.pbl.narod.ru/orarose.htm)

Еще попробуйте сходить на форум http://mda-delphi.ru

спасибо за ссылки!