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

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

  • 1.
  • 2.
  • 3.
    3 What are wegoing 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 itmodeling 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 MDDhelp 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 EnhancedER Conceptual diagramUML Object class diagram VS
  • 10.
    10 My first experienceof 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 resultsof 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 toapply 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 amJHipster!!! … 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
  • 15.
  • 16.
  • 17.
  • 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 Artifactsgenerated 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 ofbusiness requirements
  • 21.
    21 Real example ofbusiness 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 bringsa 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
  • 27.
  • 28.