0% found this document useful (0 votes)
10 views35 pages

Functionpoints 160526103046

The document provides an overview of Function Point Analysis, a method for estimating software project size based on user requirements and functionality. It outlines the history, vocabulary, advantages and disadvantages, and the process for estimating function points, including the classification of functional and non-functional requirements. Additionally, it discusses the importance of application boundaries, types of counts, and the evaluation of general system characteristics to adjust functional size measures.

Uploaded by

farooq ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views35 pages

Functionpoints 160526103046

The document provides an overview of Function Point Analysis, a method for estimating software project size based on user requirements and functionality. It outlines the history, vocabulary, advantages and disadvantages, and the process for estimating function points, including the classification of functional and non-functional requirements. Additionally, it discusses the importance of application boundaries, types of counts, and the evaluation of general system characteristics to adjust functional size measures.

Uploaded by

farooq ali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 35

Materials are adopted from David Consulting Group

Function Point Analysis

Basics on estimation in functional points


By Svetlana Mukhina

www.luxoft.com
Introduction
Svetlana Mukhina
ICAgile ICP, ICP-ATF, ICP-BVA, PSM I, CSPO

Agile and Career Coach at Luxoft Agile Practice

Experience: 13+ years in IT, Project and department


management, Computer Linguistics, Technical
Writing, Quality Assurance

Interests: Project management, Agile transformation,


Career and performance coaching, Psychology

Hobbies: Horse riding, music, poker, travelling

https://www.linkedin.com/in/
svetlanamukhina
www.luxoft.com https://www.facebook.com/
Theoretical information on
Function Points

www.luxoft.com
Adopted from David Consulting Group
Estimating the Project

Change People
RFC project
team

Duratio Size Defect


scale of task
n in PF/SP/etc
s
of project quality

Effort Critical
man- Resources
hour

www.luxoft.com
from David Consulting Group

History

• Function Point Analysis was developed first by Allan J. Albrecht in the mid 1970s

• The method was first published in 1979, then later in 1983

• In 1986 the International Function Point User Group (IFPUG) was set up

• Since 1987 membership in IFPUG has grown from 100 members to 600 members in 1997.

• In less than six years conference attendance has grown from 125 in 1988 to over 300 by
1997.

• Examination of IFPUG clearly indicates that the majority of its is members are from North
America

• There are numerous affiliate organizations of IFPUG. There are affiliate organizations in
Italy, France, Germany, Austria, India, The Netherlands, Australia, Japan, and several other
countries.

www.luxoft.com
from David Consulting Group

Vocabulary – Main Terms

• is a unit of measure for quantifying software


Function Point deliverable (functionality) based upon the user view.

• is any person or thing that communicates or interacts


User with the software at any time

• is the Functional User Requirements as perceived by


User View the user

• are a subset of user requirements, that describe what


Functional user the software shall do (functions), in terms of tasks and
requirements services

www.luxoft.com
from David Consulting Group
Vocabulary – Functional and Non-Functional
Requirements
Functional (Include)
• Data Transfer (Input customer data, send control signal, send transactions
• from one system to another)
• Data Transformation (Calculate bank interest; derive average temperature; use billing data to produce
invoice totals)
• Data Storage (Store customer order; record temperature over time; store control parameters to drive data)
• Data Retrieval (List current employees; retrieve satellite position; display a report of employee dependents)

Non-Functional (Exclude)
• Quality Constraints (Usability, Reliability, Efficiency, Portability)
• Organizational Constraints (locations for operations, target hardware, compliance to standards)
• Environmental Constraints (interoperability, security, privacy, safety)
• Implementation constraints (development language, delivery schedule)

www.luxoft.com
Advantages and Disadvantages of Function Point
Analysis

