SlideShare a Scribd company logo
1 of 75
Function Point Analysis
ISO/IEC 20926:2009
ARAF KARSH HAMID
Topics
2
1. Software Sizing Background
2. Function Point
3. Rules for Counting FP
4. Deep Dive - Function Point Analysis
5. Case Study
6. General Software Characteristics Details
History – Measurement Methodologies
3
• Lines of Code (Oldest)
• Use case based Software Sizing
• IPFUG Function Point Analysis
(ISO)
Need for Software Sizing
4
1. Estimation and Budgeting
2. Phasing Development Work
3. Prioritization of Work
4. Monitoring the Progress
5. Bidding for Projects
6. Allocating Testing Resources
7. To measure and Manage Productivity
8. Risk Assessment
9. Software Asset Valuation
10. CMMi Level 2 and 3 require that a valid sizing
method be used.
Software Sizing – Lines of Code
5
The easiest and historically the most common method in Sizing
Software project has been counting the number of lines of code
and / or the number of screens.
Advantages
Automation of the counting process can be done
Intuitive as the measurements are easily understood
Disadvantages
Lines of Code is language and the skill set of the developer
The coding phase is only around 30-35% of the actual software
development.
Lack of counting standards (What about comments, notes etc.?)
Lines of Code
6
• Language Dependent
• Skill dependent
• Unknown until written
• No Standards
• Function Points are better
History
7
1979 – Function Points introduced by Alan Albrecht
1984 – First FP guidelines
1986 – First IFPUG Board of directors
1994 – CPM Release 4.02003 ISO Standard
2003 – ISO Standard
Best in Class Software Companies
8
Best In Class
• 30% Requirement
• 35% Design
• 25% Coding
• 10% Testing
Worst In Class
• 10% Requirement
• 15% Design
• 37% Coding
• 38% Testing
• Higher Productivity
• Higher Quality
• Less over time
• Less Redundancy
• More Specialization
• Software Measurement Programs
Function point
9
Overview of Function Point
1. Measured from the users perspective
2. Technology Independent
3. Low Cost (Once the system is in place)
4. Repeatable
5. Works well with use cases
6. Answers lots of questions
7. Can be automated
10
Objectives of Function Point
Measures software by quantifying the
functionality requested by and provided to the
customer based primarily on logical design.
Measures software development and
maintenance independently of technology
used for implementation.
Measures software development and
maintenance consistently across all projects
and organizations.
11
Types of Function Point Counts
12
Development
All Phases through development
Forms a baseline
Enhancement
In Production, has a baseline
Count the size of the successive
enhancements
Application
In Production, no baseline
Forms a baseline
Function Points and CMM
13
SEI Capability
Maturity Model
1. INITIAL
Ad hoc
2. REPEATABLE
Basic management control
3. DEFINED
Process definition
4. MANAGED
Process measurement
5. OPTIMIZING
Process control
Process
Maturity
Levels
• Function Points are the
metric of choice for
many of the activities
required in the SEI
CMM Level 2
• In CMM, metrics
becomes a Key Process
Area in its own right
Major App Sizes (2010)
Applications Approximate Size in
Function Points
Star Wars Missile Defense 350,000
ERP (SAP, Oracle etc.,) 300,000
Microsoft Windows Vista 159,000
Microsoft Office 2007 98,000
Airline Reservation System 50,000
NASA Space shuttle 25,000
14
MajorAppSizes
Applications Function Points
1 Oracle 229,434
2 Windows 7 (all features) 202,150
3 Windows XP 66,238
4 Google Docs 47,668
5 Microsoft Office 2003 33,736
6 F15 Avionics / Weapons 23,109
7 Apple iPhone 19,366
8 Google Search Engine 18,640
9 Linux 17,505
10 Facebook 8,404
11 MapQuest 3,793
12 Microsoft Project 1,963
13 Google Android OS (Original Version 1,858
14 Mozilla Firefox 1,342
15 Java Compiler 1,185
16 Wikipedia 1,142
17 Twitter (Original 2009) 541 15
Changes to requirements
16
100 FPs 120 FPs 130 FPs 135 FPs
• State code input screen
changed (3 FPs)
• Interface to N&A file
added (10 FPs)
• N&A inquiry and state
code inquiry added (7
FPs)
• New regulatory
table added (10 FPs)
• Summary report
added (5 FPs)
Effort
Schedule
Cost
+ 1 month
+ 2 weeks
+ $5 K
+ .5 month
+ 1 week
+ $2.5 K
+ .25 month
+ 2.5 days
+ $1.25 K
Delivered
Application
Detail
Design
Functional
Design
Requirements
Impact
Source: International Function Point User Group 2001
Deep DIVE
FUNCTION POINT ANALYSIS
17
How to count Function Points?
18
Displays
Reports
Master Files Size
Reference
Files
Signals
Control Files
Steps in FP Counting
19
1. Determine Type of Count
2. Identify Counting Scope and Application
Boundary
3. Count Data Functions
4. Count Transaction Functions
5. Determine Unadjusted Function Points
6. Determine Value Adjustment Factor
7. Calculate Adjusted Function Point Count
FP - Functionalities
Data Functionality
◦ Internal Logical Files (ILF)
◦ External Interface Files (EIF)
20
• Transaction Functionality
• External Inputs (EI)
• External Outputs (EO)
• External Queries (EQ)
FP Data & Transaction Functionality
21
USER
ADD, CHG INVOICES PAYMENTS
USER
USER
PAYMENT
STATUS
USER
PAID
INVOICES
PURCHASE
ORDER INFO
PURCHASE
ORDER
SYSTEM
External Interface
File (EIF)
External Input (EI) External Input (EI)
External Query (EQ)
External Output (EO)
Internal Logical Files (ILF)
Payments
(Table)
Vendor
(Table)
Invoices
(Table)
Repository (Persistence Layer)
Accounts Payable App
Services Layer
APP BOUNDARY
Terms within ILF and EIF
22
Control Information
Control Information is data that influences an elementary process of the application
being counted. It specifies what, when, or how data is to be processed.
For example, someone in the payroll department establishes payment cycles to
schedule when the employees for each location are to be paid. The payment cycle, or
schedule, contains timing information that affects when the elementary process of
paying employees occurs.
User Identifiable
The term user identifiable refers to defined requirements for processes and/or groups
of data that are agreed upon, and understood by, both the user(s) and software
developer(s).
For example, users and software developers agree that a Human Resources Application
will maintain and store Employee information in the application
Maintained
The term maintained is the ability to modify data through an elementary process.
Examples include, but are not limited to, add, change, delete, populate, revise, update,
assign, and create.
Elementary Process
23
An Elementary Process is the smallest unit of activity that is meaningful to the
user(s).
For example, a user requires the ability to add a new employee to the application.
The user definition of employee includes salary and dependent information. From
the user perspective, the smallest unit of activity is to add a new employee. Adding
one of the pieces of information, such as salary or dependent, is not an activity that
would qualify as an elementary process.
The elementary process must be self-contained and leave the business of the
application being counted in a consistent state.
For example, the user requirements to add an employee include setting up salary and
dependent information. If all the employee information is not added, an employee
has not yet been created. Adding some of the information alone leaves the business
of adding an employee in an inconsistent state. If both the employee salary and
dependent information is added, this unit of activity is completed and the business is
left in a consistent state.
Data Functions
24
Source: http://www.qpmg.com/fp-intro.htm
Internal Logical Files (ILF)
Logical group of data maintained by the application (Example
Employee File).
For example, a pilot may enter navigational data through a display
in the cockpit prior to departure. The data is stored in a file for use
and can be modified during the mission.
Therefore the pilot is responsible for maintaining the file that
contains the navigational information.
Logical groupings of data in a system, maintained by an end user
(and application), are referred to as Internal Logical Files (ILF).
Data Functions
25
Source: http://www.qpmg.com/fp-intro.htm
External Interface Files (EIF)
The second Data Function a system provides an end user is also
related to logical groupings of data. In this case the user is not
responsible for maintaining the data. The data resides in another
system and is maintained by another user or system. The user of
the system being counted requires this data for reference
purposes only.
For example, it may be necessary for a pilot to reference position
data from a satellite or ground-based facility during flight.
The pilot does not have the responsibility for updating data at
these sites but must reference it during the flight.
Groupings of data from another system that are used only for
reference purposes are defined as External Interface Files (EIF).
Transactional Functions
26
Source: http://www.qpmg.com/fp-intro.htm
These functions address the user's capability to access the data
contained in ILFs and EIFs. This capability includes maintaining, inquiring
and outputting of data. These are referred to as Transactional Functions.
External Inputs (EI)
This Transactional Function allows a user to maintain Internal Logical
Files (ILFs) through the ability to add, change and delete the data. For
example, a pilot can add, change and delete navigational information
prior to and during the mission.
In this case the pilot is utilizing a transaction referred to as an
External Input (EI). An External Input gives the user the capability to
maintain the data in ILF's through adding, changing and deleting its
contents.
Transactional Functions
27
Source: http://www.qpmg.com/fp-intro.htm
External Output (EO)
This Transactional Function gives the user the ability to produce outputs. For
example a pilot has the ability to separately display ground speed, true air
speed and calibrated air speed. The results displayed are derived using data
that is maintained and data that is referenced. In function point terminology
the resulting display is called an External Output (EO).
External Queries (EQ)
This Transactional Functions addresses the requirement to select and display
specific data from files. To accomplish this a user inputs selection information
that is used to retrieve data that meets the specific criteria.
In this situation there is no manipulation of the data. It is a direct retrieval of
information contained on the files. For example if a pilot displays terrain
clearance data that was previously set, the resulting output is the direct
retrieval of stored information. These transactions are referred to as External
Inquiries (EQ).
External Queries (EQ)
28
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.
Output Side
• 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 & output DET’s used when rating EQ.
FTRs, RETs & DETs
29
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.
Record Element Type (RET)
A RET is user recognizable sub group of data elements within an ILF or an EIF. It is
best to look at logical groupings of data to help identify them.
Data Element Type
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.
A data element can be either quantitative or qualitative. A quantitative data
element is data in numerical form. A qualitative data element is data not in
numerical form, but is in the form of text, photographs, sound bytes and so on.
Understanding DETs
30
Radio Buttons
Radio Buttons are treated as data
element types. Within a group of, a
frame, radio buttons the user has the
option of selecting only one radio button;
so only one data element type is counted
for all the radio buttons contained in the
frame.
Check Boxes
Check Boxes differ from radio buttons in
that more than one check box can be
selected at a time. Each check box, within
a frame, that can be selected should be
treated as a data element.
Command Buttons
Command buttons may specify an add,
change, delete or inquire action. A
button, like OK, may invoke several
different types of transactions.
Display of Graphical Images or Icons
A display of a graphical image is simply another
data element. An inventory application, for
example, may contain data about parts. It may
contain part name, supplier, size, and weight
and include a schematic image of the part. This
schematic is treated as a single data element.
Photographic Images
A photographic image is another data element,
and is counted as one. A human resource
application may display employee name, start
date, etc. and a photograph of the employee.
The photograph is treated the same as
employee name or employee start date. The
photograph is stored and maintained like any
other piece of information about the employee.
According to IFPUG counting rules, each command
button would be counted as a data element for the
action it invokes.
Understanding DETs
31
Error and Confirmation Messages
There are three types of messages that are generated in a GUI
application: error messages, confirmation messages and notification
messages. Error messages and confirmation messages indicate that
an error has occurred or that a process will be or have been
completed. They are not an elementary or independent process
alone, but they are part of another elementary process. A message
that would state, “zip code is required” would be an example of an
error message. A message that would state, “are you sure you want to
delete customer” is an example of a confirmation message.
Neither type of message is treated as a unique external output, but
each is treated as a data element for the appropriate transaction.
Understanding DETs
32
Notification Messages
On the other hand, a notification messages is a business type
message. A notification is an elementary process, has some
meaning to the business user and is independent of other
elementary processes. It is the basis of processing and a conclusion
being drawn.
For example, you may try to withdraw from an ATM machine more
money than you have in your account and you receive the dreaded
message, “You have insufficient funds to cover this transaction.”
This is the result of information being read from a file regarding
your current balance and a conclusion being drawn.
A notification message is treated as an External Output
Understanding RETs
33
A record element type (RET) is a user recognizable subgroup of data elements
within an ILF or EIF.
There are two types of subgroups:
Optional
Mandatory
Optional subgroups are those that the user has the option of using one or none of the subgroups during an
elementary process that adds or creates an instance of the data.
Mandatory subgroups are subgroups where the user must use at least one.
For example, in a Human Resources Application, information for an employee is added by entering some
general information. In addition to the general information, the employee is a salaried or hourly employee.
The user has determined that an employee must be either salaried or hourly. Either type can have
information about dependents. For this example, there are three subgroups or RETs as shown below:
Salaried employee (mandatory); includes general information
Hourly employee (mandatory); includes general information
Dependent (optional)
Rules for Counting FP
34
Internal Logical File (ILF) Rules
35
All the following counting rules must apply for the
information be counted as an Internal Logical File
(ILF)
• The group of data or control information is
logical and user identifiable
• The group of data is maintained through an
elementary process within the application
boundary being counted.
External Interface File (EIF) Rules
36
All the following counting rules must apply for the
information be counted as an External Interface File (EIF)
• The group of data or control information is logical and
user identifiable
• The group of data is referenced by, and external to,
the application being counted.
• The group of data is NOT MAINTAINED by the
application being counted.
• The group of data is maintained in an ILF of another
application.
Data Element Type (DET) Rules
37
A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field.
1. Count a DET for each unique user recognizable, non-repeated field maintained in or retrieved
from the ILF or EIF through the execution of an elementary process.
For example, an account number that is stored in multiple fields is counted as one DET.
For example, a before or after image for a group of 10 fields maintained for audit purposes would
count as one DET for the before image (all 10 fields) and as one DET for the after image (all 10
fields) for a total of 2 DETs.
For example, the result(s) of a calculation from an elementary process, such as calculated sales
tax value for a customer order maintained on an ILF is counted as one DET on the customer order
ILF.
For example, accessing the price of an item which is saved to a billing file or fields such as a time
stamp if required by the user(s) are counted as DETs.
For example, if an employee number which appears twice in an ILF or EIF as (1) the key of the
employee record and (2) a foreign key in the dependent record, count the DET only once.
For example, within an ILF or EIF, count one DET for the 12 Monthly Budget Amount fields. Count
one additional field to identify the applicable month.
Data Element Type (DET) Rules
38
A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field.
2. When two applications maintain and/or reference the same ILF/EIF, but
each maintains/references separate DETs, count only the DETs being used
by each application to size the ILF/EIF.
For example, Application A may specifically identify and use an address as:
street address, city, state and zip code. Application B may see the address
as one block of data without regard to individual components.
• Application A would count four DETs;
• Application B would count one DET.
For example, Application X maintains and/or references an ILF that contains
a SSN, Name, Street Name, Mail Stop, City, State, and Zip. Application Z
maintains and/or references the Name, City, and State.
• Application X would count seven DETs;
• Application Z would count three DETs.
Data Element Type (DET) Rules
39
A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field.
3. Count a DET for each piece of data required by the user to establish a
relationship with another ILF or EIF.
For example, in an HR application, an employee's information is maintained
on an ILF. The employee’s job name is included as part of the employee's
information. This DET is counted because it is required to relate an
employee to a job that exists in the organization. This type of data element
is referred to as a foreign key.
For example, in an object oriented (OO) application, the user requires an
association between object classes, which have been identified as separate
ILFs. Location name is a DET in the Location EIF. The location name is
required when processing employee information; consequently, it is also
counted as a DET within the Employee ILF.
Record Element Type (RET) Rules
40
A record element type (RET) is a user recognizable subgroup
of data elements within an ILF or EIF.
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.
Linkingeverything……
Function Type
Functional Complexity
Rating
Record Element
Type (RET)
File Type
Referenced (FTR)
Data Element
Type (DET)
Low Average High
Data Functions
• Internal Logic Files (ILF) x7 x10 x15 Yes Yes
• External Interface Files (EIF) x5 x7 x10 Yes Yes
Transaction Functions
• External Inputs (EI) x3 x4 x6 Yes Yes
• External Outputs (EO) x4 x5 x7 Yes Yes
• External Queries (EQ) x3 x4 x6 Yes Yes
41
Transaction Functions Transaction Data Element Types (DETs)
External Inputs (EI) Data Input Fields, Error Messages, Calculated values, Buttons
External Outputs (EO) Data Fields on a Report, Calculated Values, Error Messages, Column
Headings (from ILF). EO also can an Input (EI) side & output side
External Queries (EQ) Input Side, Field used to search by, Buttons. Output side displayed fields on
the screen.
Unadjusted Function Point Calculator
42
Component Type
Complexity of Components
Low Average High L+A+H Total
External Inputs 3 x3 9 1 x4 4 1 x6 6 9+4+6 19
External Outputs 5 x4 20 x5 1 x7 7 20+0+7 27
External Queries 5 x3 18 x4 1 x6 6 18+0+6 24
Internal Logical Files 1 x7 7 2 x10 20 1 x15 15 7+20+15 42
External Interface Files x5 x7 1 x10 10 0+0+10 10
Total Unadjusted Function Points 122
General Software Characteristics
43
General Software
Characteristics
Brief Description
1 Data Communication
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 Online Data Entry What percentage of the information is entered On-Line?
7 End User Efficiency Was the application designed for end-user efficiency?
8 Online 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?
15 Security Framework Security Framework for all Input validations to check Cross Site Scripting, SQL Injection etc.
16 Multi Language Support Multi Language Support for the App
17 Multi Form Factors Application will be available in Multiple Form factors like Web, Smart Phone, Tablet etc
Calculations
FP = UFP X VAF
FUNCTION POINT = UNADJUSTED FP X VALUE
ADJUSTMENT FACTOR
44
When to count Function Points
45
Corrective
Maintenance
Proposal Design QA DeliveryRequirements Development
SIZING
Initial User
Requirements
Initial Technical
Requirements
Final Functional
Requirements
Feasibility
Study
SIZING
Change
Request
Scope
Adjustment
SIZING
SIZING SIZING
Calculating Unadjusted
Function Points (UFP)
46
External Inputs (EI)
External Outputs (EO)
FTR Data Element Type (DET)
1-5 6-19 >19
<2 Low (4) Low (4) Ave (5)
2 or 3 Low (4) Ave (5) High (7)
>3 Ave (5) High (7) High (7)
External Queries (EQ)
FTR Data Element Type (DET)
1-5 6-19 >19
<2 Low (3) Low (3) Ave (4)
2 or 3 Low (3) Ave (4) High (6)
>3 Ave (4) High (6) High (6)
FTR Data Element Type (DET)
1-4 5-15 >15
<2 Low (3) Low (3) Ave (4)
2 Low (3) Ave (4) High (6)
>2 Ave (4) High (6) High (6)
Internal Logical File (ILF)
RET Data Element Type (DET)
1-19 20-50 >51
1 Low (7) Low (7) Ave (10)
2 - 5 Low (7) Ave (10) High (15)
>5 Ave (10) High (15) High (15)
External Interface Files (EIF)
RET Data Element Type (DET)
1-19 20-50 >51
1 Low (5) Low (5) Ave (7)
2 - 5 Low (5) Ave (7) High (10)
>5 Ave (7) High (10) High (10)
Unadjusted Function Points in brackets (x) based on FTR / RET & DET
UFP = Σ (EI+EO+EQ+ILF+EIF)
Value Adjustment Factor (VAF)
47
Degree of Influence (Di)
0 Not Present, or No Influence
1 Incidental Influence
2 Moderate Influence
3 Average Influence
4 Significant Influence
5 Strong Influence Throughout
The Degree of influence range on a
scale of Zero to Five, from No
Influence to Strong Influence.
17
VAF = 0.65 + [( ΣDi) x 0.01]
i=1
New Additions over IFPUG Value Adjustment Factors – Points : 15, 16 & 17
Based on 14+3 General System Characteristics
User Business Constraints Independent of Technology
1. Data Communication
2. Distributed Data Processing
3. Performance
4. Heavily Used Configuration
5. Transaction Rate (Frequency of Transaction)
6. Online Data Entry
7. End User Efficiency
8. Online Update (How many ILF are updated using
Online transaction)
9. Complex Processing (Extensive Logical or
Mathematical Processing)
10. Reusability
11. Installation Ease
12. Operational Ease (Start-up, Back & Recovery Process)
13. Multiple Sites (Multi-Tenant)
14. Facilitate Change
15. Security Framework
16. Multi Language Support
17. Multi Form Factors
Adjusts FP count by up to + / - 50%
Standard Function Point
48
The final Function Point Count is obtained
by multiplying the Unadjusted Function
Point times the Value Adjustment Factor.
FP = UFP x VAF
Where
UFP = Unadjusted Function Point
VAF = Value Adjustment Factor
Function Points Per Person Month
49
Platform FP / Person / Month
Client Server 15
Main Frame 13
Web 22
E-Business Web 12
Vendor Packages 19
Data Warehouse 11
Language Hours / FP
ASP* 0.61
Visual Basic 0.85
Java 10.6
SQL 10.8
C++ 12.4
C 13.0
C# 15.5
PL/1 14.2
COBOL 16.8
ABAP 19.9
* refers to classic ASP. Included for comparison
purposes. (Courtesy of ISBSG.)
ISBSG, a non-profit software research group, has gathered
data on 6,000 projects, using functional size as the key sizing
measure. From this data, they can see how many hours it took
to take each project to completion and how those hours
mapped to languages, on projects that were primarily written
in one language
Source : http://www.drdobbs.com/jvm/the-comparative-productivity-of-programm/240005881
Costing for Simple SOA App
50
A : Role B : Price by
Role in
Dollars
C : Effort by
Role in the
Project (Hours)
D : %
(C*100/total
hours. I.e., 1000
hours)
E : Price by Role
in Dollars
(B * C)
Manager $100 50 05 $5,000
SOA Analyst $80 250 25 $20,000
SOA Architect $90 200 20 $18,000
SOA Developer $50 350 35 $17,500
SOA QA $40 50 05 $2,000
SOA Governance
Specialist
$80 50 05 $4,000
SOA Security
Specialist
$70 50 05 $3,500
1000 100 $70,000
100 FP * 10 FP per hour = 1000 Man hours
CASE STUDY
51
1. Case 1: Simple Form with 1 Table
2. Case 2: Simple Form with 4 Tables
3. Case 3: Shopping Portal
External Inputs (EI) – Customer
FTR Data Element Type (DET)
1-4 5-15 >15
<2 Low (3) Low (3) Ave (4)
2 Low (3) Ave (4) High (6)
>2 Ave (4) High (6) High (6)
Data Element
Types (DET)
1 Customer Name
2 Contact
3 Alt. Contact
4 Bill To
5 Phone
6 Fax
7 Alt. Phone
8 Ship To
9 Type
10 OK Button
11 Cancel Button
12 Save Message
13 Error Message
File Type
Reference (FTR)
1 Customer File
Total UFP
Customer UI – Add : 1 Table
Internal Logical File (ILF)
RET Data Element Type (DET)
1-19 20-50 >51
1 Low (7) Low (7) Ave (10)
2 - 5 Low (7) Ave (10) High (15)
>6 Ave (10) High (15) High (15)
Name Type RET DET FP
1 Customer ILF 1 12 7
Total ILF Function Points 7
Total UFP = EI + ILF = 7 + 3 = 10
EI = 1 FTR, 13 DET = 3 FP
10
1
52
External Inputs (EI) – Customer
FTR Data Element Type (DET)
1-4 5-15 >15
<2 Low (3) Low (3) Ave (4)
2 Low (3) Ave (4) High (6)
>2 Ave (4) High (6) High (6)
Data Element
Types (DET)
1 Customer Name
2 Contact
3 Alt. Contact
4 Bill To
5 Phone
6 Fax
7 Alt. Phone
8 Ship To
9 Type
10 OK Button
11 Cancel Button
12 Save Message
13 Error Message
File Type
Reference (FTR)
1 Customer File
2 Contact File
3 Bill To File
4 Ship To File
Total UFP
Customer UI – Add : 4 Tables
Internal Logical File (ILF)
RET Data Element Type (DET)
1-19 20-50 >51
1 Low (7) Low (7) Ave (10)
2 - 5 Low (7) Ave (10) High (15)
>6 Ave (10) High (15) High (15)
Name Type RET DET FP
1 Customer ILF 1 12 7
2 Contact ILF 1 21 7
3 Billing ILF 1 10 7
4 Shipping ILF 1 12 7
Total ILF Function Points 28
Total UFP = EI + ILF = 28 + 6 = 34
EI = 4 FTR, 13 DET = 6 FP
34
2
53
Total Function Points
54
17
VAF = 0.65 + [( Σ Di) x 0.01]
i=1
VAF =
0.65 + 0.64 =1.29
FP = UFP x VAF = 34 x 1.29 = 43.86
FP = 44
Total Function Points and Effort Estimation
FP = UFP x VAF = 10 x 1.29 = 12.9
FP = 13
1
2
Effort Estimation Java = 10.6 Hours / FP
13 * 10.6
= 137 Hours
44 * 10.6
= 466 Hours
General Software Characteristics
55
Value Adjustment Factor (VAF)
Based on 14+1 General System Characteristics
User Business Constraints Independent of Technology
1. Data Communication
2. Distributed Data Processing
3. Performance
4. Heavily Used Configuration
5. Transaction Rate (Frequency of Transaction)
6. Online Data Entry
7. End User Efficiency
8. Online Update (How many ILF are updated using Online
transaction)
9. Complex Processing (Extensive Logical or Mathematical
Processing)
10. Reusability
11. Installation Ease
12. Operational Ease (Start-up, Back & Recovery Process)
13. Multiple Sites (Multi-Tenant)
14. Facilitate Change
15. Security Framework
Adjusts FP count by up to + / - 40%
56
Degree of Influence (Di)
0 Not Present, or No Influence
1 Incidental Influence
2 Moderate Influence
3 Average Influence
4 Significant Influence
5 Strong Influence Throughout
The Degree of influence range on a
scale of Zero to Five, from No
Influence to Strong Influence.
15
VAF = 0.65 + [( ΣDi) x 0.01]
i=1
The data and control information used in the application are sent or received over
communication facilities. Terminals connected locally to the control unit are considered to
use communication facilities. Protocol is a set of conventions, which permit the transfer, or
exchange of information between two systems or devices. All data communication links
require some type of protocol.
57
1. Data Communications
Score As Description to Determine Degree of Influence
0 Application is pure batch processing or a standalone PC.
1 Application is batch but has remote data entry or remote printing.
2 Application is batch but has remote data entry and remote printing.
3
Application includes online data collection or TP (teleprocessing) front end to a batch
process or query system.
4
Application is more than a front-end, but supports only one type of TP communications
protocol.
5
Application is more than a front-end, and supports more than one type of TP
communications protocol.
Comments:
TCP/IP (Transmission Control Protocol/Internet Protocol). TCP/IP provides a common language for
interoperation between networks that use a variety of local protocols (Ethernet, Netware, AppleTalk,
DECnet and others) are examples of TP.
An application that allows query of application via a web based solution and local access would receive a
value of 3.
An application that allows for the update of ILF’s via the Internet and local update would receive a value of
a 5.
Distributed data or processing functions are a characteristic of the
application within the application boundary.
58
2. Distributed Data Processing
Score As Description to Determine Degree of Influence
0
Application does not aid the transfer of data or processing function between
components of the system.
1
Application prepares data for end user processing on another component of the system
such as PC spreadsheets and PC DBMS.
2
Data is prepared for transfer, then is transferred and processed on another component
of the system (not for end- user processing).
3 Distributed processing and data transfer are online and in one direction only.
4 Distributed processing and data transfer are online and in both directions.
5
Processing functions are dynamically performed on the most appropriate component of
the system.
Comments:
Copying files from a mainframe to a local PC or copy files from an Internet or intranet
would receive a value of 2.
Reading via a client or via Internet or intranet would receive a value of 3. Reading and
updating via Internet or intranet would receive a value of 4.
Depending on available resources, the application processes either local, on server, on
intranet or Internet application would receive a value of 5.
Application performance objectives, stated or approved by the user, in either
response or throughput, influence (or will influence) the design,
development, installation, and support of the application.
59
3. Performance
Score As Description to Determine Degree of Influence
0 No special performance requirements were stated by the user.
1
Performance and design requirements were stated and reviewed but no special actions
were required.
2
Response time or throughput is critical during peak hours. No special design for CPU
utilization was required. Processing deadline is for the next business day.
3
Response time or throughput is critical during all business hours. No special design for
CPU utilization was required. Processing deadline requirements with interfacing systems
are constraining.
4
In addition, stated user performance requirements are stringent enough to require
performance analysis tasks in the design phase.
5
In addition, performance analysis tools were used in the design, development, and/or
implementation phases to meet the stated user performance requirements.
Comments:
Again for a client/server or for internet/intranet application this remains the same.
A heavily used operational configuration, requiring special design considerations,
is a characteristic of the application. For example, the user wants to run the
application on existing or committed equipment that will be heavily used.
60
4. Heavily used Configuration
Score As Description to Determine Degree of Influence
0 No explicit or implicit operational restrictions are included.
1
Operational restrictions do exist, but are less restrictive than a typical
application. No special effort is needed to meet the restrictions.
2 Some security or timing considerations are included.
3
Specific processor requirements for a specific piece of the application
are included.
4
Stated operation restrictions require special constraints on the
application in the central processor or a dedicated processor.
5
In addition, there are special constraints on the application in the
distributed components of the system.
Comments
Does this application share hardware that is busy?.
For example, an application that shares a server with 5 other applications would need to be optimized
because it shares resources with 4 other applications.
The transaction rate is high and it influenced the design, development,
installation, and support of the application.
61
5. Transaction Rate
Score As Description to Determine Degree of Influence
0 No peak transaction period is anticipated.
1
Peak transaction period (e.g., monthly, quarterly, seasonally,
annually) is anticipated.
2 Weekly peak transaction period is anticipated.
3 Daily peak transaction period is anticipated.
4
High transaction rate(s) stated by the user in the application
requirements or service level agreements are high enough to require
performance analysis tasks in the design phase.
5
High transaction rate(s) stated by the user in the application
requirements or service level agreements are high enough to require
performance analysis tasks and, in addition, require the use of
performance analysis tools in the design, development, and/or
installation phases.
Online data entry and control functions are provided in the application.
62
6. Online Data Entry
Score As Description to Determine Degree of Influence
0 All transactions are processed in batch mode.
1 1% to 7% of transactions are interactive data entry.
2 8% to 15% of transactions are interactive data entry.
3 16% to 23% of transactions are interactive data entry.
4 24% to 30% of transactions are interactive data entry.
5 More than 30% of transactions are interactive data entry.
63
7. End User Efficiency
• Navigational aids (for example,
function keys, jumps,
dynamically generated menus)
• Menus
• Online help and documents
• Automated cursor movement
• Scrolling
• Remote printing (via online
transactions)
• Pre-assigned function keys
• Batch jobs submitted from
online transactions
• Cursor selection of screen data
• Heavy use of reverse video,
highlighting, colors underlining, and
other indicators
• Hard copy user documentation of
online transactions
• Mouse interface
• Pop-up windows.
• As few screens as possible to
accomplish a business function
• Bilingual support (supports two
languages; count as four items)
• Multilingual support (supports more
than two languages; count as six
items)
The online functions provided emphasize a design for end-user efficiency. The design
includes:
64
7. End User Efficiency
Score As Description to Determine Degree of Influence
0 None of the above.
1 One to three of the above.
2 Four to five of the above.
3
Six or more of the above, but there are no specific user requirements
related to efficiency.
4
Six or more of the above, and stated requirements for end- user
efficiency are strong enough to require design tasks for human factors
to be included (for example, minimize key strokes, maximize defaults,
use of templates).
5
Six or more of the above, and stated requirements for end- user
efficiency are strong enough to require use of special tools and
processes to demonstrate that the objectives have been achieved.
The application provides online update for the internal logical files.
65
8. Online Update
Score As Description to Determine Degree of Influence
0 None
1
Online update of one to three control files is included. Volume of
updating is low and recovery is easy
2
Online update of four or more control files is included. Volume of
updating is low and recovery easy.
3 Online update of major internal logical files is included.
4
In addition, protection against data lost is essential and has been
specially designed and programmed in the system.
5
In addition, high volumes bring cost considerations into the recovery
process. Highly automated recovery procedures with minimum
operator intervention are included.
66
9. Complex Processing
Score
As
Description to Determine Degree of
Influence
0 None of the above.
1 Any 1 of the above
2 Any 2 of the above
3 Any 3 of the above
4 Any 4 of the above
5 All 5 of the above
• Sensitive control (for example, special
audit processing) and/or application
specific security processing
• Extensive logical processing
• Extensive mathematical processing
• Much exception processing resulting in
incomplete transactions that must be
processed again, for example,
incomplete ATM transactions caused by
TP interruption, missing data values, or
failed edits
• Complex processing to handle multiple
input/output possibilities, for example,
multimedia, or device independence
Complex processing is a characteristic of the application. The following components are
present.
67
The application and the code in the application have been specifically
designed, developed, and supported to be usable in other applications.
10. Reusability
Score As Description to Determine Degree of Influence
0 No reusable code.
1 Reusable code is used within the application.
2
Less than 10% of the application considered more than one user's
needs.
3
Ten percent (10%) or more of the application considered more than
one user's needs.
4
The application was specifically packaged and/or documented to ease
re-use, and the application is customized by the user at source code
level.
5
The application was specifically packaged and/or documented to ease
re-use, and the application is customized for use by means of user
parameter maintenance.
68
Conversion and installation ease are characteristics of the application. A
conversion and installation plan and/or conversion tools were provided and
tested during the system test phase.
11. Installation base
Score As Description to Determine Degree of Influence
0
No special considerations were stated by the user, and no special setup is required
for installation.
1
No special considerations were stated by the user but special setup is required for
installation.
2
Conversion and installation requirements were stated by the user, and conversion
and installation guides were provided and tested. The impact of conversion on the
project is not considered to be important.
3
Conversion and installation requirements were stated by the user, and conversion
and installation guides were provided and tested. The impact of conversion on the
project is considered to be important.
4
In addition to 2 above, automated conversion and installation tools were provided
and tested.
5
In addition to 3 above, automated conversion and installation tools were provided
and tested.
69
Operational ease is characteristic of the application. Effective start-up, back-up, and
recovery procedures were provided and tested during the system test phase. The
application minimizes the need for manual activities, such as tape mounts, paper
handling, and direct on-location manual intervention.
12. Operational ease
Score As Description to Determine Degree of Influence
0
No special operational considerations other than the normal back-up procedures
were stated by the user
1 – 4
One, some, or all of the following items apply to the application. Select all that
apply. Each item has a point value of one, except as noted otherwise.
Effective start-up, back-up, and recovery processes were provided, but operator
intervention is required.
Effective start-up, back-up, and recovery processes were provided, but no operator
intervention is required (count as two items).
The application minimizes the need for tape mounts.
The application minimizes the need for paper handling.
5
The application is designed for unattended operation. Unattended operation means
no operator intervention is required to operate the system other than to start up or
shut down the application. Automatic error recovery is a feature of the application.
70
The application has been specifically designed, developed, and
supported to be installed at multiple sites for multiple organizations.
13. Multiple Sites
Score As Description to Determine Degree of Influence
0
User requirements do not require considering the needs of more than one
user/installation site.
1
Needs of multiple sites were considered in the design, and the application is
designed to operate only under identical hardware and software
environments.
2
Needs of multiple sites were considered in the design, and the application is
designed to operate only under similar hardware and/or software
environments.
3
Needs of multiple sites were considered in the design, and the application is
designed to operate under different hardware and/or software environments.
4
Documentation and support plan are provided and tested to support the
application at multiple sites and the application is as described by 1 or 2.
5
Documentation and support plan are provided and tested to support the
application at multiple sites and the application is as described by 3.
71
14. Facilitate Change
Score As Description to Determine Degree of Influence
0 None of the above.
1 Any 1 of the above
2 Any 2 of the above
3 Any 3 of the above
4 Any 4 of the above
5 All 5 of the above
The application has been specifically designed, developed, and supported to facilitate change.
• The following characteristics can apply for the application:
• Flexible query and report facility is provided that can handle simple requests; for example, and/or
logic applied to only one internal logical file (count as one item).
• Flexible query and report facility is provided that can handle requests of average complexity, for
example, and/or logic applied to more than one internal logical file (count as two items).
• Flexible query and report facility is provided that can handle complex requests, for example, and/or
logic combinations on one or more internal logical files (count as three items).
• Business control data is kept in tables that are maintained by the user with online interactive
processes, but changes take effect only on the next business day.
• Business control data is kept in tables that are maintained by the user with online interactive
processes, and the changes take effect immediately (count as two items).
72
15. Security Framework
Score As Description to Determine Degree of Influence
0 None of the above.
1 Any 1 of the above
2 Any 2 of the above
3 Any 3 of the above
4 Any 4 of the above
5 All of the above
The application has been specifically designed, developed with a strong security
framework.
• User Authentication
• Role Based Access Control
• Label Based Access Control
• Protect the App from Session Hijacking, Data Validations for SQL Injection,
Cross site scripting (Protection against vulnerabilities defined by OWASP)
• Multi Factor Authentication
• Log Management and Exception Handling
73
THANK YOU
Araf Karsh Hamid
email : araf.karsh@ozazo.com | araf.karsh@metamagic.in
Social : arafkarsh | Skype, Facebook, LinkedIn, Twitter, G+
Phone : +91.999.545.8627 | http://www.metamagic.in/
Backup slides
74
Understanding External Inputs (EI)
The following words are associated with External Inputs or Inputs
Add Memorize (Ad)
Activate Modify (Change)
Amend (Changed & Delete) Override (Change)
Cancel Post (Add, Change & Delete)
Change Remove (Delete)
Convert (Change) Reactivate (Change)
Create (Add) Remit
Delete Replace (Change)
De-assign Revise (Change and Delete)
Disable Save (Add, Change or Delete)
Disconnect Store (Add)
Enable Suspend (Change or Delete)
Edit (Change) Submit (Add, Change or Delete)
Insert (Add and Change) Update (Add, Change or Delete)
Maintain (Add, Change or Delete)
75

More Related Content

What's hot

A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisischandan sharma
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)Arun Shukla
 
