CN117270818B - Mom标准中软件需求类图信息识别与模型生成方法和系统 - Google Patents

Mom标准中软件需求类图信息识别与模型生成方法和系统 Download PDF

Info

Publication number
CN117270818B
CN117270818B CN202311314770.9A CN202311314770A CN117270818B CN 117270818 B CN117270818 B CN 117270818B CN 202311314770 A CN202311314770 A CN 202311314770A CN 117270818 B CN117270818 B CN 117270818B
Authority
CN
China
Prior art keywords
class
line segment
line
relation
inter
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
CN202311314770.9A
Other languages
English (en)
Other versions
CN117270818A (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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN202311314770.9A priority Critical patent/CN117270818B/zh
Publication of CN117270818A publication Critical patent/CN117270818A/zh
Application granted granted Critical
Publication of CN117270818B publication Critical patent/CN117270818B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/48Extraction of image or video features by mapping characteristic values of the pattern into a parameter space, e.g. Hough transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/752Contour matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/761Proximity, similarity or dissimilarity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/42Document-oriented image-based pattern recognition based on the type of document
    • G06V30/422Technical drawings; Geographical maps

Abstract

本发明涉及MOM标准中软件需求类图信息识别与模型生成方法和系统,属于类图识别技术领域,解决了现有技术中识别准确率低,识别范围窄、对标注数据依赖性高的问题。方法包括以下步骤:基于图形轮廓匹配识别软件需求类图中的类组件;基于线段识别得到类间关系连线信息;根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;基于匹配后的类组件和类间关系连线生成类图模型。提高了类图识别及模型生成的准确性和效率。

Description

MOM标准中软件需求类图信息识别与模型生成方法和系统
技术领域
本发明涉及类图识别技术领域,尤其涉及一种MOM标准中软件需求类图信息识别与模型生成方法和系统。
背景技术
制造运行管理(Manufacturing Operations Management,MOM)系统是一种由多种软件构成的制造管理集成平台,包括制造执行管理系统MES(Manufacturing ExecutionSystem)及与制造管理相关的各种功能,而且包含MES主体之外的用于解决具体问题的功能延伸与价值增值部分。国际电工委员会(International Elec-trotechnical Commission,IEC)和国际标准化组织(International Organization for Standardization,ISO)联合将该标准认定为国际标准IEC/ISO 62264[1-5],指导MOM系统的标准化开发。标准中对MOM的定义为通过管理与调度企业的人员、设备、物料和能源等资源,将原材料或零件转化为产品的活动。IEC/ISO 62264标准共有6部分,其中5部分已经发布。IEC/ISO 62264标准的第二部分和第四部分分别介绍了企业控制系统集成和MOM的对象模型和相关属性,其中对象模型主要通过统一建模语言(Unified Modeling Language,UML)类图的形式进行展示,而各个类的属性则由表格的形式呈现。第四部分定义的MOM对象模型中直接引用了许多第二部分定义的基础类及属性,针对这种跨文档引用,IEC/ISO 62264标准中用自然语言进行了详细标注与导航。
由于进行MOM系统开发时需遵循IEC/ISO 62264标准,根据上述介绍可知,该标准在第二部分和第四部分定义了许多MOM对象模型,这些模型对于MOM系统的软件需求建模起着重要的指导作用,然而这些对象模型种类繁多,类属性复杂,且对象模型中的类和其属性不在一个模型中,需要单独查表,甚至有些模型涉及到跨文档定义,耦合度低,数据量大,大大增加了开发人员的无关工作量,故需整合类图与类属性表,并将类图提取为可视化模型,以及对象管理组织(Object Management Group,OMG)官方指定的XMI格式文件。
现有的UML类识别方法不能准确识别类间关系,存在识别准确率低,识别范围窄、对标注数据依赖性高的问题。
发明内容
鉴于上述的分析,本发明实施例旨在提供一种MOM标准中软件需求类图信息识别与模型生成方法,用以解决现有识别准确率低,识别范围窄、对标注数据依赖性高的问题。
一方面,本发明实施例提供了一种MOM标准中软件需求类图信息识别与模型生成方法,包括以下步骤:
基于图形轮廓匹配识别软件需求类图中的类组件;
基于线段识别得到类间关系连线信息;
根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
基于匹配后的类组件和类间关系连线生成类图模型。
基于上述方法的进一步改进,基于线段识别得到类间关系连线信息,包括:
基于OCR识别软件需求类图中的类间关系说明文字;
分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息。
基于上述方法的进一步改进,分别提取软件需求类图中的实线段和虚线段,包括:
采用LSD识别软件需求类图中的实线段;采用背景色覆盖识别得到的实线段;采用Hough算法识别覆盖后的软件需求类图中的虚线段。
基于上述方法的进一步改进,基于线段的位置对提取的实线段和虚线段进行分组,包括:
根据线段的两个端点计算线段斜率,基于线段斜率判断线段类型;所述线段类型包括横线段、纵线段和箭头线段;分别对横线段和纵线段中重合的线段进行合并;
基于实线段的端点的位置判断实线段的相连关系,将相连的实线段分为一个组;
基于虚线段的端点的位置判断虚线段的相连关系,将相连的虚线段分为一个组;
基于箭头线段的端点的位置判断箭头线段的相连关系,将相连的箭头线段分为一个组,得到每组箭头线段对应的箭头;
对每个箭头,将该箭头分入与其距离最近的实线段组或虚线段组中。
基于上述方法的进一步改进,通过构建线段连接树得到每组线段的对应的类间关系连线,包括:
S231、对于每个线段组,若包含箭头,则以与箭头相连的线段为根节点,否则,以端点与其他线段端点距离大于第一阈值的线段为根节点;以根节点为当前节点;
S232、若该组中存在与当前节点相连的线段,则将与当前节点相连的线段作为当前节点的子节点,以当前节点的子节点作为当前节点,返回步骤S232;若该组中的所有线段都已在构建的树中,则得到线段连接树,执行步骤S233;
S233、线段连接树中每一条从叶子节点到根节点的连线为该组线段对应的类间关系连线。
基于上述方法的进一步改进,根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配,包括:
对于每条类间关系连线,分别查找与其起点和终点最近且距离小于预设的距离阈值的类组件,作为该类间关系连线连接的两个类组件。
基于上述方法的进一步改进,基于匹配后的类组件和类间关系连线生成类图模型,包括:
根据匹配后的类组件和类间关系连线生成类图描述文本;
基于所述类图描述文本生成对应的类图模型。
另一方面,本发明实施例提供了一种MOM标准中软件需求类图信息识别与模型生成系统,包括以下模块:
类组件识别模块,用于基于图形轮廓匹配识别软件需求类图中的类组件;
类间关系识别模块,用于基于线段识别得到类间关系连线信息;
匹配模块,用于根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
模型生成模块,用于基于匹配后的类组件和类间关系连线生成类图模型。
基于上述系统的进一步改进,类间关系识别模块基于线段识别得到类间关系连线信息,包括:
基于OCR识别软件需求类图中的类间关系说明文字;
分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息。
基于上述系统的进一步改进,基于匹配后的类组件和类间关系连线生成类图模型,包括:
根据匹配后的类组件和类间关系连线生成类图描述文本;
基于所述类图描述文本生成对应的类图模型。
与现有技术相比,本发明通过首先基于图形轮廓识别类组件,再基于线段识别得到类间关系连线信息,通过位置匹配类组件和类间关系,进而生成对应的类图模型,从而准确识别MOM标准中的所有类以及类间关系,生成对应的类图模型,不依赖于标注数据,提高了类图识别及模型生成的准确性和效率。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件;
图1为本发明实施例MOM标准中软件需求类图信息识别与模型生成方法的流程;
图2为发明实施例的软件需求类图示意图;
图3为发明实施例的类组件填充效果示意图;
图4为发明实施例的类间关系连线类型示意图;
图5为发明实施例识别的实线段效果图;
图6为发明实施例识别的虚线段线段效果图;
图7为发明实施例识别的箭头线段效果图;
图8为发明实施例识别的实线段效果图;
图9为本发明实施例MOM标准中软件需求类图信息识别与模型生成系统的框图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明的一个具体实施例,公开了一种MOM标准中软件需求类图信息识别与模型生成方法,如图1所示,包括以下步骤:
S1、基于图形轮廓匹配识别软件需求类图中的类组件;
S2、基于线段识别得到类间关系连线信息;
S3、根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
S4、基于匹配后的类组件和类间关系连线生成类图模型。
与现有技术相比,本发明通过首先基于图形轮廓识别类组件,再基于线段识别得到类间关系连线信息,通过位置匹配类组件和类间关系,进而生成对应的类图模型,从而准确识别MOM标准中的所有类以及类间关系,生成对应的类图模型,不依赖于标注数据,提高了类图识别及模型生成的准确性和效率。
实施时,MOM标准中的软件需求类图如图2所示。
由于标准提供了类图中所有元素的图例,因此,采用图像轮廓匹配算法识别出MOM标准的软件需求类图中的类组件。实施时,采用OpenCV中的matchShapes方法,该方法可以比较两个图形轮廓的相似度,且不受两个轮廓缩放或旋转的影响,与类图图例和元素的适配度非常高。可以准确识别软件需求类图中的类组件。
实施时,首先采用OpenCV的findContours方法找出类组件框图例的轮廓以及软件需求类图的所有轮廓,然后遍历软件需求类图中的每个轮廓,使用matchShapes方法与图例轮廓进行匹配,由于类组件框的外轮廓一般都连着箭头或连线的轮廓,无法进行匹配,故主要匹配类组件框的内轮廓。
得到软件需求类图中每个类组件的内轮廓后,对每个类组件的类名进行识别。实施时,采用光学字符识别(Optical Character Recognition,OCR)工具识别类组件对应的类名。
实施时,依次对每个类组件进行类名识别。对于某个类组件,首先通过将与原图大小相同的前景色图层作为掩膜mask,然后在mask上用背景色填充单个类组件框内轮廓,接着使用bitwise_and函数将mask与原图进行取与运算,得到该类组件的ROI(region ofinterest),ROI图像只包含单个类组件,其余部分为前景色,从而识别到单个类组件的类名。
实施时,采用Tesseract-OCR工具对得到的每个类组件的ROI进行文字识别。Tesseract-OCR的Python库为pytesseract,使用该库的image_to_string方法读入上一步得到的类ROI图像,即可识别出该类的类名,对于识别出的类名可使用wordninja进行分词以及格式整理,便得到了单个类的类名。
若识别的类名以Model或者(External)结尾,则该类组件为包,否则该类组件为类。
IEC/ISO 62264标准的类和其属性不在一个模型中,因此,识别出对于类型为类的类组件,需要查找对应的类属性。通过类名在类属性库中查找对应的类属性,进行类名和类属性的匹配。标准中的人员类的属性表如表1所示。
表1人员类属性表
需要说明的是,由于类图中的类名字母间隔不均匀,加上OCR识别可能会不精确,故可能出现识别出的类名个别字母缺失或错误,因此在类属性数据库中查找时,首先判断数据库中是否有识别出的类名的表,如果没有,则从类属性数据库的“class”表中取出“name”字段的所有数据,使用Python的difflib库的SequenceMatcher方法依次与OCR识别出的类名进行相似度比较,找出相似度最高的类名,将识别出的类名修改为数据库中的已有类名。处理完后即可去数据库查找类名对应的数据表,获取“Attribute name”字段的所有数据作为该类的类属性。
建立一个名为“classes”的列表来储存识别出的所有类组件,列表的每个元素为单个类组件的内轮廓、类名、类属性列表组成的列表。类型为包的类组件,其类属性列表为空。
在识别类间关系连线信息前,为了排除类组件的干扰,可采用背景色覆盖所有类组件。由于之前识别出的是类组件框的内轮廓,故需要将轮廓向外扩大才能完整覆盖类组件框。实施时,可使用pyclipper库的PyclipperOffset方法即可将内轮廓向外扩大几个像素点,再用背景色填充扩大后的轮廓,即可覆盖类组件框。对于残留的包组件上半部分轮廓,同样可以用matchShapes方法与包组件图例进行匹配,得到所有残留包组件轮廓,再用背景色填充识别出的组件即可,填充类组件后的效果如图3所示。至此已经完整识别出了类组件框的所有信息,并在软件需求类图上去除了类组件框和包组件框的图像,防止干扰后续识别。
具体的,步骤S2中基于线段识别得到类间关系连线信息,包括:
S21、基于OCR识别软件需求类图中的类间关系说明文字;
S22、分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
S23、通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息。
直接识别类间连线会受到类间关系说明文字的干扰,故优先识别说明文字,然后用背景色覆盖文字以去除干扰。
实施时,可采用Tesseract-OCR进行类间关系说明文字的识别。由于识别结果粒度比较小,缺乏完整性,同一个段说明文字可能会被拆成多个文字块,因此,通过距离判断来进行合并。具体的,若两个文字块的上下间距小于预先设定的一个阈值,左侧或右侧中至少一侧是对齐的,另一侧的距离小于预先设定的一个阈值,则认为两个文字块属于同一段类间关系说明文字,将两个文字块合并。
合并处理后,对于每段类间关系说明文字使用wordninja进行分词和格式整理,并且根据说明文字的第一个字符是否为数字来判断这段说明文字是否为多重性文字,如果是多重性文字则加上“multiplicity”标识,否则加上“description”标识。建立一个名为“texts”的列表来储存识别出的所有类间关系说明文字,列表的每个元素为单个类间关系说明文字的位置坐标、文字内容、文字类别组成的列表。最后,用背景色覆盖所有矩形文字块,即可排除类间关系说明文字对后续识别的影响。
标准中的类间关系连线包含5种类型,如图4所示。图4的(a)中连接线不连接箭头,表示关联关系。(b)连接空心三角箭头,表示泛化关系;(c)中连接线箭头,表示依赖关系;(d)中连接空心菱形箭头,表示聚合关系;(e)中连接实心菱形箭头表示组合关系。需要说明的是,标准的类图中存在包和类间通过没有箭头的实线或虚线连接,均表示类对包的依赖关系,将类间关系连线和类匹配后,会将该关系类型进行修正。
空心三角箭头和空心菱形箭头可以直接通过图形轮廓匹配进行识别,识别过程与步骤S1中的类组件框识别过程相同,此处不再赘述。识别到空心箭头后,通过使用OpenCV的moments方法获得该轮廓的矩,再根据矩计算轮廓的中心坐标,即可作为箭头的定位坐标,之后将箭头的类别和坐标保存到箭头列表中,再将识别出的轮廓向外扩大预设数量的像素,用背景色覆盖,即可完成空心箭头的识别并排除干扰。
实心箭头的轮廓与线段相连,无法通过图例进行轮廓匹配,因此基于线段识别来进行箭头识别。
具体的,首先采用LSD识别软件需求类图中的实线段;然后采用背景色覆盖识别得到的实线段;最后采用Hough算法识别覆盖后的软件需求类图中的虚线段,从而分别提取软件需求类图中的实心段和虚线段。
实施时,使用OpenCV的createLineSegmentDetector方法创建一个LSD对象,然后调用该对象的detect方法进行检测,对于检测出来的每条线段使用numpy库的array.ravel方法进行降维,即得到所有的原始实线段,每条线段的结构为一个包含四个元素的列表,每个元素分别为线段起点横坐标、起点纵坐标、终点横坐标、终点纵坐标。识别出实线段如图5所示。
得到实线段后,采用背景色将所有的实线段覆盖,此时软件需求类图中只剩下虚线,可采用Hough算法进行虚线识别实施时,可采用OpenCV中的Hough算法HoughLinesP进行虚线段识别。相比传统方法HoughLines提高了执行效率,且能检测直线的两个端点,便于识别关系线段。对于只剩虚线的软件需求类图先用bilateralFilter过滤噪点,然后使用Canny获得边缘信息,将边缘信息作为HoughLinesP的参数进行虚线段识别得到所有虚线段。识别出的虚线段如图6所示。
得到实线段和虚线段后,基于线段的位置对提取的实线段和虚线段进行分组,具体包括:
S221、根据线段的两个端点计算线段斜率,基于线段斜率判断线段类型;所述线段类型包括横线段、纵线段和箭头线段;分别对横线段和纵线段中重合的线段进行合并;
S222、基于实线段的端点的位置判断实线段的相连关系,将相连的实线段分为一个组;
S223、基于虚线段的端点的位置判断虚线段的相连关系,将相连的虚线段分为一个组;
S224、基于箭头线段的端点的位置判断箭头线段的相连关系,将相连的箭头线段分为一个组,得到每组箭头线段对应的箭头;
S225、对每个箭头,将该箭头分入与其距离最近的实线段组或虚线段组中。
由于识别出的线段中包含组成箭头的线段,因此需要对线段进行分类,即划分成横线段、纵线段、箭头线段。首先遍历识别出的所有线段,对于每条线段获取两个端点的坐标,计算线段斜率的绝对值,如果两端点横坐标相同或斜率绝对值大于预先设置的第一斜率阈值则认为是纵线段,如果斜率绝对值小于等于预先设置的第二斜率阈值则认为是横线段,分别加入横线段列表和纵线段列表中,对于其他斜率范围内的线段即认为是剩余的箭头线段,存入箭头线段的列表中。识别出的箭头线段如图7所示。为了便于后续处理,可调整这些横横线段的坐标使之完全水平,调整纵线段使其完全垂直。
由于经LSD算法识别后会在两侧各识别出一条即共两条实线段,如图8所示,Hough算法会识别出更多琐碎线段,因此需要对重复的线段进行合并。实施时,首先按照横坐标从小到大的顺序对所有横线段进行排序,按照纵坐标从小到大的顺序对所有纵线段进行排序。对排序后的横线段进行遍历,对于每条横线段,若和其之后的一条横线段,垂直距离小于预设的垂直距离阈值,水平距离小于预设的水平距离阈值,则认为两条线段为重合线段,将这两条线段合并为一条线段,即取两条线段的最小横坐标和最大横坐标作为合并后线段两个端点坐标。采用同样的方法将纵线段中重合的线段进行合并,得到合并后的横纵线段列表。
由于在线段合并过程中,相近线段只保留了一条,可能会丢失一些转折点信息(即纵线段和横线段的连接点),因此需要添加丢失的转折点。首先遍历纵线段列表,对于每个纵线段,如果有横线段与该纵线段的端点的距离小于预设的距离阈值,并且该纵线段的端点延长后与该横线段相交,则该纵线段与和横线段应相连,将该纵线段延长至交点,将该横线段根据交点分割成两条新的线段。
为了将零碎的线段连成完整折线,首先要对线段进行整理分组,将所有能相连的线段放进一个线段组。实线段、虚线段和箭头线段要分别进行分组。基于实线段的端点的位置判断实线段的相连关系,将相连的实线段分为一个组;基于虚线段的端点的位置判断虚线段的相连关系,将相连的虚线段分为一个组;基于箭头线段的端点的位置判断箭头线段的相连关系,将相连的箭头线段分为一个组,得到该组箭头对应的箭头类型。
以实线段为例进行说明,首先将第一条实线段放进第一个实线段组,然后依次遍历剩下的每条实线段,对于当前实线段,如果存在实线段组中某条实线段的端点与当前实线段端点的距离小于预设的距离阈值,则当前实线段与该实线段相连,将当前实线段加入该实线段所在的实线段组,若不存在,则新建一个实线段组,将当前实线段加入新建的实线段组中。这种方法由于线段遍历顺序不确定,故可能会导致能相连的线段被分到不同线段组中,因此,对于遍历完所有实线段后得到的实线段组,再对两两实线段组进行比较,如果两个实线段组中有两条实线段的端点距离小于预设的距离阈值,就将两个实线段组合并。
采用同样的过程得到虚线段组和箭头线段组。一个箭头线段组对应一个箭头。根据箭头线段中线段的数量即可得到箭头的类型,即实心菱形箭头或线箭头。
对于每个箭头线段组,计算该组中所有线段的横坐标均值和纵坐标均值为该箭头线段组对应箭头的坐标,前文已得到所有空闲箭头的坐标,因此得到了所有箭头的坐标。根据每个箭头的坐标,在所有线段组中查找端点与该箭头坐标距离最近的线段,即该线段与箭头相连,将箭头分入该线段所在的分组中,根据箭头的类型可得到该线段组的关系类型。对每个箭头,将该箭头分入与其距离最近的实线段组或虚线段组中。例如,实心菱形箭头表示组合关系,线箭头表示依赖关系,空心菱形箭头表示聚合关系,空心三角箭头表示泛化关系。没有箭头的实线段组和虚线段组均表示关联关系。
对所有线段分组后,通过构建线段连接树得到每组线段的对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息,步骤S23具体包括:
S231、对于每个线段组,若包含箭头,则以与箭头相连的线段为根节点,否则,以端点与其他线段端点距离大于第一阈值的线段为根节点;以根节点为当前节点;
S232、若该组中存在与当前节点相连的线段,则将与当前节点相连的线段作为当前节点的子节点,以当前节点的子节点作为当前节点,返回步骤S232;若该组中的所有线段都已在构建的树中,则得到线段连接树,执行步骤S233;
S233、线段连接树中每一条从叶子节点到根节点的连线为该组线段对应的类间关系连线。
每个线段组中都是零碎的线段,而标准中的类间关系大部分为折线,且存在多个类间关系共用一条线段的情况,即每个线段组中可能包含了多条关系折线,为了从一组相连的线段中区分出不同关系折线,需要从起点线段开始建树,遇到转折点就分叉,并获取每条从树根节点到叶节点的路径。实施时,含有箭头的线段组以箭头相连线段为根节点,不含箭头的线段组则任选一条一个端点无连接的线段(即端点与其他线段端点距离大于第一阈值的线段)作为根节点。
接下来就是以建树的方式识别出当前线段组的所有类间连线。Python的treelib插件内置了树的结构,实施时,可使用该库的Tree方法即可建树,使用Node方法创建节点,add_node方法添加节点。以根节点作为当前节点,根据端点间距离寻找下一条与当前节点连接的线段,作为当前节点的子节点,然后递归调用build_tree方法,即使用DFS算法递归建树,直到当前线段组中的所有线段都以节点的方式被添加到树中,此时所有当前节点都不存在相连的线段,则对该线段组建树完毕,得到线段连接树。对于每棵生成树使用treelib的方法paths_to_leaves,即可返回所有从根节点到叶节点的路线,将叶子节点作为类间关系连线的起始线段,根节点作为类间关系连线的终点线段。
对于每条类间关系连线,其起点为叶子节点中不与其他线段相连的端点,若当前线段组包含箭头,则终点为箭头的坐标,否则,终点为终点线段中不与其他线段相连的端点。
对于每条类间关系连线,遍历其包含的所有线段,取出这些线段含有的关系说明文字,如果文字类型是“description”,就将其作为类间关系的描述文字,如果文字类型是“multiplicity”,则判断该多重性文字块中点距离类间关系连线的起点近还是终点近,从而将多重性文字划分给到当前类间关系联系的起点或终点。
具体的,通过以下方式判断线段含有的类间关系说明文字:
对于每个类间关系说明文字的文字块,将其边框逐像素逐渐扩大,若扩大后的边框与某条线段重合,则将该类间关系说明文字划分该该条线段。将类间关系说明文字划分到第一个重合的线段后即停止。
建立名为“relations”的列表保存所有类间关系连线信息,每个元素为类间关系连线的起点(坐标与多重性文字)、终点(坐标与多重性文字)、关系类型、类间关系说明文字、组成连线的线段共5个信息组成的列表。至此已经完整识别出了类图中的所有类间关系连线并储存了所有相关信息。
经过以上的所有工作,已经识别出了类组件的所有信息保存在“classes”列表中,以及所有类间关系连线信息保存在“relations”列表中,接下来只需要找到每条类间关系连线起点和终点相连的类组件,即可完成整张类图信息的识别。
根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配,具体的包括:
对于每条类间关系连线,分别查找与其起点和终点最近且距离小于预设的距离阈值的类组件,作为该类间关系连线连接的两个类组件。
实施时,对于每条类间关系连线,遍历所有类组件,取出类组件的轮廓信息,使用OpenCV的pointPolygonTest方法可获得一个轮廓与一个点的距离,使用这个方法计算关系连线起点和终点到类组件轮廓的距离,找到距离的最小值,取离起点和终点最近的轮廓分别作为与该关系连线起点和终点相连的类组件。
标准中的关联类是与关联关系连线连接的,按照上述过程存在类间关系连线的起点或终点不存在对应的类组件,将该类间关系连线已确定的类组件标记为关联类此时,遍历所有线段,判断该起点或终点与线段的距离是否小于预设的距离阈值,若是,则根据该线段所属的类间关系连线连接的两个类组件,确定该起点后终点连接的类组件,即将该线段所属的类间关系连线连接的两个类组件标记为该起点或终点连接的类组件。如图2中Operations Segment Dependency,该Operations Segment Dependency类通过虚线与Operations Segment类间的实线段连接,Operations Segment Dependency类为关联类,其关联的为Operations Segment类。
IEC/ISO 62264标准中类和包存在没有箭头的实线或细线连接,因此,对于类型为关联关系的类间关系连线,若其起点和终点相连的类组件分别为类或包,则将该类间关系连线的关系类型修改为依赖关系,表示类对包的依赖关系。
至此已完整识别出类图中的所有类间关系,并保存在“relations”列表中。
基于匹配后的类组件和类间关系连线生成类图模型,具体包括:
S41、根据匹配后的类组件和类间关系连线生成类图描述文本;
S42、基于所述类图描述文本生成对应的类图模型。
PlantUML工具定义了一种从文本到UML类图的语言,故可创建纯文本文档,按照PlantUML的语法将之前识别出的信息编入文档,然后执行PlantUML命令生成可视化UML类图模型。
实施时,首先生成类和包的定义,由于IEC/ISO 62264标准中的类名/包名中含有空格,而PlantUML只接受纯字符类名/包名,故需在类定义中使用as关键字来指定一个别名,该别名由原本类名/包名去掉空格形成驼峰形式,在原类名/包名周围加上引号,例如“Operations Segment”类应定义成“class“Operations Segment”asOperationsSegment”。定义完类名/包名后加上大括号。包无需定义属性,类需要添加其属性定义,从数据库中匹配的类属性按顺序输出到类的大括号中,即完成对一个类的定义。
接下来就是定义类间关系,每一个类间关系的定义格式为“类A多重性A关系箭头多重性B类B:关系说明”。
每种类间关系在PlantUML中对应了不同格式的关系箭头,聚合关系对应“--o”,组合关系对应“--*”,泛化关系对应“--|>”,关联关系对应“--”,依赖关系对应“..>”。
如图2所示,类Parameter Specification类和其自身有组合关系,对应的描述语句为“Maybe made up of”,因此对应的类间关系描述语句为:
ParameterSpecification“0…n”--*ParameterSpecification:Maybe made upof。
对于关联类,首先按以上格式定义类A和类B之间的关联关系,然后按以下格式定义关联类“(类A,类B)..关联类”定义关联类。
例如,Operation Segment类自身具有关联关系,首先生成关联关系语句OperationSegment“0…n”--“0…n”OperationSegment:Has an execution dependencyon。
然后生成关联类定义:(OperationSegment,OperationSegment)..OperationSegmentDependency。
所有类和类间关系定义好后,在文本的首尾分别加上“@startuml”和“@enduml”即生成了整个类图的描述文本。
得到类图描述文本后,可使用“java-jar plantuml.jar model.txt”命令即可生成类图描述文本对应的UML类图模型。
使用“java-jar plantuml.jar-txmi model.txt”命令可生成UML类图模型对应的XMI格式文件。
通过以下实验数据说明本发明的效果。
本实验所有数据均来源于IEC/ISO 62264标准第二和第四部分,主要包括35张类图和128张类属性表,本发明对类图的整体识别效果如表2所示:
表2算法及对应数据集
将各部分算法准确率相乘可以得到类组件的识别准确率为99.15%,类间关系连线的识别准确率为95.09%,类组件与连线的匹配准确率为99.67%。本发明的识别准确率较高,可以大大提高模型生成的效率。
选取了5个类图,进行自动识别与手动建模实验,记录各自用时,其中手动建模用时分为创建类、添加类属性、添加类间关系三部分,实验结果如表3所示。
表3自动识别与手动建模对比
表中类图模型的复杂度依次递增,可以看到自动识别面对最复杂的UML类图的处理时间也不超过6秒,而人工建模花费的时间随着复杂度的增加陡然升高,其中最主要的时间花费在查看类属性表格,手动录入多个类属性,以及录入关系说明文字。
上表中最简单的UML类图仅包含一个类组件和一个类间关系,自动识别的效率是手动建模的约180倍,而随着类图复杂度的上升,手动建模与自动识别的时间比越来越大,自动识别的效率达到了手动建模的320倍,大幅提升了开发人员的工作效率。
本发明实施例提供了一种MOM标准中软件需求类图信息识别与模型生成系统,如图9所示,包括以下模块:
类组件识别模块,用于基于图形轮廓匹配识别软件需求类图中的类组件;
类间关系识别模块,用于基于线段识别得到类间关系连线信息;
匹配模块,用于根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
模型生成模块,用于基于匹配后的类组件和类间关系连线生成类图模型。
优选的,类间关系识别模块基于线段识别得到类间关系连线信息,包括:
基于OCR识别软件需求类图中的类间关系说明文字;
分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息。
优选的,基于匹配后的类组件和类间关系连线生成类图模型,包括:
根据匹配后的类组件和类间关系连线生成类图描述文本;
基于所述类图描述文本生成对应的类图模型。
上述方法实施例和系统实施例,基于相同的原理,其相关之处可相互借鉴,且能达到相同的技术效果。具体实施过程参见前述实施例,此处不再赘述。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。

Claims (5)

1.一种MOM标准中软件需求类图信息识别与模型生成方法,其特征在于,包括以下步骤:
基于图形轮廓匹配识别软件需求类图中的类组件;
基于线段识别得到类间关系连线信息;
根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
基于匹配后的类组件和类间关系连线生成类图模型;
基于线段识别得到类间关系连线信息,包括:
基于OCR识别软件需求类图中的类间关系说明文字;
分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息;
分别提取软件需求类图中的实线段和虚线段,包括:
采用LSD识别软件需求类图中的实线段;采用背景色覆盖识别得到的实线段;采用Hough算法识别覆盖后的软件需求类图中的虚线段;
基于线段的位置对提取的实线段和虚线段进行分组,包括:
根据线段的两个端点计算线段斜率,基于线段斜率判断线段类型;所述线段类型包括横线段、纵线段和箭头线段;分别对横线段和纵线段中重合的线段进行合并;
基于实线段的端点的位置判断实线段的相连关系,将相连的实线段分为一个组;
基于虚线段的端点的位置判断虚线段的相连关系,将相连的虚线段分为一个组;
基于箭头线段的端点的位置判断箭头线段的相连关系,将相连的箭头线段分为一个组,得到每组箭头线段对应的箭头;
对每个箭头,将该箭头分入与其距离最近的实线段组或虚线段组中;
通过构建线段连接树得到每组线段的对应的类间关系连线,包括:
S231、对于每个线段组,若包含箭头,则以与箭头相连的线段为根节点,否则,以端点与其他线段端点距离大于第一阈值的线段为根节点;以根节点为当前节点;
S232、若该组中存在与当前节点相连的线段,则将与当前节点相连的线段作为当前节点的子节点,以当前节点的子节点作为当前节点,返回步骤S232;若该组中的所有线段都已在构建的树中,则得到线段连接树,执行步骤S233;
S233、线段连接树中每一条从叶子节点到根节点的连线为该组线段对应的类间关系连线。
2.根据权利要求1所述的MOM标准中软件需求类图信息识别与模型生成方法,其特征在于,根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配,包括:
对于每条类间关系连线,分别查找与其起点和终点最近且距离小于预设的距离阈值的类组件,作为该类间关系连线连接的两个类组件。
3.根据权利要求1所述的MOM标准中软件需求类图信息识别与模型生成方法,其特征在于,基于匹配后的类组件和类间关系连线生成类图模型,包括:
根据匹配后的类组件和类间关系连线生成类图描述文本;
基于所述类图描述文本生成对应的类图模型。
4.一种MOM标准中软件需求类图信息识别与模型生成系统,其特征在于,包括以下模块:
类组件识别模块,用于基于图形轮廓匹配识别软件需求类图中的类组件;
类间关系识别模块,用于基于线段识别得到类间关系连线信息;
匹配模块,用于根据类组件的位置和类间关系连线的端点位置将类组件和类间关系连线进行匹配;
模型生成模块,用于基于匹配后的类组件和类间关系连线生成类图模型;
类间关系识别模块基于线段识别得到类间关系连线信息,包括:
基于OCR识别软件需求类图中的类间关系说明文字;
分别提取软件需求类图中的实线段和虚线段;基于线段的位置对提取的实线段和虚线段进行分组;
通过构建线段连接树得到每组线段对应的类间关系连线,基于类间关系连线和类间关系说明文字得到类间关系连线信息;
分别提取软件需求类图中的实线段和虚线段,包括:
采用LSD识别软件需求类图中的实线段;采用背景色覆盖识别得到的实线段;采用Hough算法识别覆盖后的软件需求类图中的虚线段;
基于线段的位置对提取的实线段和虚线段进行分组,包括:
根据线段的两个端点计算线段斜率,基于线段斜率判断线段类型;所述线段类型包括横线段、纵线段和箭头线段;分别对横线段和纵线段中重合的线段进行合并;
基于实线段的端点的位置判断实线段的相连关系,将相连的实线段分为一个组;
基于虚线段的端点的位置判断虚线段的相连关系,将相连的虚线段分为一个组;
基于箭头线段的端点的位置判断箭头线段的相连关系,将相连的箭头线段分为一个组,得到每组箭头线段对应的箭头;
对每个箭头,将该箭头分入与其距离最近的实线段组或虚线段组中;
通过构建线段连接树得到每组线段的对应的类间关系连线,包括:
S231、对于每个线段组,若包含箭头,则以与箭头相连的线段为根节点,否则,以端点与其他线段端点距离大于第一阈值的线段为根节点;以根节点为当前节点;
S232、若该组中存在与当前节点相连的线段,则将与当前节点相连的线段作为当前节点的子节点,以当前节点的子节点作为当前节点,返回步骤S232;若该组中的所有线段都已在构建的树中,则得到线段连接树,执行步骤S233;
S233、线段连接树中每一条从叶子节点到根节点的连线为该组线段对应的类间关系连线。
5.根据权利要求4所述的MOM标准中软件需求类图信息识别与模型生成系统,其特征在于,基于匹配后的类组件和类间关系连线生成类图模型,包括:
根据匹配后的类组件和类间关系连线生成类图描述文本;
基于所述类图描述文本生成对应的类图模型。
CN202311314770.9A 2023-10-11 2023-10-11 Mom标准中软件需求类图信息识别与模型生成方法和系统 Active CN117270818B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311314770.9A CN117270818B (zh) 2023-10-11 2023-10-11 Mom标准中软件需求类图信息识别与模型生成方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311314770.9A CN117270818B (zh) 2023-10-11 2023-10-11 Mom标准中软件需求类图信息识别与模型生成方法和系统

Publications (2)

Publication Number Publication Date
CN117270818A CN117270818A (zh) 2023-12-22
CN117270818B true CN117270818B (zh) 2024-04-09

Family

ID=89212202

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311314770.9A Active CN117270818B (zh) 2023-10-11 2023-10-11 Mom标准中软件需求类图信息识别与模型生成方法和系统

Country Status (1)

Country Link
CN (1) CN117270818B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239285A (zh) * 1995-01-25 1999-12-22 Dva公司 用于光盘系统中的模拟-数字变换器和组件及使用方法
CN105656952A (zh) * 2014-11-11 2016-06-08 田鹏 应用级可靠的数据交换平台
CN106202662A (zh) * 2016-06-30 2016-12-07 中国电力科学研究院 一种配电网网架图自动绘制映射方法
CN111814923A (zh) * 2020-09-10 2020-10-23 上海云从汇临人工智能科技有限公司 一种图像聚类方法、系统、设备和介质
CN111881705A (zh) * 2019-09-29 2020-11-03 深圳数字生命研究院 数据处理、训练、识别方法、装置和存储介质
CN114724117A (zh) * 2022-06-07 2022-07-08 腾讯科技(深圳)有限公司 车道线关键点数据生成方法、装置、电子设备及存储介质
CN115033212A (zh) * 2022-06-21 2022-09-09 中国商用飞机有限责任公司北京民用飞机技术研究中心 航电系统图元模型一体化构建方法、装置、计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2836611A1 (fr) * 2002-02-28 2003-08-29 Bull Sa Procede de communication reseau avec une carte a puce par messages asynchrones
US10445877B2 (en) * 2016-12-30 2019-10-15 International Business Machines Corporation Method and system for crop recognition and boundary delineation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1239285A (zh) * 1995-01-25 1999-12-22 Dva公司 用于光盘系统中的模拟-数字变换器和组件及使用方法
CN105656952A (zh) * 2014-11-11 2016-06-08 田鹏 应用级可靠的数据交换平台
CN106202662A (zh) * 2016-06-30 2016-12-07 中国电力科学研究院 一种配电网网架图自动绘制映射方法
CN111881705A (zh) * 2019-09-29 2020-11-03 深圳数字生命研究院 数据处理、训练、识别方法、装置和存储介质
CN111814923A (zh) * 2020-09-10 2020-10-23 上海云从汇临人工智能科技有限公司 一种图像聚类方法、系统、设备和介质
CN114724117A (zh) * 2022-06-07 2022-07-08 腾讯科技(深圳)有限公司 车道线关键点数据生成方法、装置、电子设备及存储介质
CN115033212A (zh) * 2022-06-21 2022-09-09 中国商用飞机有限责任公司北京民用飞机技术研究中心 航电系统图元模型一体化构建方法、装置、计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Classification Framework for Software Component Models;I. Crnkovic 等;《 IEEE Transactions on Software Engineering》;20100927;第37卷(第05期);593-615 *
基于设计模式数据访问组件的设计和实现;高瑞明 等;《现代计算机(专业版)》;20080526(第02期);122-123 *

Also Published As

Publication number Publication date
CN117270818A (zh) 2023-12-22

Similar Documents

Publication Publication Date Title
US7305612B2 (en) Systems and methods for automatic form segmentation for raster-based passive electronic documents
US7746341B2 (en) System and method for parsing point-cloud data
JPH09198456A (ja) グラフをベースとしたテーブル認識方法
WO2023138023A1 (zh) 基于图神经网络的多模态文档信息抽取方法、设备、介质
CN111414165B (zh) 界面代码的生成方法及设备
US20030214503A1 (en) Methods using specific attributes and graph grammars in graph-based techniques for feature recognition
CN114005123A (zh) 一种印刷体文本版面数字化重建系统及方法
US7046847B2 (en) Document processing method, system and medium
CN112579086B (zh) 一种适配多平台前端View的模板构建方法
CN112990175B (zh) 手写中文字符的识别方法、装置、计算机设备和存储介质
CN115392188A (zh) 基于不可编辑的图文类图像生成可编辑文档的方法及装置
JPH11184894A (ja) 論理要素抽出方法および記録媒体
CN117270818B (zh) Mom标准中软件需求类图信息识别与模型生成方法和系统
CN110414497A (zh) 对象电子化的方法、装置、服务器及存储介质
CN112084103A (zh) 界面测试方法、装置、设备和介质
CN114037828A (zh) 组件识别方法、装置、电子设备及存储介质
CN110909187B (zh) 图像存储方法、图像读取方法、图像存储器及存储介质
CN115033936A (zh) 一种用于SolidWorks系统的物料模型管理方法
CN114820870A (zh) 核电流程图辅助绘制方法、装置、计算机设备和存储介质
Deniziak et al. Query-by-shape interface for content based image retrieval
CN107133391A (zh) 施工图纸的生成方法和系统
CN113779218B (zh) 问答对构建方法、装置、计算机设备和存储介质
CN111659121B (zh) 处理效果图的方法、装置、电子设备及可读存储介质
CN110956022A (zh) 一种单据文档的处理方法及其系统
US7222298B2 (en) Advanced JAVA rich text format generator

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