SlideShare a Scribd company logo
1 of 15
Download to read offline
QtModeling
bringing metamodeling features
into the KDE world
Sandro Andrade
sandroandrade@kde.org
whoami
● Assistant Professor at IFBA – Brazil.
● Using KDE and Qt since 1999.
● Contributing to KDE since 2008.
● I've developed QtModeling as part of
my PhD research at UFBA.
What's QtModeling about?
● It's about dealing with software models.
Why do we need software models?
● Documentation.
● Source code generation / model-code sync.
● Architectural recovery / compliance verification.
● Model-driven QA and CI (DRY).
● Predicting / simulating quality attributes.
● Domain-Specific Languages (DSLs).
● Models@run.time.
Why do we need qtmodeling?
● Issues in scalability, performance, and standards
compliance in current UML/MOF/* JAVA-based
implementations.
● Lack of up to date C++ or Qt-based UML/MOF/*
implementations.
● We could support modeling features in QtCreator /
KDevelop and revamp Umbrello.
● We could have more model-centric processes in KDE
development workflows.
The basics about metamodeling
UML::ClassUML::Property UML::Association
MOF::Class
User
model
UML
metamodel
MOF
meta-metamodel
Qtmodeling Drivers / Rationale
● D1) It should be 100% compliant to OMG standards.
● D2) It should be metamodel-agnostic.
● D3) It should perform well for large models and
when handling multiples models simultaneously.
● D4) Models should be easily queried/changed via
scripting.
Qtmodeling Drivers / Rationale
● D1) It should be 100% compliant to OMG standards.
● D2) It should be metamodel-agnostic.
● D3) It should perform well for large models and
when handling multiples models simultaneously.
● D4) Models should be easily queried/changed via
scripting.
Perl
Template
Toolkit
OMG
spec
XMI
C++/Qt
impl
tmpl's
Qt UML
Impl
UML figures:
● 239 metaclasses
● 91.83% generated
automatically
● 300 KLOC
● A lot of dreaded
diamonds
Qtmodeling Drivers / Rationale
● D1) It should be 100% compliant to OMG standards.
● D2) It should be metamodel-agnostic.
● D3) It should perform well for large models and
when handling multiples models simultaneously.
● D4) Models should be easily queried/changed via
scripting.
1) Extensive use of Qt's introspection capabilities.
2) Modeling languages (metamodels) as Qt plugins.
3) Qt meta-object capabilities for properties' metadata
have several limitations regarding that (QTBUG-17301).
Qtmodeling Drivers / Rationale
● D1) It should be 100% compliant to OMG standards.
● D2) It should be metamodel-agnostic.
● D3) It should perform well for large models and
when handling multiples models simultaneously.
● D4) Models should be easily queried/changed via
scripting.
Already good enough, but (WIP):
1) Copy-on-Write.
2) Reduce footprint of derived union properties.
3) Shared objects when dealing with multiple models.
Qtmodeling Drivers / Rationale
● D1) It should be 100% compliant to OMG standards.
● D2) It should be metamodel-agnostic.
● D3) It should perform well for large models and
when handling multiples models simultaneously.
● D4) Models should be easily queried/changed via
scripting.
Basic QtScript code!
QtModeling's Qt5 add-ons
Qt5
QtModeling
QtModelingWidgetsUMLPlugin MOFPlugin...
DuSE tool
DuSE plugins
= run-time dependency
XMI serialization
+
Qt meta-object
extensions
New Qt models
and views for dealing
with QtModeling-based
elements
Languages'
implementation
The Duse tooldemo
So,What's next?
● We are still trying to do a release! QtModeling first,
then metamodels, then widgets …
● QML-based concrete syntax should be implemented
for most used UML constructs.
● That recurrent boring thing: “We need you!” :)
Thanks for your attention!
QtModeling
bringing metamodeling features
into the KDE world
Sandro Andrade
sandroandrade@kde.org

More Related Content

Viewers also liked

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Sandro Andrade
 
Minuet - the KDE approach to music education
Minuet - the KDE approach to music educationMinuet - the KDE approach to music education
Minuet - the KDE approach to music educationSandro Andrade
 
SASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSandro Andrade
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaSandro Andrade
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDESandro Andrade
 
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisKDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisSandro Andrade
 
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Sandro Andrade
 
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Sandro Andrade
 
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Sandro Andrade
 
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Sandro Andrade
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtSandro Andrade
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataSandro Andrade
 

Viewers also liked (12)

Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
Palestra do FISL15: QtModeling: Metamodelagem e Model-Driven Software Enginee...
 
Minuet - the KDE approach to music education
Minuet - the KDE approach to music educationMinuet - the KDE approach to music education
Minuet - the KDE approach to music education
 
SASO2013 - PechaKucha version
SASO2013 - PechaKucha versionSASO2013 - PechaKucha version
SASO2013 - PechaKucha version
 
Desenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE PlasmaDesenvolvendo Widgets QML para o KDE Plasma
Desenvolvendo Widgets QML para o KDE Plasma
 
Práticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDEPráticas de Agilidade e QA na Comunidade KDE
Práticas de Agilidade e QA na Comunidade KDE
 
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e SociaisKDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
KDE de 2008 a 2018: Retrospectivas e Perspectivas Técnicas e Sociais
 
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
Do Search-Based Approaches Improve the Design of Self-Adaptive Systems ? A Co...
 
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
Software Livre: Estruturalismo, Impactos no Processo de Ensino-Aprendizagem e...
 
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
Architectural Design Spaces for Feedback Control in Self-Adaptive Systems Con...
 
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
Software Livre e Novas Formas de Trabalho - InfoUNEB 2016
 
Desenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com QtDesenvolvendo Aplicações Android com Qt
Desenvolvendo Aplicações Android com Qt
 
Arquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigDataArquiteturas, Tecnologias e Desafios para Análise de BigData
Arquiteturas, Tecnologias e Desafios para Análise de BigData
 

Similar to QtModeling - bringing metamodeling features into the KDE world

Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Chauvin Mariot
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGDSCNiT
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET Dmytro Mindra
 
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...DataScienceConferenc1
 
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Dmytro Mindra
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringJordi Cabot
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesMarco Brambilla
 
PerformanceG2 Cognos Training Course Catalog 2011
PerformanceG2 Cognos Training Course Catalog 2011PerformanceG2 Cognos Training Course Catalog 2011
PerformanceG2 Cognos Training Course Catalog 2011PerformanceG2, Inc.
 
WillMicroserviceDie.pdf
WillMicroserviceDie.pdfWillMicroserviceDie.pdf
WillMicroserviceDie.pdfEmilyJiang23
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSAndrea Saltarello
 
Design Patterns In Scala
Design Patterns In ScalaDesign Patterns In Scala
Design Patterns In ScalaKnoldus Inc.
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadKarthik Murugesan
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...Databricks
 
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on DatabricksDataScienceConferenc1
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)siouxhotornot
 
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Marco Brambilla
 

Similar to QtModeling - bringing metamodeling features into the KDE world (20)

DDD with Behat
DDD with BehatDDD with Behat
DDD with Behat
 
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
Mixing Diagram, Tree, Text, Table and Form editors to build a kick-ass modeli...
 
Google cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptxGoogle cloud Study Jam 2023.pptx
Google cloud Study Jam 2023.pptx
 
NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET NetWork - 15.10.2011 - Applied code generation in .NET
NetWork - 15.10.2011 - Applied code generation in .NET
 
Dagster @ R&S MNT
Dagster @ R&S MNTDagster @ R&S MNT
Dagster @ R&S MNT
 
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
[DSC Europe 23] Milos Grubjesic Empowering Business with Pepsico s Advanced M...
 
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation Odessa .NET User Group - 10.11.2011 - Applied Code Generation
Odessa .NET User Group - 10.11.2011 - Applied Code Generation
 
Our research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software EngineeringOur research lines on Model-Driven Engineering and Software Engineering
Our research lines on Model-Driven Engineering and Software Engineering
 
Sdlc
SdlcSdlc
Sdlc
 
Sig A&D - MDA
Sig A&D - MDASig A&D - MDA
Sig A&D - MDA
 
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE PrinciplesModel-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
Model-Driven Software Engineering in Practice - Chapter 2 - MDSE Principles
 
PerformanceG2 Cognos Training Course Catalog 2011
PerformanceG2 Cognos Training Course Catalog 2011PerformanceG2 Cognos Training Course Catalog 2011
PerformanceG2 Cognos Training Course Catalog 2011
 
WillMicroserviceDie.pdf
WillMicroserviceDie.pdfWillMicroserviceDie.pdf
WillMicroserviceDie.pdf
 
Idiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRSIdiomatic Domain Driven Design: implementing CQRS
Idiomatic Domain Driven Design: implementing CQRS
 
Design Patterns In Scala
Design Patterns In ScalaDesign Patterns In Scala
Design Patterns In Scala
 
AirBNB's ML platform - BigHead
AirBNB's ML platform - BigHeadAirBNB's ML platform - BigHead
AirBNB's ML platform - BigHead
 
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa... Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
Bighead: Airbnb’s End-to-End Machine Learning Platform with Krishna Puttaswa...
 
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
[DSC Europe 23] Petar Zecevic - ML in Production on Databricks
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...Model driven software engineering in practice book - Chapter 9 - Model to tex...
Model driven software engineering in practice book - Chapter 9 - Model to tex...
 

Recently uploaded

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxTier1 app
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Naraina Delhi 💯Call Us 🔝8264348440🔝
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptxKnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
KnowAPIs-UnknownPerf-jaxMainz-2024 (1).pptx
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 

QtModeling - bringing metamodeling features into the KDE world

  • 1. QtModeling bringing metamodeling features into the KDE world Sandro Andrade sandroandrade@kde.org
  • 2. whoami ● Assistant Professor at IFBA – Brazil. ● Using KDE and Qt since 1999. ● Contributing to KDE since 2008. ● I've developed QtModeling as part of my PhD research at UFBA.
  • 3. What's QtModeling about? ● It's about dealing with software models.
  • 4. Why do we need software models? ● Documentation. ● Source code generation / model-code sync. ● Architectural recovery / compliance verification. ● Model-driven QA and CI (DRY). ● Predicting / simulating quality attributes. ● Domain-Specific Languages (DSLs). ● Models@run.time.
  • 5. Why do we need qtmodeling? ● Issues in scalability, performance, and standards compliance in current UML/MOF/* JAVA-based implementations. ● Lack of up to date C++ or Qt-based UML/MOF/* implementations. ● We could support modeling features in QtCreator / KDevelop and revamp Umbrello. ● We could have more model-centric processes in KDE development workflows.
  • 6. The basics about metamodeling UML::ClassUML::Property UML::Association MOF::Class User model UML metamodel MOF meta-metamodel
  • 7. Qtmodeling Drivers / Rationale ● D1) It should be 100% compliant to OMG standards. ● D2) It should be metamodel-agnostic. ● D3) It should perform well for large models and when handling multiples models simultaneously. ● D4) Models should be easily queried/changed via scripting.
  • 8. Qtmodeling Drivers / Rationale ● D1) It should be 100% compliant to OMG standards. ● D2) It should be metamodel-agnostic. ● D3) It should perform well for large models and when handling multiples models simultaneously. ● D4) Models should be easily queried/changed via scripting. Perl Template Toolkit OMG spec XMI C++/Qt impl tmpl's Qt UML Impl UML figures: ● 239 metaclasses ● 91.83% generated automatically ● 300 KLOC ● A lot of dreaded diamonds
  • 9. Qtmodeling Drivers / Rationale ● D1) It should be 100% compliant to OMG standards. ● D2) It should be metamodel-agnostic. ● D3) It should perform well for large models and when handling multiples models simultaneously. ● D4) Models should be easily queried/changed via scripting. 1) Extensive use of Qt's introspection capabilities. 2) Modeling languages (metamodels) as Qt plugins. 3) Qt meta-object capabilities for properties' metadata have several limitations regarding that (QTBUG-17301).
  • 10. Qtmodeling Drivers / Rationale ● D1) It should be 100% compliant to OMG standards. ● D2) It should be metamodel-agnostic. ● D3) It should perform well for large models and when handling multiples models simultaneously. ● D4) Models should be easily queried/changed via scripting. Already good enough, but (WIP): 1) Copy-on-Write. 2) Reduce footprint of derived union properties. 3) Shared objects when dealing with multiple models.
  • 11. Qtmodeling Drivers / Rationale ● D1) It should be 100% compliant to OMG standards. ● D2) It should be metamodel-agnostic. ● D3) It should perform well for large models and when handling multiples models simultaneously. ● D4) Models should be easily queried/changed via scripting. Basic QtScript code!
  • 12. QtModeling's Qt5 add-ons Qt5 QtModeling QtModelingWidgetsUMLPlugin MOFPlugin... DuSE tool DuSE plugins = run-time dependency XMI serialization + Qt meta-object extensions New Qt models and views for dealing with QtModeling-based elements Languages' implementation
  • 14. So,What's next? ● We are still trying to do a release! QtModeling first, then metamodels, then widgets … ● QML-based concrete syntax should be implemented for most used UML constructs. ● That recurrent boring thing: “We need you!” :)
  • 15. Thanks for your attention! QtModeling bringing metamodeling features into the KDE world Sandro Andrade sandroandrade@kde.org