CN104978268B - 软件功能点实时自动化分析方法 - Google Patents
软件功能点实时自动化分析方法 Download PDFInfo
- Publication number
- CN104978268B CN104978268B CN201510383973.2A CN201510383973A CN104978268B CN 104978268 B CN104978268 B CN 104978268B CN 201510383973 A CN201510383973 A CN 201510383973A CN 104978268 B CN104978268 B CN 104978268B
- Authority
- CN
- China
- Prior art keywords
- function
- mrow
- parameter
- software
- points
- 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.)
- Expired - Fee Related
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 33
- 238000004364 calculation method Methods 0.000 claims abstract description 24
- 150000001875 compounds Chemical class 0.000 claims description 21
- 238000000034 method Methods 0.000 claims description 18
- 238000013461 design Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 claims description 7
- 241000208340 Araliaceae Species 0.000 claims description 6
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 6
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 6
- 235000008434 ginseng Nutrition 0.000 claims description 6
- 230000032683 aging Effects 0.000 abstract description 5
- 238000007726 management method Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000000205 computational method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000009394 selective breeding Methods 0.000 description 1
- 238000003696 structure analysis method Methods 0.000 description 1
- 238000005303 weighing Methods 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明涉及计算机软件技术领域,提供了软件功能点实时自动化分析方法,包括:设计一款软件,该款软件包括模块、数据实体、功能、对象、数据实体字段、功能参数和对象属性,并由上到下分层次的构成树状结构,功能参数分为输入参数和输出参数;根据树状结构,从底层向高层逐级计算功能点数,计算对象属性的功能点数;根据对象属性的功能点数计算对象的功能点数;计算输入参数的功能点数;计算输出参数的功能点数;根据输入参数和输出参数的功能点数计算功能的功能点数;根据对象的功能点数和功能的功能点数计算模块的功能点数,最后计算出软件的功能参数。本发明实现了全自动化计算,进而提高时效性和准确性。
Description
技术领域
本发明涉及计算机软件技术领域,特别涉及软件功能点实时自动化分析方法。
背景技术
软件规模的度量具有非常重要的意义。通过度量软件的规模,开发商就能够有效的管理和控制需求的变更、开发成本与开发周期,能够很方便地对项目团队进行绩效管理。常见的软件规模度量方法有代码行数和功能点数,其中代码行数很容易由自动化工具统计,但是不能真实反映软件的规模,功能点分析方法是一种最重要也是最有效的软件规模度量方法,它可以在项目早期就对软件项目进行测量,并在开发过程中不断地更新数据,从而实现一种持续一致的管理。这种方法比代码行分析方法更加有效和准确。
目前功能点分析方法主要是一个人工分析和统计的过程,时效性和准确性较低,具体流程为:1)确定系统边界;2)在系统边界范围内识别逻辑事务;3)计算每一个逻辑事务的功能点数,4)计算所有逻辑事务功能点数之和,得到软件的功能点总数,也就是软件的规模指数。具体计算公式如下:
a)标识每一个逻辑事务,逻辑事务是最低层次的业务处理过程,它由三个部分构成:输入、处理、输出;
b)计算每一个逻辑事务的输入元素的数量Ni、引用数据实体的数量Ne、输出元素的数量No;
c)计算每一个逻辑事务的功能点数(FPI),FPI=Wi×∑Ni+We×∑Ne+Wo×∑No,其中Wi、We、Wo分别是输入元素数量、数据实体数量、输出元素数量的权重值;
如上的功能点数计算方法存在时效性低、准确性低的问题。由于人工计算需要一个较长的时间,而在此过程中,软件需求很可能已经发生变化,因此度量结果可能无法实时反映软件当前的实际规模。现有的方案中并没有对参数内部以及数据实体属性内部进行分析,没有考虑这些参数和数据实体属性内部对软件规模的影响,例如:分别为10和1000的字符串参数,在进行数据验证或字符串生成时,后者通常需要更多的处理代码。在现有方案中,如果加入对参数和数据实体属性的考虑,将会大大增加分析的复杂性,人工很难完成,进一步降低时效性和准确性。
因此,计算机软件技术领域急需一种软件功能点实时自动化结构分析方法,能够解决上述问题,实现全自动化计算,进而提高时效性和准确性。
发明内容
本发明提供了软件功能点实时自动化分析方法,技术方案如下:
软件功能点实时自动化分析方法,包括如下步骤:
步骤一,设计一款软件,该款软件包括模块、数据实体、功能、对象、数据实体字段、功能参数和对象属性,并由上到下分层次的构成树状结构,具体关系为:
一个软件包括一组数据实体和一组模块;一个数据实体包括一组字段,一个模块包括一组功能和一组对象;一个功能包括一组参数,参数分为输入参数和输出参数;一个对象包括一组对象属性;
数据实体字段、输入参数和对象属性是简单类型的数据;输出参数分为简单类型的数据和复合类型的数据,简单类型是指字符串、数字、日期时间、UUID、布尔值或二进制流类型的数据,复合类型是指包含了1个或多个对象元素的集合,该集合中所有对象元素的结构是相同的;
一个输入参数、简单类型输出参数和对象属性既可以引用一个数据实体字段,又可以不引用任何数据实体字段;一个复合类型的输出参数必须引用一个对象,该对象定义了输出参数中集合元素的结构;
步骤二,根据树状结构,从底层向高层逐级计算功能点数,计算对象属性的功能点数;
该对象属性的功能点数的具体计算公式为:
FPp=1+Wp
其中,FPp表示对象属性的功能点数,Wp表示对象属性的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lp表示对象属性的最大字节长度;
步骤三,根据对象属性的功能点数计算对象的功能点数;
步骤四,计算输入参数的功能点数;
步骤五,计算输出参数的功能点数;
步骤六,计算功能引用的数据实体数目;
步骤七,根据输入参数功能点数、输出参数的功能点数、功能引用的数据实体数目计算功能的功能点数;
步骤八,根据功能的功能点数计算模块的功能点数。
优选的,在上述软件功能点实时自动化分析方法中,还包括:步骤九,对所有的模块功能点数进行求和,得出软件的功能点数,即软件规模指数。
优选的,在上述软件功能点实时自动化分析方法中,步骤三中对象的功能点数的具体计算公式为:
其中,FPobj表示对象的功能点数,Np表示对象中包含的对象属性的个数;FPpi表示第i个对象属性的功能点数;
优选的,在上述软件功能点实时自动化分析方法中,步骤四中输入参数的功能点数的具体计算公式为:
FPip=1+Wip
其中,FPip表示输入参数的功能点数,Wip表示输入参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lip表示输入参数的最大字节长度;
优选的,在上述软件功能点实时自动化分析方法中,步骤五中输出参数的功能点数的具体计算过程为:
如果输出参数是简单类型的参数,则通过下述公式计算:
FPop=1+Wop
其中,FPop表示输出参数的功能点数,Wop表示输出参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lop表示输出参数的最大字节长度;
如果输出参数是复合类型的参数,则通过下述公式计算:
FPop=FPobj×(1+Wcoll)
其中,FPobj表示输出参数所引用对象的功能点数;Wcoll表示因创建对象集合而付出的努力对软件规模的影响力权重;Wcoll既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Ncoll表示对象集合中最多返回的对象的数目。
优选的,在上述软件功能点实时自动化分析方法中,步骤六中功能引用的数据实体数目Ne的具体计算步骤为:
首先,数据实体数目的初始化值Ne=0;
进一步地,由于每一个数据实体仅能被计数一次,因此遍历功能的每一个输入参数、简单类型的输出参数以及复合类型的输出参数引用的对象的所有对象属性,如果该输入参数、简单类型的输出参数或对象属性引用了一个数据实体字段,并且该字段隶属的数据实体尚未被计数,那么增加计数1。
优选的,在上述软件功能点实时自动化分析方法中,步骤七中功能的功能点数的具体计算公式为:
其中,FPf表示功能的功能点数,Wi表示输入参数功能点数之和的权重,Nip表示输入参数的个数,FPipi表示第i个输入参数的功能点数;We表示功能引用的数据实体数目的权重,Ne表示功能引用的数据实体数目;Wo表示输出参数功能点数之和的权重,Nop表示输出参数的个数;FPopj表示第j个输出参数的功能点数;Wi、We、Wo既可以由设计师人为指定,也可以分取值:0.58、1.66和0.26;根据Mk-II标准的约定,任何一个逻辑事务至少包含一个输入、一个输出和一个引用的数据实体;如果所有输入参数的功能点数之和为0,则设置所有输入参数的功能点数之和为1;换算到本发明中,如果功能引用的数据实体数目为0,则设置功能引用的数据实体数目为1;如果所有输出参数的功能点数之和为0,则设置所有输出参数的功能点数之和为1;
优选的,在上述软件功能点实时自动化分析方法中,步骤八中模块的功能点数的具体计算公式为:
其中,FPm表示模块的功能点数,Nf表示模块中包含功能的个数;FPfi表示第i个功能的功能点数。
优选的,在上述软件功能点实时自动化分析方法中,步骤九中软件的功能点数的具体计算公式为:
其中,FPs表示软件的功能点数,Nm表示软件中包含模块的个数;FPmi表示第i个模块的功能点数。
优选的,在上述软件功能点实时自动化分析方法中,步骤一中,设计师设计软件的具体步骤为:
首先,分析师根据需求实施调研和分析工作,形成需求文档;
进一步地,设计师根据需求文档设计一款软件,该款软件包括数据实体、模块、功能、对象、数据实体字段、功能参数、对象属性;
进一步地,设计师在设计一个数据实体字段时,需要为数据实体字段定义数据类型和最大字节长度Lf,在设计一个输入参数、简单类型输出参数或对象属性时,需要为输入参数、简单类型输出参数或对象属性定义数据类型和数据的权重值Wip、Wop、Wp,如果数据类型是字符串或二进制流,则需要分别为它们定义最大字节长度Lip、Lop、Lp,在设计一个复合类型输出参数时,需要为输出参数引用一个对象,该对象定义了输出的集合中集合元素的结构,同时需要为该输出参数定义一个权重Wcoll,权重值越大,表明对应的软件规模越大。
优选的,在上述软件功能点实时自动化分析方法中,数据的最大字节长度Lip、Lop、Lp、Lf都为一个大于等于1的自然数,权重值Wip、Wop、Wp、Wcoll都为任意一个常数。
本发明的有益效果:
1、本发明通过设计了一种包含软件、数据实体、模块、功能、对象、数据实体字段、功能参数、对象属性等组件的树状结构,实现了自动计算软件功能点数。这主要得益于分析和计算过程无需人工完成,而是由系统基于前述的树状结构关系、参数和属性权重设置以及计算方法自动完成的,提高了功能点数的计算效率,能够及时的反应软件在目前运行状态下的功能点数,而不会因为错过了时机,导致计算的功能点数与目前状态不符,提高了时效性,节省了人力。
2、本发明通过为功能参数和对象属性添加额外的权重来表示参数或属性对软件规模的影响,而不再采用现有技术中简单的计数,充分考虑了深层次组件的简易、繁琐程度,计算更加精确,能够更加精确地反映软件的真实规模,更加科学。
3、通过将本申请计算的功能点数与现有技术进行比较,本申请既充分考虑了身份证号的复杂性高于姓名,因此进行人工赋值,使身份证号功能点数高于姓名的功能点数,更加科学,同时将输出参数分为复杂类型和简单类型进行计算功能点数,更加科学,小数点数更多,更加精确。
附图说明
下面结合附图和具体实施方式来详细说明本发明:
图1为软件功能点实时自动化分析方法的流程图。
图2为本发明软件的树状结构示意图。
具体实施方式
为了使本发明技术实现的措施、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
图1为软件功能点实时自动化分析方法的流程图,图2为本发明软件的树状结构示意图。
如图1、2所示,软件功能点实时自动化分析方法,包括如下步骤:
步骤一,设计一款软件,该款软件包括模块、数据实体、功能、对象、数据实体字段、功能参数和对象属性,并由上到下分层次的构成树状结构,具体步骤为:
首先,分析师根据需求实施调研和分析工作,形成需求文档;
进一步地,设计师根据需求文档设计一款软件,该款软件包括数据实体、模块、功能、对象、数据实体字段、功能参数、对象属性;
一个软件包括一组数据实体和一组模块;一个数据实体包括一组字段,一个模块包括一组功能和一组对象;一个功能包括一组参数,参数分为输入参数和输出参数;一个对象包括一组对象属性;
数据实体字段、输入参数和对象属性是简单类型的数据;输出参数分为简单类型的数据和复合类型的数据,简单类型是指字符串、数字、日期时间、UUID、布尔值或二进制流类型的数据,复合类型是指包含了1个或多个对象元素的集合,该集合中所有对象元素的结构是相同的;
一个输入参数、简单类型输出参数和对象属性既可以引用一个数据实体字段,又可以不引用任何数据实体字段;一个复合类型的输出参数必须引用一个对象,该对象定义了输出参数中集合元素的结构;
进一步地,设计师在设计一个数据实体字段时,需要为数据实体字段定义数据类型和最大字节长度Lf,在设计一个输入参数、简单类型输出参数或对象属性时,需要为输入参数、简单类型输出参数或对象属性定义数据类型、数据的最大字节长度Lip、Lop、Lp和数据的权重值Wip、Wop、Wp,在设计一个复合类型输出参数时,需要为输出参数引用一个对象,该对象定义了输出的集合中集合元素的结构,同时需要为该输出参数定义一个权重Wcoll,权重值越大,表明对应的软件规模越大;数据的最大字节长度Lip、Lop、Lp、Lf都为一个大于等于1的自然数,权重值Wip、Wop、Wp、Wcoll都为任意一个常数;
简单类型包括:字符串、二进制流、数字、布尔值和通用唯一识别码UUID等,具体的最大字节长度如下表:
类型 | 最大字节长度 |
字符串 | 由设计师定义,最小值为1 |
二进制流 | 由设计师定义,最小值为1 |
数字 | 根据精度,可能是1、2、4、8 |
布尔值 | 1 |
日期时间 | 根据精度,可能是1、2、4、8 |
UUID | 16 |
步骤二,根据树状结构,从底层向高层逐级计算功能点数,计算对象属性的功能点数;
步骤三,根据对象属性的功能点数计算对象的功能点数;
步骤四,计算输入参数的功能点数;
步骤五,计算输出参数的功能点数;
步骤六,计算功能引用的数据实体数目;
步骤七,根据输入参数和输出参数的功能点数计算功能的功能点数;
步骤八,根据功能的功能点数计算模块的功能点数;
本实施例中,步骤二至八所采用的具体计算公式为:
步骤二,计算对象属性的功能点数;
FPp=1+Wp
其中,FPp表示对象属性的功能点数,Wp表示对象属性的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lp表示对象属性的最大字节长度;
步骤三,计算对象的功能点数:
其中,FPobj表示对象的功能点数,Np表示对象中包含的对象属性的个数;FPpi表示第i个对象属性的功能点数;
步骤四,计算输入参数的功能点数;
FPip=1+Wip
其中,FPip表示输入参数的功能点数,Wip表示输入参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lip表示输入参数的最大字节长度;
步骤五,计算输出参数的功能点数;
如果输出参数是简单类型的参数,则通过下述公式计算:
FPop=1+Wop
其中,FPop表示输出参数的功能点数,Wop表示输出参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Lop表示输出参数的最大字节长度;
如果输出参数是复合类型的参数,则通过下述公式计算:
FPop=FPobj×(1+Wcoll)
其中,FPobj表示输出参数所引用对象的功能点数;Wcoll表示因创建对象集合而付出的努力对软件的影响力权重;Wcoll既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
其中,Ncoll表示对象集合中最多返回的对象的数目;
步骤六,计算功能引用的数据实体数目Ne:
首先,数据实体数目的初始化值Ne=0;
进一步地,由于每一个数据实体仅能被计数一次,因此遍历功能的每一个输入参数、简单类型的输出参数以及复合类型的输出参数引用的对象的所有对象属性,如果该输入参数、简单类型的输出参数或对象属性引用了一个数据实体字段,并且该字段隶属的数据实体尚未被计数,那么增加计数1;
步骤七,计算功能的功能点数:
其中,FPf表示功能的功能点数,Wi表示输入参数功能点数之和的权重,Nip表示输入参数的个数,FPipi表示第i个输入参数的功能点数;We表示功能引用的数据实体数目的权重,Ne表示功能引用的数据实体数目;Wo表示输出参数功能点数之和的权重,Nop表示输出参数的个数;FPopj表示第j个输出参数的功能点数;Wi、We、Wo既可以由设计师人为指定,也可以分别取值:0.58、1.66和0.26;根据Mk-II标准的约定,任何一个逻辑事务至少包含一个输入、一个输出和一个引用的数据实体;如果所有输入参数的功能点数之和为0,则设置所有输入参数的功能点数之和为1;换算到本发明中,如果功能引用的数据实体数目为0,则设置功能引用的数据实体数目为1;如果所有输出参数的功能点数之和为0,则设置所有输出参数的功能点数之和为1;
步骤八,计算模块的功能点数;
其中,FPm表示模块的功能点数,Nf表示模块中包含功能的个数;FPfi表示第i个功能的功能点数;
本实施例中,还包括:步骤九,对所有的模块功能点数进行求和,得出软件的功能点数,即软件规模,具体计算公式为:
其中,FPs表示软件的功能点数,Nm表示软件中包含模块的个数;FPmi表示第i个模块的功能点数。
下面结合具体实施例对本发明和现有技术进行比较,以便于本领域内的技术人员理解。
以一个简单的人员管理为例:此人员管理系统包括一个人员列表和添加人员两个功能。
人员列表允许按人员的年龄段(也就是起始年龄和截止年龄)进行查询,查询结果每页最多显示15条记录,添加人员需要提供人员的年龄、姓名和身份证号。其中年龄是一个整数,取值范围为0-200,字节长度为1;姓名是最多为10个汉字的字符串,每一个汉字用2个字节,所以字节长度为20;身份证号是长度为18的字符串,字节长度18;由上述默认字节长度计算软件的功能点数:
1)采用现有技术的Mk-II功能点分析方法:
在以上系统中,包括两个逻辑事务:人员列表和添加人员
①人员列表包括:
2个输入元素:起始年龄和截止年龄;
引用1个数据实体:人员;
3个输出元素:年龄、姓名、身份证号;
因此,功能点数FPI=Wi×∑Ni+We×∑Ne+Wo×∑No,输入参数权重Wi、数据实体权重We、输出参数权重Wo分别取值为0.58、1.66和0.26,代入上述公式中,得出功能点数FPI=2×0.58+1×1.66+3×0.26=3.6。
②添加人员包括:
3个输入元素:年龄、姓名和身份证号;
引用1个数据实体:人员;
1个输出元素:人员添加成功或失败的指示,为一个布尔值;
因此,按照上述公式和权重值计算,得出功能点数FPI=Wi×∑Ni+We×∑Ne+Wo×∑No=3×0.58+1×1.66+1×0.26=3.66。
整个人员管理系统的功能点数为:3.6+3.66=7.26
2)采用本发明的软件功能点实时自动分析方法计算:
在以上软件系统中,包括一个数据实体:人员,该数据实体包括3个数据实体字段:年龄、姓名、身份证号;该软件包括2个功能:人员列表和添加人员;
①人员列表包括:
2个简单类型的输入参数:起始年龄和截止年龄,分别引用数据实体字段“年龄”;
引用1个数据实体:人员;通过2个输入参数所引用的数据实体字段隶属的数据实体,以及输出参数所引用对象的属性,对象属性又引用的数据实体字段隶属于数据实体,计数得到人员列表功能所引用的数据实体数目为1;
1个复合类型的输出参数:人员列表;该输出参数引用对象:人员;该对象有3个属性:年龄、姓名和身份证号,分别引用数据实体的年龄、姓名和身份证号字段;
a、输入参数功能点数:
起始年龄:
其中,Wip取默认值,起始年龄取值范围为0~200之间,输入参数的字节长度Lip为1。
截止年龄:
其中,Wip取默认值,起始年龄取值范围0~200之间,输入参数的字节长度Lip为1。
因此,汇总人员的所有输入参数的功能点数,得到输入参数的总的功能点数为FP=1+1=2。
b、人员对象属性功能点数:
年龄属性:
其中,Wp取默认值,年龄取值范围0~200之间,年龄的字节长度Lp为1。
姓名属性:
其中,Wp取默认值,姓名的字节长度Lp为20;为方便,本实例中精确到小数点后5位,实际计算过程中按照计算机实际精度为准。
身份证号属性:
其中,Wp取默认值,身份证号的字节长度Lp为18;
因此,汇总人员对象的所有对象属性的功能点数FPp;
c、对象的功能点数:
FPobj=1+1.06753+1.06516=3.13269。
d、输出参数:人员列表为复合类型的数据,对其计算功能点数;
其中,Wcoll取默认值,人员列表中每次最多查询15条记录,即对象集合中最多返回的对象的数目Ncoll为15。
那么人员列表的功能点数为:
其中,Wi、We、Wo分别取值为0.58、1.66、0.26。
需要注意的是:一个对象引用的所有数据实体的数目是该对象中所有属性引用的数据实体字段隶属的数据实体的计数总和,如果同一个数据实体被同一个对象的多个不同属性引用多次,仅计数一次。
一个功能引用的所有数据实体的数目是该功能中所有输入参数和简单类型输出参数引用的数据实体字段隶属的数据实体的计数总和,加上复合类型输出参数所引用对象所引用的数据实体的数目。如果同一个数据实体被同一个功能通过多个不同参数引用多次,仅计数一次。
②添加人员包括:
3个简单类型的输入参数:年龄、姓名和身份证号,分别引用数据实体人员的年龄、姓名和身份证号字段;
引用1个数据实体:人员;通过3个输入参数所引用的字段隶属的数据实体,计数得到添加人员功能所引用的数据实体数目为1;
1个简单类型的输出参数:人员添加成功或失败的指示为一个布尔值,字节长度为1,不引用任何字段。
a、输入参数的功能点数:
年龄:
其中,Wip取默认值,起始年龄取值范围0~200之间,字节长度为1。
姓名:
其中,Wip取默认值,姓名的字节长度Lip为20。
身份证号:
其中,Wip取默认值,身份证号的字节长度为18,得到的身份证号的FP为1.06516,小于姓名参数的FP。
设计师考虑到验证身份证号需要大量的额外的代码,对软件的规模存在一定的影响,实际上它比姓名要复杂的多,因此决定人工选取一个Wip值:0.07。最终,作为输入参数的身份证号的FP=1.07。
b、输出参数:添加成功或失败的指示为一个布尔值,字节长度为1。
其中,Wop取默认值,布尔值的取值为true或false,字节长度为1。
因此,添加人员的功能点数为:
FP=Wi×(1+1.06753+1.07)+We×1+Wo×1=3.73976
其中,Wi、We、Wo分别表示输入参数、数据实体、输出参数的权重,分别取值:0.58、1.66、0.26。
因此,整个人员管理系统的功能点数为:3.68396+3.73976=7.42372。
通过将本申请计算的功能点数7.42372与现有技术的7.26进行比较,本申请既充分考虑了身份证号的复杂性高于姓名,因此进行人工赋值,使身份证号功能点数高于姓名的功能点数,更加科学,同时将输出参数分为复杂类型和简单类型进行计算功能点数,更加科学,小数点数更多,更加精确。
本发明通过设计了一种包含数据实体、模块、功能、对象、数据实体字段、功能参数、对象属性等组件的树状结构,实现了自动计算软件功能点数。这主要得益于分析和计算过程无需人工完成,而是由系统基于前述的树状结构关系、参数和属性权重设置以及计算方法自动完成的,提高了功能点数的计算效率,能够及时的反应软件在目前运行状态下的功能点数,而不会因为错过了时机,导致计算的功能点数与目前状态不符,提高了时效性,节省了人力。
本发明通过为功能参数和对象属性添加额外的权重来表示参数或属性对软件规模的影响,而不再采用现有技术中单一的参数值,充分考虑了软件的简易、繁琐程度,计算更加精确,能够更加精确地反映软件的真实规模,更加科学。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等同物界定。
Claims (9)
1.一种软件功能点实时自动化分析方法,其特征在于,包括:
步骤一,设计一款软件,该款软件包括模块、数据实体、功能、对象、数据实体字段、功能参数和对象属性,并由上到下分层次的构成树状结构,具体关系为:
一个软件包括一组数据实体和一组模块;一个数据实体包括一组字段,一个模块包括一组功能和一组对象;一个功能包括一组参数,参数分为输入参数和输出参数;一个对象包括一组对象属性;
数据实体字段、输入参数和对象属性是简单类型的数据;输出参数分为简单类型的数据和复合类型的数据,简单类型是指字符串、数字、日期时间、UUID、布尔值或二进制流类型的数据,复合类型是指包含了1个或多个对象元素的集合,该集合中所有对象元素的结构是相同的;
一个输入参数、简单类型输出参数和对象属性既可以引用一个数据实体字段,又可以不引用任何数据实体字段;一个复合类型的输出参数必须引用一个对象,该对象定义了输出参数中集合元素的结构;
步骤二,根据树状结构,从底层向高层逐级计算功能点数,计算对象属性的功能点数;
该对象属性的功能点数的具体计算公式为:
FPp=1+Wp
其中,FPp表示对象属性的功能点数,Wp表示对象属性的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
<mrow>
<mi>W</mi>
<mi>p</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>log</mi>
<mn>16</mn>
</msub>
<mi>L</mi>
<mi>p</mi>
</mrow>
<mn>16</mn>
</mfrac>
</mrow>
其中,Lp表示对象属性的最大字节长度;
步骤三,根据对象属性的功能点数计算对象的功能点数;
步骤四,计算输入参数的功能点数;
步骤五,计算输出参数的功能点数;
步骤六,计算功能引用的数据实体数目;
步骤七,根据输入参数和输出参数的功能点数计算功能的功能点数;
步骤八,根据功能的功能点数计算模块的功能点数。
2.根据权利要求1所述的软件功能点实时自动化分析方法,其特征在于,所述步骤三中对象的功能点数的具体计算公式为:
<mrow>
<mi>F</mi>
<mi>P</mi>
<mi>o</mi>
<mi>b</mi>
<mi>j</mi>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>N</mi>
<mi>p</mi>
</mrow>
</munderover>
<mi>F</mi>
<mi>P</mi>
<mi>p</mi>
<mi>i</mi>
</mrow>
其中,FPobj表示输出参数所引用对象的功能点数,Np表示对象中包含的对象属性的个数;FPpi表示第i个对象属性的功能点数。
3.根据权利要求2所述的软件功能点实时自动化分析方法,其特征在于,所述步骤四中输入参数的功能点数的具体计算公式为:
FPip=1+Wip
其中,FPip表示输入参数的功能点数,Wip表示输入参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
<mrow>
<mi>W</mi>
<mi>i</mi>
<mi>p</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>log</mi>
<mn>16</mn>
</msub>
<mi>L</mi>
<mi>i</mi>
<mi>p</mi>
</mrow>
<mn>16</mn>
</mfrac>
</mrow>
其中,Lip表示输入参数的最大字节长度。
4.根据权利要求3所述的软件功能点实时自动化分析方法,其特征在于,所述步骤五中输出参数的功能点数的具体计算过程为:
如果输出参数是简单类型的参数,则通过下述公式计算:
FPop=1+Wop
其中,FPop表示输出参数的功能点数,Wop表示输出参数的权重值,既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
<mrow>
<mi>W</mi>
<mi>o</mi>
<mi>p</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>log</mi>
<mn>16</mn>
</msub>
<mi>L</mi>
<mi>o</mi>
<mi>p</mi>
</mrow>
<mn>16</mn>
</mfrac>
</mrow>
其中,Lop表示输出参数的最大字节长度;
如果输出参数是复合类型的参数,则通过下述公式计算:
FPop=FPobj×(1+Wcoll)
其中,FPobj表示输出参数所引用对象的功能点数;Wcoll表示因创建对象集合而付出的努力对软件的影响力权重;Wcoll既可以通过设计师进行人为指定,又可以通过下述公式自动获得:
<mrow>
<mi>W</mi>
<mi>c</mi>
<mi>o</mi>
<mi>l</mi>
<mi>l</mi>
<mo>=</mo>
<mfrac>
<mrow>
<msub>
<mi>log</mi>
<mn>16</mn>
</msub>
<mi>N</mi>
<mi>c</mi>
<mi>o</mi>
<mi>l</mi>
<mi>l</mi>
</mrow>
<mn>16</mn>
</mfrac>
</mrow>
其中,Ncoll表示对象集合中最多返回的对象的数目。
5.根据权利要求4所述的软件功能点实时自动化分析方法,其特征在于,所述步骤六中功能引用的数据实体数目Ne的具体计算步骤为:
首先,数据实体数目的初始化值Ne=0;
进一步地,由于每一个数据实体仅能被计数一次,因此遍历功能的每一个输入参数、简单类型的输出参数以及复合类型的输出参数引用的对象的所有对象属性,如果该输入参数、简单类型的输出参数或对象属性引用了一个数据实体字段,并且该字段隶属的数据实体尚未被计数,那么增加计数1。
6.根据权利要求5所述的软件功能点实时自动化分析方法,其特征在于,所述步骤七中功能的功能点数的具体计算公式为:
<mrow>
<mi>F</mi>
<mi>P</mi>
<mi>f</mi>
<mo>=</mo>
<mi>W</mi>
<mi>i</mi>
<mo>&times;</mo>
<munderover>
<mi>&Sigma;</mi>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>N</mi>
<mi>i</mi>
<mi>p</mi>
</mrow>
</munderover>
<mi>F</mi>
<mi>P</mi>
<mi>i</mi>
<mi>p</mi>
<mi>i</mi>
<mo>+</mo>
<mi>W</mi>
<mi>e</mi>
<mo>&times;</mo>
<mi>N</mi>
<mi>e</mi>
<mo>+</mo>
<mi>W</mi>
<mi>o</mi>
<mo>&times;</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>j</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>N</mi>
<mi>o</mi>
<mi>p</mi>
</mrow>
</munderover>
<mi>F</mi>
<mi>P</mi>
<mi>o</mi>
<mi>p</mi>
<mi>j</mi>
</mrow>
其中,FPf表示功能的功能点数,Wi表示输入参数功能点数之和的权重,Nip表示输入参数的个数,FPipi表示第i个输入参数的功能点数;We表示功能引用的数据实体数目的权重,Ne表示功能引用的数据实体数目;Wo表示输出参数功能点数之和的权重,Nop表示输出参数的个数;FPopj表示第j个输出参数的功能点数;Wi、We、Wo既可以由设计师人为指定,也可以分别取值:0.58、1.66和0.26;根据Mk-II标准的约定,任何一个逻辑事务至少包含一个输入、一个输出和一个引用的数据实体;如果所有输入参数的功能点数之和为0,则设置所有输入参数的功能点数之和为1;换算到本发明中,如果功能引用的数据实体数目为0,则设置功能引用的数据实体数目为1;如果所有输出参数的功能点数之和为0,则设置所有输出参数的功能点数之和为1。
7.根据权利要求6所述的软件功能点实时自动化分析方法,其特征在于,所述步骤八中模块的功能点数的具体计算公式为:
<mrow>
<mi>F</mi>
<mi>P</mi>
<mi>m</mi>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>N</mi>
<mi>f</mi>
</mrow>
</munderover>
<mi>F</mi>
<mi>P</mi>
<mi>f</mi>
<mi>i</mi>
</mrow>
其中,FPm表示模块的功能点数,Nf表示模块中包含功能的个数;FPfi表示第i个功能的功能点数。
8.根据权利要求7所述的软件功能点实时自动化分析方法,其特征在于,还包括:步骤九,对所有的模块功能点数进行求和,得出软件的功能点数,即软件规模,软件的功能点数的具体计算公式为:
<mrow>
<mi>F</mi>
<mi>P</mi>
<mi>s</mi>
<mo>=</mo>
<munderover>
<mo>&Sigma;</mo>
<mrow>
<mi>i</mi>
<mo>=</mo>
<mn>1</mn>
</mrow>
<mrow>
<mi>N</mi>
<mi>m</mi>
</mrow>
</munderover>
<mi>F</mi>
<mi>P</mi>
<mi>m</mi>
<mi>i</mi>
</mrow>
其中,FPs表示软件的功能点数,Nm表示软件中包含模块的个数;FPmi表示第i个模块的功能点数。
9.根据权利要求1所述的软件功能点实时自动化分析方法,其特征在于,所述步骤一中,设计一款软件的具体步骤为:
首先,分析师根据需求实施调研和分析工作,形成需求文档;
进一步地,设计师根据需求文档设计一款软件,该款软件包括数据实体、模块、功能、对象、数据实体字段、功能参数、对象属性;
进一步地,设计师在设计一个数据实体字段时,需要为数据实体字段定义数据类型和最大字节长度Lf,在设计一个输入参数、简单类型输出参数或对象属性时,需要为输入参数、简单类型输出参数或对象属性定义数据类型、数据的最大字节长度Lip、Lop、Lp和数据的权重值Wip、Wop、Wp,在设计一个复合类型输出参数时,需要为输出参数引用一个对象,该对象定义了输出的集合中集合元素的结构,同时需要为所述输出参数定义一个权重Wcoll,权重值越大,表明对应的软件规模越大;
数据的最大字节长度Lf、Lip、Lop、Lp都为一个大于等于1的自然数,权重值Wip、Wop、Wp、Wcoll都为任意一个常数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510383973.2A CN104978268B (zh) | 2015-07-03 | 2015-07-03 | 软件功能点实时自动化分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510383973.2A CN104978268B (zh) | 2015-07-03 | 2015-07-03 | 软件功能点实时自动化分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104978268A CN104978268A (zh) | 2015-10-14 |
CN104978268B true CN104978268B (zh) | 2017-12-05 |
Family
ID=54274797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510383973.2A Expired - Fee Related CN104978268B (zh) | 2015-07-03 | 2015-07-03 | 软件功能点实时自动化分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104978268B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111158641B (zh) * | 2019-12-31 | 2021-05-07 | 中国科学院软件研究所 | 基于语义分析和文本挖掘的事务类功能点自动识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213234B1 (en) * | 2003-04-08 | 2007-05-01 | Electronic Data Systems Corporation | System and method for function point sampling for software size estimates |
CN102446135A (zh) * | 2011-12-28 | 2012-05-09 | 深圳天源迪科信息技术股份有限公司 | 软件质量的检测方法 |
CN103577195A (zh) * | 2013-11-14 | 2014-02-12 | 中国联合网络通信集团有限公司 | 一种软件需求分析量化方法及系统 |
CN104461896A (zh) * | 2014-12-18 | 2015-03-25 | 北京轩宇信息技术有限公司 | 基于可信属性的航天系统关键软件评价方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070276712A1 (en) * | 2006-05-24 | 2007-11-29 | Kolanchery Renjeev V | Project size estimation tool |
-
2015
- 2015-07-03 CN CN201510383973.2A patent/CN104978268B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7213234B1 (en) * | 2003-04-08 | 2007-05-01 | Electronic Data Systems Corporation | System and method for function point sampling for software size estimates |
CN102446135A (zh) * | 2011-12-28 | 2012-05-09 | 深圳天源迪科信息技术股份有限公司 | 软件质量的检测方法 |
CN103577195A (zh) * | 2013-11-14 | 2014-02-12 | 中国联合网络通信集团有限公司 | 一种软件需求分析量化方法及系统 |
CN104461896A (zh) * | 2014-12-18 | 2015-03-25 | 北京轩宇信息技术有限公司 | 基于可信属性的航天系统关键软件评价方法 |
Non-Patent Citations (3)
Title |
---|
MarkⅡFP方法的应用及功能点度量技术的研究;李新忱;《中国优秀硕士论文全文数据库 信息科技辑》;20100515;第2010年卷(第05期);全文 * |
MarkII方法在面向对象系统中的应用研究;胡小威;《中国优秀硕士论文全文数据库 信息科技辑》;20140315;第2014年卷(第03期);全文 * |
基于UML技术的功能点规模度量研究;姚伟春;《上海电机学院学报》;20080615;第11卷(第2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN104978268A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104268428B (zh) | 一种用于指标计算的可视化配置方法 | |
CA3082237C (en) | Systems and methods for enhanced mapping and classification of data | |
CN104731941B (zh) | 一种基于xbrl技术从非结构化财务报告抓取数据的方法 | |
US9037549B2 (en) | System and method for testing data at a data warehouse | |
CN110134584A (zh) | 一种接口测试用例的生成方法、装置、存储介质和服务器 | |
CN105117426B (zh) | 一种海关编码智能搜索方法 | |
CN110110075A (zh) | 网页分类方法、装置以及计算机可读存储介质 | |
US20070027919A1 (en) | Dispute resolution processing method and system | |
CN107704512A (zh) | 基于社交数据的金融产品推荐方法、电子装置及介质 | |
CN105912625A (zh) | 一种面向链接数据的实体分类方法和系统 | |
CN108985542A (zh) | 一种科技项目评价方法及系统 | |
CN111260413A (zh) | 一种基于矢量图形的电力主网工程施工图造价速算方法 | |
CN112699128B (zh) | 报表生成方法、装置、可读存储介质及电子设备 | |
CN109684616A (zh) | 动态报表公式组装填报的方法及系统 | |
CN103678336A (zh) | 实体词识别方法及装置 | |
WO2020042501A1 (zh) | 基金经理社团划分方法、系统、计算机设备和存储介质 | |
CN109033322A (zh) | 一种多维数据的测试方法和装置 | |
CN106991514A (zh) | 车间模型创建装置及车间模型创建方法 | |
CN103544299B (zh) | 一种商业智能云计算系统的构建方法 | |
CN111695979A (zh) | 一种原材料与成品的关系分析方法、装置及设备 | |
CN113722790A (zh) | 一种基于bim技术的模型工程量统计方法 | |
CN104978268B (zh) | 软件功能点实时自动化分析方法 | |
CN107704869A (zh) | 一种语料数据抽样方法及模型训练方法 | |
Forouzani et al. | Method for assessing software quality using source code analysis | |
CN111640031A (zh) | 跨系统的理赔数据处理方法、装置及相关设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20171205 |