FAQS Chinese

常见问题

2016年3月更新

请通过Facebook和LinkedIn和我们联系,欢迎您在朋友圈分享我们的信息。

IFPUG网站,请收藏供以后参考
IFPUG Facebook主页,请点击“Like”
IFPUG Twitter,了解白皮书的最新版本和其他新闻。
IFPUG LinkedIn,请点击“Follow”

如果要建议其他的常见问题或编辑本页中的问题,请点击 Contact Us并在信息主题中包含 “IFPUG FAQ”字样。
Top of IFPUG FAQ PAGE

IFPUG会员和非会员均可以从网站下载相关的文档,您可以注册成为IFPUG会员,也可延续您的会员资格。

1.功能点是什么?SNAP是什么?功能点和SNAP之间有何区别?
2.功能点适用于所有人吗?
3.为什么要进行度量?
4.IFPUG会员资格有什么用?
5.如何向开发人员和项目经理们说明功能点分析的重要性?
6.辅助功能点估算的工具有哪些?
7.如何向用户说明功能点分析的重要性?
8.什么是功能点基线?
9.为什么不用代码行?
10.代码行转换为功能点怎么样?
11.我们需要提升,应该从哪儿开始呢?
12.想要提升生产率,需要收集哪些信息?
13.CIO需要了解功能点吗?
14.CIO需要了解敏捷开发和功能点吗?
15.想要提升估算能力,需要收集哪些信息?
16.想要提升质量,需要收集哪些信息?
17.我们需要认证的CFPS顾问吗?
18.功能点顾问需要具备什么能力?
19.在哪里找功能点顾问呢?
20.在哪里可以了解到功能点相关的更多信息?
IFPUG
FAQ
PAGE

1.1功能点是什么?
功能点是用来表示软件规模的一种国际标准度量单元。IFPUG功能规模度量方法(IFPUG CPM4.3.1)基于软件的逻辑设计和功能需求对软件提供给用户的功能进行了量化。量化结果数据被称为功能点。鉴于此,功能点计数的目标为:

功能点还有许多其他用途,如在许多IT公司把功能点作为度量生产率和质量标杆时用到的规模单位(如每FP……)。想要了解IFPUG FP方法的更多内容以及度量非功能需求的软件非功能评估过程(SNAP),请点击以下链接:

1.2 SNAP是什么

SNAP是“Software Non-functional Assessment Process”的缩写,它是一种补充功能点的软件度量方法。SNAP方法可以对非功能需求的规模进行度量。SNAP丝毫不会替代功能点的用途,相反,它应该与功能点一起应用。SNAP方法是IFPUG在软件规模度量方面持续改进的工作结果。

1.3功能点和SNAP之间有何区别?

简单地说,功能点度量软件应用中数据流以及数据存储的规模,所以功能点度量功能性的用户需求。SNAP度量软件功能的其他方面——例如数据配置、算法、决策树、数据验证以及诸如更换logo功能点等,非功能目前总共包含14个类型的功能。用户功能性需求简称为“FUR”,用户非功能性需求简称为“NFR”。度量功能性需求的方法参见CPM手册,度量非功能性需求的方法参见APM手册,两者均可以从IFPUG的官方网站购买和下载。

1.4 如何应用功能点和SNAP点来确定软件的总体规模?

软件的总体规模由功能点度量结果和SNAP度量结果共同组成。例如,某个软件应用的规模可以表述为800个功能点和300个SNAP点。因为两者不同,所以不能简单将其相加,例如不能说该软件应用规模为1100点,但可以将其表述为类似800+300i这样的形式。

功能点和SNAP点都与软件开发工作量密切相关。开发软件新产品或者升级已有软件所需的工作量是完成功能点所需的工作量(功能点数量乘以单位功能点所需工作量)和完成SNAP点的工作量(SANP点数量乘以单位SNAP点所需工作量)之和。

1.5应用SNAP的必要性有多强?