• Function Points can be used to size software • Function points are not a very good measure when
applications accurately. sizing maintenance efforts (fixing problems) or when
• FP can be counted by different people, at trying to understand performance issues
different times, to obtain the same measure • When maintenance programming is done by one or
within a reasonable margin of error two individuals, individual skill sets become a major
• FP can be estimated by proxy factor when measuring this type of work
• FP is easily understood by non-technical • Development team don’t take part in estimation
users
• FP can be used to determine whether a tool,
a language, an environment, is more
productive when compared with others
• Low risk of "inflation” comparing to lines of
code or story points methods
• LOC measures are not useful during early
project phases where estimating the number
of lines of code that will be delivered is
challenging.
• FP can be derived from requirements
www.luxoft.com
Adopted from David Consulting Group
www.luxoft.com

from David Consulting Group


Practical Information on
Function Points

www.luxoft.com
Adopted from David Consulting Grou
Process of Function Point Estimation

Determine
the counting Identify and
Gather
scope, classify the Calculate the Document
available Report the
boundaries, base functional the Function
documentati result
functional functional size Points
on
user components
requirements

Measure the data functions


Internal Groupings of data called Internal Logical
Files (ILF)
External Groupings of data or External Interface Files
(EIF)
Measure the transactional functions
External Inputs (EI)
External Outputs (EO)
www.luxoft.com
External Inquires (EQ)
Each function is assigned a functional complexity (L-A-H)
Adopted from David Consulting Group

Application Boundary
An application boundary is a conceptual interface between the software under study and
its users.
• Scope of a project could include multiple applications.
• A functional size would be calculated for each affected application, in perspective to its
boundary, thereby producing its own count
• All affected application counts would be compiled to produce the total project count.

www.luxoft.com
from David Consulting Group

Types of Count

We count We don’t count


• Installed application: Baseline • Corrective Maintenance –
(or application) count Software maintenance
• Development project: New performed to correct faults in
system or subsystem hardware or software
• Enhancement project: Add, • Perfective Maintenance –
change or delete to present Software maintenance
system performed to improve the
performance, maintainability,
or other attributes of a
computer program
• Non-functional requirements
www.luxoft.com
Adopted from David Consulting Group
Types of Data – Overview

Function Points Look at Logical View


Logical Physical
View View

Functionality
(ability to) VS Lines of code

Logically
grouped stores Databases or
of data (data in tables
a form)

Elementary
process Physical
(complete transactions
flow, e.g. (screens)
www.luxoft.com
wizard)
from David Consulting Group

Types of Data - Details


We count – We count – We don’t count –
Business Data Reference Data Code Data
• Reflects information needed to be • Stored to support business rules for • Code data provides a list of valid value
stored and retrieved by functional area the maintenance of the business data. values that a descriptive attribute
addressed by the application. • Mandatory for the operation of the might have.
• Mandatory for the operation of the user’s functional area • Mandatory to the functional area, but
user’s functional area • User identifiable and user maintainable optionally stored as a data file to
• User identifiable and maintainable • Stores data to support core user standardize and facilitate business
• Stores the user’s Core User Data to activities activities and business transactions
support business transactions • Less dynamic – occasionally changes • Not usually identified as part of the
• Very dynamic, business operations in response to changes in the functional requirements; it is usually
cause it to be regularly referenced, functional areas’ environment, identified as part of design to meet
added to, changed, deleted external functional processes and/or technical requirements
• Typically has key field and many business rules • Sometimes user maintainable, but
attributes . • Transactions processing business data essentially static – only changes in
• E.g Customer Data often use reference data response to changes in the way that
• Typically has key fields and few the business operates
attributes • Business transactions access Code
• E.g Policy information (Types and Data to improve ease of data entry,
terms of policies) improve data consistency, ensure data
integrity, etc.
• Can be user recognizable as a group or
using the same logic
• Generally consists of a key field and
one or two attributes only
• Typically has a stable number of
www.luxoft.com
records
• Examples: Payment Type Code,
Adopted from David Consulting Group

Internal Logical Files and External Interface Files

Application
External Interface File (EIF) is a
user recognizable group of logically
Internal Logical File (ILF) related data or control information
Data which is resides within the which is referenced by the application
application boundary and which being measured, but maintained
is maintained (added, changed, within the boundary of another
deleted, updated) by the application. It is identified as an ILF in
application another application(s)