Selection of an appropriate project approach
Selection of an appropriate project approachSelection of an appropriate project approach
Selection of an appropriate project approachtumetr1
 
Software Size Estimation
Software Size EstimationSoftware Size Estimation
Software Size EstimationMuhammad Asim
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)ShudipPal
 
Spm software effort estimation
Spm software effort estimationSpm software effort estimation
Spm software effort estimationKanchana Devi
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9koolkampus
 
Function point analysis
Function point analysisFunction point analysis
Function point analysisRosu Gabi
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation TechniquesSanthi thi
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Drusilla918
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered ArchitectureMuhammed Afsal Villan
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.pptbhadjaashvini1
 
12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMSkoolkampus
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptxubaidullah75790
 
halstead software science measures
halstead software science measureshalstead software science measures
halstead software science measuresDeepti Pillai
 

What's hot (20)

A presentation on software crisis
A presentation on software crisisA presentation on software crisis
A presentation on software crisis
 
Data Designs (Software Engg.)
Data Designs (Software Engg.)Data Designs (Software Engg.)
Data Designs (Software Engg.)
 
Software design
Software designSoftware design
Software design
 
Selection of an appropriate project approach
Selection of an appropriate project approachSelection of an appropriate project approach
Selection of an appropriate project approach
 
