Function Points Analysis

Understanding of terminology :-

Record Element Type

Example, there are three subgroups or RETs as shown below:

  • Salaried employee (mandatory); includes general information
  • Hourly employee (mandatory); includes general information
  • Dependent (optional)

RET Rules One of the following rules applies when counting RETs:

  • Count a RET for each optional or mandatory subgroup of the ILF or EIF.

Or

  • If there are no subgroups, count the ILF or EIF as one RET.

File Type Referenced (FTR): A FTR is a file type referenced by a transaction.  An FTR must also be an Internal Logical File (ILF) or External Interface File (EIF).

Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive) field.   A DET is information that is dynamic and not static.   A dynamic field is read from a file or created from DET’s contained in a FTR.  Additionally, a DET can invoke transactions or can be additional information regarding transactions.  If a DET is recursive then only the first occurrence of the DET is considered not every occurrence.

Transaction DET’s:

External Inputs: Data Input Fields, Error Messages, Calculated Values, Buttons

External Outputs: Data Fields on a Report, Calculated Values, Error Messages, and Column Headings that are read from an ILF or EIF.  Like an EQ and EO can have an input side and output sides.

External Inquiries: Input Side – field used to search by, the click of the mouse.  Output side – displayed fields on a screen.  DET’s for an EQ must come from either an EIF or ILF.

External Inputs:

External Inputs (EI) – is an elementary process in which data crosses the boundary from outside to inside.  This data may come from a data input screen or another application. The data may be used to maintain one or more internal logical files.  The data can be either control information or business information.  If the data is control information it does not have to maintain an internal logical file.

Data Elements:

Unique sets of data elements help distinguish external input from other external input.  It is the set of DET’s combined that create the elementary process called an EI. The following are examples of DET’s.

  • Data Input Fields
  • Calculated Values that are stored
  • Error Messages
  • Confirmation Messages
  • Recursive fields are only counted as one DET.
  • Action keys (command buttons such as OK, Next, so on and so forth)
  • Multiple Action Keys that perform the same function are counted only as one DET.

File Types Referenced (FTR’s):

Unique FTR’s helps distinguish external input from other external input.  An FTR must be either an Internal Logical File and/or External Interface File.  Each internal logical file that an external input maintains is counted as an FTR.  Any internal logical file or external interface file that is referenced by an external input as part of the elementary process of maintaining an internal logical file would be considered an FTR also.  For example, an External Input may update an internal logical file, but must also reference a “security file” to make sure that the user has appropriate security levels.   This would be an example of two FTR’s.

Uniqueness:

A unique set of data elements, and/or a different set of FTR’s, and/or a unique set of calculations make one external input unique or different from other external inputs.  That is, one of the following must be true:

  • Unique or different set of data elements
  • Unique or different set of FTR’s
  • Unique or different calculations

Calculations alone are not an elementary process but part of the elementary process of the external input. A calculation (or derived data) does not make the transaction an external output.  External outputs and derived data will be discussed in detail in the external output section of this document.

Understanding Enhancement Function Points:

Modification of any of the items, which make an External Input unique from other external inputs, causes the EI to be “enhanced.” If any of the following are true:

 

  • DET’s added to an EI
  • DET’s modified on an EI. The DET was included in the last FP Count.
  • A New FTR
  • Modifications to a calculation that appears on an EI.

Tips to Identify External Inputs early in the life cycle:

The following types of documentation can be used to assist in counting EI’s prior to system implementation.

  • Any refined objectives and constraints for the proposed system.
  • Collected documentation regarding the current system, if such a system (either automated or manual) exits.
  • Documentation of the users’ perceived objectives, problems and needs.
  • Preliminary Data Flow Diagram.
  • Requirements Documentation.

Typical Vocabulary:

The following words are associated with external input or “inputs.” While reading textual document or application description look for these type of words, they may indicate an add, change or delete aspect of an external input.

 

Add

Activate

Amend (change and delete)

Cancel

Change

Convert (change)

Create (add)

Delete

Deassign

Disable

Disconnect (change or delete)

Enable

Edit (change)

Insert ( add and change)

Maintain (add, change, or delete)

Memorize (add)

 

Modify (change)

Override (change)

Post (add, change and delete)

Remove (delete)

Reactivate (change)

Remit

Replace (change)

Revise (change and delete)

Save (add, change or delete)

Store (add)

Suspend (change or delete)

Submit (add, change or delete)

Update (add, change or delete)

Voids (change and delete)

External Outputs

External Outputs (EO) – an elementary process in which derived data passes across the boundary from inside to outside.   Additionally, an EO may update an ILF.  The data creates reports or output files sent to other applications.  These reports and files are created from information contained in one or more internal logical files and external interface files.

 Derived Data is data that is processed beyond direct retrieval and editing of information from internal logical files or external interface files.  Derived data is usually the result of algorithms, or calculations.   Derived data occurs when one or more data elements are combined with a formula to generate or derive an additional data element(s).  This derived data does not appear in any FTR (internal logical file or external interface file).

An algorithm is defined as a mechanical procedure for performing a given calculation or solving a problem in a series of steps.

A calculation is defined as an equation that has one or more operators.  An operator is a mathematical function such as addition, subtraction, multiplication, and division (+, -,x, /).

 Examples:

Unlike other components EO’s almost always contain business data.  Rule base data and control based “outputs” are almost always considered External Inquiries.  This is true due to the fact that rule data and control type data is not derived (or derivable).

Notification Messages are considered EO’s.  A notification message differs from an error message.  A notification message is an elementary process, while an error message (or confirmation message) is part of an elementary process.  A notification message is the result of some business logic processing.  For example, a trading application may notify a broker that the customer trying to place an order does not have adequate funds in their account.

Derived Data displayed in textual fashion (rows and columns) and graphical format is an example of two external outputs.

Typical Vocabulary:

The following words are associated with an “external outputs.”   While reading textual documents or application descriptions look for these types of words.  They may indicate an external output.  Notice these words are very similar to those words used for an External Inquiry (discussed in the next chapter).

 

Browse

Display

Get

On-lines

Output

Print

Query

 

Reports

Request

Retrieve

Seek

Select

View

 

External Inquiries

External Inquiry (EQ) – an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files.  The input process does not update or maintain any FTR’s (Internal Logical Files or External Interface Files) and the output side does not contain derived data.

Data Elements:

Unique sets of data elements help to distinguish one external inquiry from another external inquiry.

  • Input Side
    • Click of a the mouse
    • Search values
    • Action keys (command buttons)
    • Error Messages
    • Confirmation Messages (searching)
    • Clicking on the an action key
    • Scrolling
    • Recursive fields are counted only once.
  • Outside
    • Values read from an internal logical file or external interface file
    • Color or Font changes on the screen
    • Error Messages
    • Confirmation Messages
    • Recursive fields are counted only once.
  • The combined (unique) total input and outside DET’s are used when rating EQ’s.

Typical Vocabulary:

The following words are associated with an “external inquiry.”   While reading textual document or application description look for these type of words.  They may indicate an external inquiry.  Notice the words are very similar to those related to external outputs.

Browse

Display

Extract

Fetch

Find

Get

Drop Down

Lists

Look Ups

On-lines

Output

Pick Lists

Print

 

 

Query

Scan

Seek

Select

Show

View

Reports

 

Internal Logical Files

Internal Logical Files (ILF) – a user identifiable group of logically related data that resides entirely within the application boundary and is maintained through External Inputs.  Maintained is the process of modifying data (adding, changed and deleting) via an elementary process (via an External Input).

Even though it is not a rule, an ILF should have at least one external output and/or external inquiry.  That is, at least one external output and/or external inquiry should include the ILF as an FTR.   Simply put, information is stored in an ILF, so it can be used later. The EO or EQ could be from another application.  It is worth noting that an ILF may not be referenced by EO or EQ, but may be used by an EI (other than the EI that maintains it).

Counting Tips:

Determine the appropriate row first then the column.  Ask the question, do all files contain one record type of more than one record type?  If all or many of the files only contain one record type, then all that is needed to know if the file contains more or less than 50 data elements types (DET’s).  If the file contains more than 50 data elements the file will be rated as average, if less than 50 data element types the file will be considered low.  Any files that contain more than one record type can be singled out and counted separately.

 

External Interface Files

External Interface Files (EIF) – a user identifiable group of logically related data that is used for reference purposes only.  The data resides entirely outside the application boundary and is maintained by another applications external inputs.  The external interface file is an internal logical file for another application.

