|
|
pl:miw:miw08_gefardxtt_1 [2008/04/29 11:52] gjn |
pl:miw:miw08_gefardxtt_1 [2019/06/27 15:50] |
====== Opis ====== | |
Maciej Dudek (4AR) <md5@o2.pl> | |
| |
ARD | |
| |
GEF and Eclipse based editor for ARD and XTT. Evaluation, feasibility, prototype. | |
XTTv2 Editor [[miw:xtt requirements|requirements]] | |
* input | |
* Eclipse: [[http://www.eclipse.org/modeling/|EMF]], Eclipse -> EMF -> GMF -> GEF | |
* ARD: [[hekate:bib:hekate_bibliography#gjn2008flairs-ardformal-submitted|Towards Formalization of ARD+ Conceptual Design and Refinement Method]] and [[hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog-submitted|An ARD+ Design and Visualization Toolchain Prototype in Prolog]] and [[hekate:bib:hekate_bibliography#gjn2008flairs-userv-submitted|UServ Case Study, Conceptual Design with ARD+ Method]]. | |
* output | |
Feasibility study, a description how to create such editors with GEF, a prototype editor | |
MS Thesis regarding GEF: Interfejs graficzny do budowy aplikacji komponentowych zapewniający weryfikację semantyczną, ARD+ Editor [[miw:ard requirements|requirements]] | |
| |
====== Spotkania ====== | |
| |
===== 080304 ===== | |
| |
Wykonano: | |
* Zapoznanie się z częścią pracy magisterską Macieja Kwietnia i Jana Rachwalika dotyczącą GEF. | |
* Zainstalowanie plug-inu GEF na platformie Eclipse | |
* Uruchomienie przykładowego edytora, stworzenie przykładowego grafu w tym edytorze, przeglądnięcie kodu przykładowego edytora. | |
* Zapoznanie się ze specyfikacją ARD+ zawartą w https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardformal-submitted | |
* Zapoznanie się z opisem systemu VARDA zawartego w https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-ardprolog-submitted | |
* Pobieżne przestudiowanie przykładu UServ zawartego w https://ai.ia.agh.edu.pl/wiki/hekate:bib:hekate_bibliography#gjn2008flairs-userv-submitted | |
| |
Powstałe wątpliwości: | |
* Finalizacja. | |
* Zbiór wszystkich możliwych operacji wykonywanych przez użytkownika. | |
* Język opisu powstałego grafu: <del>RGML?</del> ATTML [[hekatedev:hekate_markup_language]] | |
* Przestrzeń nazw. | |
* Czy również implementacja drzewa TPH? Na ile bezpieczne w sytuacji cykli, split/merge, manual refactoring. | |
* Liczba korzeni w drzewie, czy istnieje coś takiego jak korzeń? | |
* XSD z opisem ARD+. | |
* Co jak na końcu "liścia" jest Conceptual Attribute? Jaki wpływ na system? | |
* Physical Attribute a XTT. | |
* Attribute a Property. W prologu deklarowane oba. | |
| |
| |
===== 080318 ===== | |
* [[hekate:varda]] - uruchomiono i przeanalizowano funkcjonalność. | |
* Zapoznano się ze specyfikacją ATTML | |
* Zapoznano się z UServ case study | |
| |
| |
| |
| |
===== 080415 ===== | |
Planowano: | |
* prototyp | |
| |
Zrealizowano: | |
* Przeanalizowanie [[http://www.eclipse.org/articles/Article-GEF-diagram-editor/shape.html|Diagram Editor]] | |
* Przeanalizowanie [[http://www.eclipse.org/articles/Article-GEF-editor/gef-schema-editor.html|Schema Editor]] | |
* Rozpoznanie struktury framework'u GEF | |
* Zainstalowanie EMF oraz GMF | |
* Wykonanie tutorialu [[http://wiki.eclipse.org/index.php/GMF_Tutorial|mindmodel]] na podstawie [[http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.gmf/examples/org.eclipse.gmf.examples.mindmap/model/mindmap.xsd?root=Modeling_Project&view=markup&content-type=text%2Fvnd.viewcvs-markup&revision=HEAD|mindmodel.xsd]] | |
| |
| |
| |
===== 080429 ===== | |
Planowano: | |
* model xsd, translacja do ecore | |
* automatyczny edytor | |
| |
Zrealizowano: | |
<code xml> | |
<?xml version="1.0" encoding="UTF-8"?> | |
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> | |
<xs:element name="hml"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element ref="type_set"/> | |
<xs:element ref="attribute_set"/> | |
<xs:element minOccurs="0" ref="property_set"/> | |
<xs:element minOccurs="0" ref="tph"/> | |
<xs:element minOccurs="0" ref="ard"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="type_set"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="type"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="type"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" ref="desc"/> | |
<xs:element ref="domain"/> | |
</xs:sequence> | |
<xs:attribute name="id" use="required" type="xs:ID"/> | |
<xs:attribute name="name" use="required"/> | |
<xs:attribute name="base" use="required"> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="integer"/> | |
<xs:enumeration value="numeric"/> | |
<xs:enumeration value="string"/> | |
<xs:enumeration value="bool"/> | |
<xs:enumeration value="date"/> | |
<xs:enumeration value="time"/> | |
<xs:enumeration value="timestamp"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
<xs:attribute name="length"/> | |
<xs:attribute name="scale"/> | |
</xs:complexType> | |
</xs:element> | |
<!-- id should begin with 'tpe_...' --> | |
<xs:element name="desc" type="xs:string"/> | |
<xs:element name="domain"> | |
<xs:complexType> | |
<xs:choice minOccurs="0" maxOccurs="unbounded"> | |
<xs:element ref="range"/> | |
<xs:element ref="value"/> | |
</xs:choice> | |
<xs:attribute name="type"> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="ordered"/> | |
<xs:enumeration value="unordered"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="range"> | |
<xs:complexType> | |
<xs:attribute name="from" use="required"/> | |
<xs:attribute name="to" use="required"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="value" type="xs:string"/> | |
<xs:element name="attribute_set"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="att"/> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="group"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="att"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" ref="desc"/> | |
</xs:sequence> | |
<xs:attribute name="id" use="required" type="xs:ID"/> | |
<xs:attribute name="type" type="xs:IDREF"/> | |
<xs:attribute name="name" use="required"/> | |
<xs:attribute name="abbrev"/> | |
<xs:attribute name="value" use="required"> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="single"/> | |
<xs:enumeration value="multiple"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
<xs:attribute name="class" use="required"> | |
<xs:simpleType> | |
<xs:restriction base="xs:token"> | |
<xs:enumeration value="ro"/> | |
<xs:enumeration value="rw"/> | |
<xs:enumeration value="wo"/> | |
<xs:enumeration value="state"/> | |
</xs:restriction> | |
</xs:simpleType> | |
</xs:attribute> | |
</xs:complexType> | |
</xs:element> | |
<!-- id should begin with 'att_...' --> | |
<xs:element name="group"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" ref="desc"/> | |
<xs:element maxOccurs="unbounded" ref="attref"/> | |
</xs:sequence> | |
<xs:attribute name="id" use="required" type="xs:ID"/> | |
<xs:attribute name="name" use="required"/> | |
<xs:attribute name="abbrev"/> | |
</xs:complexType> | |
</xs:element> | |
<!-- id should begin with 'grp_...' --> | |
<xs:element name="attref"> | |
<xs:complexType> | |
<xs:attribute name="ref" use="required" type="xs:IDREF"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="property_set"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="property"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element maxOccurs="unbounded" ref="attref"/> | |
</xs:sequence> | |
<xs:attribute name="id" use="required" type="xs:ID"/> | |
</xs:complexType> | |
</xs:element> | |
<!-- id should begin with 'prp_...' --> | |
<xs:element name="tph"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="trans"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="trans"> | |
<xs:complexType> | |
<xs:attribute name="src" use="required" type="xs:IDREF"/> | |
<xs:attribute name="dst" use="required" type="xs:IDREF"/> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="ard"> | |
<xs:complexType> | |
<xs:sequence> | |
<xs:element minOccurs="0" maxOccurs="unbounded" ref="dep"/> | |
</xs:sequence> | |
</xs:complexType> | |
</xs:element> | |
<xs:element name="dep"> | |
<xs:complexType> | |
<xs:attribute name="independent" use="required" type="xs:IDREF"/> | |
<xs:attribute name="dependent" use="required" type="xs:IDREF"/> | |
</xs:complexType> | |
</xs:element> | |
</xs:schema> | |
</code> | |
| |
Dokument [[https://ai.ia.agh.edu.pl/wiki/_media/hekate:hml-test.xml?id=hekate%3Ahekate_markup_language&cache=cache|hml-test.xml]] poprawnie przechodzi [[http://www.xmlforasp.net/SchemaValidator.aspx|walidację]] przy użyciu powyższej definicji. Konwersji dokonano przy użyciu programu [[http://www.thaiopensource.com/relaxng/trang-manual.html|Trang]]. | |
| |
===== 080527 ===== | |
* ??? | |
| |
====== Projekt ====== | |
====== Sprawozdanie ====== | |
====== Materiały ====== | |
GEF resources ([[http://www-128.ibm.com/developerworks/opensource/library/os-eclipse-gef11/?ca=dgr-lnxw07EclipseGEF|GEF]], [[http://www.eclipse.org/articles/Article-GEF-editor/gef-schema-editor.html]]), | |
| |
{{:pl:miw:mgr-gef.pdf|GEF MS Thesis}} | |
| |
Patrz też na [[hekate:eclipse|osobne hasło]] | |
| |