Function Points
Function PointsFunction Points
Function Points
 
Software Size Estimation
Software Size EstimationSoftware Size Estimation
Software Size Estimation
 
Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)Software Engineering (Project Scheduling)
Software Engineering (Project Scheduling)
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Spm software effort estimation
Spm software effort estimationSpm software effort estimation
Spm software effort estimation
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Quality Metrics
Software Quality MetricsSoftware Quality Metrics
Software Quality Metrics
 
Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9Formal Specification in Software Engineering SE9
Formal Specification in Software Engineering SE9
 
Function point analysis
Function point analysisFunction point analysis
Function point analysis
 
Software Cost Estimation Techniques
Software Cost Estimation TechniquesSoftware Cost Estimation Techniques
Software Cost Estimation Techniques
 
Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...Software engineering a practitioners approach 8th edition pressman solutions ...
Software engineering a practitioners approach 8th edition pressman solutions ...
 
Software engineering : Layered Architecture
Software engineering : Layered ArchitectureSoftware engineering : Layered Architecture
Software engineering : Layered Architecture
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS12. Indexing and Hashing in DBMS
12. Indexing and Hashing in DBMS
 
Software Measurement and Metrics.pptx
Software Measurement and Metrics.pptxSoftware Measurement and Metrics.pptx
Software Measurement and Metrics.pptx
 