Each EIF included must have at least one transaction, external input, external output or external inquiry against it.  In other words there must at least one transaction that includes the EIF as a FTR.   If the EIF does not have one transaction, then one must wonder what is the purpose of the EIF and how was the information retrieved.

Counting Tips:

Only count the part of the file that is used by the application being counted not the entire file.  The internal logical file, of another application, that you access may have a large amount of DET’s and RET’s, but only consider the DET’s and/or RET’s that are used when rating an EIF.

Determine the appropriate row first then the column.  Ask the question, do all files contain one record type of more than one record type?  If all or many of the files only contain one record type, then all that is needed to know if the file contains more or less than 50 data elements types (DET’s).  If the file contains more than 50 data elements the file will be rated as average, if less than 50 data element types the file will be considered low.  Any files that contain more than one record type can be singled out and counted separately.

Value adjustment factor (VAF)

Definition:

The value adjustment factor (VAF) is based on 14 general system characteristics (GSC’s) that rate the general functionality of the application being counted.  Each characteristic has associated descriptions that help determine the degrees of influence of the characteristics.

Once all the 14 GSC’s have been answered, they should be tabulated using the IFPUG Value Adjustment Equation (VAF) —

14             where: Ci = degree of influence for each General System Characteristic

VAF = 0.65 + (    Ci) / 100         .i = is from 1 to 14 representing each GSC.

i =1                       = is summation of all 14 GSC’s.

Another way to understand the formula is VAF = (65 + TDI)/100, where TDI is the sum of the results from each question. A Microsoft Excel formula would be: =0.65+SUM(A1:A14)/100 ; assuming that the values for the characteristics were in cells A1 – A14.

General System Characteristic  Brief Description
1. Data communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system?
2. Distributed data processing How are distributed data and processing functions handled?
3. Performance Did the user require response time or throughput?
4. Heavily used configuration How heavily used is the current hardware platform where the application will be executed?
5. Transaction rate How frequently are transactions executed daily, weekly, monthly, etc.?
6. On-Line data entry What percentage of the information is entered On-Line?
7. End-user efficiency Was the application designed for end-user efficiency?
8. On-Line update How many ILF’s are updated by On-Line transaction?
9. Complex processing Does the application have extensive logical or mathematical processing?
10. Reusability Was the application developed to meet one or many user’s needs?
11. Installation ease How difficult is conversion and installation?
12. Operational ease How effective and/or automated are start-up, back up, and recovery procedures?
13. Multiple sites Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations?
14. Facilitate change Was the application specifically designed, developed, and supported to facilitate change?

Calculating Adjusted Function Point

Definition:

The final Function Point Count is obtained by multiplying the VAF times the Unadjusted Function Point (UAF).   The standard function point equation is:

FP = UAF * VAF

Where:

UAF = Unadjusted Function Points

VAF = Value Adjustment Factor

 

 

DET Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive) field.
EI External Inputs (EI) – is an elementary process in which data crosses the boundary from outside to inside.
EIF External Interface Files (EIF) – a user identifiable group of logically related data that is used for reference purposes only.
EO External Outputs (EO) – an elementary process in which derived data passes across the boundary from inside to outside
EQ External Inquiry (EQ) – an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files.
FTR File Type Referenced (FTR): A FTR is a file type referenced by a transaction.  An FTR must also be an internal logical file or external interface file.
GSC General System Characteristics
ILF Internal Logical Files (ILF) – a user identifiable group of logically related data that resides entirely within the application boundary and is maintained through External Input
RET Record Element Type (RET): A RET is user recognizable sub group of data elements within an ILF or an EIF
UAF Unadjusted Function Points
VAF The value adjustment factor (VAF) is based on 14 general system characteristics
AFP Application Function Point Count after the enhancement
AFPB The initial application function point count or baseline
CFP Conversion Unadjusted Function Point Count
DFP Development Project Function Point Count
EFP Enhancement Project Function Point Count
UFP Unadjusted Function Points
UFPB Unadjusted Function Point Count Before Enhancement
VAFA The value adjustment factor of the application after the enhancement project.
VAFB The value adjustment factor of the application before the enhancement project.

Case Study

Consider following feature and try to estimate using Functional Point Analysis.

# Feature asked for Description of feature offered Boundaries (Exclusions/Out of scope)
1 Registration Graphical User Interface to provide registration using username, password, phone number.