Don’t count as an ILF or EIF:


• Files introduced because of technology or technical requirements
• Index files, Join/Merge Tables
• Prototypes, or files built but not used in application
• Temporary data files
• Copybooks, Work files, Sort files
• Separate physical entities if they are logically one data group
www.luxoft.com
from David Consulting Group

Exercise #1 – Counting Radio Alarm Clock

Inputs (EIs)
Outputs (EOs/EQs)
• Set time
• • Alarm
Set alarm
• • Sound(Music/ Radio/Buzzer)
Set type of alarm (radio, buzz) Set radio station
• • Display Time
Set volume of radio
• Set am/fm
• Set Snooze
• On/Off alarm

Internal Data Stores (ILFs)


• Time Data (Alarm Data/Time
Data)
• Radio Data

External Data Sources (EIFs)


www.luxoft.com
• Radio Frequency
Determine The Complexity and Weight from David Consulting Group

The number of ILFs, EIFs and their relative functional complexity determine the contribution
of the data functions to the functional size.

Each ILF and EIF will have an individual contribution based upon its functional complexity, to
the total number of function points for data function contribution to the project functional
size.

Assign each identified ILF and EIF a functional complexity based upon the number of data
element types (DETs) and record element types (RETs) associated with the ILF or EIF.

Application
Internal Logical File (ILF)
External Interface File (EIF)
RET - A record element type (RET) is
a user recognizable subgroup of data RETs
elements within an ILF or EIF DETs
DET is a unique user DETs
recognizable, non-repeated DETs
attribute
www.luxoft.com
Function Point Counting Weights
Type Low Avg High Total

EI _X3 _X4 _X6


+ + =

EO _X4 _X5 _X7


+ + =

EQ _X3 _X4 _X6


+ + =

ILF _X7 _ X 10 _X15


+ + =

EIF _X5 _X7 _X6


+ + =

www.luxoft.com
ILF and EIF Complexity
Matrix
RETs 1-19 20-50 51+
DETs DETs DETs
1 Low Low Avg
2-5 Low Avg High
6+ Avg High High
EI Complexity
Matrix
FTRs 1-4 5-15 16+
EO and EQ* Complexity DETs DETs DETs
Matrix 0-1 Low Low Avg
FTRs 1-5 6-19 20+
DETs DETs DETs 2 Low Avg High

0-1 Low Low Avg 3+ Avg High High


2-3 Low Avg High
4+ Avg High High
www.luxoft.com
from David Consulting Group
Exercise #2 – Counting Application Data

www.luxoft.com
from David Consulting Group
Exercise #2 Results

www.luxoft.com
Adopted from David Consulting Grou

Transactional Functions - Description


A transactional function is an elementary process that provides functionality to the user to
process data and is one of the following:

External Input (EI) – an elementary process that processes data or control information sent from
outside the boundary

­ Words that suggest EIs: Add, Make Inactive, Allocate, Modify, Assign, Record, Associate, Remove,
Change, Reset, Create, Delete, Import, Reverse, Set, Undo, Update, Upload, Withdraw;

External Inquiry (EQ) – is an elementary process that sends data or control information outside
the boundary (using data retrieval only)

­ Words That Suggest EQs: Browse Display Enquire Extract Inquire List Pick List View

External Output (EO) – is an elementary process that sends data or control information outside
the boundary and includes additional processing beyond that of an external inquiry.

­ Words That Suggest EOs: Adjust Export Generate Notify Print Report Summary

www.luxoft.com
from David Consulting Group

Identifying Transactional Functions

www.luxoft.com
Adopted from David Consulting Grou

Transactional Functions

Application
Internal Logical File (ILF) EO External Interface File
(EIF)
RET - A record element type (RET) is
a user recognizable subgroup of data
elements within an ILF or EIF EI RETs
DETs
DET is a unique user
DETs
recognizable, non-repeated
DETs
attribute

