SlideShare une entreprise Scribd logo
1  sur  28
1
1
Model-Driven
Development in the
Open Java Universe
May 2020
2
About me
Age:
Specialty:
Total-experience:
Company:
Java & RDBMS developer
Anton Lem
3
What are we going to talk about today?
・ Modeling of information systems
・ Model-driven development approach
・ My experience of using MDD in real enterprise
development.
・ Who is Mr. Java Hipster?
・ Development session
・ JHipter’s cons & pros
・ What awaits us in the future?
4
What is it modeling and model?
Model is a strictly formalized idea that has been visualized by some graphical notations
5
Model Driven Development (MDD)
・ Model is a primary source of all
other artifacts in the project
・ CASE-tools (Computer-Aided
Software Engineering) are
intended to generate all
derivative artifacts
CI
CD
Code Architecture Documentation
Cloud
Interface
Database Tests
Backend
6
How can MDD help developers?
・ Developers begin to communicate with
customers in a common formal language
・ Model is the best strictly formalized
documentation for developers
・ Effectiveness of external and internal
communication growths dramatically
・ MDD significantly reduces the amount of
manual coding
・ Using of MDD extends the
professionalism of developers
7
UML modeling
・ Founder: Grady Booch
・ UML was intended to standardize the
notational systems and approaches to
software design
・ In 1997, UML was adopted as a standard
by the Object Management Group (OMG)
・ UML object class diagrams widely are
being used in requirements models more
focused on object-oriented software
engineering
Modern UML Object class diagram
8
Enhanced Entity-Relationships modeling
・ Founder: Peter Chen
・ Originally used as only one available basis
for the first Computer-Aided Software
Engineering (CASE) tools and RDBMS
・ Enhanced by the concepts of inheritance,
stereotypes, union types
・ It is an ANSI standard
・ Widely using in real CASE-tools, mostly
oriented on relationships database design
Modern Enhanced Entity Relationships
Conceptual diagram
9
Modeling in nowadays
Enhanced ER Conceptual diagramUML Object class diagram VS
10
My first experience of using MDD
PowerDesigner - CASE-tool that
really works:
・ enhanced ER-models
・ management of models
・ drawing diagrams
・ checking consistency
・ generation of derivative
artifacts
・ and a lot of drawbacks
11
The first results of using MDD
Problems I encountered:
・ Conceptual models are too abstract
・ PowerDesigner doesn’t cover the
questions of architecture, building
and delivery
・ There is no way to transform a
conceptual model into the code
directly
Positive results:
・ Changing my vision and my mind
・ Increasing the quality of work
・ Improving the performance of all my team
・ Bootstrapping of new projects
・ Bringing new approaches and solutions
12
Second attempt to apply MDD
・ Eclipse contained a lot of scattered MDD
components, but there was no ready-made
CASE-tool
・ Assembling the components of the Eclipse
modeling project into a ready-made
CASE-tool was unreasonably expensive
and complicated
・ PowerDesigner was still excellent but
expensive
13
Hi, I am JHipster!!!
… or a miracle happens when
you do not expect it at all
14
What can Mr. JHipster give us?
・ Scaffolding of projects
・ Assembly of the back-end and front-end
architecture
・ Stack of modern technologies and frameworks
・ Support authentication, configuration,
microservices infrastructure
・ Integration of all components in a ready-made
application
・ Several project building, CI, and deployment
options
・ MDD tool, but he doesn’t know it
15
JHipster features
Backend technologies
16
JHipster features
Front-end technologies
17
JHipster features
Project building
Continuous integration
Deployment
18
JHipster’s MDD features
・ Own structural data model
・ Custom model definition language
・ Model visualization tool
・ Model-to-code generator
19
JHipster’s MDD features
Artifacts generated from model:
・ UI components & tests
・ API & its documentation
・ Security layer & authentication
・ Backend: REST-controllers, services,
DAO layer
・ Business models and DTO
・ Database schema
・ Tests: unit, integration, performance,
behaviour
20
Real example of business requirements
21
Real example of business requirements
・ Build a ready-made web-application from scratch.
・ Implement CRUDL operations for entities from the provided schema.
・ Stateless authentication and authorization.
・ Full-text search, Open-API documentation, internationalization: English, German.
・ Assembly all layers from a data storage to UI.
・ Test coverage of all layers is mandatory. Performance tests too.
22
JHipster in action
・ Project generation and assembly of
modern integrated architecture.
・ Model building, code, and test
generation.
・ Overview of the ready application.
23
JHipster usage cases
・ Scaffolding of your new real projects
from scratch
・ Prototyping of ideas
・ Building mock-implementations of
services for integration tasks
・ Learning purposes
24
JHipster Pros & Cons
Advantages:
・ A large stack of modern technologies
integrated into the one ready-made project
・ The best approaches and using advanced
frameworks
・ Adjusted project builder, CI, deployment
・ Marketplace and community
・ Real MDD in the open-source Java universe
・ JHipster is extremely simple and accessible
25
JHipster Pros & Cons
Areas of improvement:
・ Very primitive model
・ Ill-conceived UI:
‑ synthetic ID as a screen
name for objects
‑ lack of support of large
lookup datasets
・ Not-OOP approach in code
26
Conclusion
・ Modeling brings a lot of benefits to developers
・ JHipster can save your time and teach you
・ Use JHipster and advanced modeling tools
together
・ MDD the most promising candidate for the entire
automation
・ I expect the emergence of dedicated modeling
platforms and servers
27Privileged and confidential
Q & A
28
28
Thank you!
antonlem78@gmail.com
Skype: antonlem78
www.griddynamics.com

