CN112015403B - 软件设计方法和系统 - Google Patents
软件设计方法和系统 Download PDFInfo
- Publication number
- CN112015403B CN112015403B CN202010925458.3A CN202010925458A CN112015403B CN 112015403 B CN112015403 B CN 112015403B CN 202010925458 A CN202010925458 A CN 202010925458A CN 112015403 B CN112015403 B CN 112015403B
- Authority
- CN
- China
- Prior art keywords
- noun
- domain
- domain model
- attribute
- similarity
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/35—Creation or generation of source code model driven
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供了软件设计方法和系统,包括:获取业务过程;确定业务过程中业务过程节点的类型;根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;将句子结构转化为领域模型;对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据领域模型的相似度,得到领域模型中词性之间的依赖关系;根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界,可以根据业务过程自动生成领域模型,极大地满足了业务需求和业务变化。
Description
技术领域
本发明涉及软件开发技术领域,尤其是涉及软件设计方法和系统。
背景技术
软件是用于处理复杂问题的工具,由于应用领域的复杂性、领域专家和技术人员沟通的不确定性、业务的多变性,使得软件在研发过程中出现一些问题。
目前采用DDD(Domain-Driven Design,领域驱动设计)和MDA(Model DrivenArchitecture,模型驱动架构)等方法进行软件开发,具体为:对业务领域进行建模,抽象出对应的领域模型,基于领域模型构建沟通的通用语言,并对通用语言进行开发。但是,领域模型需要根据技术人员的经验进行建模,导致很多设计不能满足业务需求,或者无法面对业务变化。
发明内容
有鉴于此,本发明的目的在于提供软件设计方法和系统,可以根据业务过程自动生成领域模型,极大地满足了业务需求和业务变化。
第一方面,本发明实施例提供了软件设计方法,包括:
获取业务过程;
确定所述业务过程中业务过程节点的类型;
根据所述业务过程节点的类型为所述业务过程节点分配对应的句子结构,使所述业务过程节点根据所述句子结构将相应的词放入到词库中,并且维护所述业务过程节点中各个词之间的关系;
将所述句子结构转化为领域模型;
对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;
根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系;
根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界。
进一步的,所述对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度,包括:
对所述领域模型和所述业务过程节点中各个词之间的关系进行提炼,得到领域属性、领域方法和领域对象;
根据所述领域属性,计算属性相似度;
根据所述领域方法,计算方法相似度;
根据所述领域对象,计算职责相似度。
进一步的,所述根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系,包括:
如果所述领域模型的第一名词和第二名词之间的所述属性相似度大于第一阈值,所述第一名词和所述第二名词之间的所述方法相似度大于第二阈值,并且所述第一名词和所述第二名词之间的所述职责相似度大于第三阈值,则所述第一名词和所述第二名词为的公共部分抽象为公共超类。
进一步的,所述方法还包括:
如果所述领域模型的第三名词的属性完全包含于第四名词的属性,所述第三名词的领域方法完全包含于所述第四名词的领域方法,并且在所述第三名词的领域对象中,通过所述第四名词进行替换,则所述第三名词为所述第四名词的超类。
进一步的,所述根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界,包括:
以所述领域模型中的名词为顶点,根据所述领域模型中词性之间的依赖关系,构成有向图;
将所述有向图中的多个顶点集合按照预设规则进行划分,得到所述领域服务边界。
进一步的,所述根据所述领域属性,计算属性相似度,包括:
如果所述第一名词的第一属性和所述第二名词的第二属性是同义词,并且所述第一属性和所述第二属性的类型相同,则所述第一属性和所述第二属性相同;
如果设定所述第一属性和所述第二属性相同的集合为第一集合,则所述第一名词和所述第二名词之间的属性相似度为所述第一集合的元素个数与所述第一名词的属性个数的比值,所述第二名词和所述第一名词之间的属性相似度为所述第一集合的元素个数与所述第二名词的属性个数的比值。
进一步的,所述根据所述领域方法,计算方法相似度,包括:
如果所述第一名词的方法与所述第二名词的方法为相同句型并且对应的句子中的词均为同义词,则所述第一名词的方法与所述第二名词的方法相似;
如果所述第一名词的方法和所述第二名词的方法流程相同,则所述第一名词的方法和所述第二名词的方法相同。
进一步的,所述根据所述领域对象,计算职责相似度,包括:
设定所述第一名词的领域对象为第一集合,所述第二名词的领域对象为第二集合;
计算所述第一集合和所述第二集合的交集的元素个数;
计算所述第一集合和所述第二集合的并集的元素个数;
计算所述第一集合和所述第二集合的交集的元素个数与所述第一集合和所述第二集合的并集的元素个数的比值,将所述比值作为所述职责相似度。
进一步的,所述将所述句子结构转化为领域模型,包括:
根据文法结构和转换规则,将所述业务过程转换为所述领域模型。
第二方面,本发明实施例提供了软件设计系统,所述系统包括:
用例管理模块,用于获取业务过程;确定所述业务过程中业务过程节点的类型;根据所述业务过程节点的类型为所述业务过程节点分配对应的句子结构,使所述业务过程节点根据所述句子结构将相应的词放入到词库中,并且维护所述业务过程节点中各个词之间的关系;
模型分析模块,用于将所述句子结构转化为领域模型;对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系;根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界。
第三方面,本发明实施例提供了电子设备,包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的方法。
第四方面,本发明实施例提供了具有处理器可执行的非易失的程序代码的计算机可读介质,所述程序代码使所述处理器执行如上所述的方法。
本发明实施例提供了软件设计方法和系统,包括:获取业务过程;确定业务过程中业务过程节点的类型;根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;将句子结构转化为领域模型;对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据领域模型的相似度,得到领域模型中词性之间的依赖关系;根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界,可以根据业务过程自动生成领域模型,极大地满足了业务需求和业务变化。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一提供的软件设计方法流程图;
图2为本发明实施例二提供的软件设计系统示意图;
图3为本发明实施例二提供的另一软件设计系统示意图。
图标:
1-用例管理模块;2-模型分析模块;3-模型管理模块;4-输出模块。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
软件是用于处理复杂问题的工具,由于应用领域的复杂性、领域专家和技术人员沟通的不确定性、业务的多变性,使得软件在研发过程中出现一些问题。其中,应用领域的复杂性是指在某些应用领域,软件依赖于专业知识,而很多技术人员缺乏对应领域知识;领域专家和技术人员沟通的不确定性是指不同的背景知识和不同的专业术语使人与人之间的有效交流变得困难,自然语言的含糊性也会导致领域专家和技术人员的沟通出现不确定性;业务的多变性是指由于软件系统的耦合度过高和抽象度不足,软件系统无法满足业务的变化需求。
目前采用DDD(Domain-Driven Design,领域驱动设计)和MDA(Model DrivenArchitecture,模型驱动架构)等方法进行软件开发,具体为:对业务领域进行建模,抽象出对应的领域模型,基于领域模型构建沟通的通用语言,并对通用语言进行开发。通过上述方式,用户可以通过领域模型直观地看到用户与软件系统间的交互;分析人员可以看到领域模型对象间的交互;开发人员可以看到要开发的对象和每个对象的任务;测试人员可以看到对象间的交互,并根据这些交互准备测试案例;项目管理人员可以看到整个软件系统及各部分的交互;信息总管可以看到高层模型,看到公司的各个软件系统如何相互交互。
领域模型是对现实的选择性精简和抽象。领域模型提供了软件系统的蓝图,包含细节设计,也包含对软件系统的总体设计。一个好的模型包括重要的因素,而忽略不相干的细节。每一个软件系统可以从不同的方面使用不同的模型进行描述,因此每个模型都是对系统从语义上近似的抽象。
但是,领域模型需要根据技术人员的经验进行建模,导致很多设计不能满足业务需求,或者无法面对业务变化。
为便于对本实施例进行理解,下面对本发明实施例进行详细介绍。
实施例一:
图1为本发明实施例一提供的软件设计方法流程图。
参照图1,该方法包括以下步骤:
步骤S101,获取业务过程;
具体地,业务过程包括多个业务过程节点,业务过程是指多个业务过程节点构成的流程。各个业务过程节点之间有先后顺序限定,而且业务过程节点的内容、方式和责任也具有明确的安排和界定。
步骤S102,确定业务过程中业务过程节点的类型;
步骤S103,根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;
具体地,业务过程节点的类型包括但不限于判断节点和行为节点。判断节点通过一定的条件判断后续流程分支,判断节点具有对应的句子结构,具体为:名词(可以是名词的结构属性)+判断动词+类型;或者,描述词(可以是名词的描述属性)+判断动词+描述词等。其中,名词的属性包括名词的结构属性和名词的描述属性,名词的结构属性是名词,名词的描述属性是描述词,名词的属性通过“的”字短语进行描述。例如,“汽车的轮子”属于名词的结构属性,“轮子”是“汽车”的结构属性;“汽车的颜色”属于名词的描述属性,“颜色”作为“汽车”的描述属性。另外,描述词可以作为某个名词的描述属性,也可以作为动作的描述属性等。
行为节点描述了某个对象执行某个操作,行为节点可根据需求设定对应的句子结构,包括名词+行为动词+宾语,但不限于该句子结构,还可以设定为其他句子结构。
在确定业务过程节点的类型后,为业务过程节点分配对应的句子结构,并使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系。例如,当业务过程节点为行为节点时,选择句型为名词+动词,填入的内容为汽车(名词),启动(动词),则汽车将被加入到词库的名词中,并且关联一个“启动”动作,并且,如果所填词语是“的”字短语的话,会将其维护为对应名词的属性。其中,将规则化的主谓句型输入到词库中,得到名词、描述词和动词等,词库也维护了各个词之间的关系。
步骤S104,将句子结构转化为领域模型;
具体地,领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。领域模型专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系,构成业务和技术之间沟通的桥梁,领域模型的代码实现构成了软件系统的核心业务能力。对领域模型的抽象提炼成为面向对象分析设计的核心过程。
根据上述方法生成领域模型后,可以解决当前软件系统依赖于技术人员的经验的问题。
步骤S105,对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;
步骤S106,根据领域模型的相似度,得到领域模型中词性之间的依赖关系;
步骤S107,根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界。
这里,当业务流程的内容发生变化后,上述步骤也会发生对应变化,使业务流程的变化自动对应到设计的变化,避免了业务需求和软件系统设计不一致的问题。
进一步的,步骤S105包括以下步骤:
步骤S201,对领域模型和业务过程节点中各个词之间的关系进行提炼,得到领域属性、领域方法和领域对象;
步骤S202,根据领域属性,计算属性相似度;
步骤S203,根据领域方法,计算方法相似度;
步骤S204,根据领域对象,计算职责相似度。
进一步的,步骤S106包括以下步骤:
如果领域模型的第一名词和第二名词之间的属性相似度大于第一阈值,第一名词和第二名词之间的方法相似度大于第二阈值,并且第一名词和第二名词之间的职责相似度大于第三阈值,则第一名词和第二名词的公共部分抽象为公共超类。
这里,抽象为公共超类的属性由第一名词和第二名词的公共属性构成,方法由第一名词和第二名词的公共方法构成。
进一步的,该方法还包括:
如果领域模型的第三名词的属性完全包含于第四名词的属性,第三名词的领域方法完全包含于第四名词的领域方法,并且在第三名词的领域对象中,通过第四名词进行替换,则第三名词为第四名词的超类。
进一步的,步骤S107包括以下步骤:
步骤S301,以领域模型中的名词为顶点,根据领域模型中词性之间的依赖关系,构成有向图;
步骤S302,将有向图中的多个顶点集合按照预设规则进行划分,得到领域服务边界。
具体地,以领域模型中的名词为顶点,如果名词A依赖于名词B,则存在一条由名词A指向名词B的边。根据领域模型中词性之间的依赖关系,构成有向图。在有向图中,按照预设规则对有向图中的多个顶点集合{S1,S2,S3,…}进行划分,得到领域服务边界。
预设规则具体为:第一、任意两个顶点之间的交集为空;第二、子类名词和父类名词在相同的顶点集合中;第三、任意两个顶点集合中的名词如果存在依赖关系,则依赖关系为单向。
进一步的,步骤S202包括以下步骤:
步骤S401,如果第一名词的第一属性和第二名词的第二属性是同义词,并且第一属性和第二属性的类型相同,则第一属性和第二属性相同;
步骤S402,如果设定第一属性和第二属性相同的集合为第一集合,则第一名词和第二名词之间的属性相似度为第一集合的元素个数与第一名词的属性个数的比值,第二名词和第一名词之间的属性相似度为第一集合的元素个数与第二名词的属性个数的比值。
进一步的,步骤S203包括以下步骤:
步骤S501,如果第一名词的方法与第二名词的方法为相同句型并且对应的句子中的词均为同义词,则第一名词的方法与第二名词的方法相似;
步骤S502,如果第一名词的方法和第二名词的方法流程相同,则第一名词的方法和第二名词的方法相同。
进一步的,步骤S204包括以下步骤:
步骤S601,设定第一名词的领域对象为第一集合,第二名词的领域对象为第二集合;
步骤S602,计算第一集合和第二集合的交集的元素个数;
步骤S603,计算第一集合和第二集合的并集的元素个数;
步骤S604,计算第一集合和第二集合的交集的元素个数与第一集合和第二集合的并集的元素个数的比值,将比值作为职责相似度。
进一步的,步骤S104包括:
根据文法结构和转换规则,将所述业务过程转换为所述领域模型。
具体的,句子结构包括但不限于更新类型的动作的名词、名词短语、名词和动词的句型,以及名词、动词和名词的句型;将更新类型的动作的名词转化为具有返回结果的领域模型;或者,将名词短语转化为名词对应的领域模型的属性;或者,将名词和动词的句型转化为名词对应的领域模型的方法;或者,将名词、动词和名词的句型转化为以动词后的名词为参数类型的方法。上述句子结构并限于以上结构,还可以根据需求配置对应的句子结构,然后根据转换规则,转换为对应的领域模型。
当句子结构包括更新类型的动作的名词时,将更新类型的动作的名词转化为具有返回结果的领域模型,例如,“更新个人信息”转化为返回结果的领域模型。当句子结构包括名词短语时,将名词短语转化为名词对应的领域模型的属性。其中,名词短语为带有“的”的名词短语。例如,“汽车的轮子”转化为“轮子”,它属于名词的结构属性。当句子结构包括名词和动词的句型时,将名词和动词的句型转化为名词对应的领域模型的方法。例如,“汽车启动”转化为“汽车对应的启动的方法”。当句子结构包括名词、动词和名词的句型时,将名词、动词和名词的句型转化为以动词后的名词为参数类型的方法。例如,“动物吃食物”,将“食物”作为参数类型,转化为“动物吃食物的方法”。
本发明实施例提供了软件设计方法,包括:获取业务过程;确定业务过程中业务过程节点的类型;根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;将句子结构转化为领域模型;对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据领域模型的相似度,得到领域模型中词性之间的依赖关系;根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界,可以根据业务过程自动生成领域模型,极大地满足了业务需求和业务变化。
实施例二:
图2为本发明实施例二提供的软件设计系统示意图。
参照图2,该系统包括:用例管理模块1和模型分析模块2,用例管理模块1和模型分析模块2相连接;
用例管理模块1,用于获取业务过程;确定业务过程中业务过程节点的类型;根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;
模型分析模块2,用于将句子结构转化为领域模型;对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据领域模型的相似度,得到领域模型中词性之间的依赖关系;根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界。
具体地,用例管理模块1包括过程元数据管理模块,过程元数据管理模块用于设定业务过程节点的类型和对应的句子结构,并预先内置常用业务过程节点类型的元数据(例如,判断节点和行为节点)。
用例管理模块1还包括过程定义模块,过程定义模块用于根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系。
模型分析模块2包括句型分析规则模块,句型分析规则模块用于将句子结构转化为领域模型,该模块维护了句子结构到领域对象之间的转换方式。
模型分析模块2还包括模型计算模块,模型计算模块用于对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度。
模型分析模块2还包括模型优化模块,模型优化模块用于根据领域模型的相似度,得到领域模型中词性之间的依赖关系;即在领域模型的相似度的基础上,通过依赖关系的判断,抽象公共基类。
模型分析模块2还包括划分模块,划分模块用于根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界;即基于领域模型中词性之间的依赖关系,将耦合度高的顶点集划分在一块。
参照图3,软件系统包括用例管理模块1和模型分析模块2,还包括模型管理模块3和输出模块4。用例管理模块1、模型分析模块2、模型管理模块3和输出模块4依次连接。
模型管理模块3主要用于提供模型的管理,以及各个模块的管理,并且通过输出模块4按照对应的形式输出。
输出模块4提供模型输出功能,该模块支持模型管理模块3管理的模型和模块按照对应的形式输出,其中,包括文档形式的输出和代码形式的输出等。
本发明实施例提供了软件设计系统,包括:获取业务过程;确定业务过程中业务过程节点的类型;根据业务过程节点的类型为业务过程节点分配对应的句子结构,使业务过程节点根据句子结构将相应的词放入到词库中,并且维护业务过程节点中各个词之间的关系;将句子结构转化为领域模型;对领域模型和业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据领域模型的相似度,得到领域模型中词性之间的依赖关系;根据领域模型中词性之间的依赖关系,对领域模型进行划分,得到领域服务边界,可以根据业务过程自动生成领域模型,极大地满足了业务需求和业务变化。
本发明实施例还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例提供的软件设计方法的步骤。
本发明实施例还提供一种具有处理器可执行的非易失的程序代码的计算机可读介质,计算机可读介质上存储有计算机程序,计算机程序被处理器运行时执行上述实施例的软件设计方法的步骤。
本发明实施例所提供的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
另外,在本发明实施例的描述中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的描述中,需要说明的是,术语“中心”、“上”、“下”、“左”、“右”、“竖直”、“水平”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种软件设计方法,其特征在于,所述方法包括:
获取业务过程;
确定所述业务过程中业务过程节点的类型;
根据所述业务过程节点的类型为所述业务过程节点分配对应的句子结构,使所述业务过程节点根据所述句子结构将相应的词放入到词库中,并且维护所述业务过程节点中各个词之间的关系;
将所述句子结构转化为领域模型;
对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;
根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系;
根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界;
所述业务过程节点的类型包括判断节点和行为节点,所述判断节点通过条件判断流程分支,所述行为节点描述对象执行操作。
2.根据权利要求1所述的软件设计方法,其特征在于,所述对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度,包括:
对所述领域模型和所述业务过程节点中各个词之间的关系进行提炼,得到领域属性、领域方法和领域对象;
根据所述领域属性,计算属性相似度;
根据所述领域方法,计算方法相似度;
根据所述领域对象,计算职责相似度。
3.根据权利要求2所述的软件设计方法,其特征在于,所述根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系,包括:
如果所述领域模型的第一名词和第二名词之间的所述属性相似度大于第一阈值,所述第一名词和所述第二名词之间的所述方法相似度大于第二阈值,并且所述第一名词和所述第二名词之间的所述职责相似度大于第三阈值,则所述第一名词和所述第二名词的公共部分抽象为公共超类。
4.根据权利要求2所述的软件设计方法,其特征在于,所述方法还包括:
如果所述领域模型的第三名词的属性完全包含于第四名词的属性,所述第三名词的领域方法完全包含于所述第四名词的领域方法,并且在所述第三名词的领域对象中,通过所述第四名词进行替换,则所述第三名词为所述第四名词的超类。
5.根据权利要求1所述的软件设计方法,其特征在于,所述根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界,包括:
以所述领域模型中的名词为顶点,根据所述领域模型中词性之间的依赖关系,构成有向图;
将所述有向图中的多个顶点集合按照预设规则进行划分,得到所述领域服务边界。
6.根据权利要求3所述的软件设计方法,其特征在于,所述根据所述领域属性,计算属性相似度,包括:
如果所述第一名词的第一属性和所述第二名词的第二属性是同义词,并且所述第一属性和所述第二属性的类型相同,则所述第一属性和所述第二属性相同;
如果设定所述第一属性和所述第二属性相同的集合为第一集合,则所述第一名词和所述第二名词之间的属性相似度为所述第一集合的元素个数与所述第一名词的属性个数的比值,所述第二名词和所述第一名词之间的属性相似度为所述第一集合的元素个数与所述第二名词的属性个数的比值。
7.根据权利要求3所述的软件设计方法,其特征在于,所述根据所述领域方法,计算方法相似度,包括:
如果所述第一名词的方法与所述第二名词的方法为相同句型并且对应的句子中的词均为同义词,则所述第一名词的方法与所述第二名词的方法相似;
如果所述第一名词的方法和所述第二名词的方法流程相同,则所述第一名词的方法和所述第二名词的方法相同。
8.根据权利要求3所述的软件设计方法,其特征在于,所述根据所述领域对象,计算职责相似度,包括:
设定所述第一名词的领域对象为第一集合,所述第二名词的领域对象为第二集合;
计算所述第一集合和所述第二集合的交集的元素个数;
计算所述第一集合和所述第二集合的并集的元素个数;
计算所述第一集合和所述第二集合的交集的元素个数与所述第一集合和所述第二集合的并集的元素个数的比值,将所述比值作为所述职责相似度。
9.根据权利要求1所述的软件设计方法,其特征在于,所述将所述句子结构转化为领域模型,包括:
根据文法结构和转换规则,将所述业务过程转换为所述领域模型。
10.一种软件设计系统,其特征在于,所述系统包括:
用例管理模块,用于获取业务过程;确定所述业务过程中业务过程节点的类型;根据所述业务过程节点的类型为所述业务过程节点分配对应的句子结构,使所述业务过程节点根据所述句子结构将相应的词放入到词库中,并且维护所述业务过程节点中各个词之间的关系;
模型分析模块,用于将所述句子结构转化为领域模型;对所述领域模型和所述业务过程节点中各个词之间的关系进行计算,得到领域模型的相似度;根据所述领域模型的相似度,得到所述领域模型中词性之间的依赖关系;根据所述领域模型中词性之间的依赖关系,对所述领域模型进行划分,得到领域服务边界;
所述业务过程节点的类型包括判断节点和行为节点,所述判断节点通过条件判断流程分支,所述行为节点描述对象执行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010925458.3A CN112015403B (zh) | 2020-09-04 | 2020-09-04 | 软件设计方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010925458.3A CN112015403B (zh) | 2020-09-04 | 2020-09-04 | 软件设计方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112015403A CN112015403A (zh) | 2020-12-01 |
CN112015403B true CN112015403B (zh) | 2022-05-24 |
Family
ID=73516850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010925458.3A Active CN112015403B (zh) | 2020-09-04 | 2020-09-04 | 软件设计方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112015403B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113946634B (zh) * | 2021-12-20 | 2022-03-11 | 昆仑智汇数据科技(北京)有限公司 | 一种业务数据的领域模型的处理方法、装置及设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744651A (zh) * | 2013-12-20 | 2014-04-23 | 柳州职业技术学院 | 一种面向业务需求的业务处理模型自动生成方法 |
CN105446725A (zh) * | 2014-09-25 | 2016-03-30 | 国际商业机器公司 | 用于模型驱动开发的方法和系统 |
CN109919361A (zh) * | 2019-02-13 | 2019-06-21 | 广西大学 | 一种物流业务交易的协同响应控制模型 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244517A1 (en) * | 2007-03-26 | 2008-10-02 | Sap Ag | Horizontal and vertical filtering of multi-domain business application models |
-
2020
- 2020-09-04 CN CN202010925458.3A patent/CN112015403B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103744651A (zh) * | 2013-12-20 | 2014-04-23 | 柳州职业技术学院 | 一种面向业务需求的业务处理模型自动生成方法 |
CN105446725A (zh) * | 2014-09-25 | 2016-03-30 | 国际商业机器公司 | 用于模型驱动开发的方法和系统 |
CN109919361A (zh) * | 2019-02-13 | 2019-06-21 | 广西大学 | 一种物流业务交易的协同响应控制模型 |
Non-Patent Citations (2)
Title |
---|
Cross-Domain based Data Sharing Scheme in Cooperative Edge Computing;Kai Fan 等;《2018 IEEE International Conference on Edge Computing》;20181231;第1-6页 * |
基于模型驱动架构的管理信息系统领域建模研究;赵聪辉;《硕士电子期刊》;20101015;第1-80页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112015403A (zh) | 2020-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Mich | NL-OOPS: from natural language to object oriented requirements using the natural language processing system LOLITA | |
Bateman | Enabling technology for multilingual natural language generation: the KPML development environment | |
US9361587B2 (en) | Authoring system for bayesian networks automatically extracted from text | |
Thalheim | Towards a theory of conceptual modelling. | |
CN109948710B (zh) | 基于api相似度的微服务识别方法 | |
Krogstie | A semiotic approach to quality in requirements specifications | |
CN109697050B (zh) | 一种基于知识图谱面向电商领域的需求描述模型设计方法 | |
WO2015067968A1 (en) | Transforming natural language requirement descriptions into analysis models | |
WO2022218186A1 (zh) | 个性化知识图谱的生成方法、装置及计算机设备 | |
CN107679221A (zh) | 面向减灾任务的时空数据获取与服务组合方案生成方法 | |
Kottemann et al. | Dynamic metasystems for information systems development | |
Diallo et al. | Toward a formalism of modeling and simulation using model theory | |
CN112015403B (zh) | 软件设计方法和系统 | |
Popova et al. | Multilevel ontologies for big data analysis and processing | |
CN111858962B (zh) | 数据处理方法、装置及计算机可读存储介质 | |
Jordanov et al. | Knowledge-based and intelligent information and engineering systems | |
Isikdag | Towards the implementation of building information models in geospatial context | |
Gokyer et al. | Non-functional requirements to architectural concerns: ML and NLP at crossroads | |
Schmittwilken et al. | A semantic model of stairs in building collars | |
Wang et al. | A Framework for Generic Semantic Enrichment of BIM Models | |
JP2001005651A (ja) | ソフトウェアの決定方法、ソフトウェアの使用方法、記録媒体、処理装置、ソフトウェアの保守方法、ソフトウェアの移植方法、ソフトウェアの管理方法、処理経路図の作成方法、パレット関数の作成方法、パレットの領域の決定方法、パレット連鎖関数の作成方法、位相要素の作成方法、論理要素の作成方法、作用要素の作成方法、ソフトウェアの実装方法、ソフトウェア開発方法、データ構造の置換方法、データ値の置換方法、従来型プログラムの分析方法、ソフトウェア開発管理方法、ソフトウェアの運用管理方法、並列コンピュータ及び判断補助装置 | |
Jo et al. | A BDI agent-based software process. | |
Kumaravel et al. | A multidomain layered approach in development of industrial ontology to support domain identification for unstructured text | |
US9274762B2 (en) | System and method for developing an object-oriented system | |
Li | Consistency checking of natural language temporal requirements using answer-set programming |
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 |