一种软件需求分析量化方法及系统的制作方法

文档序号:6518925阅读:779来源:国知局
一种软件需求分析量化方法及系统的制作方法
【专利摘要】一种软件需求分析量化方法及系统,包括:样本获取模块以基本过程为分类对象,获取分类器的样本,每一样本中,待分类项的特征属性值根据历史数据中一基本过程的特征属性的取值确定,输出类别根据历史数据中该基本过程的开发时间确定;分类器生成模块利用获取的样本作为训练样本训练分类器模型,生成分类器;分类模块在确定软件需求划分成的基本过程的各项特征属性取值后,利用所述分类器进行分类,得到相应的输出类别即开发时间。本发明利用历史数据生成分类器,并引入功能点所属模块类型的特征,可以更为准确地估算软件开发时间,对量化软件开发过程,控制软件生命周期有良好效果。
【专利说明】一种软件需求分析量化方法及系统
【技术领域】
[0001]本发明涉及软件需求分析量化,更具体地,涉及一种与功能点分析法(FPA:function point analysis)相关的需求分析量化方法及系统。
【背景技术】
[0002]FPA主要解决如何对软件规模进行度量的问题。FPA由IBM的工程师Al IanAlbrech于20世纪70年代提出,随后被国际功能点用户协会(IFPUG:The InternationalFunction Point Users’Group)提出的 IFPUG 方法继承。功能点估算(Function PointEstimation)是FPA演化而来的一种用来估算项目大小的技术。经由ISO组织,已经有多种功能点估算方法成为国际标准,如=Alain Abran等人提出的全面功能点法,英国软件度量协会提出的IFPUG功能点法,软件度量共同协会提出的C0SMIC-FFP法等等。随着FPA的广泛使用,IFPUG成立了认证委员会,对FPA领域专业技术人员的水平进行认证。
[0003]一个功能点用一定规模的系统数据(内部逻辑文件(ILF)和外部接口文件(EIF))及其处理(外部输入(EI )、外部输出(EO)和外部查询(EQ))来表征,它囊括了为实现特定功能所固有和必需的需求分析、系统设计、编写文档和测试用例、编码、测试、部署、调优、培训等工作。
[0004]现有的功能点估算方法包括以下步骤:
[0005]a)界定的软件范围;
[0006]b)将软件分解为可以被单独估算的功能点;
[0007]c)根据功能点的类型、规模和复杂度计算原始功能点数;
[0008]功能点可以分为两类:数据功能点和事务功能点。数据功能点的规模可以用ILF和EIF的数量来表征,事务功能点的规模可以用ΕΙ、Ε0和EQ的数量来表征。而ILF和EIF的复杂度根据其包含的数据元素类型(DET)和记录元素类型(RET)的数目查表得到,ΕΙ、Ε0和EQ的复杂度根据其包含的DET和引用文件类型(FTR)的数目查表得到。每一功能点的原始功能点数FP=S各个复杂度等级的信息域数量X加权值,其中,复杂度等级分为高、中、低三个等级,ILF、EIF、EI, EO和EQ构成5种信息域,某一复杂度等级的信息域的加权值可以查表得到。
[0009]d)确定调整因子;
[0010]e)根据公式计算用调整因子调整后的功能点数。
[0011]然后,用计算出的总功能点数除以估算的每人每月可以完成的功能点数,即可得估算出软件开发时间。
[0012]但上述估算方法在计算原始功能点数时,过多依靠专家的项目经验所得的表格,没有考虑到功能点所属模块类型的影响,也没有对历史数据进行适当和充分的利用,以此估算得到的软件开发时间不够准确。

