CN109144481B - 面向领域的软件密集型系统的构件化软件配置方法 - Google Patents
面向领域的软件密集型系统的构件化软件配置方法 Download PDFInfo
- Publication number
- CN109144481B CN109144481B CN201810955458.0A CN201810955458A CN109144481B CN 109144481 B CN109144481 B CN 109144481B CN 201810955458 A CN201810955458 A CN 201810955458A CN 109144481 B CN109144481 B CN 109144481B
- Authority
- CN
- China
- Prior art keywords
- configuration
- model
- variable
- domain
- software
- 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/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/10—Requirements analysis; Specification techniques
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提出一种面向领域的软件密集型系统的构件化软件配置方法,属于软件产品线、软件体系结构建模与配置领域。本发明包括:对待分析的软件密集型系统进行领域分析和建模;对待分析系统进行用例建模和业务活动建模;通过用例和活动来识别领域共有的和可变的功能,建立领域模型;建立领域体系的四层架构;识别业务构件;获取产品体系结构;分析可变点的配置影响;配置优化和产品部署,迅速产生新的软件产品。本发明以领域模型为基础,对可变的实现构件进行定制,在考虑可变点之间依赖或互斥关系的情况下,基于配置影响分析,辅助实现配置优先级排序,在保证可变性模型约束的情况下,配置路径尽可能低,节省计算时间,提高软件产品配置的效率。
Description
技术领域
本发明涉及软件产品线、软件体系结构建模与配置领域,具体地,是一种基于领域工程思路,使用面向构件的软件开发技术,而实现的软件产品配置方法。
背景技术
传统的软件产品开发是针对产品的特定需求进行该产品体系结构设计,然后基于体系结构设计实现软件产品。这样当需求变化时,需要全部重新设计和软件开发。随着信息技术的不断发展,软件复用技术已经得到越来越广泛的关注和使用。软件复用是提高软件生产效率和质量的现实可行的途径,领域工程则是成功进行领域特定的软件复用的有效途径,是获取可复用基础设施的主要技术手段。
业务对象模型,也叫领域模型(domain model),是描述业务用例实现的对象模型,是对领域中各系统的共同需求的描述。它是对业务角色和业务实体之间应该如何联系和协作以执行业务的一种抽象。业务对象模型从业务角色内部的观点定义了业务用例。该模型为产生预期效果确定了业务人员以及他们处理和使用的对象(“业务类和对象”)之间应该具有的静态和动态关系。
基于领域分析和领域设计的开发过程为:分析系统的领域特点,进行系统的领域设计,获取系统领域体系结构,领域体系结构中不可变的部分实现为“系统框架”,可变部分实现为不同的“实现构件”。系统框架中提供足够多的反映领域可变性的扩展点,在此扩展点上可以集成各种类型实现构件,创建新的应用系统来满足领域内不同具体应用的特定需求。
在基于领域模型的系统开发中,首先对于领域需求模型进行定制,然后对于可变的实现构件进行配置。基于配置结果,将系统的框架和构件进行集成,生成软件产品。这样当面对新的软件产品需求时候,只需要对可变的实现构件进行配置,在配置完成后,将实现构件部署到集成框架中,实现集成,即可迅速产生新的软件产品。
同时,可变性建模与配置技术是实现软件产品线的关键技术,尤其是复杂集成系统产品线中。复杂集成软件系统往往由涉及不同专业的子系统组成,产品线可变性模型的协同建模困难,尤其是各可变点之间错综复杂的约束关系的建模,且可变性模型可能配置的产品数量与可变点数量呈指数级关系,使得可变性模型配置难度加大。而为软件产品管理人员提供自动或半自动化的配置工具就显得极为重要。软件产品管理人员获取新的软件产品的需求后,利用配置工具提供的配置功能,进行软件产品的配置。配置完成后,生成软件产品的配置文件。将这些配置文件和相应的实现构件部署到系统软件的开发环境后,经过软件的编译、连接功能生成可执行系统。
领域需求模型考虑了系统领域的特性,因此它们包含了领域内所有系统需求的共性和可变性信息。在系统相关领域,如果有新的软件产品需要开发,则需要定制领域需求模型,形成新的软件产品的需求。
在领域分析完成后,进行领域设计,得到系统的领域体系结构。在领域体系结构中,标识了不同系统体系结构的共性和可变的信息。从领域体系结构中,可以分析得到领域体系结构共性的部分和可变的部分,共性的部分可以实现为“软件框架”,而可变的部分中跟逻辑构件相关的部分可以实现为“实现构件”,其中软件框架和实现构件是实现阶段的制品,而领域体系结构是设计阶段的制品。
在面向领域的软件开发过程中,领域模型的建立是软件开发的基础。当开发同一领域的新系统时,可根据领域分析确定新应用的需求规约,以此来指导贯穿于整个开发的设计与组装。大多数软件密集型系统都有领域相关的特点。因此,对软件密集型构件化系统开展领域分析,建立系统的领域模型,是在应用工程中对于具体产品进行定制的产品需求的依据,对于指导后期的系统领域体系结构设计和系统的集成具有重要的意义。
发明内容
基于构件的系统的开发有助于提高系统的复用程度,其关键在于设计满足系统需求的可复用构件,使系统可以更加智能、方便的增加所需功能模块。针对传统软件开发对新需求的适应性差,需要过大重复工作量的现状,本发明对软件密集型系统进行领域分析和设计,并结合可变性建模与配置技术对系统进行领域建模,得到领域体系结构。
本发明提供的一种面向领域的软件密集型系统的构件化软件配置方法,实现步骤包括:
步骤一,对待分析的软件密集型系统进行领域分析,包括:对待分析系统进行上下文分析,定义领域分析的范围和边界;建立领域词汇表;提取相似系统的共性功能和待分析系统的可变性功能;根据对系统的领域分析,重构系统的领域用例图,其中将共性功能作为共性用例,将可变性功能作为可变用例。
步骤二,通过确定与待分析系统交互的人或外部系统、描述待分析系统必须处理的内容的方式来定义待分析系统的范围,对待分析系统进行用例建模和业务活动建模。
步骤三,在完成了用例建模和业务活动建模后,通过用例和活动来识别领域共有的和可变的功能,建立待分析系统的领域模型。
一个领域模型的元素对应需求中的一个或多个用例和活动,通过将用例和活动分组,可以确定所需的领域模型元素。通过对用例和活动的分析抽象,形成领域模型。
步骤四,建立领域体系架构。在识别构件过程开始以前,将界面显示和数据部分从领域模型中分离出来,形成界面层和数据层,领域模型中剩余的部分作为逻辑层的逻辑构件,在处理逻辑层和界面层数据层交互时,抽象出服务层。由此得到系统的四层架构。
步骤五,通过将领域模型和可变性模型的元素分组,识别业务构件。
步骤六,通过对领域体系结构逐步细化得到产品体系结构。
步骤七,分析可变点的配置影响;获得可变点的配置覆盖度,在配置优先级优化的时候,将配置覆盖度高的可变点排在前面。
步骤七中采用一种基于动态切片算法的配置影响分析方法来实现设计模型的配置影响分析,首先建立系统依赖图,然后对产品线体系结构模型进行切片分析,得到最终的配置影响结果。本发明支持对软件产品的配置影响分析,能够快速的获取当前配置影响的其他可变点,基于此,可以指导配置人员判断当前配置对应的设计模型是否正确,并且实现关键可变点的重要度度量。
步骤八,配置优化和产品部署。在配置阶段,配置工程师与交互式配置工具进行交互,交互式配置工具采用一种面向交互配置的产品配置过程优化方法优化软件产品的配置。将配置文件和相应的实现构件部署到集成框架中,实现集成,即可迅速产生新的软件产品。
本发明的优点和积极效果在于:(1)本发明采用了构件技术,方法快捷、高效,在一定程度上解决了传统软件开发在面对新的系统需求时,需要大工作量的重新开发系统的问题。(2)本发明方法基于软件复用的思想,将领域分析、领域模型的概念引入,并对可变性建模技术进行改进,实现了半自动化的需求可变性建模。(3)本发明采用了具有复杂依赖关系的产品线体系结构可变性建模方法,能够更好的表示系统体系结构中的可变点。(4)本发明通过配置影响分析,可以实现关键可变点计算,以辅助实现配置优先级排序,并可以在发现配置冲突时反馈给用户,提高配置的效率。(5)本发明采用了一种面向交互配置的产品配置过程优化方法,将搜索算法引入复杂软件产品线配置过程优化,使得在保证可变性模型约束的情况下,配置路径尽可能低。与现有的精确的或启发式的产品线可变性模型配置优化技术相比,该方法在获得相近优化结果的同时,可以节省计算时间,提高软件产品配置的效率。
附图说明
图1是本发明实施例的船舶综合状态评估与健康管理系统配置总体流程图;
图2是本发明实施例步骤一中的系统上下文模型示意图;
图3是本发明实施例步骤一中特征模型对比和组合示意图;
图4是本发明实施例的船舶综合状态评估与健康管理系统的一级用例图;
图5是本发明实施例步骤三中的船舶综合状态评估与健康管理领域模型图;
图6是本发明实施例步骤八中的基于搜索算法的软件产品配置优化方法流程图。
具体实施方式
为便于本领域一般技术人员理解和实施本发明,现结合附图描述本发明的具体实施方式。
本发明方法结合构件设计技术,使得系统体系结构可表示为共性部分和可变性构件部分,在获得新的系统需求时,只需要对可变的实现构件进行配置,并且配置方法可以对于某些重要的配置,给出辅助配置决策的信息,以辅助用户进行决策。配置决策中给出了用户选择不同配置选项的理由、选择不同配置选项对系统的影响等信息。在配置完成后,基于搜索算法实现软件产品的配置优化,并将实现构件部署到集成框架中,实现集成,即可迅速产生新的软件产品。
本发明以某船舶综合状态评估与健康管理系统为例,来说明本发明面向领域的软件密集型系统的构件化软件配置方法。首先对船舶综合状态评估与健康管理系统进行领域分析,发现和记录船舶综合状态评估与健康管理领域内系统的共性和差异的过程,是系统化、形式化、有效复用的关键。先经过上下文分析,在系统分析员与领域专家广泛沟通的基础之上,定义领域分析的范围和边界,同时收集开展领域分析工作的必要信息;然后领域分析员根据在上下文分析阶段确定的领域分析工作范围以及收集到的领域内相关信息,建立具备描述领域内应用系统数据和能力共性与变化性特征的领域模型,同时与领域用户、领域专家以及领域设计人员所建立的领域模型进行验证和评审。
找出本系统中参与者——船舶维修人员,根据需求建立用例模型,通过用例和活动来识别船舶综合状态评估与健康管理领域共有的和可变的功能,以此为基准分析得出船舶综合状态评估与健康管理领域的领域模型。在以上工作的基础上,建立领域体系结构,在其中标识不同船舶维修辅助决策系统体系结构的共性和可变的信息。从领域体系结构中,可以分析得到领域体系结构共性的部分和可变的部分。船舶综合状态评估与健康管理系统产品获得新需求时,需要对于领域需求模型进行修改,同时修改集成框架。根据软件产品生成系统提供的集成框架修改指南,对于集成框架进行修改,增加软件产品新需求相应的代码实现。在集成框架修改完成后,经过软件开发环境(例如VC2008或VC++6.0)提供的编译、链接功能,重新对于综合状态评估与健康管理系统软件的集成框架进行编译和链接,生成可执行系统。
当软件产品中有新的需求的时候,如图1所示,为实施本发明中所述方法的步骤流程图,现结合图1所示船舶综合状态评估与健康管理系统配置流程模型图,对具体步骤P01~P08详细描述如下:
步骤P01:抽取系统的领域信息,分析系统的领域特点。
本步骤定义的领域分析的目的为:首先,总结目前的综合状态评估与健康管理系统软件实现现状,为软件的架构提供支撑。其次,总结目前的综合状态评估与健康管理系统的现状,为建立综合状态评估与健康管理系统的概念模型提供支撑。再次,明确系统内的概念,建立系统的概念模型,概念建模是在系统开发的需求分析阶段,为促进相关人员之间的理解和沟通,对某个领域的静态特征(事物及其属性)和动态现象(事件及其过程)进行形式化表示和建立文档的活动。最后找出综合状态评估与健康管理系统领域的共性和可变性部分。
上下文模型是一个简单的分析模型,是在系统分析时使用的,确定好后再画用例图。它定义了所开发的系统和系统外部实体(如使用人员、硬件设备和其它信息系统)之间的边界和接口。在上下文模型中,需要划定系统的边界,并表示系统和其他系统或者人员、设备等的交互情况。对船舶综合状态评估与健康管理系统进行上下文分析,得到图2所示的系统上下文模型,从图中可以看出,系统分别与用户、维修保障分系统、数据中心、传感器和手持终端具有交互关系。从整个船舶综合状态评估与健康管理系统领域来说,考虑到未来综合状态评估与健康管理系统的发展,它应该是独立的分系统,与维修保障分系统进行数据的交互。
为建立船舶综合状态评估与健康管理系统的概念模型,首先建立该领域的领域词汇表。建立领域词汇表的主要目的是获得重要的领域词汇,同时,建立领域词汇表使项目的参与者对领域内的问题有一个共同的理解。领域词汇表如表1所示。其中,设备部位是基于传感器对于被监控设备进行监控的部位。测点表示不同的被监控设备的不同部位能采集的数据。
表1领域主要词汇表
为了表示领域中的共性和可变性,定义两个概念:
共性用例:如果一个功能表示在某个具体系统中必须拥有的功能,将这类功能称为共性用例,用构造型Common表示。例如数据接收和诊断结果保存这两个功能,在不同的系统都存在,因此这两个功能表示为共性用例。
可变用例:如果一个功能是领域中根据具体环境而选择使用的功能,这个功能在系统中的实现取决于系统的环境,将这个功能称为可变用例,用构造型Optional表示。
根据对系统的领域分析,重构系统的领域用例图,建立领域用例图的规则如下:
共性功能转化为共性用例,用Common元素表示。
可变性功能转化为可变用例,用Optional元素表示。
共性功能用include关系和它的上层功能连接,表示共性功能不是可选的,必须实现。
可变性功能用extend关系和它的上层功能连接,表示可变性功能是根据具体环境选择实现的。
分析综合状态评估与健康管理系统的基本功能,基于对系统功能的分析,可以分析得到系统的基本功能,同时也对领域内所有系统的共性功能和可变功能的分析,本发明实施例的系统的主要功能模块包含状态检测、故障诊断、健康评估和辅助决策,另外,还包含信息管理模块。分船舶综合状态评估与健康管理系统的一级用例,得到船舶综合状态评估与健康管理系统二级用例。
目前已有的需求可变性建模方法过于依赖领域专家的领域分析能力。而为实现大规模产品线场景下领域需求模型的有效建模,要降低对于领域分析人员的依赖程度,需要一种半自动化的领域需求建模方法。本发明采用了一种半自动化的基于模型对比和组合的产品线领域需求建模方法,利用特征模型实现软件线中的系列产品的不同的关注点的建模,实现了基于属性图的特征模型对比和基于约束的特征模型自动组合。其中,一个特征模型表现为特征的层状结构,特征模型中的每个特征都具有唯一的名称。特征模型必须包含根(Root)特征。每个特征都能够分解为子特征。除了父特征和子特征之间的可变性关系,特征模型的特征之间还存在约束关系:依赖和互斥。依赖(A Require B)表示包含特征A的产品也必须包含特征B,互斥(A Exclude B)表示包含特征A的产品必须不能再包含特征B。
所述的半自动化的基于模型对比和组合的产品线领域需求建模方法中,实现了领域词汇同义词或近义词识别,首先不同建模人员对软件产品线中的一系列相似系统的各组件和组件之间的关系进行建模,建立多个特征模型,然后,在建模人员建立不同的特征模型后,基于特征模型的对比和组合算法辅助建立软件产品线的领域需求模型。如图3所示,船舶综合状态评估和健康管理系统的特征模型对比和组合过程中,待组合的特征模型1中,“被监控设备”是特征“硬件”的子特征,而“被监控设备”又有两个子特征“推进设备”和“辅助设备”;待组合的特征模型2中,“硬件”的子特征有两个,其中“被监控设备”有一个子特征“通信设备”;然后将特征模型进行对比和组合,建立船舶综合状态评估和健康管理系统的领域需求模型。利用该方法为软件产品线的领域需求分析提供了自动化分析的支持,提高了产品线领域需求分析的效率和可扩展性,促进了产品线工程与模型驱动工程的集成研究。
在本发明提出的领域需求建模方法中,不同的建模人员分别建立不同的特征模型,其特征模型之间可能出现重叠,本发明提出了一种模型对比算法来实现不同模型的对比,以分析不同模型的差异,并利用模型的组合算法,实现不同模型的组合,达到领域需求模型的半自动构建。
在特征模型对比算法中,首先根据待对比的基础特征模型和对比特征模型,分别构建属性图baseGraph和compGraph,然后初始化基础特征模型节点集合baseSet和待对比特征模型节点集合compSet,以及节点增加集合nodeAddSet,节点删除集合nodeDeleteSet和节点变更集合notChangeMap,节点匹配集合。通过对特征模型属性图中节点和边的标记,计算与对比特征模型节点的相似度和节点的结构相似度。如果找到与baseNode匹配的唯一节点,则将找到的节点与baseNode形成一组匹配节点加入节点匹配集合,并分别从compSet和baseSet中删除。如果找到多个与baseNode匹配的节点,则利用结构相似度计算方法,寻找与baseNode相似度最高的节点,将该节点与baseNode形成一组匹配节点加入节点匹配集合,并分别从compSet和baseSet中删除。在对比完成后,如果待对比模型节点集合compSet不为空,则将其所有节点加入到节点增加集合。如果基础特征模型节点集合baseSet不为空,则将其所有节点加入到节点删除集合。对于节点匹配集合中的每一组节点,计算其属性的相似度,并将特征属性发生变更的节点加入节点变更集合。模型对比的输出结果为两个属性图的对比结果。假设两个不同的特征模型为M1和M2,匹配的模型元素和关系的集合为M,不匹配的模型元素和关系的集合为{I1,I2},其中,I1和I2分别代表模型M1和模型M2中的元素。不匹配的元素集合中包含:{增加的模型元素、减少的模型元素、变更的模型元素}。
如果存在多个特征模型,则可以采用增量的模型对比和组合方法,首先对比两个特征模型,然后逐渐增加特征模型,实现多个特征模型的对比。在特征模型的对比结束后,会得到模型的匹配元素和各个模型的不匹配的元素,然后利用模型组合规则实现模型的组合,最终得到软件产品线的领域特征模型。本发明中的模型组合准则为:模型组合主要实现将待组合模型准确地组合到基础模型中,同时保持模型的语义不发生变化。对于特征模型的组合,主要实现特征模型元素可变性关系和约束关系的变更。
由于人工构造模型对比与组合的特征模型,这可能也是影响实验结果的一个重要因素。在实际的企业建模过程中,不同建模人员的模型元素命名肯定存在差异,虽然可以采用模型命名规范的方法进行规避,但是还不能完全解决该问题,因此本发明在模型对比的过程中,还实现了同义词检测功能,以辅助解决命名差异问题。
步骤P02:通过确定与本系统交互的人或外部系统、描述系统必须处理的内容的方式来定义待分析系统的范围。参与者是在系统外部与系统进行交互的人或系统。找出参与者有助于确定系统的边界,并有助于理解系统的目的。在本系统中,参与者为船舶维修人员。根据需求建立用例模型,建立船舶综合状态评估与健康管理系统的一级用例图,如图4所示。
通过对船舶综合状态评估与健康管理业务流程的了解,对每个用例建立活动图,在活动图中进一步细化二级用例模型。参数由传感器接收传到系统中,经过数据处理转化为系统需要的数据,然后系统对参数进行分析得到相应的结果。
步骤P03:进行领域设计,结合可变性建模技术建立领域模型。完成了用例建模(用例模型)和业务活动(活动图)的建模后,通过用例和活动来识别船舶综合状态评估与健康管理领域共有的和可变的功能,以此为基准分析得出船舶综合状态评估与健康管理领域的领域模型。
一个领域模型的元素对应需求中的一个或多个用例和活动,通过将用例和活动分组,可以确定所需的领域模型元素。通过对用例和活动的分析抽象,按照船舶运维辅助决策过程的阶段性和其他相关功能,可以形成领域模型,如图5所示,为建立的船舶综合状态评估与健康管理领域模型。在领域模型中标记元素代表的产品或者功能是否可变,例如,在故障诊断中振动参数故障模式识别方法是一个可变的元素,具体表现在不同的船只安装的设备是不同的,在船只运行时所需要的故障模式识别方法也有所区别,在表现具体船只的时候,需要对可变的部分进行改变即可快速的得到需要的产品。
现有的体系结构可变性建模方法大多关注于对于可变性的表示,对于复杂依赖关系的建模能力支持不足。然而在软件/系统体系结构层次,核心体系结构元素和其他可变性元素之间存在复杂的依赖关系,而可变性依赖的建模和管理对于产品线体系结构设计非常重要,目前产品线体系结构建模的主要方法是基于标记的方法,在处理复杂依赖的时候会变得非常困难。本发明采用了具有复杂依赖关系的产品线体系结构可变性建模方法,利用可变点交互视图表示系统中存在的复杂依赖关系,对于复杂的依赖关系进行显式的建模。对系统进行体系结构层次可变性来源分析,进而获取可变点的复杂依赖关系。
本发明建立领域模型的规则是:
以一级用例作为领域模型的根节点,这些用例表示了系统的基本模块划分;
二级用例中不可变的用例转化为领域模型中的不变元素;
二级用例中变化的用例转化为领域模型中的可变元素。
针对领域模型中的每一个可变的元素,本发明中给出与之对应的可变性模型,由于设备和算法的种类和数量目前并不完全掌握,假设现有的设备只有电站柴油机、推进柴油机、燃气轮、调浆泵和燃气轮5种。每种设备都有多种识别方法。
以下是对船舶故障监测与状态评估系统的可变性分析报告:
表2船舶故障监测与状态评估系统可变性分析报告
步骤P04:建立领域体系架构。为了更好描述系统的逻辑功能,本发明将数据部分和界面部分独立出来,形成界面、应用和数据三层架构。在逻辑层主要描述模块的组成和模块之间的关系。在识别构件过程开始以前,将界面显示和数据部分从领域模型中分离出来,形成界面层和数据层,领域模型中剩余的部分作为应用层的逻辑构件,在处理应用层和界面层、数据层交互时,抽象出服务层。由此得到系统的四层架构。
数据层:对数据的存储,数据包括检测得到的设备参数,传感器自身的参数,逻辑层对设备运行参数检查的结果。
应用层:即逻辑层,主要描述各模块的组成和之间的关系。本发明实施例中该层包括数据处理,状态检测,故障诊断,健康检查,辅助决策5个部分。数据处理负责接收传感器发送过来的数据,并对数据进行数据接收、数据分类、数据有效性检查和对外的数据传输。状态检测主要负责根据数据处理提供的参数对传感器自身工作状态进行检查和对设备的工况进行检查。故障诊断主要负责根据合格的数据进行故障的判断和故障的原因的推理,以及和故障原因对应的维修方案。健康检查主要负责对设备的运行状况进行分析,得到运行的趋势和维修维护建议。辅助决策主要负责根据故障诊断和健康检查的结果,结合设备的保养要求,给出设备的运行保养意见。这一层包括了船舶综合状态评估与健康管理系统的主要功能,在这一层中的构件有数据接收构件、数据处理构件、算法构件和功能构件。
服务层:该层主要功能是对数据进行记录和处理,生成报表和对显示进行控制管理。
界面层:该层主要负责界面显示功能,在船舶综合状态评估与健康管理系统中,界面显示主要分为以下几个部分:设备运行参数图,趋势图,结果显示图,建议列表,报警列表和保养计划等。
步骤P05:在完成了领域模型和可变性模型的建模后,需要通过这两种模型识别业务构件。业务构件是完成特定业务功能的整体。一个业务构件对应领域模型和可变性模型中的多个元素,通过将领域模型和可变性模型元素分组,可以确定所需的业务构件。在识别业务构件的时候,将涉及到界面显示和数据的领域模型元素分配到界面层和数据层处理,剩下的逻辑部分的具体识别方法如下:
分离领域模型中的行为和数据部分,将涉及数据操作和数据显示的部分分别作为数据操作构件和数据显示构件处理。
提取领域模型中公共的部分,将公共部分的元素作为独立的构件。
领域模型中不可变的行为表示各个系统中共有的属性,将这些不可变的行为作为不可变构件表示。
领域模型中可变的行为表示了不同系统之间的差异,将可变的行为作为可变构件表示。
可变性模型主要表示不同的系统所拥有的特性,可变性模型的根节点和领域模型中的可变元素相对应,是构件化后可变构件的具体实现。因此将可变性模型的每个叶节点单独作为构件。
步骤P06:通过对领域体系结构逐步细化得到最终的产品体系结构。在确定具体产品的体系结构的时候,以一个虚拟的舰船为例阐述船舶综合状态评估与健康管理系统构件化设计方法的应用,该舰船主要监测的设备是推进柴油机和燃气轮,构件化分析举例的模块是故障诊断和状态监测。首先提取领域需求建立领域模型和可变性模型,根据领域模型建立领域体系结构,通过对领域体系结构逐步细化得到最终的产品体系结构。
根据构件化原则可知,首先需要识别领域共有的构件,这些构件体现了系统的公共业务,根据活动图,建立构件之间的联系得到领域的构件图。经过分析,可以发现故障诊断和健康检查有相似的功能,如都需要对分析的结果保存,都需要将分析的结果显示,因此可以提取公共构件,能够进行重用。
在领域构件图中由于存在具体产品的可变性,因此需要对构件进行划分,分为普通构件和可变构件,可变构件与可变性模型对应表达了具体产品的特性。在故障诊断的构件图中,具体表现为参数识别方法的可变性。由可变性模型可知目前拥有的识别方法的设备种类以及方法的个数。针对不同的识别方法,本发明将每个算法设计成独立的构件,称为算法构件。在进行具体产品的可变性选择时添加到领域模型的可变构件中。
步骤P07:船舶综合状态评估与健康管理系统产品管理人员获取新的软件产品的需求后,基于上面的工作,对可变的实现构件进行软件产品的配置,配置操作分为“可变体选择”和“可变参数赋值”两类。在构件化软件产品的配置过程中,主要操作包含:可配置参数的赋值和构件与参数的选择。针对不同的可配置参数类型,参数的配置包含:类属性的赋值、操作参数的赋值、保护条件赋值、交互片段的参数赋值。
由于可变点之间存在依赖或者互斥等可变性依赖,系统中一个可变点的配置,往往会要求其他可变点也配置或者取消配置。本发明提出一种基于动态切片算法的配置影响分析方法,系统的分析了产品线模型中的依赖关系,考虑可变性依赖关系,建立系统依赖图,并考虑产品线模型的特性,利用动态切片算法的输出实现产品线模型的配置影响分析。通过配置影响分析,可以实现关键可变点计算,以辅助实现配置优先级排序,并可以在发现配置冲突时反馈给用户,提高配置的效率。基于此配置工具可以对于某些重要的配置,给出辅助配置决策的信息,以辅助用户进行决策。配置决策中给出了用户选择不同配置选项的理由、选择不同配置选项对系统的影响等信息。用户在配置过程中,如果选择的配置选项违反了船舶综合状态评估与健康管理系统的领域功能需求模型的约束,系统也可以给出友好的提示。
此配置影响分析方法以构件化的产品线体系结构为基础,通过对于类图、构件图和构件顺序图中依赖关系的分析,建立系统依赖图。在模型解析后,建立系统依赖图,然后在定义的模型切片准则下,对于产品线体系结构模型进行切片分析,并得到最终的配置影响结果。为了度量某个可变点的配置对于其他模型元素的影响,本文定义了可变点配置影响的相关概念:
(1)可变点配置影响范围。将可变点的配置影响的其他模型元素集合定义为可变点的影响范围。设可变点V具有依赖关系的所有节点为D={D1,D2,…,Dn},而V的配置影响集合为I={I1,I2,…,Im},则将m个元素的集合I称为可变点V的配置影响范围,m、n均为正整数。
(2)多可变点配置影响范围。多个不同可变点的配置影响范围可能存在重复,在单个可变点配置影响范围的基础上,将所有的可变点的配置影响范围进行去重处理,获取多个可变点的配置影响范围。
可变点配置影响范围可以基于模型切片算法的输出进行计算,而为了计算多个可变点的配置影响范围,需要把多个可变点的配置操作作为配置影响分析的切片准则,记为{Config1,Config2,…,Configh},其中,Configi是对可变点i的配置操作,i=1,2,…,h,h为正整数。
(3)配置覆盖度。当一个特定的可变点VP在产品配置过程中被配置,VP的配置覆盖度定义为根据可变点VP和该可变点的可变体与其他可变点或可变体的依赖关系,能够自动被配置或者排斥的可变点集合的数目。
基于配置影响分析可以获取可变点的配置覆盖度,在配置优先级优化的时候,将配置覆盖度高的可变点排在前面,可以提高配置的效率。
基于配置影响分析,获取可变点配置的影响元素集合后,可以通过统计影响的模型元素数目计算配置覆盖度。
此外,本发明提供配置后的船舶综合状态评估与健康管理系统功能需求模型的一致性验证功能,保证配置后的船舶综合状态评估与健康管理系统产品符合船舶综合状态评估与健康管理系统的领域功能需求模型的约束。
步骤P08:目前的软件产品线配置工具中提供的配置功能大都是基于用户随意配置的方法,缺少对于用户配置过程的指导。而本发明针对交互配置场景下,配置过程中由于复杂的依赖关系导致的配置复杂度提高的问题,提出一种面向交互配置的产品配置过程优化方法,在基于约束传播的基础上,计算配置的覆盖度。基于搜索算法实现可变性模型的配置过程优化,使得在保证可变性模型约束的情况下,配置路径尽可能低。将搜索算法引入较为复杂的软件产品线配置过程优化。与现有的精确的或启发式的产品线可变性模型配置优化技术相比,该方法在获得相近优化结果的同时,可以节省计算时间,提高软件产品配置的效率。
本发明的配置过程中,配置工程师跟交互式配置工具进行交互,通过对产品线可变性模型进行配置而得到一系列不同的产品。配置工程师从配置工具中接受配置的反馈信息,如:配置的优先级和配置错误。配置工程师的每一个配置操作都触发配置工具寻找剩余可变点的最优配置顺序。
可变点和可变性约束是该配置工具的输入,决策排序依赖于两种类型的约束:可变性依赖和配置优先级约束。这两类约束既可以由用户定义,也可以从相应的系统模型中分析得到,还可以从系统的开发过程中分析得到。这些约束形成森林,森林有一系列不同的树组成,如图6所示,基于森林和树,可以定义优化问题,并且分析得到适应度函数。
假设获得了一系列约束,并且对于每个约束,可以得到一个排序树。在排序树中,节点代表将要配置的可变点,边代表可变点之间的配置优先级。通过将所有的配置优先级约束转换成树,得到了一系列树的集合,称之为森林。在森林中,所有的待配置的可变点都被包含在内。在森林中,为了获得一个产品,所有的待配置的可变点必须被配置。
接下来,利用启发式规则,使用搜索算法进行搜索得到一个树的集合(树1和树2)。应用的启发式规则包含:1)包含所有待配置的可变点;2)具有最少的抽象配置顺序树(Abstract Configuration Ordering Trees(ACOTs));3)手动配置步骤最少。在图6中,树1和树2作为搜索算法的输出,因为两个数涵盖了所有的可变点,并且是所有解决方案中包含树的数目最少(两个)的方案。
树1和树2作为最优的配置方案,可以提供给配置人员,供配置人员作为配置的参考。如果配置人员选择了树1或树2的根节点,手动的实现配置。则在配置后,所有跟配置推理相关的可变点会自动配置。在配置完成后,剩余可变点形成的森林会更新,并且会触发剩余可变点的配置优先级优化,以寻找剩余可变点的配置优先级排序方案,直到所有的可变点都完成配置。
配置完成后,生成软件产品的配置文件。配置工具提供与船舶维修辅助决策构件管理系统集成的功能,通过与构件管理系统建立连接,读取构件管理系统中的构件来实现可执行系统的生成。构件管理系统可以记录不同的产品中使用该构件的次数,以统计构件的相关指标,指导构件的改进工作。利用该配置工具,对于不同的构件进行配置,也可以实现将不同的构件加载到船舶综合状态评估与健康管理系统中,对构件的功能是否符合该构件的设计需求进行验证提供条件。
将这些配置文件和相应的实现构件部署到综合状态评估与健康管理系统软件的开发环境后,以便生成可执行系统。在配置完上述信息后,将配置文件部署到指定位置,并且将构件加载到指定位置。选择软件产品中存放外部引用库的存放路径,将配置中所有构件的二进制编码文件部署到指定路径。最后,配置人员便可以利用维修辅助决策系统的具体开发环境的编译和连接功能生成可执行系统。
Claims (5)
1.一种面向领域的软件密集型系统的构件化软件配置方法,其特征在于,实现步骤包括:
步骤一,对待分析的软件密集型系统进行领域分析,包括:对待分析系统进行上下文分析,定义领域分析的范围和边界;建立领域词汇表;提取相似系统的共性功能和待分析系统的可变性功能;根据对系统的领域分析,重构系统的领域用例图,其中将共性功能作为共性用例,将可变性功能作为可变用例;
步骤二,通过确定与待分析系统交互的人或外部系统、描述待分析系统必须处理的内容的方式来定义待分析系统的范围,对待分析系统进行用例建模和业务活动建模;
步骤三,在完成了用例建模和业务活动建模后,通过用例和活动来识别领域共有的和可变的功能,建立待分析系统的领域模型;
一个领域模型的元素对应需求中的一个或多个用例和活动,通过将用例和活动分组,确定所需的领域模型元素,通过对用例和活动的分析抽象,形成领域模型;
步骤四,建立领域体系架构;在识别构件过程开始以前,将界面显示和数据部分从领域模型中分离出来,形成界面层和数据层,领域模型中剩余的部分作为应用层的逻辑构件,在处理应用层和界面层、数据层交互时,抽象出服务层;
步骤五,通过将领域模型和可变性模型的元素分组,识别业务构件;
步骤六,通过对领域体系结构逐步细化得到产品体系结构;
步骤七,分析可变点的配置影响;获得可变点的配置覆盖度,在配置优先级优化的时候,将配置覆盖度高的可变点排在前面;
步骤八,配置优化和产品部署;
在配置阶段,配置工程师与交互式配置工具进行交互,交互式配置工具采用一种面向交互配置的产品配置过程优化方法优化软件产品的配置;
交互式配置工具的输入是可变点和可变性约束,决策排序依赖可变性依赖和配置优先级约束;
首先,对于每个约束,得到一个排序树;在排序树中,节点代表将要配置的可变点,边代表可变点之间的配置优先级;将所有的配置优先级约束转换成树,得到了一系列树的集合,称之为森林;在森林中,所有的待配置的可变点都被包含在内;在森林中,为了获得一个产品,所有的待配置的可变点必须被配置;
然后,利用启发式规则,使用搜索算法进行搜索得到一个树的集合;应用的启发式规则包含:1)包含所有待配置的可变点;2)具有最少的抽象配置顺序树;3)手动配置步骤最少;
最后,将搜索得到的树的集合作为最优的配置方案提供给配置人员;
配置人员在选择了一种配置方案手动配置后,所有跟配置推理相关的可变点将自动配置;在配置完成后,剩余可变点形成的森林将更新,并且触发剩余可变点的配置优先级优化,以寻找剩余可变点的配置优先级排序方案,直到所有的可变点都完成配置;
将配置文件和相应的实现构件部署到集成框架中,实现集成,产生新的软件产品。
2.根据权利要求1所述的面向领域的软件密集型系统的构件化软件配置方法,其特征在于,所述的步骤一中,建立领域用例图的规则包括:共性用例用Common元素表示,可变用例用Optional元素表示;共性功能用include关系和它的上层功能连接,表示共性功能不是可选的,必须实现;可变性功能用extend关系和它的上层功能连接,表示可变性功能是根据具体环境选择实现的。
3.根据权利要求1所述的面向领域的软件密集型系统的构件化软件配置方法,其特征在于,所述的步骤一中,采用半自动化的基于模型对比和组合的产品线领域需求建模方法为系统建立领域需求模型,首先不同建模人员对软件产品线中的一系列相似系统的各组件及组件间的关系进行建模,建立多个特征模型;然后,基于多个特征模型的对比和组合算法辅助建立软件产品线的领域需求模型。
4.根据权利要求1所述的面向领域的软件密集型系统的构件化软件配置方法,其特征在于,所述的步骤七中,采用一种基于动态切片算法的配置影响分析方法来实现设计模型的配置影响分析,包括:首先建立系统依赖图;然后对产品线体系结构模型进行切片分析,得到最终的配置影响结果,包括如下:
(1)可变点配置影响范围,将可变点配置影响的其他模型元素集合定义为可变点的影响范围;
(2)多可变点配置影响范围,将多个的可变点的配置影响范围进行去重处理,获取多个可变点的配置影响范围;
(3)配置覆盖度,当一个特定的可变点VP在产品配置过程中被配置,VP的配置覆盖度定义为根据可变点VP和该可变点的可变体与其他可变点或可变体的依赖关系,能够自动被配置或者排斥的可变点集合的数目。
5.根据权利要求1所述的面向领域的软件密集型系统的构件化软件配置方法,其特征在于,所述的步骤八中,配置工程师的每一个配置操作都触发配置工具寻找剩余可变点的最优配置顺序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810955458.0A CN109144481B (zh) | 2018-08-21 | 2018-08-21 | 面向领域的软件密集型系统的构件化软件配置方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810955458.0A CN109144481B (zh) | 2018-08-21 | 2018-08-21 | 面向领域的软件密集型系统的构件化软件配置方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109144481A CN109144481A (zh) | 2019-01-04 |
CN109144481B true CN109144481B (zh) | 2021-07-16 |
Family
ID=64790787
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810955458.0A Active CN109144481B (zh) | 2018-08-21 | 2018-08-21 | 面向领域的软件密集型系统的构件化软件配置方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109144481B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992271B (zh) * | 2019-03-31 | 2022-05-13 | 东南大学 | 一种基于代码词汇和结构依赖的分层架构识别方法 |
CN111538294B (zh) * | 2019-11-15 | 2021-08-24 | 武汉理工大学 | 基于数字孪生的工业机器人制造系统可重构系统与方法 |
CN112216375B (zh) * | 2020-09-03 | 2023-05-09 | 南京信息工程大学 | 一种自主构建医疗监测系统的方法 |
CN112182886B (zh) * | 2020-09-30 | 2023-04-07 | 同济大学建筑设计研究院(集团)有限公司 | 工程模型生成方法、装置、计算机设备和存储介质 |
CN113253983B (zh) * | 2021-05-14 | 2024-04-02 | 上海理工大学 | 一种基于驱动设计的离散行业网络协同制造平台建模方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794169A (zh) * | 2005-12-29 | 2006-06-28 | 吉林大学 | 框架定制的模型驱动软件生成方法 |
CN102270136A (zh) * | 2011-08-10 | 2011-12-07 | 清华大学 | 一种需求特征建模到体系结构建模的平滑过渡方法 |
CN104102947A (zh) * | 2014-06-27 | 2014-10-15 | 许继电气股份有限公司 | 基于软构件的产品管控方法 |
CN107589936A (zh) * | 2017-09-13 | 2018-01-16 | 北京航空航天大学 | 基于需求文本与可变性模型追踪关系的产品线可变性配置优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040076930A1 (en) * | 2002-02-22 | 2004-04-22 | Steinberg Linda S. | Partal assessment design system for educational testing |
-
2018
- 2018-08-21 CN CN201810955458.0A patent/CN109144481B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1794169A (zh) * | 2005-12-29 | 2006-06-28 | 吉林大学 | 框架定制的模型驱动软件生成方法 |
CN102270136A (zh) * | 2011-08-10 | 2011-12-07 | 清华大学 | 一种需求特征建模到体系结构建模的平滑过渡方法 |
CN104102947A (zh) * | 2014-06-27 | 2014-10-15 | 许继电气股份有限公司 | 基于软构件的产品管控方法 |
CN107589936A (zh) * | 2017-09-13 | 2018-01-16 | 北京航空航天大学 | 基于需求文本与可变性模型追踪关系的产品线可变性配置优化方法 |
Non-Patent Citations (5)
Title |
---|
Effective Domain Modeling for Mobile Business AHMS (Adaptive Human Management Systems) requirements;Haeng-Kon Kim;《15th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD)》;IEEE;20140901;第1-9页 * |
Product Line Variability Modeling Based on Model Difference and Merge;Kunming Nie et al.;《2012 IEEE 36th Annual Computer Software and Applications Conference Workshops》;IEEE;20121212;第1-5页 * |
基于本体、特征驱动的产品线开发方法;彭鑫;《中国博士学位论文全文数据库信息科技辑》;20070815;第I138-53页 * |
基于领域工程的软件复用技术的研究与实现;丁树贵;《中国优秀硕士学位论文全文数据库信息科技辑》;20090615;第I138-181页 * |
面向对象的领域工程在可定制界面中的研究与应用;李晶;《中国优秀硕士学位论文全文数据库信息科技辑》;20150415;第I138-260页 * |
Also Published As
Publication number | Publication date |
---|---|
CN109144481A (zh) | 2019-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109144481B (zh) | 面向领域的软件密集型系统的构件化软件配置方法 | |
Stumptner | An overview of knowledge‐based configuration | |
Verbeek et al. | Diagnosing workflow processes using Woflan | |
Lu et al. | On managing business processes variants | |
Bagheri et al. | Configuring software product line feature models based on stakeholders’ soft and hard requirements | |
CN116882978B (zh) | 一种基于产品信息框架的深海潜水器运维保障系统 | |
Allier et al. | Restructuring object-oriented applications into component-oriented applications by using consistency with execution traces | |
Wille et al. | Custom-tailored variability mining for block-based languages | |
Song | Customization-oriented design of product-service system | |
Kessentini et al. | Semi-automated metamodel/model co-evolution: a multi-level interactive approach | |
Lu et al. | Zen-CC: An automated and incremental conformance checking solution to support interactive product configuration | |
EP1646940A2 (en) | Designing computer programs | |
Tang et al. | Matrix-based product design and change management | |
Barber et al. | Requirements evolution and reuse using the systems engineering process activities (sepa) | |
Yang et al. | A situation-centric approach to identifying new user intentions using the mtl method | |
Jahan et al. | Detecting emergent behaviors and implied scenarios in scenario-based specifications: A machine learning approach | |
Lau et al. | Discovery and analysis of activity pattern co-occurrences in business process models | |
McCluskey et al. | The automated refinement of a requirements domain theory | |
Odukoya et al. | An architectural description for the application of MBSE in complex systems | |
Boehm et al. | Conflict analysis and negotiation aids for cost-quality requirements | |
Sumesh et al. | Challenges and review of goal-oriented requirements engineering based competitive non-functional requirements analysis | |
Khatoon et al. | Methodology for mapping business process into execution language | |
Nguyen et al. | Graphseq: A graph matching tool for the extraction of mobility patterns | |
Yu et al. | From goal models to feature models: A rule-based approach for software product lines | |
Luis et al. | Knowledge discovery for avionics maintenance support |
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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220129 Address after: 215488 No. 301, building 11, phase II, Taicang University Science Park, No. 27, Zigang Road, science and education new town, Taicang City, Suzhou City, Jiangsu Province Patentee after: Tianhang Changying (Jiangsu) Technology Co.,Ltd. Address before: 100191 No. 37, Haidian District, Beijing, Xueyuan Road Patentee before: BEIHANG University |
|
TR01 | Transfer of patent right |