Albrecht 的功能点方法
功能点度量提供了一种标准化方法来测量软件应用程序的各种功能。它从用户的角度来衡量功能,即根据用户请求和收到的回报来衡量。功能点分析是从用户的角度衡量软件开发的标准方法。
最初由 Albrecht 构想的功能点度量随着 1986 年国际功能点用户组 (IFPUG) 的成立而越来越受欢迎。2002 年,IFPUG 功能点成为国际 ISO 标准 - ISO/IEC 20926。
什么是功能点?
FP(功能点) 是最广泛的功能类型度量,适用于量化软件应用程序。它基于五种用户可识别的逻辑"功能",分为两种数据功能类型和三种事务功能类型。对于给定的软件应用程序,每个元素都被量化和加权,计算其特征元素,例如文件引用或逻辑字段。
结果数字(未调整的 FP)被分组为已添加、已更改或已删除的功能集,并与价值调整因子 (VAF) 相结合以获得最终的 FP 数量。每个计数类型使用不同的最终公式:应用程序、开发项目或增强项目。
应用 Albrecht 的功能点方法
现在让我们了解如何应用 Albrecht 的功能点方法。其过程如下 −
确定组件的数量(EI、EO、EQ、ILF 和 ELF)
EI − 外部输入的数量。这些是派生数据从外部到内部跨越边界的基本过程。在示例图书馆数据库系统中,输入现有读者的借书证号码。
EO − 外部输出的数量。这些是派生数据从内部传递到外部的基本过程。在示例图书馆数据库系统中,显示借给读者的书籍列表。
EQ − 外部查询的数量。这些是具有输入和输出组件的基本过程,可从一个或多个内部逻辑文件和外部接口文件中检索数据。在示例图书馆数据库系统中,确定当前借给读者的书籍。
ILF − 内部日志文件的数量。这些是用户可识别的逻辑相关数据组,完全位于应用程序边界内,通过外部输入进行维护。在示例图书馆数据库系统中,图书馆中的书籍文件。
ELF − 外部日志文件的数量。这些是用户可识别的逻辑相关数据组,仅用于参考目的,并且完全位于系统之外。在示例图书馆数据库系统中,包含图书馆计费系统中的交易的文件。
计算未调整的功能点数 (UFC)
将每个组件评为低、平均或高。
对于交易(EI、EO 和 EQ),评级基于FTR和DET。
FTR −更新或引用的文件数量。
DET − 用户可识别字段的数量。
根据下表,引用 2 个文件和 10 个数据元素的 EI 将被评为 平均。
FTRs | DETs | |||
---|---|---|---|---|
1-5 | 6-15 | >15 | ||
0-1 | Low | Low | Average | |
2-3 | Low | Average | High | |
>3 | Average | High | High |
For files (ILF and ELF), the rating is based on the RET and DET.
RET − The number of user-recognizable data elements in an ILF or ELF.
DET − The number of user-recognizable fields.
Based on the following table, an ILF that contains 10 data elements and 5 fields would be ranked as high.
RETs | DETs | |||
---|---|---|---|---|
1-5 | 6-15 | >15 | ||
1 | Low | Low | Average | |
2-5 | Low | Average | High | |
>5 | Average | High | High |
Convert ratings into UFCs.
Rating | Values | ||||
---|---|---|---|---|---|
EO | EQ | EI | ILF | ELF | |
Low | 4 | 3 | 3 | 7 | 5 |
Average | 5 | 4 | 4 | 10 | 7 |
High | 6 | 5 | 6 | 15 | 10 |
Compute the Final Function Point Count (FPC)
Compute value adjustment factor (VAF) based on 14 general system characteristics (GSC).
General System Characteristic | Brief Description | |
---|---|---|
GSC 1 | Data communications | How many communication facilities are there to aid in the transfer or exchange of information with the application or system? |
GSC 2 | Distributed data processing | How are distributed data and processing functions handled? |
GSC 3 | Performance | Was the response time or throughput required by the user? |
GSC 4 | Heavily used configuration | How heavily used is the current hardware platform where the application will be executed? |
GSC 5 | Transaction rate | How frequently are transactions executed daily, weekly, monthly, etc.? |
GSC 6 | On-Line data entry | What percentage of the information is entered online? |
GSC 7 | End-user efficiency | Was the application designed for end-user efficiency? |
GSC 8 | On-Line update | How many ILFs are updated by online transaction? |
GSC 9 | Complex processing | Does the application have extensive logical or mathematical processing? |
GSC 10 | Reusability | Was the application developed to meet one or many user’s needs? |
GSC 11 | Installation ease | How difficult is conversion and installation? |
GSC 12 | Operational ease | How effective and/or automated are start-up, back-up, and recovery procedures? |
GSC 13 | Multiple sites | Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations? |
GSC 14 | Facilitate change | Was the application specifically designed, developed, and supported to facilitate change? |
Weigh each GSC on a scale of 0 to 5 based on whether it has no influence to strong influence.
Compute the FPC as follows −
FPC = UFC * (0.65+(sum(GSC) * .01))
Complexity
Complexity is a separate component of size. It is of two types −
Complexity of a problem − It is the amount of resources required for an optimal solution to the problem.
Complexity of a solution − It is the resources needed to implement a particular solution. It has two aspects. They are as follows −
Time complexity − The resource is computer time.
Space complexity − The resource is computer memory.
Measuring Complexity
One aspect of complexity is efficiency. It measures any software product that can be modeled as an algorithm.
For example: If an algorithm for solving all instances of a particular problem requires f(n) computations, then f(n) is asymptotically optimal, if for every other algorithm with complexity g that solves the problem f is O(g). Then, the complexity of the given problem is big - O of the asymptotically optimal algorithm for the problem’s solution.