【发明内容】
[0013]本发明要解决的技术问题是提供一种更为准确的软件需求分析量化方法及系统。
[0014]为了解决上述问题,本发明提供了一种软件需求分析量化方法,包括:
[0015]以基本过程为分类对象,获取分类器的样本,每一样本中,待分类项的特征属性值根据历史数据中一基本过程的特征属性的取值确定,输出类别根据历史数据中该基本过程的开发时间确定,所述特征属性包括信息域类型、功能复杂度属性、所属模块属性和开发人员属性;
[0016]利用获取的样本作为训练样本训练分类器模型,生成分类器;
[0017]确定软件需求划分成的基本过程的各项特征属性取值,利用所述分类器进行分类,得到相应的输出类别即开发时间。
[0018]较佳地,
[0019]所述分类器为朴素贝叶斯分类器;
[0020]所述利用获取的样本作为训练样本训练分类器模型,生成分类器,包括:计算出每个输出类别在训练样本中出现的概率,以及对于每一特征属性,计算出该特征属性的每一特征属性值在每一输出类别下的条件概率。
[0021]较佳地,
[0022]如基本过程的信息域类型为内部逻辑文件ILF或外部接口文件EIF,功能复杂度属性用数据元素类型DET和记录元素类型RET的数量表征;如基本过程的信息域类型为外部输入E1、外部输出EO或外部查询EQ,功能复杂度属性用数据元素类型DET和引用文件类型FTR的数量表征;
[0023]所述所属模块属性根据软件需求所属行业的业务功能划分确定;
[0024]所述人员属性包括如开发人员的年龄、学历、性别、开发经验、每日或每周工作时间,及使用的语言中的一种或多种。
[0025]较佳地,
[0026]所述待分类项的特征属性值根据历史数据中基本过程的特征属性的取值确定,包括:
[0027]直接将历史数据中基本过程的特征属性的取值作为待分类项的特征属性值,或者,先将历史数据中基本过程的特征属性的取值划分为多个数值区间,将每一个数值区间作为待分类项的一特征属性值。
[0028]较佳地,
[0029]所述利用获取的样本作为训练样本训练分类器模型,生成分类器之后,还包括:
[0030]利用获取的另一部分样本作为测试样本,使用生成的分类器对所述测试样本进行分类并判断分类结果的错误率是否超出设定的阈值,如不超过,则分类器可以使用,如超过,则对所述分类器进行优化处理,然后利用测试样本重新进行测试。
[0031]相应地,本发明提供了一种软件需求分析量化系统,包括:
[0032]样本获取模块,用于以基本过程为分类对象,获取分类器的样本,每一样本中,待分类项的特征属性值根据历史数据中一基本过程的特征属性的取值确定,输出类别根据历史数据中该基本过程的开发时间确定,所述特征属性包括信息域类型、功能复杂度属性、所属模块属性和开发人员属性;
[0033]分类器生成模块,用于利用获取的样本作为训练样本训练分类器模型,生成分类器;
[0034]分类模块,用于确定软件需求划分成的基本过程的各项特征属性取值,利用所述分类器进行分类,得到相应的输出类别即开发时间。
[0035]较佳地,
[0036]所述分类器生成模块生成的是朴素贝叶斯分类器;
[0037]所述分类器生成模块利用获取的样本作为训练样本训练分类器模型,生成分类器,包括:根据所述训练样本,计算出每个输出类别在训练样本中出现的概率,以及对于每一特征属性,计算出该特征属性的每一特征属性值在每一输出类别下的条件概率。
[0038]较佳地,
[0039]所述样本获取模块获取分类器的样本时,如基本过程的信息域类型为内部逻辑文件ILF或外部接口文件EIF,功能复杂度属性用数据元素类型DET和记录元素类型RET的数量表征;如基本过程的信息域类型为外部输入E1、外部输出EO或外部查询EQ,功能复杂度属性用数据元素类型DET和引用文件类型FTR的数量表征;
[0040]所述所属模块属性根据软件需求所属行业业务功能的模块划分确定;
[0041]所述人员属性包括如开发人员的年龄、学历、性别、开发经验、每日或每周工作时间,及使用的语言中的一种或多种。
[0042]较佳地,
[0043]所述样本获取模块在获取样本时,直接采用历史数据中基本过程的特征属性的取值作为待分类项的特征属性值,或者,先将历史数据中基本过程的特征属性的取值划分为多个数值区间,将每一个数值区间作为待分类项的一特征属性值。
[0044]较佳地,
[0045]所述分类器生成模块利用获取的样本作为训练样本训练分类器模型,生成分类器之后,还利用获取的另一部分样本作为测试样本,使用生成的分类器对所述测试样本进行分类并判断分类结果的错误率是否超出设定的阈值,如不超过,则分类器可以使用,如超过,则对所述分类器进行优化处理,然后利用测试样本重新进行测试。
[0046]上述方案引用数据挖掘技术的分类算法如朴素贝叶斯分类算法,利用历史数据生成分类器,并引入功能点所属模块类型的特征,可以更为准确地估算软件开发时间,对量化软件开发过程,控制软件生命周期有良好效果。在生成分类器的过程中,可以通过测试分类器输出数据并与历史数据做比较分析,修正选择的功能点输入特征,将量化的误差控制在一定范围内。
【专利附图】

