UniverseUniversity


Home Projects Jobs Clientele Contact

uu


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: UU tools



Correct me, if I'm wrong: Ilya things the program Alexey wants to write
(for 8-12 hrs) can serve as a module attached to Umbrello? I don't mind.
Total Knowledge sponsors this.
-Anatoly

Ilya A. Volynets-Evenbakh wrote:
> Well, I think right thing to do would be to stick with UML and umbrello
> format.
> And as for converting to real SQL, there is third option - fix Umbrello ;-)
>
> Alexey Parshin wrote:
>   
>> Guys,
>>
>> I've just spent around 6 hrs digging for any tools we can use for
>> database ERD (entry relations diagram). I've found several tools, that
>> are good for something.
>> At short, there is no Open Source tools for Linux we can use out of
>> the box, and most popular tools for Windows Erwin and ErStudio don't
>> work under wine.
>> The closest candidates are Dia and Umbrello. They both are using a
>> sort of XML to store the diagram. Dia uses it's own format, and
>> Umbrello uses XMI that is a standard more or less.
>> Only Umbrello is capable to generate primitive SQL (create table
>> statements only) that isn't good enough for us. I'd like to have a
>> nice diagram we can all work with, easily convertable into the DDL
>> statements.
>>
>> I've an idea, however, to read the XMI, or DIA, or similar files and
>> convert 'em into SQL DDL we need, including table structure and
>> foreign keys. The program itself is going to be pretty simple - I can
>> make it for 8..12 hrs. The resulting project could be Open Source or
>> anything else - I don't really care at this point.
>>
>> I'm attaching the files from Dia (.dia), Umbrello (.xmi), and proposed
>> configuration for the xmi2sql convertor. Please, let me know if this
>> is something you want me to do, or may be Ilya has another solution.
>> Is any of this payable, BTW? I didn't count even an hour for last
>> several weeks..
>>
>> -- 
>> Alexey Parshin,
>> http://www.sptk.net
>> ------------------------------------------------------------------------
>>
>> <?xml version="1.0" encoding="UTF-8"?>
>> <XMI xmlns:UML="http://schema.omg.org/spec/UML/1.3"; verified="false" timestamp="2006-08-05T21:23:09" xmi.version="1.2" >
>>  <XMI.header>
>>   <XMI.documentation>
>>    <XMI.exporter>umbrello uml modeller http://uml.sf.net</XMI.exporter>
>>    <XMI.exporterVersion>1.5.4</XMI.exporterVersion>
>>    <XMI.exporterEncoding>UnicodeUTF8</XMI.exporterEncoding>
>>   </XMI.documentation>
>>   <XMI.metamodel xmi.name="UML" href="UML.xml" xmi.version="1.3" />
>>  </XMI.header>
>>  <XMI.content>
>>   <UML:Model isSpecification="false" isLeaf="false" isRoot="false" xmi.id="m1" isAbstract="false" name="UML Model" >
>>    <UML:Namespace.ownedElement>
>>     <UML:Stereotype isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="3" isRoot="false" isAbstract="false" name="datatype" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="2" isRoot="false" isAbstract="false" name="int" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="4" isRoot="false" isAbstract="false" name="char" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="5" isRoot="false" isAbstract="false" name="bool" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="6" isRoot="false" isAbstract="false" name="float" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="7" isRoot="false" isAbstract="false" name="double" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="8" isRoot="false" isAbstract="false" name="short" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="9" isRoot="false" isAbstract="false" name="long" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="10" isRoot="false" isAbstract="false" name="unsigned int" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="11" isRoot="false" isAbstract="false" name="unsigned short" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="12" isRoot="false" isAbstract="false" name="unsigned long" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="13" isRoot="false" isAbstract="false" name="string" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="16" isRoot="false" isAbstract="false" name="serial primary key" />
>>     <UML:DataType stereotype="3" isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="18" isRoot="false" isAbstract="false" name="varchar(80)" />
>>     <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="14" isRoot="false" isAbstract="false" name="study_course" >
>>      <UML:Classifier.feature>
>>       <UML:Attribute isSpecification="false" visibility="public" xmi.id="17" type="16" name="sc_id" />
>>       <UML:Attribute isSpecification="false" visibility="public" xmi.id="19" type="18" name="sc_name" />
>>      </UML:Classifier.feature>
>>     </UML:Class>
>>     <UML:Class isSpecification="false" isLeaf="false" visibility="public" namespace="m1" xmi.id="25" isRoot="false" isAbstract="false" name="course_topic" >
>>      <UML:Classifier.feature>
>>       <UML:Attribute isSpecification="false" visibility="public" xmi.id="26" type="16" name="ct_id" />
>>       <UML:Attribute isSpecification="false" visibility="public" xmi.id="27" initialValue="references study_course(sc_id)" type="2" name="ct_study_course" />
>>       <UML:Attribute isSpecification="false" visibility="public" xmi.id="28" type="18" name="ct_name" />
>>      </UML:Classifier.feature>
>>     </UML:Class>
>>     <UML:Dependency isSpecification="false" visibility="public" namespace="m1" xmi.id="29" client="25" name="" supplier="14" />
>>     <UML:Association isSpecification="false" visibility="public" namespace="m1" xmi.id="32" name="" >
>>      <UML:Association.connection>
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="33" aggregation="none" type="14" name="" />
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="34" aggregation="none" type="25" name="" />
>>      </UML:Association.connection>
>>     </UML:Association>
>>     <UML:Dependency isSpecification="false" visibility="public" namespace="m1" xmi.id="35" client="25" name="" supplier="14" />
>>     <UML:Association isSpecification="false" visibility="public" namespace="m1" xmi.id="39" name="" >
>>      <UML:Association.connection>
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="40" aggregation="none" type="14" name="" />
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="41" aggregation="none" type="25" name="" />
>>      </UML:Association.connection>
>>     </UML:Association>
>>     <UML:Association isSpecification="false" visibility="public" namespace="m1" xmi.id="42" name="" >
>>      <UML:Association.connection>
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="false" xmi.id="43" aggregation="none" type="25" name="ct_study_course" multiplicity=".." />
>>       <UML:AssociationEnd isSpecification="false" visibility="public" changeability="changeable" isNavigable="true" xmi.id="44" aggregation="none" type="14" name="sc_id" multiplicity="1" />
>>      </UML:Association.connection>
>>     </UML:Association>
>>    </UML:Namespace.ownedElement>
>>   </UML:Model>
>>  </XMI.content>
>>  <XMI.extensions xmi.extender="umbrello" >
>>   <docsettings viewid="1" documentation="" uniqueid="52" />
>>   <diagrams>
>>    <diagram snapgrid="1" showattsig="1" fillcolor="#ffffc0" linewidth="0" zoom="100" showgrid="0" showopsig="1" usefillcolor="1" snapx="10" canvaswidth="1326" snapy="10" showatts="1" xmi.id="1" documentation="" type="402" showops="1" showpackage="0" name="class diagram" localid="900000" showstereotype="0" showscope="1" snapcsgrid="0" font="Arial,10,-1,5,50,0,0,0,0,0" linecolor="#ff0000" canvasheight="830" >
>>     <widgets>
>>      <classwidget usesdiagramfillcolour="0" width="225" showattsigs="601" usesdiagramusefillcolour="0" x="150" y="110" showopsigs="601" linewidth="none" fillcolour="#ffffc0" height="77" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="14" showoperations="1" showpackage="0" showscope="1" font="Arial,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" />
>>      <classwidget usesdiagramfillcolour="0" width="465" showattsigs="601" usesdiagramusefillcolour="0" x="560" y="110" showopsigs="601" linewidth="none" fillcolour="#ffffc0" height="99" usefillcolor="1" showpubliconly="0" showattributes="1" isinstance="0" xmi.id="25" showoperations="1" showpackage="0" showscope="1" font="Arial,10,-1,5,75,0,0,0,0,0" linecolor="#ff0000" />
>>     </widgets>
>>     <messages/>
>>     <associations>
>>      <assocwidget totalcounta="2" indexa="1" totalcountb="2" indexb="1" linewidth="none" widgetbid="14" widgetaid="25" xmi.id="42" linecolor="none" >
>>       <linepath>
>>        <startpoint startx="560" starty="160" />
>>        <endpoint endx="375" endy="150" />
>>       </linepath>
>>       <floatingtext usesdiagramfillcolour="1" width="32" usesdiagramusefillcolour="1" x="540" y="130" linewidth="none" posttext="" role="701" fillcolour="none" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="50" showstereotype="1" text=".." font="Arial,10,-1,5,50,0,0,0,0,0" linecolor="none" />
>>       <floatingtext usesdiagramfillcolour="1" width="32" usesdiagramusefillcolour="1" x="360" y="150" linewidth="none" posttext="" role="702" fillcolour="none" height="32" usefillcolor="1" pretext="" isinstance="0" xmi.id="52" text="1" font="Arial,10,-1,5,50,0,0,0,0,0" linecolor="none" />
>>       <floatingtext usesdiagramfillcolour="1" width="150" usesdiagramusefillcolour="1" x="410" y="130" linewidth="none" posttext="" role="709" fillcolour="none" height="26" usefillcolor="1" pretext="+" isinstance="0" xmi.id="46" text="ct_study_course" font="Arial,10,-1,5,50,0,0,0,0,0" linecolor="none" />
>>       <floatingtext usesdiagramfillcolour="1" width="61" usesdiagramusefillcolour="1" x="380" y="150" linewidth="none" posttext="" role="710" fillcolour="none" height="26" usefillcolor="1" pretext="+" isinstance="0" xmi.id="48" text="sc_id" font="Arial,10,-1,5,50,0,0,0,0,0" linecolor="none" />
>>      </assocwidget>
>>     </associations>
>>    </diagram>
>>   </diagrams>
>>   <listview>
>>    <listitem open="1" type="800" label="Views" >
>>     <listitem open="1" type="801" label="Logical View" >
>>      <listitem open="1" type="813" id="25" >
>>       <listitem open="0" type="814" id="26" />
>>       <listitem open="0" type="814" id="27" />
>>       <listitem open="0" type="814" id="28" />
>>      </listitem>
>>      <listitem open="1" type="813" id="14" >
>>       <listitem open="0" type="814" id="17" />
>>       <listitem open="0" type="814" id="19" />
>>      </listitem>
>>      <listitem open="1" type="830" label="Datatypes" >
>>       <listitem open="1" type="829" id="5" />
>>       <listitem open="1" type="829" id="4" />
>>       <listitem open="1" type="829" id="7" />
>>       <listitem open="1" type="829" id="6" />
>>       <listitem open="1" type="829" id="2" />
>>       <listitem open="1" type="829" id="9" />
>>       <listitem open="1" type="829" id="16" />
>>       <listitem open="1" type="829" id="8" />
>>       <listitem open="1" type="829" id="13" />
>>       <listitem open="1" type="829" id="10" />
>>       <listitem open="1" type="829" id="12" />
>>       <listitem open="1" type="829" id="11" />
>>       <listitem open="1" type="829" id="18" />
>>      </listitem>
>>     </listitem>
>>     <listitem open="1" type="802" label="Use Case View" />
>>     <listitem open="1" type="821" label="Component View" />
>>     <listitem open="1" type="827" label="Deployment View" />
>>     <listitem open="1" type="836" label="Entity Relationship Model" />
>>    </listitem>
>>   </listview>
>>   <codegeneration>
>>    <codegenerator language="C++" />
>>   </codegeneration>
>>  </XMI.extensions>
>> </XMI>
>>   
>> ------------------------------------------------------------------------
>>
>> <extract object="datatypes">
>>     <locate name="XMI">
>> 	<locate name="XMI.content">
>> 	    <locate name="UML:Model">
>> 		<locate name="UML:Namespace.ownedElement">
>> 		    <loop name="UML:DataType">
>> 			<datatype id="xmi.id" name="name"/>
>> 		    </loop>
>> 		</locate>
>> 	    </locate>
>> 	</locate>
>>     </locate> 
>> </extract>
>> <extract object="classes">
>>     <locate name="XMI">
>> 	<locate name="XMI.content">
>> 	    <locate name="UML:Model">
>> 		<locate name="UML:Namespace.ownedElement">
>> 		    <loop name="UML:Classes">
>> 			<class id="xmi.id" name="name">
>> 			    <locate name="UML:Classifier.feature">
>> 				<loop name="UML:Attribute">
>> 				    <attribute id="xmi.id" name="name" type="type"/>
>> 				</loop>
>> 			    </locate>
>> 			</class>
>> 		    </loop>
>> 		</locate>
>> 	    </locate>
>> 	</locate>
>>     </locate> 
>> </extract>
>> <extract object="associations">
>>     <locate name="XMI">
>> 	<locate name="XMI.content">
>> 	    <locate name="UML:Model">
>> 		<locate name="UML:Namespace.ownedElement">
>> 		    <loop name="UML:Association">
>> 			<locate name="UML:Association.connection">
>> 			    <loop name="UML:AssociationEnd">
>> 				<association_end id="xmi.id" name="name" type="multiplicity" pk="1" fk=".."/>
>> 			    </loop>
>> 			</locate>
>> 		    </loop>
>> 		</locate>
>> 	    </locate>
>> 	</locate>
>>     </locate> 
>> </extract>
>>   
>>     
>
>   

-- 

Anatoly Volynets, Co-Founder
total-knowledge.com
culturedialogue.org


Authoright © Total Knowledge: 2001-2008