SlideShare une entreprise Scribd logo
1  sur  129
Domain Specific Languages Using for Product Line Engineering SPLC 2009 Tutorial MarkusVoelter Independent/Itemis www.voelter.devoelter@acm.org
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
Variability … differencesamong products in PL
Variation Point … a pointwhere     a variationcanoccur … must beboundfor eachproduct … bind when? … bind how?
Binding Time
VariabilityMechanisms Removal … optionallytakeaway fromoverallwhole
VariabilityMechanisms Removal … optionallytakeaway     from overall whole Challenge: overallwholecan get bigandunwieldy
VariabilityMechanisms Injection … optionallyaddto     minimal core
VariabilityMechanisms Injection … optionallyaddto     minimal core Challenge: howtopointintothecore andaddsomethingtoit
VariabilityMechanisms Parametrization … definevaluesfor predefinedparams
VariabilityMechanisms Parametrization … definevaluesfor predefined params Challenge: typesforparameterscan be non trivial (DSLs)
Configuration vs. Customization Variability
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
Configuration … selectingoptions … settingparamvalues
Configuration Feature Models
Configuration Feature Models Robin DR-400 An aircraft with a low wing, piston engine and made of metal, wood and cloth
Configuration Feature Models Airbus A 320 An aircraft with low wing, jet engine(s) and made of metal.
Configuration Feature Models Schleicher ASW 27 An aircraft with shoulder wing, no engine and made of plastic
Configuration Feature Models
Configuration Feature Models
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
Customization … „real languages“ … instantiation … connections
Customization Languages
Customization Languages
Customization Languages
Customization Languages
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
programming started closetothehardware abstractions  computing chips
abstractions  computing bits
abstractions  computing    C
abstractions  computing?    Java
abstractions  computing?    SQL
?
generalpurpose
domainspecific
tailormade effective++ specialized, limited usedbyexperts togetherwithother specializedtools
DSL A DSL is a focussed, processablelanguage for describing a specific concern when building a system in a specific domain. The abstractions and notations used are natural/suitablefor the stakeholders who specify that particular concern.
execute?
map
DSL Program (aka Model) map automated! GPL Program
map Generation Transformation Compilation Interpretation
Automation faster, deterministic
Increased Quality well definedstructuresallthroughthesystem
Meaningful Validation moresemantics in the model
Capture Domain Knowledge formalizedintolanguagesandmodels
SuitableNotations textual, graphical, tabular
Technology Independence generate „technologygluecode“
Abstraction w/o Runtime Overhead generator „optimizesaway“
Capture  ImplementationStrategy in thegenerators
Everythingis a model includingforexamplehardware (some) hardware
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
EMF Ecore meta meta model          + Editing   Transactions     Validation        Query          Distribution/Persistence
EMF Metamodel As Tree can also be editedas UML-like diagram
EMF Constraints with OCLand dialects
GMF Graphical Box/Line editors based on EMF
TMF / Xtext Building Textual Editors
TMF / Xtext Building Textual Editors
M2M Model-to-Model Transformations     INRIA’s ATL     QVTXtend
M2T Model-to-Text Transformations     JET: Java Emitter         TemplatesXpand: oAW’s         template engine
M2T Model-to-Text Transformations      Extensions to modularize complex expressions
openArchitectureWare www.openarchitectureware.org One Stop Toolkit for DSLs + X Version 5.0 is current Lively ecosystem of tools and extensions Proven track record in various domains & project contexts Stable, productive and helpful developer, support and user communities Integration with Eclipse: Part of Eclipse, Working Group Uses EMF as a basis Graphical editors based on GMF All editors and tooling based on Eclipse
openArchitectureWare
SpecifyGrammar
AntlrGrammarandParserisgeneratedfromthisspecification
Generated Metamodel
SpecifyConstraints
Generated Editor
Generated Editor Code Completion
Generated Editor Syntax Coloring Custom KeywordColoring
Generated Editor RealtimeConstraintValidation
Generated Editor Customizable Outlines
Generated Editor Code Folding
Generated Editor Goto Definition  Find References Cross-File References Model as EMF
Generated Editor
XtextOverview
DEMO Building a sample textual DSL and code generator for a simple domain using Eclipse TMF/openArchitectureWare
Another Tool…? OSLO
Another Tool…?
also do… IntelliJ IDEA Resharper
released in Q3 2009 licensed under Apache 2.0
Build new standalone DSLs Build DSLs that reuse parts of other languages Java++ (MPS comes with BaseLanguage) extend base language build DSLs that reuse parts of BaseLanguage
Language Extension Example Old New Java Java + Extension ReadWriteLock l = … l.readLock().lock(); try {   //code } finally {   l.readLock().unlock(); } ReadWriteLock l = … lock (l) {   //code }
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Structure  Editor   Typesystem  Generator
Language Extension Example Result behaves like a native base language construct
Language Extension Example Result behaves like a native base language construct
Language Extension Example Translated to regular Java code based on the generator package jaxdemo.sandbox.sandbox; import java.util.concurrent.locks.Lock; public class DemoClass {   private Lock lock;   public DemoClass() {     try {       this.getLock().lock();       SharedResouce.instance().doSomething();     } finally {       this.getLock().unlock();     }   }   private Lock getLock() {   return this.lock;  } }
Example Languages UI Language
Example Languages HTML Templates
Example Languages Persistent Classes
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
Two Levels problemspace    vs. softwarespace Problem Space: Configuration Software Space: Customization
Two Levels problemspace    vs. softwarespace
Two Levels Removal #ifdefined (ACE_HAS_TLI)staticssize_tt_snd_n(       ACE_HANDLE handle,constvoid *buf, size_tlen,        int flags,ACE_Time_Value *timeout = 0,size_t *bytes_transferred = 0); #endif /* ACE_HAS_TLI */
Model-Based Implementation … customization in     problem space … Problem-Space DSL
Model-Based Implementation
Model-Based Implementation
MDSD - Thumbnail
MD-PLE - Thumbnail fewer!
Two Levels Removal
Two Levels Removal
Two Levels Removal
Two Levels Removal
Two Levels Injection
Two Levels Injection aspect (*) compnent { providesmon: IMonitoring  }
Two Levels Removal + Injection
Manual Code Variability public class LightDriverImplementation extends LightDriverImplBase {   @Override   protected String getIdInternal() {     return getConfigParamValueForId();   }    … //# dimmableLights   @Override   protected int setLightLevelInternal(int level) {     state().setEffectiveLightLevel(level);     return level;   } //~# dimmableLights }
http://dslvariantmanagement.googlecode.com
DEMO Extending the sample DSL to include feature-based variability connected to an external feature model
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
MD-PLE – Thumbnail II moreoptions
Transformation Variability create System transformPs2Cbd( Building building ):   … hasFeature("burglarAlarm") ? ( handleBurglarAlarm() -> this) : this; handleBurglarAlarm( System this ):    let conf = createBurglarConfig(): (     configurations.add( conf ) ->     …     conf.connectors.add( connectSimToPanel( createSimulatorInstance(),                                             createControlPanelInstance() ) ) -> hasFeature( "siren" ) ? conf.addAlarmDevice("AlarmSiren") : null -> hasFeature( "bell" ) ? conf.addAlarmDevice("AlarmBell") : null -> hasFeature( "light" ) ? conf.addAlarmDevice("AlarmLight") : null );
Transformation Variability
Generator Variability
DEMO Introducing Variability into the Code Generator built before
Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup
DSLs can be used to effectively describe customization variab. Transformation and Generation can be used to map PS to SS Configuration and Customization can be sensibly combined Various Tools are available, http://eclipse.org/modeling http://dslvariantmanagement.googlecode.com/
Domain Specific Languages Using Variability Configuration Customization MDD Intro MDD Tooling Model Variability Transformation Var. Summary & Wrapup for Product Line Engineering THE END. Thankyou. Questions? MarkusVoelter Independent/Itemis www.voelter.devoelter@acm.org

Contenu connexe

Tendances

C programming session 08
C programming session 08C programming session 08
C programming session 08
AjayBahoriya
 
imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, android
i i
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile development
Olivier Le Goaër
 
10 iec t1_s1_oo_ps_session_14
10 iec t1_s1_oo_ps_session_1410 iec t1_s1_oo_ps_session_14
10 iec t1_s1_oo_ps_session_14
Niit Care
 
Chapter 13.1.11
Chapter 13.1.11Chapter 13.1.11
Chapter 13.1.11
patcha535
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07
Niit Care
 
07 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_1007 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_10
Niit Care
 
04 iec t1_s1_oo_ps_session_05
04 iec t1_s1_oo_ps_session_0504 iec t1_s1_oo_ps_session_05
04 iec t1_s1_oo_ps_session_05
Niit Care
 
06 iec t1_s1_oo_ps_session_08
06 iec t1_s1_oo_ps_session_0806 iec t1_s1_oo_ps_session_08
06 iec t1_s1_oo_ps_session_08
Niit Care
 
01 iec t1_s1_oo_ps_session_01
01 iec t1_s1_oo_ps_session_0101 iec t1_s1_oo_ps_session_01
01 iec t1_s1_oo_ps_session_01
Niit Care
 
OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.ppt
Ptidej Team
 

Tendances (20)

L05 Frameworks
L05 FrameworksL05 Frameworks
L05 Frameworks
 
C programming session 08
C programming session 08C programming session 08
C programming session 08
 
imperative programming language, java, android
imperative programming language, java, androidimperative programming language, java, android
imperative programming language, java, android
 
Yet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile developmentYet another DSL for cross platforms mobile development
Yet another DSL for cross platforms mobile development
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
Extending and scripting PDT
Extending and scripting PDTExtending and scripting PDT
Extending and scripting PDT
 
System Verilog Functional Coverage
System Verilog Functional CoverageSystem Verilog Functional Coverage
System Verilog Functional Coverage
 
10 iec t1_s1_oo_ps_session_14
10 iec t1_s1_oo_ps_session_1410 iec t1_s1_oo_ps_session_14
10 iec t1_s1_oo_ps_session_14
 
Chapter 13.1.11
Chapter 13.1.11Chapter 13.1.11
Chapter 13.1.11
 
BOM2UML: Integrating BOM Specifications into UML-based Development Environments
BOM2UML: Integrating BOM Specifications into UML-based Development EnvironmentsBOM2UML: Integrating BOM Specifications into UML-based Development Environments
BOM2UML: Integrating BOM Specifications into UML-based Development Environments
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07
 
L06 process design
L06 process designL06 process design
L06 process design
 
Simple insites into JVM
Simple insites into JVMSimple insites into JVM
Simple insites into JVM
 
07 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_1007 iec t1_s1_oo_ps_session_10
07 iec t1_s1_oo_ps_session_10
 
04 iec t1_s1_oo_ps_session_05
04 iec t1_s1_oo_ps_session_0504 iec t1_s1_oo_ps_session_05
04 iec t1_s1_oo_ps_session_05
 
Doulos coverage-tips-tricks
Doulos coverage-tips-tricksDoulos coverage-tips-tricks
Doulos coverage-tips-tricks
 
Method Handles in Java
Method Handles in JavaMethod Handles in Java
Method Handles in Java
 
06 iec t1_s1_oo_ps_session_08
06 iec t1_s1_oo_ps_session_0806 iec t1_s1_oo_ps_session_08
06 iec t1_s1_oo_ps_session_08
 
01 iec t1_s1_oo_ps_session_01
01 iec t1_s1_oo_ps_session_0101 iec t1_s1_oo_ps_session_01
01 iec t1_s1_oo_ps_session_01
 
OOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.pptOOPSLA02 BehavioralSemantics.ppt
OOPSLA02 BehavioralSemantics.ppt
 

En vedette (6)

Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
Construire une ligne de produit logiciel "toyotisme ou fordisme" ?
 
Software Product Line
Software Product LineSoftware Product Line
Software Product Line
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
Software product line
Software product lineSoftware product line
Software product line
 
Software Product Lines
Software Product LinesSoftware Product Lines
Software Product Lines
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 

Similaire à Model-Driven Development in the context of Software Product Lines

Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
intelliyole
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
elliando dias
 
How to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling EnvironmentHow to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling Environment
Tim Geisler
 
How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?
Tim Geisler
 
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
EclipseDayParis
 
Working Effectively With Legacy Perl Code
Working Effectively With Legacy Perl CodeWorking Effectively With Legacy Perl Code
Working Effectively With Legacy Perl Code
erikmsp
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
lennartkats
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
melbats
 

Similaire à Model-Driven Development in the context of Software Product Lines (20)

Smoothing Your Java with DSLs
Smoothing Your Java with DSLsSmoothing Your Java with DSLs
Smoothing Your Java with DSLs
 
Pragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWarePragmatic Model Driven Development using openArchitectureWare
Pragmatic Model Driven Development using openArchitectureWare
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
Extension and Evolution
Extension and EvolutionExtension and Evolution
Extension and Evolution
 
How to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling EnvironmentHow to Create Your Own Product-Modeling Environment
How to Create Your Own Product-Modeling Environment
 
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling FrameworkEclipse World 2007: Fundamentals of the Eclipse Modeling Framework
Eclipse World 2007: Fundamentals of the Eclipse Modeling Framework
 
Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...Using Model Driven Development to Easily Manage Variations in Software Define...
Using Model Driven Development to Easily Manage Variations in Software Define...
 
How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?How to Build Your Own Product-Modeling Environment?
How to Build Your Own Product-Modeling Environment?
 
Workshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design PatternsWorkshop 2: JavaScript Design Patterns
Workshop 2: JavaScript Design Patterns
 
Framework engineering JCO 2011
Framework engineering JCO 2011Framework engineering JCO 2011
Framework engineering JCO 2011
 
Introduction To MDD
Introduction To MDDIntroduction To MDD
Introduction To MDD
 
IBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation CustomizationIBM Rhapsody Code Generation Customization
IBM Rhapsody Code Generation Customization
 
Advanced Node.JS Meetup
Advanced Node.JS MeetupAdvanced Node.JS Meetup
Advanced Node.JS Meetup
 
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
Solution de génération de rapport OpenDocument à partir de plusieurs sources ...
 
Working Effectively With Legacy Perl Code
Working Effectively With Legacy Perl CodeWorking Effectively With Legacy Perl Code
Working Effectively With Legacy Perl Code
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
 
DDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFrameworkDDD Framework for Java: JdonFramework
DDD Framework for Java: JdonFramework
 
Porting VisualWorks code to Pharo
Porting VisualWorks code to PharoPorting VisualWorks code to Pharo
Porting VisualWorks code to Pharo
 
SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!SiriusCon 2015 - Breathe Life into Your Designer!
SiriusCon 2015 - Breathe Life into Your Designer!
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 

Plus de Markus Voelter

Deklarative Smart Contracts
Deklarative Smart ContractsDeklarative Smart Contracts
Deklarative Smart Contracts
Markus Voelter
 
Generic Tools, Specific Laguages
Generic Tools, Specific LaguagesGeneric Tools, Specific Laguages
Generic Tools, Specific Laguages
Markus Voelter
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
Markus Voelter
 

Plus de Markus Voelter (20)

Consulting
ConsultingConsulting
Consulting
 
Build your own Language - Why and How?
Build your own Language - Why and How?Build your own Language - Why and How?
Build your own Language - Why and How?
 
Deklarative Smart Contracts
Deklarative Smart ContractsDeklarative Smart Contracts
Deklarative Smart Contracts
 
Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...Using language workbenches and domain-specific languages for safety-critical ...
Using language workbenches and domain-specific languages for safety-critical ...
 
What's Missing in Language Workbenches
What's Missing in Language WorkbenchesWhat's Missing in Language Workbenches
What's Missing in Language Workbenches
 
How Domains Shape Languages
 How Domains Shape Languages How Domains Shape Languages
How Domains Shape Languages
 
Why Modeling Suck Sucks
Why Modeling Suck SucksWhy Modeling Suck Sucks
Why Modeling Suck Sucks
 
Fusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented ProgrammingFusing Modeling and Programming into Language-Oriented Programming
Fusing Modeling and Programming into Language-Oriented Programming
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methods
 
Lessons Learned from building mbeddr
Lessons Learned from building mbeddrLessons Learned from building mbeddr
Lessons Learned from building mbeddr
 
The Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelFThe Design, Evolution and Use of KernelF
The Design, Evolution and Use of KernelF
 
Envisioning the Future of Language Workbenches
Envisioning the Future of Language WorkbenchesEnvisioning the Future of Language Workbenches
Envisioning the Future of Language Workbenches
 
Architecting Domain-Specific Languages
Architecting Domain-Specific LanguagesArchitecting Domain-Specific Languages
Architecting Domain-Specific Languages
 
Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)Generic Tools - Specific Languages (PhD Defense Slides)
Generic Tools - Specific Languages (PhD Defense Slides)
 
Language-Oriented Business Applications
Language-Oriented Business ApplicationsLanguage-Oriented Business Applications
Language-Oriented Business Applications
 
Generic Tools, Specific Laguages
Generic Tools, Specific LaguagesGeneric Tools, Specific Laguages
Generic Tools, Specific Laguages
 
Domain Specific Language Design
Domain Specific Language DesignDomain Specific Language Design
Domain Specific Language Design
 
From Programming to Modeling And Back Again
From Programming to Modeling And Back AgainFrom Programming to Modeling And Back Again
From Programming to Modeling And Back Again
 
Faszination Segelfliegen
Faszination SegelfliegenFaszination Segelfliegen
Faszination Segelfliegen
 
Professional Podcasting Guide
Professional Podcasting GuideProfessional Podcasting Guide
Professional Podcasting Guide
 

Dernier

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Dernier (20)

TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 

Model-Driven Development in the context of Software Product Lines