Date post: | 01-Nov-2014 |
Category: |
Technology |
Upload: | hessel-van-tuinen |
View: | 367 times |
Download: | 3 times |
HyperSenses
The Perfect Way to Better Software
1
Generating Software Generatorsusing the example of
Generating a Mobile App Generatorfor multiple Platforms and Requirements
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Challenge of Developing a Mobile App
2
How toefficientlymanage?
Many mobile plat- forms (Android, iOS, WinPhone 7, …)
Different require- ments / customi- zations
Many implemen- tations Many imple-
mentations
Developmentof Mobile App
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
For the next small task …
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
For the next small task …… it might be sufficient to create a small …
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
For the next small task …… it might be sufficient to create a small …
And another and another etc.
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
For the next small task …… it might be sufficient to create a small …
And another and another etc.With a whole zoo of DSLs and generators
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
For a limited and isolated task …… it might be sufficient to create a small DSL
with a small generator
For the next small task …… it might be sufficient to create a small …
And another and another etc.With a whole zoo of DSLs and generatorsOverlapping, inconsistent, not maintainable
3
A Generator? Many Generators?
DSL
Generator
Make things as simple as possible, but not simpler.
Albert Einstein
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A Generator? Many Generators?
4
Application Domain(Problem Area)
Meta Model
Domain Specific Language (DSL) Generator
Example,Prototype
Code Patterns
Requirements
Productions (e.g. Software)Configurations
Model Driven Meta Development
With meta models meta DSLs and meta generators
Model based development of DSLs and generators!
For simple tasks For comprehensive and
complex systems
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation points
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family?
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators≈ Feature model (FODA)
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators≈ Feature model (FODA)
Formal: MOF meta model (OMG)
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators≈ Feature model (FODA)
Formal: MOF meta model (OMG)
HyperSenses: Meta model editor
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators≈ Feature model (FODA)
Formal: MOF meta model (OMG)
HyperSenses: Meta model editor Interactive, graphical interface
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Model of variation pointsWhat distinguishes members of a system
family? Invariant properties are not relevant for
modeling generators≈ Feature model (FODA)
Formal: MOF meta model (OMG)
HyperSenses: Meta model editor Interactive, graphical interfacePart of HyperSenses MetaComposer
5
Meta Model
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
Configuration = Instance of a meta model
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
Configuration = Instance of a meta model
Technical format: XML
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
Configuration = Instance of a meta model
Technical format: XMLConfigurable in meta model
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
Configuration = Instance of a meta model
Technical format: XMLConfigurable in meta model
Tag and attribute names etc.
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A configuration defines the parameter values of a certain production
Production = 1 or more artifacts
Configuration = Instance of a meta model
Technical format: XMLConfigurable in meta model
Tag and attribute names etc.Exchange with arbitrary other tools
6
Configuration
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model …
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
Formats
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
FormatsXML (configuration)
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
FormatsXML (configuration)
As well from "foreign" tools
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
FormatsXML (configuration)
As well from "foreign" tools Interactive DSL
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
FormatsXML (configuration)
As well from "foreign" tools Interactive DSL
HyperSenses: Configurator
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
A meta model … … implicitly defines a complete grammar
DSL Concrete syntax Automatically derivable Meta Model + general syntax pattern
FormatsXML (configuration)
As well from "foreign" tools Interactive DSL
HyperSenses: ConfiguratorHyperSenses TextDSL
7
Domain Specific Language
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 8
Code-Pattern
Reusable parameterized building blocks Base on frame/slot concept (ANGIE) Alternative frames with common
interface Blocks and slots graphically presented Inheritance and overloading frames
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Pattern By Example™ (PBE)
8
Code-Pattern
Reusable parameterized building blocks Base on frame/slot concept (ANGIE) Alternative frames with common
interface Blocks and slots graphically presented Inheritance and overloading frames
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Pattern By Example™ (PBE) Step by step derivation of code patterns
from examples and prototypes
8
Code-Pattern
Reusable parameterized building blocks Base on frame/slot concept (ANGIE) Alternative frames with common
interface Blocks and slots graphically presented Inheritance and overloading frames
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Pattern By Example™ (PBE) Step by step derivation of code patterns
from examples and prototypes
Connection to Meta Model
8
Code-Pattern
Reusable parameterized building blocks Base on frame/slot concept (ANGIE) Alternative frames with common
interface Blocks and slots graphically presented Inheritance and overloading frames
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
Pattern By Example™ (PBE) Step by step derivation of code patterns
from examples and prototypes
Connection to Meta Model Automatic navigation in configurations
8
Code-Pattern
Reusable parameterized building blocks Base on frame/slot concept (ANGIE) Alternative frames with common
interface Blocks and slots graphically presented Inheritance and overloading frames
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically created
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE components
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
Assembled as “HyperSenses Executable“ to be embedded in:
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
Assembled as “HyperSenses Executable“ to be embedded in:
Delta development platform (SCOUT²)
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
Assembled as “HyperSenses Executable“ to be embedded in:
Delta development platform (SCOUT²)or HyperSenses Configurator
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
Assembled as “HyperSenses Executable“ to be embedded in:
Delta development platform (SCOUT²)or HyperSenses Configuratoror Eclipse, or Visual Studio,
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved.
The Generator is automatically createdFrom Meta Model and Code Patterns
Generated as ANGIE componentsPlus ANGIE framework for configurations and
parser
Assembled as “HyperSenses Executable“ to be embedded in:
Delta development platform (SCOUT²)or HyperSenses Configuratoror Eclipse, or Visual Studio, etc…
9
Generator
vrijdag 25 maart 2011
Introduction to HyperSensesCopyright © 2010 Delta Software Technology GmbH.All Rights reserved. 10
The Perfect Wayto Better Software
vrijdag 25 maart 2011