应用SNAP的必要性主要取决于软件应用的类型。许多软件开发人员和软件开发团队认为他们所付出的许多工作量并不能从功能点数量上得到客观反映,例如针对那些算法比较集中的应用,或者存在大量数据校验的应用,或者是人机工程要求较高的应用(例如对页面布局或者logo应用方面有较多的要求和考虑)。针对上述的应用特点,应用SNAP方法可以较好地克服单独应用功能点方法所存在的不足。SNAP方法对于软件开发人员而言是一种更公平、更受欢迎的度量方法。应用SNAP方法可以更好地预测新开发项目和升级项目所需的成本和进度。

1.6如何向软件开发人员和项目经理说明SNAP的重要性?

软件开发人员在满足非功能性需求方面花费了大量的工作量,但这些工作量却无法在功能点产出方面得到体现,软件开发人员将会直接感受到引入SNAP方法对工作量评价带来的好处。

如果同时应用软件功能点方法和SNAP方法,项目经理就可以更合理地设置项目的预算,他们可以向项目的出资人说明在软件中包含了更多的软件资产——除了可以用功能点衡量的功能资产,还包括应用SNAP方法衡量的非功能资产。

1.7估算软件项目工作量最准确的方法是什么?

根据Capers Jones(2012),用人工方式度量功能点的误差大约为10%,如果综合度量功能点和SNAP点,则其误差大约为5%,下面是应用各种方法度量误差的类表信息。

1.8 应用SNAP方法的好处是什么?

同时度量软件功能规模和软件非功能规模对IT组织而言,会带来多方面的好处。它可以为软件项目的开发过程和软件应用的维护过程提供更好的洞察力,包括如下各种用途:

  • 提供软件规模和软件工作量的相关关系,因为软件开发人员的任务往往既包含满足功能需求,也包含满足非功能性需求
  • 可以提高估算软件项目工作量和交付时间的准确程度
  • 软件开发人员投入在非功能方面的工作量会得到充分认可
  • 软件用户可以更好地了解软件应用为组织带来的好处
  • 客户可以更好(以及量化)地认识到投入资金的回报价值
  • 关于软件开发生产率的解释将更合理,关于每功能点所需花费的工作量变动将得到更全面的分析
  • 对那些只具备非功能需求的项目也可以度量规模
  • 软件项目之间的KPI差异情形将得到更好的解释

1.9 SNAP的应用现状如何?

目前SNAP在美国、亚洲以及欧洲的应用还处于起步阶段,应用SNAP方法的公司为数不多。

1.10如何学习SNAP?

