component development for the component description framework (cdf) training dr.-ing. ulrich dinger
TRANSCRIPT
![Page 1: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/1.jpg)
Component Developmentfor the
Component Description Framework (CDF)
Training
Dr.-Ing. Ulrich Dinger
![Page 2: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/2.jpg)
Bildung ist die Fähigkeit, fast alles anhören zu können, ohne die Ruhe zu verlieren oder das Selbstvertrauen.
Robert Frost
![Page 3: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/3.jpg)
Overview
• General concepts and terms
• The aloXerv MOT-language
• The Ecore modeling language
• The Component Description Framework and the CDF-Editor
• Tutorial
![Page 4: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/4.jpg)
General concepts and terms
Model-Driven Software-Development key concepts
• Provide optimal level of abstraction for each role in the (development) process
• Separation of concerns (e.g. separate app-logic from ui)
• Avoid storing redundant information (use single source of information)
•Interprete the information during runtime
•Use Code-generators to create code-artifacts in concrete languages (e.g. Java)
=> Provide custom „languages“ and tools
![Page 5: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/5.jpg)
Meta-Meta-Model(Bsp: Ecore)
Meta-Grammar (E)BNF
Meta-Model / Data Model / Schema / …
Grammar
Model(Instance)
Valid sentence of grammar
Domain specific lanuages (DSL)
Textual and graphical presentation
Model-Driven Software-Development (MDSD)
Concepts of the language independent of presentation (= „abstract syntax“)
General concepts and terms
Example
Instance of
ANTLR
Java ProgrammingLanguage
Java-Class (e.g. FireDetector.java)
FireDetector1 (object)
![Page 6: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/6.jpg)
DocumentationProgramming Interface (API)
Persistency Presentation
UML-Class-DiagramsWIKIHTML/Web (MOT-Concept)Dokumente (Word/Open Office...)...
C++Java (=MOT-API)...
XMLBinary formatDatabase...
Web (Thin-Client)MOT-Editor (Fat-Cl.)...
The MOT-Language/MOT-API= A sample Meta-Model
Meta-Model(MOT-Language)
Model(*.mot)
Generate (>90%)
Instance of
read/write
use
Model(*.mot)
Model(*.mot)
manipulate
![Page 7: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/7.jpg)
The Ecore modeling language (class hierarchie)
![Page 8: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/8.jpg)
A simple data model (Ecore meta-model)
<cites> <authors> <author name="Robert Frost"/> … </authors> <cite shortText="Bildung" text="Bildung ist die Fähigkeit, fast alles anhören zu können, ohne die Ruhe zu verlieren oder das Selbstvertrauen" author="Robert Frost"/></cites>
Sample-Model/Instance (XML)
![Page 9: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/9.jpg)
The development-process with FXL Editorand FXL Generator
•Edit/extend the meta-model (*.ecore)
•Use code-generator for *-API/Editor
•Hand-code additional functionality in *-API; Customize Editor
•Build/release the editor
![Page 10: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/10.jpg)
The Component Description Framework
and
the CDF Editor
![Page 11: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/11.jpg)
The Component Description Frameworkand the CDF-Editor
Framework for Application and Tool development based on MDSD
• Component = Module = Project = Artifact
• For each Component you can define as many Meta-Models as you want
• Basis = Based on FXL: Ecore-(meta-)modeling, code-generation, mighty Editor- Framework
• Integration of an Ecore-editor and the code-generators into one tool
• Run API/editors as Eclipse-Editors and in the CDF Standalone-Editor
![Page 12: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/12.jpg)
The Component Description Frameworkand the CDF-Editor (2)
Existing open source CDF-extensions:
•History (Release-Notes)/svn, Files (e.g. for viewing PNB), Reviews, I18n, Decisions, Eclipse-Help, Authentication, Tasks, Actions, (Joke of the day), …
AloXerv-specific extensions (closed source)
•Domain-Configuration, Data-Channels, Security-Config, SDC-Sample, Cu-Handler-Config, ...
CDF-Standalone
•Can be used by none-developers (in contrast to Eclipse IDE)
•No usage of Eclipse-File-System no need to perform “refresh workspace” after svn-update
•Very flexible/customizeable (which extensions to show)
– Use as demo-system to manage aloXerv-site-installation
– Use as application to manage aloXerv help
– …
•Can be used to get overview ==> tables
![Page 13: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/13.jpg)
The CDF-Editor (details/architecture)
![Page 14: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/14.jpg)
How to create an extension of the CDF-Editor without writing one line of Java-code http://www.ulrich-dinger.de/cdf/cde.html
CDF Development
Tutorial
Ulrich Dinger
![Page 15: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/15.jpg)
Ecore meta-model
<cites> <authors> <author name="Robert Frost"/> … </authors> <cite shortText="Bildung" text="Bildung ist die Fähigkeit, fast alles anhören zu können, ohne die Ruhe zu verlieren oder das Selbstvertrauen" author="Robert Frost"/></cites>
Sample-Model/Instance (XML)
![Page 16: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/16.jpg)
Optional:
Extend meta-model to allow users to vote for cites with POOR … GOOD … EXCELLENT (enumeration)
Show cites in a table
…
![Page 17: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/17.jpg)
Extended Ecore meta-model
<cites xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <authors> <author name="Robert Frost"/> </authors> <cite shortText="Bildung" text="Bildung ist die Fähigkeit, fast alles anhören zu können, ohne die Ruhe zu verlieren oder das Selbstvertrauen" author="Robert Frost"> <vote user="schnullerich" rating="GOOD"/> </cite> <users> <user userName="schnullerich" firstName="Ulrich" lastName="Dinger"/> </users></cites>
Extended sample-Model/Instance (XML)
![Page 18: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/18.jpg)
Extended Ecore meta-model
![Page 19: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger](https://reader036.vdokument.com/reader036/viewer/2022062404/551629e1550346a2308b5d55/html5/thumbnails/19.jpg)
<cite text=„Ich habe eiserne Prinzipien.
Wenn sie Ihnen nicht gefallen, habe ich auch noch andere.“
author=„Groucho Marx“/>