Only Authenticated user can access MobiFone Portal’s functionality using user name and password.

2 Email Email services could be accessed to Mail Box by using WAP (Wireless Application Protocol).This service allows users to create, edit, sent or deletes an email.
3 Calendar User can access calendar information using web browser or WAP.They can Received SMS alert using SyncML (Synchronization Markup Language).
4 Address book Systems store the address book details in alphabetical order of people’s names,

Users could use the address book by Web browser, WAP or SMS

5 Web originated SMS User sends and or receives text messages with other Mobile Phone Portal and/or Mobile Card.
6 Account management (self care) Allow user to view, print or export monthly bill detail.
7 Introducing customer service
8 Picture gallery User could upload, view, edit, delete or sent a photograph to mobile phone as MMS or E-Mail.
9 OTA provisioning MobiFone Portal’s can sent new software updates to the OTA capable mobile user.
10 Provide Mobile Fun/Mobile Fun Live content
11 Search engine Search Engine help the user to find information stored on a computer system, such as on the World Wide Web, inside a corporate or proprietary network, or in a personal computer.
12 Integrated online service for Mobile Phone Allow customer to access integrated services like Mobile Live Score, Mobile Chat, Connecting to long time, Notice miss call, OTP

 

12.1 Mobile Live Score Customer can register or unregistered for Live Match.
12.2 Mobile Chat Customer can login and chat from website, include: chat computer to computer or computer to mobile.
12.3 Connecting to long time Customer can register for programme and

view point.

12.4 Notice miss call Register to service / cancel service / view information for a miss call.
12.5 OTP Customer can have the option to download menu SIM from website.
13 Provide tools for update content Provide tools to update content for MobiFun/ MobiFun Live and manage contents to be updated by users
14 Provide tools for customer support part of VMS Provide functionality for customer support agent of VMS, which is look up information of customer website.
15 Reporting system Following Report will be generated:

1. Number of hit for the Mobile Phone Portal’s.

2.Monthly  registration / active users.

3. System resources utilization, Usage of bandwidth.

16 ICT information page A portal page is provided for the information of Integrated Mobile telecommunication technology and information technology.
17 WAP site MobiFone portal MobiFone Portal’s WAP site is to provide all of the basic services of a computer based web site but simplified to operate within the restrictions of a mobile phone.
18 Administration tools An interface will be provided for managing a single or multiple computers with a variety of tools, such as: Registration of user, sent WAP’ SMS.

 

Solution :-

Function Point Calculation Summary Report
Application: Mobile Phone Portal Appl ID:
Prepared By: Prem Ranjan Shankar Reviewed By:
Notes:   Initial Baseline Count  IFPUG Version: 4.0
General System Characteristic Value General System Characteristic Value
1.  Data Communications 5 8.  On-Line Updates 3
2.  Distributed Processing 5 9.  Complex Processing 3
3.  Performance 4 10.  Reusability 4
4.  Heavily Used Configuration 4 11.  Installation Ease 3
5.  Transaction Rates 3 12.  Operational Ease 4
6.  On-Line Data Entry 3 13.  Multiple Sites 4
7.  End-User Efficiency 3 14.  Facilitate Change 3
Total Degree of Influence (TDI) 51
Value Adjustment Factor (VAF) = (TDI X .01) + .65 1.16
Component:
Files (ILFs + EIFs) 49 External Outputs (EOs) 76
External Inputs (EIs) 93 External Inquiries (EQs) 38
Total Unadjusted Function Points: 256
Total Function Points = Value Adjustment Factor x Unadjusted Function Points:
296

Effort Summary:-

Item
FP 296.96
Productivity 1 FP/day
Efforts in Person Days 297 Person Days
Acceptance Testing 30 Person Days
Efforts Required for all Components 327 Person Days
Total Effort Required 327 Person Days
Grand Total Required 327 Person Days
Phase Distribution (PMO) Efforts
Setup 1% 3.27 PD
Requirements Study 6% 19.62 PD
Function Specs & Prototype 9% 29.43 PD
Design 12% 39.24 PD
Test Case creation 5% 16.35 PD
Coding and code review 29% 94.83 PD
Unit Testing & defect fix 5% 16.35 PD
IT and defect fix 23% 75.21 PD
PM & KM 10% 32.7 PD
TOTAL 100% 327 PD

For complete solution: contact easycasestudy@outlook.com