您可以从IFPUG的官网免费获得SNAP评估手册(APM)。除此之外,IFPUG网站也列出了提供SNAP认证课程的公司列表 (http://www.ifpug.org/certification/training-materials-certification/)

返回
IFPUG
FAQ
PAGE

2.功能点适用于所有人吗?
这个问题没有确定答案,要看你是否需要知道你所在的软件开发项目中开发或升级的软件的大小,或者你是否需要知道软件组合中软件系统的大小。功能点度量能和其他度量指标一起帮助你快速了解项目和应用的如下信息:

  • 什么项目生产率更高;
  • 什么项目提供更高质量的软件产品或应用;
  • 什么项目估算更准确;
  • 什么项目需要过程改进方法;
  • 什么项目偏离了预算和成本基线;
  • 什么项目的项目绩效低(或高);

如果在你的IT职责中遇到了以上问题,那么功能点分析对你很适用!

返回

IFPUG
FAQ
PAGE

3.为什么要进行度量?世界前25%的公司(来源于ISBSG)都用软件度量来管理他们的IT以及软件开发,原因如下:

  • 不能度量就无法管理;
  • 识别项目和软件应用的问题并采取纠正措施 一般来说,大的IT项目45%会超出预算,7%会延期,56%会达不到预期价值。软件项目在成本和进度方面都面临高风险,以上结论由麦肯锡和牛津大学2012年10月联合得出。
  • 比较不同供应商对RFP(招标文件)的投标报价;
  • 度量可对项目当前状态进行评估,有助于对软件开发过程的了解和改进。(参见Guidelines to Software Measurement – Release 1.1, pg.2-4, 3-7 – 3-8;)
  • 有助于确定公司软件开发的最佳实践
  • 度量交付软件的质量,对提供高质量软件的开发团队给予经济鼓励。
  • 基于功能点和SNAP的度量提供了一种和客户沟通软件需求规模的途径,并且基于功能点数据很容易计算出生产率、质量和估算精度。
  • 你的许多竞争对手可能已经有这些观念了。

返回

IFPUG
FAQ
PAGE

4.1 IFPUG会员资格有什么用?
本网站及其他许多信息对会员和非会员都是免费的,但成为IFPUG会员有如下好处:

  • 提供和世界上不同公司的专家现场或网络沟通的机会,这些专家都有度量经验或在做度量相关的工作;
  • 对ISBSG标杆数据(用于精益六西格玛)及其他产品享受折扣价;
  • 提供加入功能点标准委员会的机会;
  • 每年的知识分享会可以提供:
    • 认识度量领域人士的机会;
    • 通过会议之前的研讨会可以得到学习和继续教育优惠的教育机会;
    • 提供培训和认证测试的途径,可以获得全球公认的认证资格,包括:
      • CFPS:认证功能点专家(最早且获得最广泛认可的功能规模度量资格);
      • CFPP:认证功能点从业者(从事功能点度量的专业人士但不一定是专家);
      • CSP:认证SNAP从业者(世界范围内唯一的测试软件非功能需求度量知识的资格);
    • 有接受行业专家和经验丰富的从业者在度量领域成功(包括失败)经验的机会。
  • 专业出版物:
    • Metric Views(半年刊)- 有印刷版和电子版,内容包括软件度量文章、IFPUG新闻、委员会更新以及软件度量界的最新进展信息等;
  • 享受IFPUG产品的大幅折扣,包括:
    • ISO标准和IFPUG计数实践手册(CPM),包括接近300页的计数规则、方法及实例;
    • FP Case Studies,提供了如何把CPM规则应用到软件需求度量中的功能点计数实例;
    • Guide to Management Reporting,提供成功应用功能点交付管理结果的有用建议;
    • 白皮书及其他IFPUG出版物,介绍FP如何应用在新技术(CS结构、网络等)、应用(如数据仓库)和方法论(如敏捷开发)中。
  • 访问IFPUG网站的会员页,你可以在那里找到会员之间交流软件度量相关技术的帖子(你也可以向IFPUG社区提出问题,以获得想要的答案),
  • 要想获得最新版的CPM、SNAP或其他文档,请进入我们的在线商城,你可以在商城把商品添加到购物车并结算。

请访问在线商城

4.2 IFPUG服务需要付费吗?
IFPUG会员享受参加会议、研讨会和购买著作的折扣,并能访问网站中的会员内容。另外,我们鼓励所有IFPUG会员都加入IFPUG社区,并欢迎加入我们的各个委员会。其他服务目前都免费。
4.3 如何向高层经理推销功能点(以及软件度量)?

首先要对使用功能点分析的好处了然于胸(功能点是独立于软件开发所使用的工具、技术、技能和方法而度量的软件规模),然后了解使用基于功能点的软件度量所带来的的投资回报率。

接着需要研究可得的行业数据(对那些没有收集历史功能点数据的公司更有用),例如ISBSG数据。
国际软件标杆标准组(ISBSG)的标杆数据是世界范围内的软件开发项目数据,这些数据可有效用于项目估算、项目比较分析,以及评估你所在公司的项目绩效(生产率和质量)。IFPUG会员享受所有ISBSG产品折扣。

返回

IFPUG
FAQ
PAGE

5.如何向开发人员和项目经理们说明功能点分析的重要性?
功能点分析 (FPA) 可以让你的项目计划更准确并有助于管理范围蔓延。另外,由于使用功能点分析及历史数据使估算更准确,开发人员更容易完成给定时间内分配的任务。

返回

IFPUG
FAQ
PAGE

6.辅助功能点估算的工具有哪些?

新软件开发项目可使用COSMIC, 早期功能点估算可用ISBSG比较估算工具。

返回

IFPUG
FAQ
PAGE

7.如何向用户说明功能点分析的重要性?
功能点分析基于功能用户需求(“按照业务过程和程序软件需要完成的功能”)评估软件的功能规模。因此,FPA从用户视角来看待软件并基于软件中五种标准的、用户可识别的组件来确定功能点数:两种存储数据实体的类型(内部逻辑文件和外部接口文件)和三种业务处理过程类型(外部输入、外部输出和外部查询)。FP结果(业务过程和功能组件规模列表)用用户可理解的术语描述。FP计数提供了软件开发人员和用户之间沟通的通用语言。FP计数过程本身也有助于发现遗漏的需求,并能提供对软件产品规模客观准确的估算,因此也有利于用户更好地进行预算控制。

返回

IFPUG
FAQ
PAGE

8.1 什么是功能点基线?

  • 应用功能点基线是系统提供给用户的当前功能的规模。
  • 公司或组织的总基线就是所有单个系统基线计数之和。

8.2 我需要功能点基线吗?

这取决于你想用功能点基线做什么。如果你的目标是为了替换软件应用而评估其规模,那么了解当前应用有多大将有助于估算重置成本。如果你的目标是能够准确评估一年中通过软件升级修改或增加了多少软件功能,那么你可能需要有功能点基线。

  • 如果你的目标是提升项目质量、生产率或估算精度,那么你可能不需要功能点基线,而需要度量软件开发或升级的规模。
  • 如果你的目标是在项目组合或应用集中比较支持和维护成本(每FP成本),那么你需要知道那些应用的功能点基线以及每个项目的基线。

返回

IFPUG
FAQ
PAGE

9.为什么不用代码行(计算生产率或质量时作为软件规模的度量单位)?

这个问题在公司考虑用FP还是代码行(SLOC)作为软件规模度量单位时经常会遇到。FP具有独立于技术和实现的优点,而代码行有以下缺点:

  • 使用代码行倾向于鼓励臃肿的设计而不是简洁的设计(例如:“意大利面条式”代码不会像好的编码设计那样高产且实现相同的功能需要代码行更少。当用代码行表示时,代码行多并不一定意味着生产率高)。
  • 没有针对代码行的行业标准(ISO或其他)(例如:有人提倡数非注释命令行,但这种做法并没有得到广泛接受)。
  • 代码行并不能跨平台、语言或组织而标准化使用(因为不同编程语言和编程习惯下,实现相同功能代码行数也会不同)。
  • 某些第四代语言(4GL)甚至不能用代码行度量。
  • 基于代码行的生产率很容易引起歧义–参见Capers Jones 生产率悖论

返回

IFPUG
FAQ
PAGE

10.转换(使用基于编程语言的转换表把SLOC转换成FP)怎么样?

  • 转换是基于代码行的,因此会陷入和使用代码行相同的困境。
  • 它可以用在未来不需要做多少修改的遗留系统中。
  • 如果不考虑准确度的话,转换还是有用的。

返回

IFPUG
FAQ
PAGE

11.1 我们需要提升,应该从哪儿开始呢?

  • 首先需要确定哪方面需要提升。GQM (Goal/Question/Metric)过程有助于解决这个问题。其他免费资料(可下载)可以从Practical Software and Systems Measurement (PSSM) 网站 获取。一旦确定了目标,FP规模作为生产率和资产收益率的分母,可能会成为需要收集的重要数据。
  • 提升目标一旦确定,也就明确了应该从哪儿开始提升(例如:质量、生产率或估算精度等)。
  • 加入IFPUG并和其他会员通过内部论坛交流基于功能点的软件过程改进和度量成功经验。

11.2 如果只有我和500名开发人员,我该怎么开始呢?
确定你的开发团队目前最关键的问题。针对最关键问题开始度量过程(使用GQM过程),并及时沟通度量结果以获得支持和认同。专家建议首先在小范围内开始度量程序,度量结果获得认同后再在整个公司内推广。这样,你可以确保度量目标的正确,度量程序的正确,并在大范围推广度量前获得一些成功经验。

11.3 如果生产率很重要,我应该度量什么生产率-新开发项目、维护等等?
同样,这取决于你的度量目标。根据GQM方法,你可以使用帕累托法则(80/20法则)来确定问题所在以及首先进行生产率度量的目标区域。例如:如果在软件支持/维护方面人手不足以及存在挑战,那么支持率(如每1000FP所需的支持人员数量)可用来客观证明是否人手不足。

返回

IFPUG
FAQ
PAGE

12.1想要提升软件开发生产率,需要收集哪些信息?

  • 生产率可以用不同的比率来表示,其中包括功能点。可参考the Guide to Management Reporting(IFPUG出版)或the ISBSG Practical Project Estimating(ISBSG产品)。

12.2为了进行FP计数,我需要做什么?

IFPUG CPM(当前版本4.3.1)中说明了FP计数时需收集的文档。第一步需要确定计数目的和范围,以及计数类型,即开发项目、升级项目还是应用的功能点计数。注意软件的每部分都具有独立的应用边界(详细请参考CPM),都应该分别进行FP计数。

为了进行功能点计数,需要了解软件的如下信息(功能用户需求):

  • 用户可定义的输出,这些输出穿过应用边界且是基本过程的处理结果(如:报表格式、界面显示、输出文件等)。
  • 用户可定义的输入,这些输入穿过应用边界并且触发基本过程的执行(如:界面输入、文件输入、批量文件输入等)。
  • 由应用维护的用户可定义的数据存储(如:文件、表定义、数据库或实体定义)。
  • 应用仅访问引用的用户可定义的数据存储(如:文件、表定义)。
  • 穿过应用边界的用户可定义的查询(如报表格式、界面显示等)。
  • FP计数过程在IFPUG CPM中有详细的说明。
  • 支持率=应用功能点/支持应用的工作小时
  • 升级率=项目中升级的功能点/项目工作小时
  • 交付率=交付的软件应用的功能点/日历时间
  • 关于功能点分析的更多信息,请参考IFPUG CPM。
  • 为了提高交付率的敏捷软件开发方法

返回

IFPUG
FAQ
PAGE

13.CIO需要了解软件规模(FP和SNAP)吗?

对于高级管理人员来说,IT组合管理非常重要。软件规模有助于评估IT项目的投资回报,还可以用来对不同实施方案进行成本-效益分析比较。功能点、SNAP点可以和其他度量指标(项目工作量、缺陷等)结合使用,用来监控趋势和进行标杆比对分析。

返回

IFPUG
FAQ
PAGE

14.CIO需要了解敏捷开发和功能点吗?
使用任何度量方法比较或评估不同类型的项目或合同时,最需要考虑的是一致性。针对敏捷项目,开发人员常常拒绝使用FP(认为敏捷项目不能用FP度量)或接受FP(认为用FP度量敏捷项目能比瀑布型项目得到更多的FP)。这两种认识都是错误的!FP表示基于功能用户需求的软件交付部分的规模,这些功能是完整的和连续的业务过程。(参见文章 Counting FP on Agile/Iterative Projects 。)

FP是一种评估固定总价合同的有效方法,也可以用来在软件开发项目的招标过程中比较竞标者的RFPs(例如:若两家竞标者的FP报价差别很大,则说明其中一个供应商可能没有完全理解待开发软件的功能需求)。

在外包和软件开发行业中,IBM和CGI都使用FP(且拥有认证功能点专家团队)评审提交的建议书。

不同的合同类型都能从使用功能点估算中受益,有些国家(包括意大利、巴西、韩国、芬兰)逐渐要求建议书中使用功能点估算,并且在软件合同中使用功能点报价(每FP成本)。

返回

IFPUG
FAQ
PAGE

15.想要通过使用FP提升估算过程,需要收集哪些信息?
软件估算本身是一个完整的过程,但是使用功能点作为输入进行项目估算的前提至少包括以下信息:

  • 开发类型;(新开发或升级)
  • 平台;(硬件和架构)
  • 语言;(编程语言或级别)
  • 团队经验;
  • 技术;(开发方法)
  • 外部约束;
  • 范围蔓延

为了做好估算,使估算可靠,无论你是使用公司内部的评估方法,使用ISBSG的历史交付率,还是使用专业软件包,你都需要了解相似项目的交付率。市场上有一些有助于提高估算准确度的软件包。

返回

IFPUG
FAQ
PAGE

16.想要提升质量,需要收集哪些信息?

  • 质量对不同的人含义不同。确定你所在组织对质量的定义。可以从ISO 9126的软件系统质量属性以及GQM过程获得帮助。
  • 质量度量的例子有:
    • 缺陷密度-缺陷数量/功能点规模
    • 缺陷交付率-上线第一个月发现的缺陷数量。

返回

IFPUG
FAQ
PAGE

17.我们需要认证的CFPS顾问吗?
这个问题需要每个公司自己来回答。需要考虑的有:

  • 我们需要在几个月中得到完整的功能点基线吗?如果答案是肯定的,那么最好有几个认证顾问来帮你。当功能点基线完成后,你可能需要一个或多个认证的功能点计数人员来自己维护这个基线。
  • 我们只想开始功能点计数并估算“大项目”。如果是这样,你可以派几个员工参加IFPUG研讨会或年会从而接受培训。经过培训,他们可以执行功能点度量并开始收集数据。你可能也需要一名或多名认证员工来审计功能点度量结果。
  • 你可能只能从老板那里得到我们需要开始度量的指示,而没有更详细的信息。如果这样,你可以引进顾问,执行GQM会议来确定度量从哪里开始。你也可以派几个员工参加IFPUG研讨会或年会从而接受培训。
  • 你处在一个大型公司,老板想立刻开始度量所有信息。如果这样,你可能需要一个顾问来:
    • 执行GQM会议;
    • 培训几个员工进行功能点计数。
    • 你也可能需要指定几人为工作量协调员,几人执行功能点计数并收集数据。协调员应该为认证功能点人员,因为他们会对功能点计数进行审计,并且当出现问题时做出判断。

返回

IFPUG
FAQ
PAGE

18.1功能点顾问需要具备什么能力?

  • 有功能点计数专业知识的人。
  • 应为IFPUG认证功能点专家(CFPS),使用SNAP时,应为CSP。
  • 应在和你相近的行业中具有功能点计数经验。
  • 好的人际关系技能以及和你公司文化相容。
  • 具有把功能点应用到度量程序中的度量专业知识。

18.2如何确认顾问的IFPUG认证资格?

在IFPUG网站的“Public Certification Search”进行查询。

返回

IFPUG
FAQ
PAGE

19.1在哪里找功能点顾问呢?
查看供应商列表列表中有属于IFPUG会员的所有供应商。

19.2还有谁能当顾问?
IFPUG有世界各国的的许多会员。会员来自各个行业,包括但不限于:

  • 航天航空
  • 银行
  • 金融
  • 通信
  • 保险
  • 制造
  • 公用事业
  • 零售业
  • 政府
  • 计算机系统开发

IFPUG会员最大的好处之一是能访问IFPUG会员网络(通过讨论组或邮件),那里有会员成功经验,包括基于FP的度量以及过程改进程序。

返回

IFPUG
FAQ
PAGE

20.在哪里可以了解到功能点相关的更多信息?
参考我们的文献/资料库进一步了解功能点分析的内容。

请通过Facebook和LinkedIn和我们联系,欢迎您在朋友圈分享我们的信息。

IFPUG网站,请收藏供以后参考
IFPUG Facebook主页,请点击“Like”
IFPUG Twitter,了解白皮书的最新版本和其他新闻。
IFPUG LinkedIn,请点击“Follow”

如果要建议其他的常见问题或编辑本页中的问题,请点击 Contact Us并在信息主题中包含 “IFPUG FAQ”字样。

会员和非会员可以从在线商城下载文档,也可以在商城续订或购买IFPUG会员资格。
返回