Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
hekate:cases:howto [2009/08/17 16:51] gjn |
hekate:cases:howto [2009/11/17 18:59] kkluza added translator attHML2wikiTable.xsl |
====== HeKatE Cases HowTo ====== | ====== HeKatE Cases HowTo ====== |
| |
Having some real-life case, the [[hekate:HeKatE Process]] description, and the [[hekate:cases:hekate_case_skel:start]], follow the steps defined below to submit the new case description. | Having some real-life case, the [[hekate:HeKatE Process]] description, and the [[hekate:cases:hekate_case_skel:start|skeleton case]], follow the steps defined below to submit the new case description. |
| |
===== Preparation ===== | ===== Preparation ===== |
| |
- choose your test //NAME// - this is cruicial, should be a single word, lowercase, ''mycase'', e.g. ''thermostat'', ''cardio'' | - choose your test //NAME// - this is cruicial, should be a single word, lowercase, ''mycase'', e.g. ''thermostat'', ''cardio'' |
- clone the skeleleton namespace [[hekate:cases:hekate_case_skel:]] to your case [[hekate:cases:hekate_case_mycase:]] (GJN might get you a copy) | - clone the skeleleton namespace [[hekate:cases:hekate_case_skel:]] to your case [[hekate:cases:hekate_case_mycase:]] by copying the pages |
| |
| |
* checkout the cases modules: | * checkout the cases modules: |
| |
cvs -d :ext:MYLOGIN@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co cases | cvs -d :ext:MYLOGIN@charon.ia.agh.edu.pl/mnt/cvs/cvs-hades co hekatecases |
| |
* add your new case: | * add your new case: |
| |
cd cases ; mkdir hekate_case_mycase ; cvs add hekate_case_mycase ; cvs ci | cd hekatecases ; mkdir hekate_case_mycase ; cvs add hekate_case_mycase ; cvs ci |
| |
| |
CVS vs wiki: | CVS vs wiki: |
The simple idea is, that all the files generated by tools (.pl, .xml, .dot, etc.) as well as other uploded files (PDF descriptions, etc) are to be submitted to the CVS using the ''cases'' module and the ''mycase'' directory, see examples below. | The simple idea is, that all the files generated by tools (.pl, .xml, .dot, etc.) as well as other uploded files (PDF descriptions, etc) are to be submitted to the CVS using the ''hekatecases'' module and the ''mycase'' directory, see examples below. |
| |
The ''cases'' module is then checkoud automagically into the wiki's ''media'' directory. | The ''hekatecases'' module is then checked automagically into the wiki's ''media'' directory. |
So all the files from the HaDEs CVS module ''cases'' are accessible in the | So all the files from the HaDEs CVS module ''hekatecases'' are accessible in the |
{{:hekate:cases:}} | {{:hekate:cases:}} |
media directory. | media directory. |
{{:hekate:cases:hekate_case_mycase:myfile.png}} | {{:hekate:cases:hekate_case_mycase:myfile.png}} |
| |
The wiki-visible version of the repository is updated periodically every 30 mins: 1, 31. | The wiki-visible version of the repository is updated periodically every 30 mins: 1, 31. FIXME |
| |
| |
===== Phases ===== | ===== Phases ===== |
| |
In all the phases at leas one //separate wiki page// is created. | In all the phases at least one //separate wiki page// is created. |
The name of the page matches the phase name, | The name of the page matches the phase name, |
e.g. in the //Conceptualization// a page called | e.g. in the //Conceptualization// a page called |
''[[hekate:cases:hekate_case_mycase:Conceptualization]]'' is to be created. | ''hekate:cases:hekate_case_mycase:Conceptualization'' is to be created. |
| |
Some phase can require extra pages, e.g. in the //Conceptualization// the page | Some phase can require extra pages, e.g. in the //Conceptualization// the page |
''[[hekate:cases:hekate_case_mycase:rule]]'' | ''hekate:cases:hekate_case_mycase:rules'' |
is created. | is created. |
| |
Provide sources, references bibliography. | Provide sources, references bibliography. |
| |
Save the description in the file indicated in [[hekate:hekate_process#Description]]. | Save the description in the wikipage indicated in [[hekate:hekate_process#Description]]. |
| |
If your case is based on some sources in electronical form (PDF, html, etc), | **IMPORTANAT** |
| If your case is based on some sources in electronic form (PDF, html, etc), |
submit the to the CVS, besides providing links. | submit the to the CVS, besides providing links. |
| |
| Be sure to cite, point full and adequate bibliographic reference :!: |
| |
==== Conceptualization ==== | ==== Conceptualization ==== |
[[hekate:hekate_process#Conceptualization]] | [[hekate:hekate_process#Conceptualization]] |
| |
| Try to provide or identify vocabulary, (separate page), i.e. concepts and relations that //seem// to be important in the case (such a vocabulary can be present in the original case description, e.g. UServ). |
| |
Depending on the source of the case, | Depending on the source of the case, |
provide the original rules in a separate wiki page (see the skel). | provide the original rules in a separate wiki page (see the skel). |
| |
Try to provide or identify vocabulary, i.e. concepts and relations that //seem// to be important in the case (such a vocabulary can be present in the original case description, e.g. UServ). | |
| |
Try to provide some observations, insights, ideas, if possible. | Try to provide some observations, insights, ideas, if possible. |
[[:hekate:HJEd]] is to be used as a additional tool. | [[:hekate:HJEd]] is to be used as a additional tool. |
| |
Number of files have to be generated with VARDA. | To model a case with [[:hekate:VARDA]], a model (a Prolog) file for [[:hekate:VARDA]] has to be written in a text editor. |
If everything goes well just run the scipt: | |
| Then, number of files have to be generated with VARDA. |
| |
| The assumption is, you checked out the files and dirs as: |
| hekatecases |
| varda |
| Then create the model file in |
| hekatecases/hekate_case_mycase/hekate_case_mycase-mdl.pl |
| example: |
| hekatecases/hekate_case_thermostat/hekate_case_thermostat-mdl.pl |
| and create a link to it in the VARDA dir: |
| cd varda; ln -s ../hekatecases/hekate_case_mycase/hekate_case_mycase-mdl.pl |
| example: |
| cd varda; ln -s ../hekatecases/hekate_case_thermostat/hekate_case_thermostat-mdl.pl |
| |
| If everything goes well just run the script: |
cd varda; ./varda-case-gen mycase | cd varda; ./varda-case-gen mycase |
this //should// generate all the files. | this //should// generate all the files. |
| |
| :!: It is important to install ''fig2ps'' package :!: |
| |
| A directory called //hekate_case_mycase// is created in the current (varda) dir, it holds all the files. |
| Copy them manually to the case dir, if desired, e.g.: |
| |
| |
Also, try to model the case form scratch using [[:hekate:HJEd]]. | Also, try to model the case form scratch using [[:hekate:HJEd]]. |
Compare the resulting HML file. | Compare the resulting HML file. |
Report observatins and differences. | Report observations and differences. |
| |
In general three design approches can be considered: | In general three design approaches can be considered: |
* general, | * general, when there are no original rules, just some data, description, |
* directed, | * directed, when we do have original rules, explicitly stated, |
* refined. | * refined, we take the directed one and remodel it using the expressiveness of XTT. |
| |
Having some original case description, the //directed// design has to be provided. | Having some original case description, the //directed// design has to be provided. |
It is directed, becasue the designer tries to match the orignal rules. | It is directed, because the designer tries to match the original rules. |
| |
If possible some other approaches should be tried (//general//), | If possible some other approaches should be tried (//general//), |
as well as optimizing the //directed// (the //refined//). | as well as optimizing the //directed// (the //refined//). |
| |
| **Warning:** As of closing the HeKatE project, we provide only ONE design, e.g. for the thermostat just the directed one. |
| The current file stricture for a case does not support several designs, and providing more than one now seems overcomplicated. |
| |
| --- //[[gjn@agh.edu.pl|Grzegorz J. Nalepa]] 2009/10/24 13:36// |
| |
==== Attribute Specification ==== | ==== Attribute Specification ==== |
Commit the new file. | Commit the new file. |
| |
Please put the description of attributes in the wiki page! | Please put the description of attributes in the wiki page!\\ |
In the future an XSLT translator from HML might be provided. | You can do it manually or use the BETA version of the XSLT translator from HML: {{:hekate:cases:attHML2wikiTable.xsl|attHML2wikiTable.xsl}}. |
| |
| HOW TO generate the wiki table with description of attributes with XSLT translator |
| |
| - prepare attribute descriptions and their types in HQEd (Types, Attributes). |
| - export attributes to HML hekate_case_NAME-att.hml file (File->Attribute export->HML file). |
| - translate the HML file to text with translator attHML2wikiTable.xsl (require XSLT processor e.g. xsltproc) and copy the output text of Wiki Table to Wiki page :hekate_case_NAME:attribute_specification: |
| <code> |
| xsltproc attHML2wikiTable.xsl hekate_case_NAME-att.hml |
| </code> |
| |
| Any mistakes in translation you can report to KKL. |
| |
==== Prototyping ==== | ==== Prototyping ==== |
Generate HMR. | Generate HMR. |
| |
Test communication with HeaRT! | Test communication with HeaRT! To see how to run Heart go here: [[https://ai.ia.agh.edu.pl/wiki/hekate:heart_howto#running_heart_from_a_console | Heart Howto]] |
| |
==== Formal Analysis ==== | ==== Formal Analysis ==== |
Use the HeaRT | Use the HeaRT |
[[hekate:heart_overview#heart_integration|overview]] and the | [[hekate:heart_overview#heart_integration|overview]] and the |
[[hekate:heart_howto#libraries|HowTo]]. | [[hekate:heart_howto#callbacks_how_to|HowTo]]. |
| |
Commint callback source files to the CVS. | Commint callback source files to the CVS. |
FIXME | FIXME |
Use the serializers implemented by Ł. Łysik to build Java serialization and Drools model. | Use the serializers implemented by Ł. Łysik to build Java serialization and Drools model. |
| |
| |
| ==== Summary ==== |
| See: [[hekate:hekate_process#Summary]] |
| |
| Provide an overall summary (natural language) of your experiences with this case. |
| |
| ===== Case Audit ===== |
| |
| * Pick a case |
| * go through it step-by-step, using the [[howto]] and the [[hekate_process|design process]] description |
| * detect any inconsistencies, errors, etc, w.r.t: |
| * the process/howto steps |
| * missing bibliographic data and sources in the description |
| * language mistakes, including spelling errors in figures! |
| * logical/design errors |
| * any missing content including files/figure (in fact click manually on all the links!) |
| * make sure that the XTT model is properly described: open the HMR file in HQEd, check for all the descriptions of types, attributes, and tables; see if the names of the types are sane |
| * analyze the XTT model w.r.t to types and attribute domains - if they look sane and correct |
| * look if the XTT and hqed screenshots are ok in terms of size - the picture should be readable but compact |
| * fix online the mistakes in the wiki and in the cvs, e.g. if you find a spelling error in the figure, you must edit the varda model and/or the hqed design and regenerate all the files, then cvs ci them, and see the reult in the wiki. Depending on how much work it is, you can ask the original Author. for help. |
| |
| |
| |