component development for the component description framework (cdf) training dr.-ing. ulrich dinger

19
Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

Upload: maria-dillon

Post on 28-Mar-2015

228 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

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

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

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

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

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

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

The Ecore modeling language (class hierarchie)

Page 8: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

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

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

The Component Description Framework

and

the CDF Editor

Page 11: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

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

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

The CDF-Editor (details/architecture)

Page 14: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

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

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

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

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

Extended Ecore meta-model

Page 19: Component Development for the Component Description Framework (CDF) Training Dr.-Ing. Ulrich Dinger

<cite text=„Ich habe eiserne Prinzipien.

Wenn sie Ihnen nicht gefallen, habe ich auch noch andere.“

author=„Groucho Marx“/>