EO

EQ
EI = External Input
EO = External Output
EQ = External Inquiry
User
www.luxoft.com
Exercise #3 – Counting Application Primary Processes and Group
Adopted from David Consulting

Data

www.luxoft.com
Adopted from David Consulting Grou
Exercise #3 – Results

Description ILF/EIF/EI/ FTRs DETs


EO/EQ
Add EI 1 6
Change EI 1 6
Delete EI 1 5 16 FPs
Student Data ILF 1 4

www.luxoft.com
Adopted from David Consulting Group

General Systems Characteristics (GSCs)

GSCs are non-functional (technical) factors that can be applied to the unadjusted size
measure to get an adjusted functional size measure. The intent is to capture the effect of
each driver on the development life cycle environment. The value adjustment factor looks at
14 general system characteristics:
Data Distributed
Performance Heavily Used Transaction
Communicati Data or
Objectives Configuration Rate
on Processing

On-Line Data End-User On-Line Complex


Reusability
Entry Efficiency Update Processing

Conversion & Operational Multiple-Site Facilitate


Install Ease Ease Use Change

www.luxoft.com
Determine Value Adjustment Factor

Evaluate each of the 14


GSCs on a scale from 0
-5 to determine the
degree of influence
(DI).

Calculate the degrees


of influence to
produce total degree
of influence (TDI).

Formula: VAF=(TDI*0.01)+0.65

Insert the TDI into the


www.luxoft.com
formula to produce the
VAF
Adopted from David Consulting Grou

Example of VAF Usage

If the functional project count was 100 fps, and the VAF was 1.1, then the adjusted count
would be 110 fps.
Adjusted Function Points = Functional (Unadjusted) FP x
VAF

 No system is rated at 0 on all GSCs; no system is rated 5


on all GSCs; but if they were:
• All Zeroes VAF = (0*.01) +.65 = .65 All Fives VAF =
(70*.01)+.65 = 1.35
 Therefore, the VAF ranges from .65 - 1.35. In effect,
using the VAF can adjust the unadjusted (functional) size
by + or - 35%.

www.luxoft.com
Check List (process) for Counting Function Points
 Gather available documentation

 Determine the counting scope, boundaries and identify functional user requirements

 Identify and classify the base functional components

 Measure the data functions

 Internal Groupings of data called Internal Logical Files (ILF)

 External Groupings of data or External Interface Files (EIF)

 Measure the transactional functions

 External Inputs (EI)

 External Outputs (EO)

 External Inquires (EQ)

 Each function is assigned a functional complexity (L-A-H) and a weight (FPs)

 Calculate the functional size

 Add VAF (optional)


www.luxoft.com
www.luxoft.com
Next Steps and Recommended Materials

Function Point Analysis Quiz and additional materials (for Luxoft Employees only) will
be provided in follow-up email

http://www.softwarevalue.com/insights/ - webinars and publication

http://www.softwarevalue.com/news/training/ - trainings

www.luxoft.com
Agile Events
Trainings: ICAgile Agile Team Facilitation – 30/06-01/07 in Kiev and 20/07-21/07 in Moscow

http://www.luxoft-training.ru/kurs/icagile_icp_agile_team_facilitation_icagile_icp-atf.html

Webinar:

Обзор сертификационного тренинга по фасилитации ICAgile Agile Team Facilitationhttps


://attendee.gotowebinar.com/register/5502311701820478468?source=webinar

7 main qualities of Agile team member


https://attendee.gotowebinar.com/register/4051474223132743428?source=webinar

Что такое коучинг, чем коучинг не является и что такое Agile коучинг https
://attendee.gotowebinar.com/register/6313717198259291652?source=webinar

Встречи:

“Эксперементариум: фасилитация в реальном времени и контексте” – митап в Киеве


https://www.facebook.com/events/862901353855957/

IT Spring http://itspring.by conference in Minsk

IT Global Meetup in Saint Petersburg


www.luxoft.com
THANK YOU

www.luxoft.com

You might also like