CN112988123B - 面向ddd的软件设计方法及系统 - Google Patents

面向ddd的软件设计方法及系统 Download PDF

Info

Publication number
CN112988123B
CN112988123B CN202110489421.5A CN202110489421A CN112988123B CN 112988123 B CN112988123 B CN 112988123B CN 202110489421 A CN202110489421 A CN 202110489421A CN 112988123 B CN112988123 B CN 112988123B
Authority
CN
China
Prior art keywords
ddd
scene
service
software design
service platform
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110489421.5A
Other languages
English (en)
Other versions
CN112988123A (zh
Inventor
俞海群
刘正忠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Yusys Technologies Group Co ltd
Original Assignee
Beijing Yusys Technologies Group Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Yusys Technologies Group Co ltd filed Critical Beijing Yusys Technologies Group Co ltd
Priority to CN202110489421.5A priority Critical patent/CN112988123B/zh
Publication of CN112988123A publication Critical patent/CN112988123A/zh
Application granted granted Critical
Publication of CN112988123B publication Critical patent/CN112988123B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • G06F8/355Round-trip engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种面向DDD的软件设计方法及系统,该方法包括:在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断软件设计需求对应的业务场景是否为单表增删查改场景;若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成软件设计需求对应的面向DDD的软件代码;若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括实体行为组件以及仓储组件的业务流程,以及根据业务流程自动生成软件设计需求对应的面向DDD的软件代码。本发明打通系统设计和软件研发两个阶段,能提高软件设计转化率。

Description

面向DDD的软件设计方法及系统
技术领域
本发明涉及计算机软件技术领域,尤其涉及一种面向DDD的软件设计方法及系统。
背景技术
领域驱动设计(DDD,Domain -Driven Design)是一套应对复杂软件系统分析和设计的面向对象建模方法论。过去系统分析和系统设计都是分离的,DDD则打破了这种隔阂,提出了领域模型概念,统一了分析和设计编程,使得软件能够更灵活快速跟随需求变化。
然而,由于DDD抽象的概念较多,实施起来因人而异会产生多种多样的标准,且没有工具辅助,导致DDD应用效果不理想,系统设计转化为软件不易。
发明内容
有鉴于此,本发明实施例的目的在于提供一种面向DDD的软件设计方法及系统,打通面向DDD的系统设计和软件研发两个阶段,能提高软件设计转化率。
第一方面,本发明实施例提供了一种面向DDD的软件设计方法,在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景;所述单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表;
若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码;
若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括所述实体行为组件以及仓储组件的业务流程,以及根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码。
进一步地,所述选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码包括:
根据所述业务场景确定对应的流程图;
确定所述对应的流程图中包括的实体行为组件以及仓储组件;
根据所述流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码。
进一步地,所述根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码包括:
根据所述业务流程依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及
应用层接入端代码。
进一步地,在所述根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景的步骤之前包括:
判断业务平台和领域是否已经创建;
若业务平台和领域已经创建,则导入已经创建的业务平台和领域,若业务平台和领域未创建,则创建业务平台和领域;
启动业务平台,以及在所述业务平台中创建应用模块。
第二方面,本发明还提供一种面向DDD的软件设计系统,包括:
业务判断模块,用于在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景;所述单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表;
通用代码模块,用于若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码;
设计开发模块,用于若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括所述实体行为组件以及仓储组件的业务流程,以及根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码。
进一步地,所述通用代码模块具体用于:根据所述业务场景确定对应的流程图;并确定所述对应的流程图中包括的实体行为组件以及仓储组件;以及根据所述流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码。
进一步地,所述设计开发模块具体用于:根据所述业务流程依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码。
进一步地,所述的面向DDD的软件设计系统还包括:创建模块,用于判断业务平台和领域是否已经创建;若业务平台和领域已经创建,则导入已经创建的业务平台和领域,若业务平台和领域未创建,则创建的业务平台和领域;以及启动业务平台,在所述业务平台中创建应用模块。
第三方面,本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的面向DDD的软件设计方法。
第四方面,本发明还提供一种计算机设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的面向DDD的软件设计方法。
上述技术方案具有如下有益效果:根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景;若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码;若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括所述实体行为组件以及仓储组件的业务流程,以及根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码,实现设计的结果直接自动生成代码,打通面向DDD的系统设计和软件研发两个阶段,使得设计的交付物直接用于下一阶段的研发,解决抽象概念难以具体实施的难题,达到统一过程,提高转化率的目的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明示例性第一实施例的面向DDD的软件设计方法的流程图;
图2为根据本发明示例性第二实施例的面向DDD的软件设计方法的流程图;
图3-图6为根据本发明示例性第二实施例的面向DDD的软件设计方法中各步骤的操作页面示意图;
图7为根据本发明示例性第四实施例的面向DDD的软件设计系统的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
实施例一
图1为根据本发明示例性第一实施例的面向DDD的软件设计方法的流程图,如图1所示,本发明实施例的一种面向DDD的软件设计方法,包括:
步骤101:在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断该软件设计需求对应的业务场景是否为单表增删查改场景;该单表增删查改场景用于表征以下场景中的一个:新增单表(即新增单个表格)、分页查询单表(即对单个表格进行查询操作)、更新单表(即对单个表格进行更新操作)、删除单表(即对单个表格进行删除操作)以及校验单表(即对单个表格进行校验操作)。其中,单表是指对单个表操作的业务场景,比如新增客户名单的业务需求通常是需要对单个表进行增加、删除、修改以及查找等动作。
步骤102:若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成软件设计需求对应的面向DDD的软件代码。
步骤103:若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括实体行为组件以及仓储组件的业务流程,以及根据业务流程自动生成软件设计需求对应的面向DDD的软件代码。
本实施例根据通过可视化界面生成的面向DDD的软件设计需求,在业务场景为单表增删查改场景时,选择预先存储的通用模板自动生成软件设计需求对应的面向DDD的软件代码;在业务场景不为单表增删查改场景时,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成业务流程,以及根据业务流程自动生成软件设计需求对应的面向DDD的软件代码,实现设计的结果直接自动生成代码,打通面向DDD的系统设计和软件研发两个阶段,使得设计的交付物直接用于下一阶段的研发,解决抽象概念难以具体实施的难题,达到统一过程,提高转化率的目的。
实施例二
图2为根据本发明示例性第二实施例的面向DDD的软件设计方法的流程图,其为图1所示方法实施例的优选实施方式,如图2所示,本发明实施例提供的一种面向DDD的软件设计方法,可以包括如下步骤:
步骤201,判断平台(即业务平台)和领域是否已经创建,比如对于一个具体的要创建的客户管理系统可以理解为业务平台,而该客户管理系统下面的多个业务对象,比如个人客户、企业客户等可以理解为领域。在设计之初,需要创建业务平台的架构,该架构呈现给设计人员的就是业务平台的目录,比如客户管理系统(业务平台)下级包括个人客户这一领域,个人客户又包括应用服务以及各个应用模块,应用服务封装了对外提供服务的各个代码,而应用模块是对领域的进一步细分,比如个人客户这个领域下面又分为VIP客户(可以理解为应用模块)以及普通客户(可以理解为应用模块),每个应用模块的下级又可以包括应用服务用于封装该应用模块对外提供服务的代码。
具体操作时,步骤201可以一键生成业务平台骨架。具体如图3-图5所示,通过业务平台脚手架工具,选择业务平台的模板类型,可以为业务平台生成必要的目录结构、基础配置、依赖项等。具体如图3所示,可以通过统一服务平台创建业务平台,如图4所示,创建业务平台后通过DDD工程创建领域,如图5所示,对于具体的领域可以创建对应的领域工程。
步骤202,若业务平台和领域已经创建,则导入已经创建的业务平台和领域,具体操作时可以从git(开源的分布式管理系统)导入已经创建的业务平台和领域。
步骤203,若业务平台和领域未创建,则根据业务功能划分,创建业务平台和领域。
步骤204,启动业务平台。
步骤205,在业务平台中创建应用模块。具体如图6所示,通过设计工具的可视化页面,创建所需的子模块(即应用模块可以有多级,比如普通客户(可以理解为应用模块)下面还可以设置优质的普通用户(可以理解为普通用户的子模块)。
步骤206,根据通过可视化界面生成的面向DDD的软件设计需求,判断软件设计需求对应的业务场景是否为单表增删查改场景;
所述单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表。
步骤207,若业务场景为单表增删查改场景,根据业务场景确定对应的流程图。
一般而言,对于业务场景为单表增删查改场景时,可以抽象为几类较为固化的流程,用户可以直接选择而不用再做流程设计。比如用户维护,新增一个用户,其本质就是在用户表新增一条数据,然后添加一些业务逻辑,如该用户ID是否已存在,可以将其流程图抽象为用户实体的检查行为组件和用户实体保存的仓储组件的结合。
步骤208,确定对应的流程图中包括的实体行为组件以及仓储组件。
步骤209,根据流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码,DAO层为DDD的数据层。
步骤210,根据流程图中包括的实体行为组件以及仓储组件,生成领域层业务逻辑代码,领域层为DDD的业务层。
步骤211,根据流程图中包括的实体行为组件以及仓储组件,生成应用层接入端代码,应用层为DDD的业务层。
步骤212,若业务场景不为单表增删查改场景,新建应用服务;
步骤213,新建实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括实体行为组件以及仓储组件的业务流程;其中,应用服务是客户端接入系统的入口以及协议,一个应用服务代表一个业务场景,由多个业务处理组件组成。
具体而言,对于流程设计,通过需求分析,可以抽象出业务场景,业务场景往往分成多个步骤来完成计算和处理。每一个步骤需要完成的事,可以抽象成一个实体行为组件,实体行为组件在完成计算和处理时,离不开数据的获取和保存,因此抽象出了仓库组件来完成数据的相关存取操作。流程设计主要是完成实体行为组件、仓储组件的抽象和设计,包括命名、输入、输出、程序控制参数等。完成了实体和仓储之后,就可以组装业务逻辑了。面向DDD的软件设计系统提供流程图式的设计界面,通过鼠标拖拉拽的方式,完成业务逻辑的编排,得到最终的设计产物:行为组件、仓储组件以及运行流程图。
步骤214,根据业务流程生成实体以及仓储代码。其中步骤212至步骤214为设计阶段。
步骤215,根据业务流程生成面向DDD的DAO层代码。
步骤216,进行领域层逻辑开发,即生成领域层业务逻辑代码以及应用层接入端代码。具体地,对于上述步骤设计产出通过代码辅助工具生成Java类、方法、方法参数、框架功能代码等,直接用于代码开发,完全实现了两个阶段的贯通。
步骤217,发布设计的流程。步骤215至步骤217为开发阶段。
步骤218,根据设计得到的代码进行配置,并启动系统。
本实施例通过提供可视化界面,通过各步骤来完成面向DDD的相关设计,规范了设计,降低了难度,同时本实施例面向DDD的软件设计方法在设计后能自动生成代码,打通设计和开发,设计的结果可以直接生成代码,简单场景减少了80%的开发工作量,复杂场景可以减少30%~40%的开发工作量。
实施例三
图7为根据本发明示例性第四实施例的面向DDD的软件设计系统的结构框图,具体如图7所示,面向DDD的软件设计系统,包括:
业务判断模块1201,用于在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断软件设计需求对应的业务场景是否为单表增删查改场景;单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表;
通用代码模块1202,用于若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成软件设计需求对应的面向DDD的软件代码;
设计开发模块1203,用于若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括实体行为组件以及仓储组件的业务流程,以及根据业务流程自动生成软件设计需求对应的面向DDD的软件代码。
进一步地,通用代码模块1202具体可以用于:根据业务场景确定对应的流程图;并确定对应的流程图中包括的实体行为组件以及仓储组件;以及根据流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码。
进一步地,设计开发模块1203具体可以用于:根据业务流程依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码。
进一步地,的面向DDD的软件设计系统还包括:创建模块1200,用于判断业务平台和领域是否已经创建;若业务平台和领域已经创建,则导入已经创建的业务平台和领域,若业务平台和领域未创建,则创建的业务平台和领域;以及启动业务平台,在业务平台中创建应用模块。
本实施例面向DDD的软件设计系统适用于软件和互联网、金融、通信等行业,支持一键生成业务平台工程骨架、一键生成类和方法,同时以流程图的形式完成业务逻辑编排和组件的设计,打通设计和开发,使得设计阶段的产物直接用于代码开发阶段,提高软件设计转化率。
此外,本发明另一种实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的任意一种面向DDD的软件设计方法。
本发明另一种实施例还提供一种计算机设备,其包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现上述的任意一种面向DDD的软件设计方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。当然,还有其他方式的可读存储介质,例如量子存储器、石墨烯存储器等等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
虽然本申请提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (4)

1.一种面向DDD的软件设计方法,其特征在于,包括:
在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景;所述单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表;
若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码;
若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括所述实体行为组件以及仓储组件的业务流程,以及根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码,
所述选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码包括:
根据所述业务场景确定对应的流程图;
确定所述对应的流程图中包括的实体行为组件以及仓储组件;
根据所述流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码,
所述根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码包括:
根据所述业务流程依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及
应用层接入端代码,
在所述根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景的步骤之前包括:
判断业务平台和领域是否已经创建;
若业务平台和领域已经创建,则导入已经创建的业务平台和领域,若业务平台和领域未创建,则创建业务平台和领域;
启动业务平台,以及在所述业务平台中创建应用模块。
2.一种面向DDD的软件设计系统,其特征在于,包括:
业务判断模块,用于在业务平台、领域以及应用模块创建后,根据通过可视化界面生成的面向DDD的软件设计需求,判断所述软件设计需求对应的业务场景是否为单表增删查改场景;所述单表增删查改场景用于表征以下场景中的一个:新增单表、分页查询单表、更新单表、删除单表以及校验单表;
通用代码模块,用于若业务场景为单表增删查改场景,选择预先存储的通用模板自动生成所述软件设计需求对应的面向DDD的软件代码;
设计开发模块,用于若业务场景不为单表增删查改场景,新建应用服务、实体行为组件以及仓储组件,并根据可视化界面的业务逻辑编排操作生成包括所述实体行为组件以及仓储组件的业务流程,以及根据所述业务流程自动生成所述软件设计需求对应的面向DDD的软件代码,
所述通用代码模块具体用于:根据所述业务场景确定对应的流程图;并确定所述对应的流程图中包括的实体行为组件以及仓储组件;以及根据所述流程图中包括的实体行为组件以及仓储组件依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码,
所述设计开发模块具体用于:根据所述业务流程依次生成面向DDD的DAO层代码、领域层业务逻辑代码以及应用层接入端代码,
所述的面向DDD的软件设计系统还包括:创建模块,用于判断业务平台和领域是否已经创建;若业务平台和领域已经创建,则导入已经创建的业务平台和领域,若业务平台和领域未创建,则创建业务平台和领域;以及启动业务平台,在所述业务平台中创建应用模块。
3.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现上述权利要求1所述的面向DDD的软件设计方法。
4.一种计算机设备,其特征在于,其包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器
实现上述权利要求1所述的面向DDD的软件设计方法。
CN202110489421.5A 2021-05-06 2021-05-06 面向ddd的软件设计方法及系统 Active CN112988123B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110489421.5A CN112988123B (zh) 2021-05-06 2021-05-06 面向ddd的软件设计方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110489421.5A CN112988123B (zh) 2021-05-06 2021-05-06 面向ddd的软件设计方法及系统

Publications (2)

Publication Number Publication Date
CN112988123A CN112988123A (zh) 2021-06-18
CN112988123B true CN112988123B (zh) 2021-08-13

Family

ID=76337167

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110489421.5A Active CN112988123B (zh) 2021-05-06 2021-05-06 面向ddd的软件设计方法及系统

Country Status (1)

Country Link
CN (1) CN112988123B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114035803A (zh) * 2022-01-10 2022-02-11 深圳市明源云科技有限公司 代码自动生成方法、装置、设备及计算机可读存储介质
CN114564176B (zh) * 2022-01-27 2023-08-22 阿里云计算有限公司 一种代码开发方法、服务器及存储介质
CN117850764B (zh) * 2024-03-07 2024-05-07 南京和度软件科技有限公司 基于集成式模型驱动架构的设计建模方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8490053B2 (en) * 2006-10-23 2013-07-16 Intuit Inc. Software domain model that enables simultaneous independent development of software components
CN102750145B (zh) * 2012-06-05 2015-02-25 怯肇乾 一种网络系统软件体系框架及其实现方法
CN103294475B (zh) * 2013-06-08 2016-01-13 北京邮电大学 基于图形化业务场景和领域模板的业务自动生成系统和方法
CN103761082A (zh) * 2013-12-31 2014-04-30 湖南大唐先一科技有限公司 一种组件化研发模式与领域驱动模型相结合的应用开发系统及平台
CN106815016A (zh) * 2016-12-23 2017-06-09 四川大学 一种基于领域驱动设计的mvvm设计模型

Also Published As

Publication number Publication date
CN112988123A (zh) 2021-06-18

Similar Documents

Publication Publication Date Title
CN112988123B (zh) 面向ddd的软件设计方法及系统
CN107918666B (zh) 一种区块链上的数据同步方法和系统
US7505983B2 (en) Extending data flows
CN108171528B (zh) 一种归因方法及归因系统
CN110968325A (zh) 一种小程序转换方法及装置
CN103020158A (zh) 一种报表创建方法、装置和系统
US20160103660A1 (en) Metadata based eventing
CN106557307B (zh) 业务数据的处理方法及处理系统
CN115993966B (zh) 应用开发系统及方法
CN104915193A (zh) 一种流程引擎的处理方法和装置
CN111552728A (zh) 区块链的数据处理方法、系统、终端和存储介质
CN101937335A (zh) 一种生成Widget图标的方法、Widget摘要文件的生成方法及Widget引擎
CN114816170A (zh) 规则方案生成方法、装置、介质及电子设备
CN116992092A (zh) 流程模型的建立方法、装置、存储介质及终端设备
JP7250009B2 (ja) クライアントエンドのプログラミングツールにより実行される方法
CN116483707A (zh) 测试方法、装置、设备、存储介质及程序产品
CN115543428A (zh) 一种基于策略模板的模拟数据生成方法和装置
CN111124386B (zh) 基于Unity的动画事件处理方法、装置、设备和存储介质
CN115827051A (zh) 一种软件集成管理系统、方法及服务器
CN113011984A (zh) 金融产品的业务数据处理方法及装置
US9268533B2 (en) Method and apparatus for enabling layered property definition in traditional and cloud computing environments
CN112418796A (zh) 子流程节点激活方法、装置、电子设备及存储介质
CN110968363A (zh) 一种数据配置的同步方法、装置、电子设备以及可读存储介质
CN115983220B (zh) 报表生成方法、装置和电子设备
CN117850764B (zh) 基于集成式模型驱动架构的设计建模方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant