北京软件造价评估技术创新联盟 李培圣
在2019全球软件产业发展高峰论坛上, 工业和信息化部部长苗圩发表演讲时指出,软件是新一代信息技术的灵魂,引领新一轮科技创新的群体突破,是制造强国和网络强国建设的关键支撑。但我国软件行业发展也面临着不少的困难和挑战,比如软件产业既不大也不强,缺乏具有国际竞争力的龙头企业。软件价值失衡的现象在社会上还比较明显,人才结构性的短缺问题比较突出等等。在会议中,提到未来工信部重点发展五方面内容,其中强调需要优化软件产业环境,推广软件价值评估规范,完善软件价值评估机制,引导各地积极开展软件成本度量标准的试点,建立健全软件工程、软件评测、软件质量保障等第三方的服务体系,持续加大知识产权的保护力度。
在行业发展过程中如何公允、透明地度量软件开发成本,是一个长期困扰软件开发方和应用方的问题。传统方式管理需求依据是相关人员的经验判定。人工管理项目需求说明书效率低,成本高,没有数据积累很难对项目进行全面把握。
现阶段随着人工智能、机器学习技术的兴起,可以利用自然语言处理、数据挖掘、深度学习等技术,探索从已识别的功能点计数文档中抽取特征,建立分析框架,形成功能点辅助审核规则。从功能点计数项中识别出系统的主要功能项及其类别,通过建立文本分析能力,降低大量人工审核工作量,提高预算管理的效率。
人工智能辅助软件预算管理应用实践
图 1 管理平台模型方案
依据国家行业标准 GB∕T 36964-2018《 软件工程 - 软件开发成本度量规范》,结合相关基准数据,通过软件项目需求数据积累,建功能点辅助识别/审核技术,对软件需求进行综合管理,帮助企业更好的实现量化预算管理,提高工作效率,系统主要有以下几个 方面特点:
1.功能点辅助计数/审核
图 2 功能点辅助识别
通过分析现有的需求文档,利用自然语言处理、数据挖掘、机器学习等技术建立功能点辅助识别/审核模型,降低人工分析需求说明书的工作量和耗费,提高功能点审核效率,保证输入数据的质量 ,为后续分析做好准备 。
图3 功能点辅助审核
2.多维度需求管理
建立需求文档完整性自动分析的能力,通过相关规则约束,自动评估需求中描述的功能点是否完整,确保项目需求描述的完整性,提高软件需求质量。对企业需求进行全局管理:当系统中功能需求发生变更时,借助积累的企业数据分析、智能分析项目预算成本、预计项目工期等相关要素,提高项目量化管理过程 。
图 4 项目需求管理
3.智能软件成本评估
结合行业及企业数据模型,针对不同项目非功能要求,对软件项目成本、工期进行智能评估,分析项目资源投入情况,软件总体质量等相关管理要素,帮助管理者从宏观层面全面掌握项目情况,对项目风险提前进行管理 。
图 5 软件成本评估
主要技术方案
人工智能技术在预算合理性评估及IT资产管理领域的探索实践是伴随着机器学习技术的进步,利用自然语言处理、数据挖掘、深度学习等技术,探索从数据工程 , 特征工程, 数据挖掘几个方面对软件原始需求进行处理,建立功能建立分析框架,形成功能点辅助审核规则,从功能点计数项中识别出系统的主要功能点项及其类别。通过建立文本分析能力,降低大量人工审核工作量,提高需求管理的效率。
图6 人工智能识别技术方案
1. 技术路线图设计
①数据工程
首先,从已计数的功能点计数文件中识别相关信息。主要方法是通过读取功能点计数项信息,结合预制审核模型,辅助建立数据模型。
此外,利用自然语言处理和数据挖掘技术,识别出各个模块描述中所有的名词、名词短语、动名词短语。并以此为基础,建立ILF,EI,EQ三种类型的候选集。
②特征工程
数据和特征决定了机器学习的上限,数据是信息的载体,但是原始的数据包含了大量的噪声,信息的表达也不够简练。因此,特征工程的目的,是通过一系列的工程活动,将这些信息使用更高效的编码方式(特征)表示。使用特征表示的信息,信息损失较少,原始数据中包含的规律依然保留。此外,新的编码方式还需要尽量减少原始数据中的不确定因素的影响。特征在很大程度上决定了机器学习应用的成败,因为模型的质量直接由特征决定。特征可被视为一种易于在任意实例上度量的测度。按照集合论的观点,特征本质上是一个从实例空间到由特征的值所构成的集合(即特征的域)的映射。
因此,在本项目中,尽可能多的提取候选集元素的特征,是项目工作的难点和重心。探索从以下几个方面提取数据的特征,包含其出现的位置、与模块名称的相似度、模块内词频、文档内词频等等。
③数据挖掘工程
本阶段是一种透过数理模式来分析企业内储存的大量资料,以找出不同的关键词划分,分析出功能点项的方法,是数据库知识发现中的一个步骤。数据挖掘一般是指从大量的数据中自动搜索隐藏于其中的有着特殊关系性的信息的过程。
在使用数据挖掘的技术建立了模型后,需要用实际数据对模型进行测试和验证。本项目拟采用准确率Precision、召回率Recall等推荐系统常用评价指标,来验证各个预测模型的有效性。准确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。
2.关键技术
①数据工程阶段关键技术:
●模型语料标注
模型语料标注是中文分词技术基础工作,属于自然语言处理技术范畴,对于一句话,通过自己的知识来明白哪些是词,哪些不是词,在需求文档中哪些可以识别为功能项,在数据工程阶段需要人工进行确认,只有达到标注一定数量的样本后,才能进行机器学习,进行模型训练 。
图7 数据标注流程
②特征工程阶段关键技术:
●自然语言理解技术
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。自然语言处理,实现人机间自然语言通信,或实现自然语言理解和自然语言生成比较困难,造成困难的根本原因是自然语言文本和对话的各个层次上广泛存在的各种各样的歧义性或多义性。
依存句法是将句子分析成一颗依存句法树,描述出各个词语之间的依存关系。也即指出了词语之间在句法上的搭配关系,这种搭配关系是和语义相关联的。使用句法结构作为语义解释的第一步;识别短语语块,为信息检索系统的索引服务;构建一个概率句法分析器作为一个优于n元语法的语言模型。这些问题的共同目标是构建这样的一个系统:对于任意的句子都能够主产生证明有用的结构,也就是要构建一个句法分析器。
●数据挖掘算法
数据挖掘算法是根据数据创建数据挖掘模型的一组试探法和计算。 为了创建模型,算法将首先分析您提供的数据,并查找特定类型的模式和趋势。常见的数据算法有:CART决策树、SVM支持向量机、EM期望最大化 、K-Means聚类算法等。
3.软件评估模型
通常企业评估软件成本都是依据专家经验进行评估,通过持续数据积累,可以借助机器学习工具建立软件企业软件成本评估模型。通过考虑综合的模型来评价需求的质量,软件规模大小,非功能影响因素(项目应用领域、质量要求、可靠性要求、安全因素)等要素,建立一个综合的评价模型的需求,并持续监控模型的有效性,整体解决方案,可以参考下图:
图 8 软件成本评估模型
我们采用四个步骤迭代地构建和改进企业综合的评估模型。
第一,采集企业度量指标。根据目前企业采用的质量分析工具,例如功能点方法,结合行业基准数据,进行生产率测算,通过行业标准对指标进行分析,并识别出企业重点关注的维度和指标。
第二,定义成本评估模型。根据各个指标的等级评定结果,设计出各个指标的参数,并结合企业的关注点,定义出综合的质量值计算模型,例如:
第三,相关系数调整:在使用模型考察评估结果的时候,往往存在某一些项目非功能性因素是项目成功的关键因素,为了更加公平的评价结果,采用非功能因素作为调整因子。
第四,持续改进。结合实际的项目成本评估结果,对模型进行不断的校验,在经过不断的迭代后,最终得到符合企业需要,并且能满足企业评估分析、监控要求,提高项目管理水平,降低项目实施风险 。
随着训练数据的逐步积累,人工智能技术在预算合理性评估及IT资产管理的效率会越来越高,可以有效帮助相关管理人员减少工作强度,提高工作效率,在实际工作中发挥更为重要的作用。(文/北京软件造价评估联盟 李培圣 以上内容转自 金融电子化 微信公众号。)
电话:010-62667992
邮箱:csbmk@csbmk.com
地址:海淀区上地信息路11号1至4层整栋1幢三层西310室