Contenu connexe

Similaire à JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe

Rajendran M 2+ years of Exp in Dot net
Rajendran M 2+ years of Exp in Dot netRajendran M 2+ years of Exp in Dot net
Rajendran M 2+ years of Exp in Dot net
Rajendran m
 
Software Project management
Software Project managementSoftware Project management
Software Project management
sameer farooq
 
Hemanth Kumar - Drupal Architect
Hemanth Kumar - Drupal ArchitectHemanth Kumar - Drupal Architect
Hemanth Kumar - Drupal Architect
Hemanth Kumar
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
Henry Jacob
 

Similaire à JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe (20)

Rajendran M 2+ years of Exp in Dot net
Rajendran M 2+ years of Exp in Dot netRajendran M 2+ years of Exp in Dot net
Rajendran M 2+ years of Exp in Dot net
 
Software Project management
Software Project managementSoftware Project management
Software Project management
 
Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#
 
Seven Cloud Sins of DevOps
Seven Cloud Sins of DevOpsSeven Cloud Sins of DevOps
Seven Cloud Sins of DevOps
 
Lightweight Model-Driven Engineering
Lightweight Model-Driven EngineeringLightweight Model-Driven Engineering
Lightweight Model-Driven Engineering
 
Resume
ResumeResume
Resume
 
Hemanth Kumar - Drupal Architect
Hemanth Kumar - Drupal ArchitectHemanth Kumar - Drupal Architect
Hemanth Kumar - Drupal Architect
 
Fed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype DcphpFed Up Of Framework Hype Dcphp
Fed Up Of Framework Hype Dcphp
 
Ds for finance day 4
Ds for finance day 4Ds for finance day 4
Ds for finance day 4
 
Brocoders general presentation
Brocoders general presentationBrocoders general presentation
Brocoders general presentation
 
Software Development in 21st Century
Software Development in 21st CenturySoftware Development in 21st Century
Software Development in 21st Century
 
Planning for Success in MDD
Planning for Success in MDDPlanning for Success in MDD
Planning for Success in MDD
 
How to Speak the Language of Application Architecture
How to Speak the Language of Application ArchitectureHow to Speak the Language of Application Architecture
How to Speak the Language of Application Architecture
 
2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems2013 Good Design Is Good Business MDD Embedded Systems
2013 Good Design Is Good Business MDD Embedded Systems
 
Akwin_Resume
Akwin_ResumeAkwin_Resume
Akwin_Resume
 
Brocoders presentation
Brocoders presentationBrocoders presentation
Brocoders presentation
 
DevOps Days Rockies MLOps
DevOps Days Rockies MLOpsDevOps Days Rockies MLOps
DevOps Days Rockies MLOps
 
Yogesh_Kadam
Yogesh_KadamYogesh_Kadam
Yogesh_Kadam
 
The world of enterprise solution development with asp.net and C#
The world of enterprise solution development with asp.net and C#The world of enterprise solution development with asp.net and C#
The world of enterprise solution development with asp.net and C#
 
The Dual-Track Agile UX Process at Dell EMC
The Dual-Track Agile UX Process at Dell EMCThe Dual-Track Agile UX Process at Dell EMC
The Dual-Track Agile UX Process at Dell EMC
 

Plus de FestGroup

JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
FestGroup
 
JavaFest. Денис Макогон. 6 заблуждений относительно современной Java
JavaFest. Денис Макогон. 6 заблуждений относительно современной JavaJavaFest. Денис Макогон. 6 заблуждений относительно современной Java
JavaFest. Денис Макогон. 6 заблуждений относительно современной Java
FestGroup
 

Plus de FestGroup (10)

JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
JavaFest. Барух Садогурский. DevOps для разработчиков (или против них?!)
 