halstead software science measures
halstead software science measureshalstead software science measures
halstead software science measures
 

Viewers also liked

Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysisDestinationQA
 
Function point analysis introduction
Function point analysis introductionFunction point analysis introduction
Function point analysis introductionTechcanvass
 
Line of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricLine of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricAnkush Singh
 
Function point Analysis: An idiots friendly introduction
Function point Analysis: An idiots friendly introductionFunction point Analysis: An idiots friendly introduction
Function point Analysis: An idiots friendly introductionArun
 
Software Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point AnalysisSoftware Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point AnalysisProgrameter
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniquesTan Tran
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniqueskamal
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimationdjview
 
Function Point Counting Practices
Function Point Counting PracticesFunction Point Counting Practices
Function Point Counting PracticesUmar Alharaky
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimationNur Islam
 
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...Nesma
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimationHaitham Ahmed
 

Viewers also liked (20)

Functional point analysis
Functional point analysisFunctional point analysis
Functional point analysis
 
Function point analysis introduction
Function point analysis introductionFunction point analysis introduction
Function point analysis introduction
 
Line of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point MatricLine of Code (LOC) Matric and Function Point Matric
Line of Code (LOC) Matric and Function Point Matric
 
Function point Analysis: An idiots friendly introduction
Function point Analysis: An idiots friendly introductionFunction point Analysis: An idiots friendly introduction
Function point Analysis: An idiots friendly introduction
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Software Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point AnalysisSoftware Measurement: Lecture 2. Function Point Analysis
Software Measurement: Lecture 2. Function Point Analysis
 
Docker, LinuX Container
Docker, LinuX ContainerDocker, LinuX Container
Docker, LinuX Container
 
Cocomo
CocomoCocomo
Cocomo
 
Function Points
Function PointsFunction Points
Function Points
 
Overview of Function Points Analysis
Overview of Function Points Analysis Overview of Function Points Analysis
Overview of Function Points Analysis
 
Software estimation techniques
Software estimation techniquesSoftware estimation techniques
Software estimation techniques
 
Software Estimation Techniques
Software Estimation TechniquesSoftware Estimation Techniques
Software Estimation Techniques
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 
Cocomo model
Cocomo modelCocomo model
Cocomo model
 
Function Point Counting Practices
Function Point Counting PracticesFunction Point Counting Practices
Function Point Counting Practices
 
Metrics for project size estimation
Metrics for project size estimationMetrics for project size estimation
Metrics for project size estimation
 
Cocomo
CocomoCocomo
Cocomo
 
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...
Early Function Point Analysis and Consistent Cost Estimating (2015-04-30) - A...
 
Software cost estimation
Software cost estimationSoftware cost estimation
Software cost estimation
 

Similar to Function Point Analysis

DHS - Using functions points to estimate agile development programs (v2)
DHS - Using functions points to estimate agile development programs (v2)DHS - Using functions points to estimate agile development programs (v2)
DHS - Using functions points to estimate agile development programs (v2)Glen Alleman
 
software effort estimation
 software effort estimation software effort estimation
software effort estimationBesharam Dil
 
Loc and function point
Loc and function pointLoc and function point
Loc and function pointMitali Chugh
 
Rapid Application Development & Prototyping
Rapid Application Development & PrototypingRapid Application Development & Prototyping
Rapid Application Development & PrototypingMedian Rupawan
 
chapter FP Analysis .pptx
chapter FP Analysis .pptxchapter FP Analysis .pptx
chapter FP Analysis .pptxtowexib993
 
3 Software Estmation.ppt
3 Software Estmation.ppt3 Software Estmation.ppt
3 Software Estmation.pptSoham De
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology RaviKalola786
 
Hard work matters for everyone in everytbing
Hard work matters for everyone in everytbingHard work matters for everyone in everytbing
Hard work matters for everyone in everytbinglojob95766
 
Cost estimation techniques
Cost estimation techniquesCost estimation techniques
Cost estimation techniqueslokareminakshi
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.pptssuser3f82c9
 

Similar to Function Point Analysis (20)

DHS - Using functions points to estimate agile development programs (v2)
DHS - Using functions points to estimate agile development programs (v2)DHS - Using functions points to estimate agile development programs (v2)
DHS - Using functions points to estimate agile development programs (v2)
 
F pdoc1
F pdoc1F pdoc1
F pdoc1
 
Estimation
EstimationEstimation
Estimation
 
software effort estimation
 software effort estimation software effort estimation
software effort estimation
 
Ijetr011834
Ijetr011834Ijetr011834
Ijetr011834
 
Loc and function point
Loc and function pointLoc and function point
Loc and function point
 
Function points and elements
Function points and elementsFunction points and elements
Function points and elements
 
Ju2517321735
Ju2517321735Ju2517321735
Ju2517321735
 
Ju2517321735
Ju2517321735Ju2517321735
Ju2517321735
 
Rapid Application Development & Prototyping
Rapid Application Development & PrototypingRapid Application Development & Prototyping
Rapid Application Development & Prototyping
 