【附图说明】
[0047]图1是本发明实施例方法的流程图;
[0048]图2是本发明实施例系统的模块图。
【具体实施方式】
[0049]为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。[0050]朴素贝叶斯算法(Naifve Bayesian, NB)是基于贝叶斯定理与特征的条件独立假设的分类算法,能够将一个未知类别的样本归类到某个预先已知分类中,贝叶斯定理如下式:
【权利要求】
1.一种软件需求分析量化方法,包括: 以基本过程为分类对象,获取分类器的样本,每一样本中,待分类项的特征属性值根据历史数据中一基本过程的特征属性的取值确定,输出类别根据历史数据中该基本过程的开发时间确定,所述特征属性包括信息域类型、功能复杂度属性、所属模块属性和开发人员属性; 利用获取的样本作为训练样本训练分类器模型,生成分类器; 确定软件需求划分成的基本过程的各项特征属性取值,利用所述分类器进行分类,得到相应的输出类别即开发时间。
2.如权利要求1所述的方法,其特征在于: 所述分类器为朴素贝叶斯分类器; 所述利用获取的样本作为训练样本训练分类器模型,生成分类器,包括:计算出每个输出类别在训练样本中出现的概率,以及对于每一特征属性,计算出该特征属性的每一特征属性值在每一输出类别下的条件概率。
3.如权利要求2所述的方法,其特征在于: 如基本过程的信息域类型为内部逻辑文件ILF或外部接口文件EIF,功能复杂度属性用数据元素类型DET和记录 元素类型RET的数量表征;如基本过程的信息域类型为外部输入E1、外部输出EO或外部查询EQ,功能复杂度属性用数据元素类型DET和引用文件类型FTR的数量表征; 所述所属模块属性根据软件需求所属行业的业务功能划分确定; 所述人员属性包括如开发人员的年龄、学历、性别、开发经验、每日或每周工作时间,及使用的语言中的一种或多种。
4.如权利要求1或2或3所述的方法,其特征在于: 所述待分类项的特征属性值根据历史数据中基本过程的特征属性的取值确定,包括:直接将历史数据中基本过程的特征属性的取值作为待分类项的特征属性值,或者,先将历史数据中基本过程的特征属性的取值划分为多个数值区间,将每一个数值区间作为待分类项的一特征属性值。
5.如权利要求1或2或3所述的方法,其特征在于: 所述利用获取的样本作为训练样本训练分类器模型,生成分类器之后,还包括: 利用获取的另一部分样本作为测试样本,使用生成的分类器对所述测试样本进行分类并判断分类结果的错误率是否超出设定的阈值,如不超过,则分类器可以使用,如超过,则对所述分类器进行优化处理,然后利用测试样本重新进行测试。
6.一种软件需求分析量化系统,其特征在于,包括: 样本获取模块,用于以基本过程为分类对象,获取分类器的样本,每一样本中,待分类项的特征属性值根据历史数据中一基本过程的特征属性的取值确定,输出类别根据历史数据中该基本过程的开发时间确定,所述特征属性包括信息域类型、功能复杂度属性、所属模块属性和开发人员属性; 分类器生成模块,用于利用获取的样本作为训练样本训练分类器模型,生成分类器; 分类模块,用于确定软件需求划分成的基本过程的各项特征属性取值,利用所述分类器进行分类,得到相应的输出类别即开发时间。
7.如权利要求6所述的系统,其特征在于: 所述分类器生成模块生成的是朴素贝叶斯分类器; 所述分类器生成模块利用获取的样本作为训练样本训练分类器模型,生成分类器,包括:根据所述训练样本,计算出每个输出类别在训练样本中出现的概率,以及对于每一特征属性,计算出该特征属性的每一特征属性值在每一输出类别下的条件概率。
8.如权利要求7述的系统,其特征在于: 所述样本获取模块获取分类器的样本时,如基本过程的信息域类型为内部逻辑文件ILF或外部接口文件EIF,功能复杂度属性用数据元素类型DET和记录元素类型RET的数量表征;如基本过程的信息域类型为外部输入E1、外部输出EO或外部查询EQ,功能复杂度属性用数据元素类型DET和引用文件类型FTR的数量表征; 所述所属模块属性根据软件需求所属行业业务功能的模块划分确定; 所述人员属性包括如开发人员的年龄、学历、性别、开发经验、每日或每周工作时间,及使用的语言中的一种或多种。
9.如权利要求6或7或8述的系统,其特征在于: 所述样本获取模块在获取样本时,直接采用历史数据中基本过程的特征属性的取值作为待分类项的特征属性值,或者,先将历史数据中基本过程的特征属性的取值划分为多个数值区间,将每一个数值区间作为待分类项的一特征属性值。
10.如权利要求6或7或8述的系统,其特征在于: 所述分类器生成模块利用获取的样本作为训练样本训练分类器模型,生成分类器之后,还利用获取的另一部分样本作为测试样本,使用生成的分类器对所述测试样本进行分类并判断分类结果的错误率是否超出设定的阈值,如不超过,则分类器可以使用,如超过,则对所述分类器进行优化处理,然后利用测试样本重新进行测试。
【文档编号】G06F9/44GK103577195SQ201310566545
【公开日】2014年2月12日 申请日期:2013年11月14日 优先权日:2013年11月14日
【发明者】董乔, 陈斌, 季文翀, 杨光 申请人:中国联合网络通信集团有限公司, 联通系统集成有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1