Skip to content
@jdomainapp

JDA software framework

A modern Java software framework for domain driven design

Overview

JDA (previously known as JDomainApp) is a multi-module Maven project that implements Domain-Driven Design in Java. Key features of JDA include:

  1. Micro software architecture (MOSA) which modularises the core domain model in micro-modules (one domain class per module). The architecture is also layered, MVC-enabled and service-ready (supports both RESTful and microservices).
  2. MOSA consists in 3 main layers: domain model (the core) layer, module layer and software layer. Each layer is described in a model.
  3. aDSL (annotation-based DSL) is used to express the models directly in OOPLs
  4. Language: Java
  5. Deployed as a multi-module Maven project: each main feature is implemented in a separate module project, allowing them to be selectively imported into software projects

Research and Development

JDA's development started in 2012 as a teaching tool in a software engineering subject at Hanoi University (Vietnam). It was first named jDomainApp, which means that it is a Java-based tool for domain-driven application development.

In 2014, the development of DomainAppTool, which is based on jDomainApp, began when a need was realised for a user-friendly tool that can be used to quickly and interactively execute and test the domain model. We observe that the development of DomainAppTool and, more generally, that of the jDomainApp framework continuously evolves. The tool is used not only to demonstrate the framework’s capabilities but to quickly experiment with any new domain modelling ideas that would eventually be incorporated into the framework.

The 2016-2019 period played a crucial role in the framework's development. Three conference papers were published with an aim to consolidate and formalise (to a certain extent) the core theories that underlie the framework and tool. Two papers, in particular, are the collaborative research works between the framework's author and Dr. Duc-Hanh Dang and Dr. Ha-Viet Nguyen from the Department of Software Engineering (VNU University of Engineering and Technology). These works were later developed into two ISI journal papers.

Another major development of the framework started very recently in 2021 when the framework received a 2-year funding to develop the microservices capabilities. This project has just completed the first phase and is currently in the start of the second phase. Also starting with this project, jDomainApp is officially renamed to become JDA.

At this point, we feel that JDA is stable enough to be released and thus decided to make the source code public. There are still issues to be resoved and untappeded potential to be explored. We hope that the framework would be received by the community, used in software development and be contributed to by developers.

Contributors

Reseachers

Name Date Organisation Description
Le, Minh Duc 2012-now Swinburne Vietnam JDA creator, designer (architecture, framework), project lead
Dang, Duc Hanh 2016-2023 VNU, University of Engineering and Technology aDSL language design
Vo, Dinh Hieu 2012-2023 VNU, University of Engineering and Technology architecture design
Nguyen, Viet Ha 2016-2019 VNU, University of Engineering and Technology Software development methodology

Students

Name Date Description
Le, Van Vinh 2022-2023 PhD Thesis, Faculty of IT, VNU University of Engineering and Technology
Tran, Quang Linh 2022-2023 Masters Thesis, Faculty of IT, VNU University of Engineering and Technology
Tong, Van Anh Hai 2022-2023 Masters Thesis, Faculty of IT, VNU University of Engineering and Technology
Vu, Thanh Ha 2018 Masters Thesis, Faculty of IT, VNU University of Engineering and Technology
Do, Hai Binh 2019 Graduation Thesis, Faculty of IT, Hanoi University

Popular repositories Loading

  1. jda jda Public

    the root source code project of the JDA framework

    Java 3 1

  2. training training Public

    Team training

    Java 1

  3. jda-dompattern jda-dompattern Public

    JDA Module: Domain modelling patterns

  4. jda-mosar jda-mosar Public

    Generating RESTful full stack software: a DDD approach

  5. jda-mbsl jda-mbsl Public

    Java 1

  6. .github .github Public

Repositories

Showing 10 of 11 repositories
  • jdm-scgl Public

    Software knowledge graph configuration language

    jdomainapp/jdm-scgl’s past year of commit activity
    Java 0 MIT 0 0 0 Updated Aug 16, 2024
  • jda Public

    the root source code project of the JDA framework

    jdomainapp/jda’s past year of commit activity
    Java 3 MIT 1 62 0 Updated Jun 12, 2024
  • jdomainapp/jda-examples’s past year of commit activity
    Kotlin 0 0 0 0 Updated Dec 13, 2023
  • opasys Public
    jdomainapp/opasys’s past year of commit activity
    Java 0 0 2 0 Updated Sep 10, 2023
  • orderman Public

    OrderMan: Order management software

    jdomainapp/orderman’s past year of commit activity
    Java 0 0 0 0 Updated Feb 25, 2023
  • jda-mbsl Public
    jdomainapp/jda-mbsl’s past year of commit activity
    Java 0 MIT 1 0 0 Updated Feb 24, 2023
  • jdomainapp/processman’s past year of commit activity
    Java 0 0 0 0 Updated Feb 16, 2023
  • .github Public
    jdomainapp/.github’s past year of commit activity
    0 MIT 0 0 0 Updated Dec 30, 2022
  • training Public

    Team training

    jdomainapp/training’s past year of commit activity
    Java 1 0 8 0 Updated May 28, 2022
  • jda-dompattern Public

    JDA Module: Domain modelling patterns

    jdomainapp/jda-dompattern’s past year of commit activity
    0 0 0 0 Updated Feb 14, 2022

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…