chapter FP Analysis .pptx
chapter FP Analysis .pptxchapter FP Analysis .pptx
chapter FP Analysis .pptx
 
3 Software Estmation.ppt
3 Software Estmation.ppt3 Software Estmation.ppt
3 Software Estmation.ppt
 
lake city institute of technology
lake city institute of technology lake city institute of technology
lake city institute of technology
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Hard work matters for everyone in everytbing
Hard work matters for everyone in everytbingHard work matters for everyone in everytbing
Hard work matters for everyone in everytbing
 
Cost estimation techniques
Cost estimation techniquesCost estimation techniques
Cost estimation techniques
 
Software metrics
Software metricsSoftware metrics
Software metrics
 
Print report
Print reportPrint report
Print report
 
Rabelani dagada wbs erp
Rabelani dagada wbs erpRabelani dagada wbs erp
Rabelani dagada wbs erp
 
Chapter 11 Metrics for process and projects.ppt
Chapter 11  Metrics for process and projects.pptChapter 11  Metrics for process and projects.ppt
Chapter 11 Metrics for process and projects.ppt
 

More from Araf Karsh Hamid

Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - ObservabilityAraf Karsh Hamid
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SREAraf Karsh Hamid
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton Araf Karsh Hamid
 
Cloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-PremiseCloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-PremiseAraf Karsh Hamid
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioAraf Karsh Hamid
 
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactAraf Karsh Hamid
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsAraf Karsh Hamid
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingAraf Karsh Hamid
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Araf Karsh Hamid
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQAraf Karsh Hamid
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAraf Karsh Hamid
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsAraf Karsh Hamid
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREAraf Karsh Hamid
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanAraf Karsh Hamid
 
Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventAraf Karsh Hamid
 
Blockchain Intro to Hyperledger Fabric
Blockchain Intro to Hyperledger Fabric Blockchain Intro to Hyperledger Fabric
Blockchain Intro to Hyperledger Fabric Araf Karsh Hamid
 

More from Araf Karsh Hamid (20)

Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Zero-Trust SASE DevSecOps
Zero-Trust SASE DevSecOpsZero-Trust SASE DevSecOps
Zero-Trust SASE DevSecOps
 
Service Mesh - Observability
Service Mesh - ObservabilityService Mesh - Observability
Service Mesh - Observability
 
Microservices, DevOps & SRE
Microservices, DevOps & SREMicroservices, DevOps & SRE
Microservices, DevOps & SRE
 
CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton CI-CD Jenkins, GitHub Actions, Tekton
CI-CD Jenkins, GitHub Actions, Tekton
 
Cloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-PremiseCloud Architecture - Multi Cloud, Edge, On-Premise
Cloud Architecture - Multi Cloud, Edge, On-Premise
 
Containers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes IstioContainers Docker Kind Kubernetes Istio
Containers Docker Kind Kubernetes Istio
 
Microservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito PactMicroservices Testing Strategies JUnit Cucumber Mockito Pact
Microservices Testing Strategies JUnit Cucumber Mockito Pact
 
Microservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration PatternsMicroservices Architecture, Monolith Migration Patterns
Microservices Architecture, Monolith Migration Patterns
 
Big Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb ShardingBig Data Redis Mongodb Dynamodb Sharding
Big Data Redis Mongodb Dynamodb Sharding
 
Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics Apache Flink, AWS Kinesis, Analytics
Apache Flink, AWS Kinesis, Analytics
 
Event Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQEvent Sourcing & CQRS, Kafka, Rabbit MQ
Event Sourcing & CQRS, Kafka, Rabbit MQ
 
Agile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven DesignAgile, User Stories, Domain Driven Design
Agile, User Stories, Domain Driven Design
 
Microservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native AppsMicroservices Architecture - Cloud Native Apps
Microservices Architecture - Cloud Native Apps
 
Domain Driven Design
Domain Driven Design Domain Driven Design
Domain Driven Design
 
Docker Kubernetes Istio
Docker Kubernetes IstioDocker Kubernetes Istio
Docker Kubernetes Istio
 
Microservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SREMicroservices Docker Kubernetes Istio Kanban DevOps SRE
Microservices Docker Kubernetes Istio Kanban DevOps SRE
 
Microservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, KanbanMicroservices, Containers, Kubernetes, Kafka, Kanban
Microservices, Containers, Kubernetes, Kafka, Kanban
 
Blockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - ClaventBlockchain HyperLedger Fabric Internals - Clavent
Blockchain HyperLedger Fabric Internals - Clavent
 
Blockchain Intro to Hyperledger Fabric
Blockchain Intro to Hyperledger Fabric Blockchain Intro to Hyperledger Fabric
Blockchain Intro to Hyperledger Fabric
 

Recently uploaded

How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabbereGrabber
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfQ-Advise
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationHelp Desk Migration
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfmbmh111980
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationHelp Desk Migration
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024Shane Coughlan
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1KnowledgeSeed
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAlluxio, Inc.
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...naitiksharma1124
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdfkalichargn70th171
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityamy56318795
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAlluxio, Inc.
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesNeo4j
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)Max Lee
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfsteffenkarlsson2
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Krakówbim.edu.pl
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfDeskTrack
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfFurqanuddin10
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Andrea Goulet
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion Clinic
 

Recently uploaded (20)

How to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabberHow to install and activate eGrabber JobGrabber
How to install and activate eGrabber JobGrabber
 
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdfMicrosoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
Microsoft 365 Copilot; An AI tool changing the world of work _PDF.pdf
 
A Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data MigrationA Guideline to Zendesk to Re:amaze Data Migration
A Guideline to Zendesk to Re:amaze Data Migration
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
A Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data MigrationA Guideline to Gorgias to to Re:amaze Data Migration
A Guideline to Gorgias to to Re:amaze Data Migration
 
OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024OpenChain @ LF Japan Executive Briefing - May 2024
OpenChain @ LF Japan Executive Briefing - May 2024
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAGAI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
AI/ML Infra Meetup | Reducing Prefill for LLM Serving in RAG
 
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
COMPUTER AND ITS COMPONENTS PPT.by naitik sharma Class 9th A mittal internati...
 
10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf10 Essential Software Testing Tools You Need to Know About.pdf
10 Essential Software Testing Tools You Need to Know About.pdf
 
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purityAPVP,apvp apvp High quality supplier safe spot transport, 98% purity
APVP,apvp apvp High quality supplier safe spot transport, 98% purity
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product UpdatesGraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
GraphSummit Stockholm - Neo4j - Knowledge Graphs and Product Updates
 
JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)JustNaik Solution Deck (stage bus sector)
JustNaik Solution Deck (stage bus sector)
 
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdfStrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
StrimziCon 2024 - Transition to Apache Kafka on Kubernetes with Strimzi.pdf
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Workforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdfWorkforce Efficiency with Employee Time Tracking Software.pdf
Workforce Efficiency with Employee Time Tracking Software.pdf
 
CompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdfCompTIA Security+ (Study Notes) for cs.pdf
CompTIA Security+ (Study Notes) for cs.pdf
 
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
Entropy, Software Quality, and Innovation (presented at Princeton Plasma Phys...
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 

Function Point Analysis

  • 1. Function Point Analysis ISO/IEC 20926:2009 ARAF KARSH HAMID
  • 2. Topics 2 1. Software Sizing Background 2. Function Point 3. Rules for Counting FP 4. Deep Dive - Function Point Analysis 5. Case Study 6. General Software Characteristics Details
  • 3. History – Measurement Methodologies 3 • Lines of Code (Oldest) • Use case based Software Sizing • IPFUG Function Point Analysis (ISO)
  • 4. Need for Software Sizing 4 1. Estimation and Budgeting 2. Phasing Development Work 3. Prioritization of Work 4. Monitoring the Progress 5. Bidding for Projects 6. Allocating Testing Resources 7. To measure and Manage Productivity 8. Risk Assessment 9. Software Asset Valuation 10. CMMi Level 2 and 3 require that a valid sizing method be used.
  • 5. Software Sizing – Lines of Code 5 The easiest and historically the most common method in Sizing Software project has been counting the number of lines of code and / or the number of screens. Advantages Automation of the counting process can be done Intuitive as the measurements are easily understood Disadvantages Lines of Code is language and the skill set of the developer The coding phase is only around 30-35% of the actual software development. Lack of counting standards (What about comments, notes etc.?)
  • 6. Lines of Code 6 • Language Dependent • Skill dependent • Unknown until written • No Standards • Function Points are better
  • 7. History 7 1979 – Function Points introduced by Alan Albrecht 1984 – First FP guidelines 1986 – First IFPUG Board of directors 1994 – CPM Release 4.02003 ISO Standard 2003 – ISO Standard
  • 8. Best in Class Software Companies 8 Best In Class • 30% Requirement • 35% Design • 25% Coding • 10% Testing Worst In Class • 10% Requirement • 15% Design • 37% Coding • 38% Testing • Higher Productivity • Higher Quality • Less over time • Less Redundancy • More Specialization • Software Measurement Programs
  • 10. Overview of Function Point 1. Measured from the users perspective 2. Technology Independent 3. Low Cost (Once the system is in place) 4. Repeatable 5. Works well with use cases 6. Answers lots of questions 7. Can be automated 10
  • 11. Objectives of Function Point Measures software by quantifying the functionality requested by and provided to the customer based primarily on logical design. Measures software development and maintenance independently of technology used for implementation. Measures software development and maintenance consistently across all projects and organizations. 11
  • 12. Types of Function Point Counts 12 Development All Phases through development Forms a baseline Enhancement In Production, has a baseline Count the size of the successive enhancements Application In Production, no baseline Forms a baseline
  • 13. Function Points and CMM 13 SEI Capability Maturity Model 1. INITIAL Ad hoc 2. REPEATABLE Basic management control 3. DEFINED Process definition 4. MANAGED Process measurement 5. OPTIMIZING Process control Process Maturity Levels • Function Points are the metric of choice for many of the activities required in the SEI CMM Level 2 • In CMM, metrics becomes a Key Process Area in its own right
  • 14. Major App Sizes (2010) Applications Approximate Size in Function Points Star Wars Missile Defense 350,000 ERP (SAP, Oracle etc.,) 300,000 Microsoft Windows Vista 159,000 Microsoft Office 2007 98,000 Airline Reservation System 50,000 NASA Space shuttle 25,000 14
  • 15. MajorAppSizes Applications Function Points 1 Oracle 229,434 2 Windows 7 (all features) 202,150 3 Windows XP 66,238 4 Google Docs 47,668 5 Microsoft Office 2003 33,736 6 F15 Avionics / Weapons 23,109 7 Apple iPhone 19,366 8 Google Search Engine 18,640 9 Linux 17,505 10 Facebook 8,404 11 MapQuest 3,793 12 Microsoft Project 1,963 13 Google Android OS (Original Version 1,858 14 Mozilla Firefox 1,342 15 Java Compiler 1,185 16 Wikipedia 1,142 17 Twitter (Original 2009) 541 15
  • 16. Changes to requirements 16 100 FPs 120 FPs 130 FPs 135 FPs • State code input screen changed (3 FPs) • Interface to N&A file added (10 FPs) • N&A inquiry and state code inquiry added (7 FPs) • New regulatory table added (10 FPs) • Summary report added (5 FPs) Effort Schedule Cost + 1 month + 2 weeks + $5 K + .5 month + 1 week + $2.5 K + .25 month + 2.5 days + $1.25 K Delivered Application Detail Design Functional Design Requirements Impact Source: International Function Point User Group 2001
  • 18. How to count Function Points? 18 Displays Reports Master Files Size Reference Files Signals Control Files
  • 19. Steps in FP Counting 19 1. Determine Type of Count 2. Identify Counting Scope and Application Boundary 3. Count Data Functions 4. Count Transaction Functions 5. Determine Unadjusted Function Points 6. Determine Value Adjustment Factor 7. Calculate Adjusted Function Point Count
  • 20. FP - Functionalities Data Functionality ◦ Internal Logical Files (ILF) ◦ External Interface Files (EIF) 20 • Transaction Functionality • External Inputs (EI) • External Outputs (EO) • External Queries (EQ)
  • 21. FP Data & Transaction Functionality 21 USER ADD, CHG INVOICES PAYMENTS USER USER PAYMENT STATUS USER PAID INVOICES PURCHASE ORDER INFO PURCHASE ORDER SYSTEM External Interface File (EIF) External Input (EI) External Input (EI) External Query (EQ) External Output (EO) Internal Logical Files (ILF) Payments (Table) Vendor (Table) Invoices (Table) Repository (Persistence Layer) Accounts Payable App Services Layer APP BOUNDARY
  • 22. Terms within ILF and EIF 22 Control Information Control Information is data that influences an elementary process of the application being counted. It specifies what, when, or how data is to be processed. For example, someone in the payroll department establishes payment cycles to schedule when the employees for each location are to be paid. The payment cycle, or schedule, contains timing information that affects when the elementary process of paying employees occurs. User Identifiable The term user identifiable refers to defined requirements for processes and/or groups of data that are agreed upon, and understood by, both the user(s) and software developer(s). For example, users and software developers agree that a Human Resources Application will maintain and store Employee information in the application Maintained The term maintained is the ability to modify data through an elementary process. Examples include, but are not limited to, add, change, delete, populate, revise, update, assign, and create.
  • 23. Elementary Process 23 An Elementary Process is the smallest unit of activity that is meaningful to the user(s). For example, a user requires the ability to add a new employee to the application. The user definition of employee includes salary and dependent information. From the user perspective, the smallest unit of activity is to add a new employee. Adding one of the pieces of information, such as salary or dependent, is not an activity that would qualify as an elementary process. The elementary process must be self-contained and leave the business of the application being counted in a consistent state. For example, the user requirements to add an employee include setting up salary and dependent information. If all the employee information is not added, an employee has not yet been created. Adding some of the information alone leaves the business of adding an employee in an inconsistent state. If both the employee salary and dependent information is added, this unit of activity is completed and the business is left in a consistent state.
  • 24. Data Functions 24 Source: http://www.qpmg.com/fp-intro.htm Internal Logical Files (ILF) Logical group of data maintained by the application (Example Employee File). For example, a pilot may enter navigational data through a display in the cockpit prior to departure. The data is stored in a file for use and can be modified during the mission. Therefore the pilot is responsible for maintaining the file that contains the navigational information. Logical groupings of data in a system, maintained by an end user (and application), are referred to as Internal Logical Files (ILF).
  • 25. Data Functions 25 Source: http://www.qpmg.com/fp-intro.htm External Interface Files (EIF) The second Data Function a system provides an end user is also related to logical groupings of data. In this case the user is not responsible for maintaining the data. The data resides in another system and is maintained by another user or system. The user of the system being counted requires this data for reference purposes only. For example, it may be necessary for a pilot to reference position data from a satellite or ground-based facility during flight. The pilot does not have the responsibility for updating data at these sites but must reference it during the flight. Groupings of data from another system that are used only for reference purposes are defined as External Interface Files (EIF).
  • 26. Transactional Functions 26 Source: http://www.qpmg.com/fp-intro.htm These functions address the user's capability to access the data contained in ILFs and EIFs. This capability includes maintaining, inquiring and outputting of data. These are referred to as Transactional Functions. External Inputs (EI) This Transactional Function allows a user to maintain Internal Logical Files (ILFs) through the ability to add, change and delete the data. For example, a pilot can add, change and delete navigational information prior to and during the mission. In this case the pilot is utilizing a transaction referred to as an External Input (EI). An External Input gives the user the capability to maintain the data in ILF's through adding, changing and deleting its contents.
  • 27. Transactional Functions 27 Source: http://www.qpmg.com/fp-intro.htm External Output (EO) This Transactional Function gives the user the ability to produce outputs. For example a pilot has the ability to separately display ground speed, true air speed and calibrated air speed. The results displayed are derived using data that is maintained and data that is referenced. In function point terminology the resulting display is called an External Output (EO). External Queries (EQ) This Transactional Functions addresses the requirement to select and display specific data from files. To accomplish this a user inputs selection information that is used to retrieve data that meets the specific criteria. In this situation there is no manipulation of the data. It is a direct retrieval of information contained on the files. For example if a pilot displays terrain clearance data that was previously set, the resulting output is the direct retrieval of stored information. These transactions are referred to as External Inquiries (EQ).
  • 28. External Queries (EQ) 28 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. Output Side • 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 & output DET’s used when rating EQ.
  • 29. FTRs, RETs & DETs 29 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. Record Element Type (RET) A RET is user recognizable sub group of data elements within an ILF or an EIF. It is best to look at logical groupings of data to help identify them. Data Element Type 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. A data element can be either quantitative or qualitative. A quantitative data element is data in numerical form. A qualitative data element is data not in numerical form, but is in the form of text, photographs, sound bytes and so on.
  • 30. Understanding DETs 30 Radio Buttons Radio Buttons are treated as data element types. Within a group of, a frame, radio buttons the user has the option of selecting only one radio button; so only one data element type is counted for all the radio buttons contained in the frame. Check Boxes Check Boxes differ from radio buttons in that more than one check box can be selected at a time. Each check box, within a frame, that can be selected should be treated as a data element. Command Buttons Command buttons may specify an add, change, delete or inquire action. A button, like OK, may invoke several different types of transactions. Display of Graphical Images or Icons A display of a graphical image is simply another data element. An inventory application, for example, may contain data about parts. It may contain part name, supplier, size, and weight and include a schematic image of the part. This schematic is treated as a single data element. Photographic Images A photographic image is another data element, and is counted as one. A human resource application may display employee name, start date, etc. and a photograph of the employee. The photograph is treated the same as employee name or employee start date. The photograph is stored and maintained like any other piece of information about the employee. According to IFPUG counting rules, each command button would be counted as a data element for the action it invokes.
  • 31. Understanding DETs 31 Error and Confirmation Messages There are three types of messages that are generated in a GUI application: error messages, confirmation messages and notification messages. Error messages and confirmation messages indicate that an error has occurred or that a process will be or have been completed. They are not an elementary or independent process alone, but they are part of another elementary process. A message that would state, “zip code is required” would be an example of an error message. A message that would state, “are you sure you want to delete customer” is an example of a confirmation message. Neither type of message is treated as a unique external output, but each is treated as a data element for the appropriate transaction.
  • 32. Understanding DETs 32 Notification Messages On the other hand, a notification messages is a business type message. A notification is an elementary process, has some meaning to the business user and is independent of other elementary processes. It is the basis of processing and a conclusion being drawn. For example, you may try to withdraw from an ATM machine more money than you have in your account and you receive the dreaded message, “You have insufficient funds to cover this transaction.” This is the result of information being read from a file regarding your current balance and a conclusion being drawn. A notification message is treated as an External Output
  • 33. Understanding RETs 33 A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF. There are two types of subgroups: Optional Mandatory Optional subgroups are those that the user has the option of using one or none of the subgroups during an elementary process that adds or creates an instance of the data. Mandatory subgroups are subgroups where the user must use at least one. For example, in a Human Resources Application, information for an employee is added by entering some general information. In addition to the general information, the employee is a salaried or hourly employee. The user has determined that an employee must be either salaried or hourly. Either type can have information about dependents. For this example, there are three subgroups or RETs as shown below: Salaried employee (mandatory); includes general information Hourly employee (mandatory); includes general information Dependent (optional)
  • 35. Internal Logical File (ILF) Rules 35 All the following counting rules must apply for the information be counted as an Internal Logical File (ILF) • The group of data or control information is logical and user identifiable • The group of data is maintained through an elementary process within the application boundary being counted.
  • 36. External Interface File (EIF) Rules 36 All the following counting rules must apply for the information be counted as an External Interface File (EIF) • The group of data or control information is logical and user identifiable • The group of data is referenced by, and external to, the application being counted. • The group of data is NOT MAINTAINED by the application being counted. • The group of data is maintained in an ILF of another application.
  • 37. Data Element Type (DET) Rules 37 A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field. 1. Count a DET for each unique user recognizable, non-repeated field maintained in or retrieved from the ILF or EIF through the execution of an elementary process. For example, an account number that is stored in multiple fields is counted as one DET. For example, a before or after image for a group of 10 fields maintained for audit purposes would count as one DET for the before image (all 10 fields) and as one DET for the after image (all 10 fields) for a total of 2 DETs. For example, the result(s) of a calculation from an elementary process, such as calculated sales tax value for a customer order maintained on an ILF is counted as one DET on the customer order ILF. For example, accessing the price of an item which is saved to a billing file or fields such as a time stamp if required by the user(s) are counted as DETs. For example, if an employee number which appears twice in an ILF or EIF as (1) the key of the employee record and (2) a foreign key in the dependent record, count the DET only once. For example, within an ILF or EIF, count one DET for the 12 Monthly Budget Amount fields. Count one additional field to identify the applicable month.
  • 38. Data Element Type (DET) Rules 38 A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field. 2. When two applications maintain and/or reference the same ILF/EIF, but each maintains/references separate DETs, count only the DETs being used by each application to size the ILF/EIF. For example, Application A may specifically identify and use an address as: street address, city, state and zip code. Application B may see the address as one block of data without regard to individual components. • Application A would count four DETs; • Application B would count one DET. For example, Application X maintains and/or references an ILF that contains a SSN, Name, Street Name, Mail Stop, City, State, and Zip. Application Z maintains and/or references the Name, City, and State. • Application X would count seven DETs; • Application Z would count three DETs.
  • 39. Data Element Type (DET) Rules 39 A Data Element Type (DET) is a UNIQUE user recognizable, non repeated field. 3. Count a DET for each piece of data required by the user to establish a relationship with another ILF or EIF. For example, in an HR application, an employee's information is maintained on an ILF. The employee’s job name is included as part of the employee's information. This DET is counted because it is required to relate an employee to a job that exists in the organization. This type of data element is referred to as a foreign key. For example, in an object oriented (OO) application, the user requires an association between object classes, which have been identified as separate ILFs. Location name is a DET in the Location EIF. The location name is required when processing employee information; consequently, it is also counted as a DET within the Employee ILF.
  • 40. Record Element Type (RET) Rules 40 A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF. 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.
  • 41. Linkingeverything…… Function Type Functional Complexity Rating Record Element Type (RET) File Type Referenced (FTR) Data Element Type (DET) Low Average High Data Functions • Internal Logic Files (ILF) x7 x10 x15 Yes Yes • External Interface Files (EIF) x5 x7 x10 Yes Yes Transaction Functions • External Inputs (EI) x3 x4 x6 Yes Yes • External Outputs (EO) x4 x5 x7 Yes Yes • External Queries (EQ) x3 x4 x6 Yes Yes 41 Transaction Functions Transaction Data Element Types (DETs) External Inputs (EI) Data Input Fields, Error Messages, Calculated values, Buttons External Outputs (EO) Data Fields on a Report, Calculated Values, Error Messages, Column Headings (from ILF). EO also can an Input (EI) side & output side External Queries (EQ) Input Side, Field used to search by, Buttons. Output side displayed fields on the screen.
  • 42. Unadjusted Function Point Calculator 42 Component Type Complexity of Components Low Average High L+A+H Total External Inputs 3 x3 9 1 x4 4 1 x6 6 9+4+6 19 External Outputs 5 x4 20 x5 1 x7 7 20+0+7 27 External Queries 5 x3 18 x4 1 x6 6 18+0+6 24 Internal Logical Files 1 x7 7 2 x10 20 1 x15 15 7+20+15 42 External Interface Files x5 x7 1 x10 10 0+0+10 10 Total Unadjusted Function Points 122
  • 43. General Software Characteristics 43 General Software Characteristics Brief Description 1 Data Communication 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 Online Data Entry What percentage of the information is entered On-Line? 7 End User Efficiency Was the application designed for end-user efficiency? 8 Online 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? 15 Security Framework Security Framework for all Input validations to check Cross Site Scripting, SQL Injection etc. 16 Multi Language Support Multi Language Support for the App 17 Multi Form Factors Application will be available in Multiple Form factors like Web, Smart Phone, Tablet etc
  • 44. Calculations FP = UFP X VAF FUNCTION POINT = UNADJUSTED FP X VALUE ADJUSTMENT FACTOR 44
  • 45. When to count Function Points 45 Corrective Maintenance Proposal Design QA DeliveryRequirements Development SIZING Initial User Requirements Initial Technical Requirements Final Functional Requirements Feasibility Study SIZING Change Request Scope Adjustment SIZING SIZING SIZING
  • 46. Calculating Unadjusted Function Points (UFP) 46 External Inputs (EI) External Outputs (EO) FTR Data Element Type (DET) 1-5 6-19 >19 <2 Low (4) Low (4) Ave (5) 2 or 3 Low (4) Ave (5) High (7) >3 Ave (5) High (7) High (7) External Queries (EQ) FTR Data Element Type (DET) 1-5 6-19 >19 <2 Low (3) Low (3) Ave (4) 2 or 3 Low (3) Ave (4) High (6) >3 Ave (4) High (6) High (6) FTR Data Element Type (DET) 1-4 5-15 >15 <2 Low (3) Low (3) Ave (4) 2 Low (3) Ave (4) High (6) >2 Ave (4) High (6) High (6) Internal Logical File (ILF) RET Data Element Type (DET) 1-19 20-50 >51 1 Low (7) Low (7) Ave (10) 2 - 5 Low (7) Ave (10) High (15) >5 Ave (10) High (15) High (15) External Interface Files (EIF) RET Data Element Type (DET) 1-19 20-50 >51 1 Low (5) Low (5) Ave (7) 2 - 5 Low (5) Ave (7) High (10) >5 Ave (7) High (10) High (10) Unadjusted Function Points in brackets (x) based on FTR / RET & DET UFP = Σ (EI+EO+EQ+ILF+EIF)
  • 47. Value Adjustment Factor (VAF) 47 Degree of Influence (Di) 0 Not Present, or No Influence 1 Incidental Influence 2 Moderate Influence 3 Average Influence 4 Significant Influence 5 Strong Influence Throughout The Degree of influence range on a scale of Zero to Five, from No Influence to Strong Influence. 17 VAF = 0.65 + [( ΣDi) x 0.01] i=1 New Additions over IFPUG Value Adjustment Factors – Points : 15, 16 & 17 Based on 14+3 General System Characteristics User Business Constraints Independent of Technology 1. Data Communication 2. Distributed Data Processing 3. Performance 4. Heavily Used Configuration 5. Transaction Rate (Frequency of Transaction) 6. Online Data Entry 7. End User Efficiency 8. Online Update (How many ILF are updated using Online transaction) 9. Complex Processing (Extensive Logical or Mathematical Processing) 10. Reusability 11. Installation Ease 12. Operational Ease (Start-up, Back & Recovery Process) 13. Multiple Sites (Multi-Tenant) 14. Facilitate Change 15. Security Framework 16. Multi Language Support 17. Multi Form Factors Adjusts FP count by up to + / - 50%
  • 48. Standard Function Point 48 The final Function Point Count is obtained by multiplying the Unadjusted Function Point times the Value Adjustment Factor. FP = UFP x VAF Where UFP = Unadjusted Function Point VAF = Value Adjustment Factor
  • 49. Function Points Per Person Month 49 Platform FP / Person / Month Client Server 15 Main Frame 13 Web 22 E-Business Web 12 Vendor Packages 19 Data Warehouse 11 Language Hours / FP ASP* 0.61 Visual Basic 0.85 Java 10.6 SQL 10.8 C++ 12.4 C 13.0 C# 15.5 PL/1 14.2 COBOL 16.8 ABAP 19.9 * refers to classic ASP. Included for comparison purposes. (Courtesy of ISBSG.) ISBSG, a non-profit software research group, has gathered data on 6,000 projects, using functional size as the key sizing measure. From this data, they can see how many hours it took to take each project to completion and how those hours mapped to languages, on projects that were primarily written in one language Source : http://www.drdobbs.com/jvm/the-comparative-productivity-of-programm/240005881
  • 50. Costing for Simple SOA App 50 A : Role B : Price by Role in Dollars C : Effort by Role in the Project (Hours) D : % (C*100/total hours. I.e., 1000 hours) E : Price by Role in Dollars (B * C) Manager $100 50 05 $5,000 SOA Analyst $80 250 25 $20,000 SOA Architect $90 200 20 $18,000 SOA Developer $50 350 35 $17,500 SOA QA $40 50 05 $2,000 SOA Governance Specialist $80 50 05 $4,000 SOA Security Specialist $70 50 05 $3,500 1000 100 $70,000 100 FP * 10 FP per hour = 1000 Man hours
  • 51. CASE STUDY 51 1. Case 1: Simple Form with 1 Table 2. Case 2: Simple Form with 4 Tables 3. Case 3: Shopping Portal
  • 52. External Inputs (EI) – Customer FTR Data Element Type (DET) 1-4 5-15 >15 <2 Low (3) Low (3) Ave (4) 2 Low (3) Ave (4) High (6) >2 Ave (4) High (6) High (6) Data Element Types (DET) 1 Customer Name 2 Contact 3 Alt. Contact 4 Bill To 5 Phone 6 Fax 7 Alt. Phone 8 Ship To 9 Type 10 OK Button 11 Cancel Button 12 Save Message 13 Error Message File Type Reference (FTR) 1 Customer File Total UFP Customer UI – Add : 1 Table Internal Logical File (ILF) RET Data Element Type (DET) 1-19 20-50 >51 1 Low (7) Low (7) Ave (10) 2 - 5 Low (7) Ave (10) High (15) >6 Ave (10) High (15) High (15) Name Type RET DET FP 1 Customer ILF 1 12 7 Total ILF Function Points 7 Total UFP = EI + ILF = 7 + 3 = 10 EI = 1 FTR, 13 DET = 3 FP 10 1 52
  • 53. External Inputs (EI) – Customer FTR Data Element Type (DET) 1-4 5-15 >15 <2 Low (3) Low (3) Ave (4) 2 Low (3) Ave (4) High (6) >2 Ave (4) High (6) High (6) Data Element Types (DET) 1 Customer Name 2 Contact 3 Alt. Contact 4 Bill To 5 Phone 6 Fax 7 Alt. Phone 8 Ship To 9 Type 10 OK Button 11 Cancel Button 12 Save Message 13 Error Message File Type Reference (FTR) 1 Customer File 2 Contact File 3 Bill To File 4 Ship To File Total UFP Customer UI – Add : 4 Tables Internal Logical File (ILF) RET Data Element Type (DET) 1-19 20-50 >51 1 Low (7) Low (7) Ave (10) 2 - 5 Low (7) Ave (10) High (15) >6 Ave (10) High (15) High (15) Name Type RET DET FP 1 Customer ILF 1 12 7 2 Contact ILF 1 21 7 3 Billing ILF 1 10 7 4 Shipping ILF 1 12 7 Total ILF Function Points 28 Total UFP = EI + ILF = 28 + 6 = 34 EI = 4 FTR, 13 DET = 6 FP 34 2 53
  • 54. Total Function Points 54 17 VAF = 0.65 + [( Σ Di) x 0.01] i=1 VAF = 0.65 + 0.64 =1.29 FP = UFP x VAF = 34 x 1.29 = 43.86 FP = 44 Total Function Points and Effort Estimation FP = UFP x VAF = 10 x 1.29 = 12.9 FP = 13 1 2 Effort Estimation Java = 10.6 Hours / FP 13 * 10.6 = 137 Hours 44 * 10.6 = 466 Hours
  • 56. Value Adjustment Factor (VAF) Based on 14+1 General System Characteristics User Business Constraints Independent of Technology 1. Data Communication 2. Distributed Data Processing 3. Performance 4. Heavily Used Configuration 5. Transaction Rate (Frequency of Transaction) 6. Online Data Entry 7. End User Efficiency 8. Online Update (How many ILF are updated using Online transaction) 9. Complex Processing (Extensive Logical or Mathematical Processing) 10. Reusability 11. Installation Ease 12. Operational Ease (Start-up, Back & Recovery Process) 13. Multiple Sites (Multi-Tenant) 14. Facilitate Change 15. Security Framework Adjusts FP count by up to + / - 40% 56 Degree of Influence (Di) 0 Not Present, or No Influence 1 Incidental Influence 2 Moderate Influence 3 Average Influence 4 Significant Influence 5 Strong Influence Throughout The Degree of influence range on a scale of Zero to Five, from No Influence to Strong Influence. 15 VAF = 0.65 + [( ΣDi) x 0.01] i=1
  • 57. The data and control information used in the application are sent or received over communication facilities. Terminals connected locally to the control unit are considered to use communication facilities. Protocol is a set of conventions, which permit the transfer, or exchange of information between two systems or devices. All data communication links require some type of protocol. 57 1. Data Communications Score As Description to Determine Degree of Influence 0 Application is pure batch processing or a standalone PC. 1 Application is batch but has remote data entry or remote printing. 2 Application is batch but has remote data entry and remote printing. 3 Application includes online data collection or TP (teleprocessing) front end to a batch process or query system. 4 Application is more than a front-end, but supports only one type of TP communications protocol. 5 Application is more than a front-end, and supports more than one type of TP communications protocol. Comments: TCP/IP (Transmission Control Protocol/Internet Protocol). TCP/IP provides a common language for interoperation between networks that use a variety of local protocols (Ethernet, Netware, AppleTalk, DECnet and others) are examples of TP. An application that allows query of application via a web based solution and local access would receive a value of 3. An application that allows for the update of ILF’s via the Internet and local update would receive a value of a 5.
  • 58. Distributed data or processing functions are a characteristic of the application within the application boundary. 58 2. Distributed Data Processing Score As Description to Determine Degree of Influence 0 Application does not aid the transfer of data or processing function between components of the system. 1 Application prepares data for end user processing on another component of the system such as PC spreadsheets and PC DBMS. 2 Data is prepared for transfer, then is transferred and processed on another component of the system (not for end- user processing). 3 Distributed processing and data transfer are online and in one direction only. 4 Distributed processing and data transfer are online and in both directions. 5 Processing functions are dynamically performed on the most appropriate component of the system. Comments: Copying files from a mainframe to a local PC or copy files from an Internet or intranet would receive a value of 2. Reading via a client or via Internet or intranet would receive a value of 3. Reading and updating via Internet or intranet would receive a value of 4. Depending on available resources, the application processes either local, on server, on intranet or Internet application would receive a value of 5.
  • 59. Application performance objectives, stated or approved by the user, in either response or throughput, influence (or will influence) the design, development, installation, and support of the application. 59 3. Performance Score As Description to Determine Degree of Influence 0 No special performance requirements were stated by the user. 1 Performance and design requirements were stated and reviewed but no special actions were required. 2 Response time or throughput is critical during peak hours. No special design for CPU utilization was required. Processing deadline is for the next business day. 3 Response time or throughput is critical during all business hours. No special design for CPU utilization was required. Processing deadline requirements with interfacing systems are constraining. 4 In addition, stated user performance requirements are stringent enough to require performance analysis tasks in the design phase. 5 In addition, performance analysis tools were used in the design, development, and/or implementation phases to meet the stated user performance requirements. Comments: Again for a client/server or for internet/intranet application this remains the same.
  • 60. A heavily used operational configuration, requiring special design considerations, is a characteristic of the application. For example, the user wants to run the application on existing or committed equipment that will be heavily used. 60 4. Heavily used Configuration Score As Description to Determine Degree of Influence 0 No explicit or implicit operational restrictions are included. 1 Operational restrictions do exist, but are less restrictive than a typical application. No special effort is needed to meet the restrictions. 2 Some security or timing considerations are included. 3 Specific processor requirements for a specific piece of the application are included. 4 Stated operation restrictions require special constraints on the application in the central processor or a dedicated processor. 5 In addition, there are special constraints on the application in the distributed components of the system. Comments Does this application share hardware that is busy?. For example, an application that shares a server with 5 other applications would need to be optimized because it shares resources with 4 other applications.
  • 61. The transaction rate is high and it influenced the design, development, installation, and support of the application. 61 5. Transaction Rate Score As Description to Determine Degree of Influence 0 No peak transaction period is anticipated. 1 Peak transaction period (e.g., monthly, quarterly, seasonally, annually) is anticipated. 2 Weekly peak transaction period is anticipated. 3 Daily peak transaction period is anticipated. 4 High transaction rate(s) stated by the user in the application requirements or service level agreements are high enough to require performance analysis tasks in the design phase. 5 High transaction rate(s) stated by the user in the application requirements or service level agreements are high enough to require performance analysis tasks and, in addition, require the use of performance analysis tools in the design, development, and/or installation phases.
  • 62. Online data entry and control functions are provided in the application. 62 6. Online Data Entry Score As Description to Determine Degree of Influence 0 All transactions are processed in batch mode. 1 1% to 7% of transactions are interactive data entry. 2 8% to 15% of transactions are interactive data entry. 3 16% to 23% of transactions are interactive data entry. 4 24% to 30% of transactions are interactive data entry. 5 More than 30% of transactions are interactive data entry.
  • 63. 63 7. End User Efficiency • Navigational aids (for example, function keys, jumps, dynamically generated menus) • Menus • Online help and documents • Automated cursor movement • Scrolling • Remote printing (via online transactions) • Pre-assigned function keys • Batch jobs submitted from online transactions • Cursor selection of screen data • Heavy use of reverse video, highlighting, colors underlining, and other indicators • Hard copy user documentation of online transactions • Mouse interface • Pop-up windows. • As few screens as possible to accomplish a business function • Bilingual support (supports two languages; count as four items) • Multilingual support (supports more than two languages; count as six items) The online functions provided emphasize a design for end-user efficiency. The design includes:
  • 64. 64 7. End User Efficiency Score As Description to Determine Degree of Influence 0 None of the above. 1 One to three of the above. 2 Four to five of the above. 3 Six or more of the above, but there are no specific user requirements related to efficiency. 4 Six or more of the above, and stated requirements for end- user efficiency are strong enough to require design tasks for human factors to be included (for example, minimize key strokes, maximize defaults, use of templates). 5 Six or more of the above, and stated requirements for end- user efficiency are strong enough to require use of special tools and processes to demonstrate that the objectives have been achieved.
  • 65. The application provides online update for the internal logical files. 65 8. Online Update Score As Description to Determine Degree of Influence 0 None 1 Online update of one to three control files is included. Volume of updating is low and recovery is easy 2 Online update of four or more control files is included. Volume of updating is low and recovery easy. 3 Online update of major internal logical files is included. 4 In addition, protection against data lost is essential and has been specially designed and programmed in the system. 5 In addition, high volumes bring cost considerations into the recovery process. Highly automated recovery procedures with minimum operator intervention are included.
  • 66. 66 9. Complex Processing Score As Description to Determine Degree of Influence 0 None of the above. 1 Any 1 of the above 2 Any 2 of the above 3 Any 3 of the above 4 Any 4 of the above 5 All 5 of the above • Sensitive control (for example, special audit processing) and/or application specific security processing • Extensive logical processing • Extensive mathematical processing • Much exception processing resulting in incomplete transactions that must be processed again, for example, incomplete ATM transactions caused by TP interruption, missing data values, or failed edits • Complex processing to handle multiple input/output possibilities, for example, multimedia, or device independence Complex processing is a characteristic of the application. The following components are present.
  • 67. 67 The application and the code in the application have been specifically designed, developed, and supported to be usable in other applications. 10. Reusability Score As Description to Determine Degree of Influence 0 No reusable code. 1 Reusable code is used within the application. 2 Less than 10% of the application considered more than one user's needs. 3 Ten percent (10%) or more of the application considered more than one user's needs. 4 The application was specifically packaged and/or documented to ease re-use, and the application is customized by the user at source code level. 5 The application was specifically packaged and/or documented to ease re-use, and the application is customized for use by means of user parameter maintenance.
  • 68. 68 Conversion and installation ease are characteristics of the application. A conversion and installation plan and/or conversion tools were provided and tested during the system test phase. 11. Installation base Score As Description to Determine Degree of Influence 0 No special considerations were stated by the user, and no special setup is required for installation. 1 No special considerations were stated by the user but special setup is required for installation. 2 Conversion and installation requirements were stated by the user, and conversion and installation guides were provided and tested. The impact of conversion on the project is not considered to be important. 3 Conversion and installation requirements were stated by the user, and conversion and installation guides were provided and tested. The impact of conversion on the project is considered to be important. 4 In addition to 2 above, automated conversion and installation tools were provided and tested. 5 In addition to 3 above, automated conversion and installation tools were provided and tested.
  • 69. 69 Operational ease is characteristic of the application. Effective start-up, back-up, and recovery procedures were provided and tested during the system test phase. The application minimizes the need for manual activities, such as tape mounts, paper handling, and direct on-location manual intervention. 12. Operational ease Score As Description to Determine Degree of Influence 0 No special operational considerations other than the normal back-up procedures were stated by the user 1 – 4 One, some, or all of the following items apply to the application. Select all that apply. Each item has a point value of one, except as noted otherwise. Effective start-up, back-up, and recovery processes were provided, but operator intervention is required. Effective start-up, back-up, and recovery processes were provided, but no operator intervention is required (count as two items). The application minimizes the need for tape mounts. The application minimizes the need for paper handling. 5 The application is designed for unattended operation. Unattended operation means no operator intervention is required to operate the system other than to start up or shut down the application. Automatic error recovery is a feature of the application.
  • 70. 70 The application has been specifically designed, developed, and supported to be installed at multiple sites for multiple organizations. 13. Multiple Sites Score As Description to Determine Degree of Influence 0 User requirements do not require considering the needs of more than one user/installation site. 1 Needs of multiple sites were considered in the design, and the application is designed to operate only under identical hardware and software environments. 2 Needs of multiple sites were considered in the design, and the application is designed to operate only under similar hardware and/or software environments. 3 Needs of multiple sites were considered in the design, and the application is designed to operate under different hardware and/or software environments. 4 Documentation and support plan are provided and tested to support the application at multiple sites and the application is as described by 1 or 2. 5 Documentation and support plan are provided and tested to support the application at multiple sites and the application is as described by 3.
  • 71. 71 14. Facilitate Change Score As Description to Determine Degree of Influence 0 None of the above. 1 Any 1 of the above 2 Any 2 of the above 3 Any 3 of the above 4 Any 4 of the above 5 All 5 of the above The application has been specifically designed, developed, and supported to facilitate change. • The following characteristics can apply for the application: • Flexible query and report facility is provided that can handle simple requests; for example, and/or logic applied to only one internal logical file (count as one item). • Flexible query and report facility is provided that can handle requests of average complexity, for example, and/or logic applied to more than one internal logical file (count as two items). • Flexible query and report facility is provided that can handle complex requests, for example, and/or logic combinations on one or more internal logical files (count as three items). • Business control data is kept in tables that are maintained by the user with online interactive processes, but changes take effect only on the next business day. • Business control data is kept in tables that are maintained by the user with online interactive processes, and the changes take effect immediately (count as two items).
  • 72. 72 15. Security Framework Score As Description to Determine Degree of Influence 0 None of the above. 1 Any 1 of the above 2 Any 2 of the above 3 Any 3 of the above 4 Any 4 of the above 5 All of the above The application has been specifically designed, developed with a strong security framework. • User Authentication • Role Based Access Control • Label Based Access Control • Protect the App from Session Hijacking, Data Validations for SQL Injection, Cross site scripting (Protection against vulnerabilities defined by OWASP) • Multi Factor Authentication • Log Management and Exception Handling
  • 73. 73 THANK YOU Araf Karsh Hamid email : araf.karsh@ozazo.com | araf.karsh@metamagic.in Social : arafkarsh | Skype, Facebook, LinkedIn, Twitter, G+ Phone : +91.999.545.8627 | http://www.metamagic.in/
  • 75. Understanding External Inputs (EI) The following words are associated with External Inputs or Inputs Add Memorize (Ad) Activate Modify (Change) Amend (Changed & Delete) Override (Change) Cancel Post (Add, Change & Delete) Change Remove (Delete) Convert (Change) Reactivate (Change) Create (Add) Remit Delete Replace (Change) De-assign Revise (Change and Delete) Disable Save (Add, Change or Delete) Disconnect Store (Add) Enable Suspend (Change or Delete) Edit (Change) Submit (Add, Change or Delete) Insert (Add and Change) Update (Add, Change or Delete) Maintain (Add, Change or Delete) 75

Editor's Notes

  1. http://namcookanalytics.com/wp-content/uploads/2013/07/Function-Points-as-a-Universal-Software-Metric2013.pdf
  2. http://www.qpmg.com/fp-intro.htm
  3. http://www.qpmg.com/fp-intro.htm
  4. http://ainfo.cnptia.embrapa.br/digital/bitstream/item/34989/1/0004-3-1-Part-0-2010-01-17.pdf http://perun.pmf.uns.ac.rs/old/repository/research/se/functionpoints.pdf
  5. http://ainfo.cnptia.embrapa.br/digital/bitstream/item/34989/1/0004-3-1-Part-0-2010-01-17.pdf http://perun.pmf.uns.ac.rs/old/repository/research/se/functionpoints.pdf
  6. http://www.qsm.com/resources/function-point-languages-table http://www.drdobbs.com/jvm/the-comparative-productivity-of-programm/240005881
  7. http://www.servicetechmag.com/i68/1112-4 IFPUG - About Function Point Analysis http://www.ifpug.org/?page_id=10 Wikipedia - What's Function Points http://en.wikipedia.org/wiki/Function_point NESMA - Netherlands Function Points Users http://www.nesma.nl/sectie/home/ Prentice Hall Service Technology Series SOA Principles of Service Design by Thomas Erl
  8. Function Points Examples: http://www.qsm.com/resources/function-point-languages-table http://www.functionpoints.org/fpa-in-practice.html http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.95.8744&rep=rep1&type=pdf Comparisons : FP Vs. Use Case Points Vs. Story Points http://www.crosstalkonline.org/storage/issue-archives/2013/201305/201305-Schofield.pdf
  9. http://www.functionpoints.org/fpa-in-practice.html