JavaFest. Виктор Полищук. Legacy: как победить в гонке
JavaFest. Виктор Полищук. Legacy: как победить в гонкеJavaFest. Виктор Полищук. Legacy: как победить в гонке
JavaFest. Виктор Полищук. Legacy: как победить в гонке
 
JavaFest. Cedrick Lunven. Build APIS with SpringBoot - REST, GRPC, GRAPHQL wh...
JavaFest. Cedrick Lunven. Build APIS with SpringBoot - REST, GRPC, GRAPHQL wh...JavaFest. Cedrick Lunven. Build APIS with SpringBoot - REST, GRPC, GRAPHQL wh...
JavaFest. Cedrick Lunven. Build APIS with SpringBoot - REST, GRPC, GRAPHQL wh...
 
JavaFest. Philipp Krenn. Scale Elasticsearch for Your Java Applications
JavaFest. Philipp Krenn. Scale Elasticsearch for Your Java ApplicationsJavaFest. Philipp Krenn. Scale Elasticsearch for Your Java Applications
JavaFest. Philipp Krenn. Scale Elasticsearch for Your Java Applications
 
JavaFest. Grzegorz Piwowarek. Hazelcast - Hitchhiker’s Guide
JavaFest. Grzegorz Piwowarek. Hazelcast - Hitchhiker’s GuideJavaFest. Grzegorz Piwowarek. Hazelcast - Hitchhiker’s Guide
JavaFest. Grzegorz Piwowarek. Hazelcast - Hitchhiker’s Guide
 
JavaFest. Денис Макогон. 6 заблуждений относительно современной Java
JavaFest. Денис Макогон. 6 заблуждений относительно современной JavaJavaFest. Денис Макогон. 6 заблуждений относительно современной Java
JavaFest. Денис Макогон. 6 заблуждений относительно современной Java
 
JavaFest. Taras Boychuk. There is always a choice. Spring Data JDBC vs. Hiber...
JavaFest. Taras Boychuk. There is always a choice. Spring Data JDBC vs. Hiber...JavaFest. Taras Boychuk. There is always a choice. Spring Data JDBC vs. Hiber...
JavaFest. Taras Boychuk. There is always a choice. Spring Data JDBC vs. Hiber...
 
JavaFest. Вадим Казулькин. Projects Valhalla, Loom and GraalVM
JavaFest. Вадим Казулькин. Projects Valhalla, Loom and GraalVMJavaFest. Вадим Казулькин. Projects Valhalla, Loom and GraalVM
JavaFest. Вадим Казулькин. Projects Valhalla, Loom and GraalVM
 
JavaFest. Дмитрий Сергеев. Data processing with Kafka Streams and Spring Fram...
JavaFest. Дмитрий Сергеев. Data processing with Kafka Streams and Spring Fram...JavaFest. Дмитрий Сергеев. Data processing with Kafka Streams and Spring Fram...
JavaFest. Дмитрий Сергеев. Data processing with Kafka Streams and Spring Fram...
 
JavaFest. Nanne Baars. Web application security for developers
JavaFest. Nanne Baars. Web application security for developersJavaFest. Nanne Baars. Web application security for developers
JavaFest. Nanne Baars. Web application security for developers
 

Dernier

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
negromaestrong
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Dernier (20)

Seal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptxSeal of Good Local Governance (SGLG) 2024Final.pptx
Seal of Good Local Governance (SGLG) 2024Final.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
General Principles of Intellectual Property: Concepts of Intellectual Proper...
General Principles of Intellectual Property: Concepts of Intellectual  Proper...General Principles of Intellectual Property: Concepts of Intellectual  Proper...
General Principles of Intellectual Property: Concepts of Intellectual Proper...
 
Magic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptxMagic bus Group work1and 2 (Team 3).pptx
Magic bus Group work1and 2 (Team 3).pptx
 
Unit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptxUnit-IV- Pharma. Marketing Channels.pptx
Unit-IV- Pharma. Marketing Channels.pptx
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...Kodo Millet  PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
Kodo Millet PPT made by Ghanshyam bairwa college of Agriculture kumher bhara...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 

JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe

  • 3. 3 What are we going to talk about today? ・ Modeling of information systems ・ Model-driven development approach ・ My experience of using MDD in real enterprise development. ・ Who is Mr. Java Hipster? ・ Development session ・ JHipter’s cons & pros ・ What awaits us in the future?
  • 4. 4 What is it modeling and model? Model is a strictly formalized idea that has been visualized by some graphical notations
  • 5. 5 Model Driven Development (MDD) ・ Model is a primary source of all other artifacts in the project ・ CASE-tools (Computer-Aided Software Engineering) are intended to generate all derivative artifacts CI CD Code Architecture Documentation Cloud Interface Database Tests Backend
  • 6. 6 How can MDD help developers? ・ Developers begin to communicate with customers in a common formal language ・ Model is the best strictly formalized documentation for developers ・ Effectiveness of external and internal communication growths dramatically ・ MDD significantly reduces the amount of manual coding ・ Using of MDD extends the professionalism of developers
  • 7. 7 UML modeling ・ Founder: Grady Booch ・ UML was intended to standardize the notational systems and approaches to software design ・ In 1997, UML was adopted as a standard by the Object Management Group (OMG) ・ UML object class diagrams widely are being used in requirements models more focused on object-oriented software engineering Modern UML Object class diagram
  • 8. 8 Enhanced Entity-Relationships modeling ・ Founder: Peter Chen ・ Originally used as only one available basis for the first Computer-Aided Software Engineering (CASE) tools and RDBMS ・ Enhanced by the concepts of inheritance, stereotypes, union types ・ It is an ANSI standard ・ Widely using in real CASE-tools, mostly oriented on relationships database design Modern Enhanced Entity Relationships Conceptual diagram
  • 9. 9 Modeling in nowadays Enhanced ER Conceptual diagramUML Object class diagram VS
  • 10. 10 My first experience of using MDD PowerDesigner - CASE-tool that really works: ・ enhanced ER-models ・ management of models ・ drawing diagrams ・ checking consistency ・ generation of derivative artifacts ・ and a lot of drawbacks
  • 11. 11 The first results of using MDD Problems I encountered: ・ Conceptual models are too abstract ・ PowerDesigner doesn’t cover the questions of architecture, building and delivery ・ There is no way to transform a conceptual model into the code directly Positive results: ・ Changing my vision and my mind ・ Increasing the quality of work ・ Improving the performance of all my team ・ Bootstrapping of new projects ・ Bringing new approaches and solutions
  • 12. 12 Second attempt to apply MDD ・ Eclipse contained a lot of scattered MDD components, but there was no ready-made CASE-tool ・ Assembling the components of the Eclipse modeling project into a ready-made CASE-tool was unreasonably expensive and complicated ・ PowerDesigner was still excellent but expensive
  • 13. 13 Hi, I am JHipster!!! … or a miracle happens when you do not expect it at all
  • 14. 14 What can Mr. JHipster give us? ・ Scaffolding of projects ・ Assembly of the back-end and front-end architecture ・ Stack of modern technologies and frameworks ・ Support authentication, configuration, microservices infrastructure ・ Integration of all components in a ready-made application ・ Several project building, CI, and deployment options ・ MDD tool, but he doesn’t know it
  • 18. 18 JHipster’s MDD features ・ Own structural data model ・ Custom model definition language ・ Model visualization tool ・ Model-to-code generator
  • 19. 19 JHipster’s MDD features Artifacts generated from model: ・ UI components & tests ・ API & its documentation ・ Security layer & authentication ・ Backend: REST-controllers, services, DAO layer ・ Business models and DTO ・ Database schema ・ Tests: unit, integration, performance, behaviour
  • 20. 20 Real example of business requirements
  • 21. 21 Real example of business requirements ・ Build a ready-made web-application from scratch. ・ Implement CRUDL operations for entities from the provided schema. ・ Stateless authentication and authorization. ・ Full-text search, Open-API documentation, internationalization: English, German. ・ Assembly all layers from a data storage to UI. ・ Test coverage of all layers is mandatory. Performance tests too.
  • 22. 22 JHipster in action ・ Project generation and assembly of modern integrated architecture. ・ Model building, code, and test generation. ・ Overview of the ready application.
  • 23. 23 JHipster usage cases ・ Scaffolding of your new real projects from scratch ・ Prototyping of ideas ・ Building mock-implementations of services for integration tasks ・ Learning purposes
  • 24. 24 JHipster Pros & Cons Advantages: ・ A large stack of modern technologies integrated into the one ready-made project ・ The best approaches and using advanced frameworks ・ Adjusted project builder, CI, deployment ・ Marketplace and community ・ Real MDD in the open-source Java universe ・ JHipster is extremely simple and accessible
  • 25. 25 JHipster Pros & Cons Areas of improvement: ・ Very primitive model ・ Ill-conceived UI: ‑ synthetic ID as a screen name for objects ‑ lack of support of large lookup datasets ・ Not-OOP approach in code
  • 26. 26 Conclusion ・ Modeling brings a lot of benefits to developers ・ JHipster can save your time and teach you ・ Use JHipster and advanced modeling tools together ・ MDD the most promising candidate for the entire automation ・ I expect the emergence of dedicated modeling platforms and servers