overview of function points analysis

35
www.luxoft.com Function Point Analysis Basics on estimation in functional points By Svetlana Mukhina Materials are adopted from David Consulting Gr

Upload: svetlana-mukhina-icp-atf-bva-acc-psm-i-cspo

Post on 15-Apr-2017

405 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Overview of Function Points Analysis

www.luxoft.com

Function Point Analysis

Basics on estimation in functional pointsBy Svetlana Mukhina

Materials are adopted from David Consulting Group

Page 2: Overview of Function Points Analysis

www.luxoft.com

IntroductionSvetlana MukhinaICAgile ICP, ICP-ATF, ICP-BVA, PSM I, CSPO

Agile and Career Coach at Luxoft Agile PracticeExperience: 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/svetlanamukhinahttps://www.facebook.com/Svetlana.Mukhina8

Page 3: Overview of Function Points Analysis

www.luxoft.com

Theoretical information on Function Points

Page 4: Overview of Function Points Analysis

www.luxoft.com

Sizescale of task in PF/SP/etc

Effortman-hour

Duration

of project

ChangeRFC

Peopleproject team

Defects

quality

Critical Resources

Estimating the Project Adopted from David Consulting Group

Page 5: Overview of Function Points Analysis

www.luxoft.com

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.

from David Consulting Group

Page 6: Overview of Function Points Analysis

www.luxoft.com

Vocabulary – Main Terms

• is a unit of measure for quantifying software deliverable (functionality) based upon the user view. Function Point

• is any person or thing that communicates or interacts with the software at any time User

• is the Functional User Requirements as perceived by the user User View

• are a subset of user requirements, that describe what the software shall do (functions), in terms of tasks and services

Functional user requirements

from David Consulting Group

Page 7: Overview of Function Points Analysis

www.luxoft.com

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)

from David Consulting Group

Page 8: Overview of Function Points Analysis

www.luxoft.com

• Function Points can be used to size software applications accurately.

• FP can be counted by different people, at different times, to obtain the same measure within a reasonable margin of error

• FP can be estimated by proxy • FP is easily understood by non-technical

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

• Function points are not a very good measure when sizing maintenance efforts (fixing problems) or when trying to understand performance issues

• When maintenance programming is done by one or two individuals, individual skill sets become a major factor when measuring this type of work

• Development team don’t take part in estimation

Advantages and Disadvantages of Function Point Analysis

Adopted from David Consulting Group

Page 9: Overview of Function Points Analysis

www.luxoft.com from

Dav

id C

onsu

lting

Gro

up

Page 10: Overview of Function Points Analysis

www.luxoft.com

Practical Information on Function Points

Page 11: Overview of Function Points Analysis

www.luxoft.com

Process of Function Point Estimation

Gather available

documentation

Determine the counting

scope, boundaries, functional

user requirement

s

Identify and classify the

base functional

components

Calculate the

functional size

Document the Function

PointsReport the

result

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

Adopted from David Consulting Group

Page 12: Overview of Function Points Analysis

www.luxoft.com

Application BoundaryAn 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.

Adopted from David Consulting Group

Page 13: Overview of Function Points Analysis

www.luxoft.com

Types of Count

We count• Installed application: Baseline

(or application) count • Development project: New

system or subsystem• Enhancement project: Add,

change or delete to present system

We don’t count• Corrective Maintenance –

Software maintenance performed to correct faults in hardware or software

• Perfective Maintenance – Software maintenance performed to improve the performance, maintainability, or other attributes of a computer program

• Non-functional requirements

from David Consulting Group

Page 14: Overview of Function Points Analysis

www.luxoft.com

Types of Data – Overview

Logical View

Functionality (ability to)

Logically grouped stores of data (data

in a form)

Elementary process

(complete flow, e.g. wizard)

Physical View

Lines of code

Databases or tables

Physical transactions

(screens)

VS

Func

tion

Poin

ts L

ook

at L

ogica

l Vie

w

Adopted from David Consulting Group

Page 15: Overview of Function Points Analysis

www.luxoft.com

Types of Data - Details

.

We count – Business Data

•Reflects information needed to be stored and retrieved by functional area addressed by the application.

•Mandatory for the operation of the user’s functional area

•User identifiable and maintainable•Stores the user’s Core User Data to support business transactions

•Very dynamic, business operations cause it to be regularly referenced, added to, changed, deleted

•Typically has key field and many attributes

•E.g Customer Data

We count – Reference Data

•Stored to support business rules for the maintenance of the business data.

•Mandatory for the operation of the user’s functional area

•User identifiable and user maintainable •Stores data to support core user activities

•Less dynamic – occasionally changes in response to changes in the functional areas’ environment, external functional processes and/or business rules

•Transactions processing business data often use reference data

•Typically has key fields and few attributes

•E.g Policy information (Types and terms of policies)

We don’t count – Code Data

•Code data provides a list of valid value values that a descriptive attribute might have.

•Mandatory to the functional area, but optionally stored as a data file to standardize and facilitate business activities and business transactions

•Not usually identified as part of the functional requirements; it is usually identified as part of design to meet technical requirements

•Sometimes user maintainable, but essentially static – only changes in response to changes in the way that the business operates

•Business transactions access Code Data to improve ease of data entry, 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 records

•Examples: Payment Type Code, Payment Description

from David Consulting Group

Page 16: Overview of Function Points Analysis

www.luxoft.com

Internal Logical Files and External Interface Files

ApplicationInternal Logical File (ILF) Data which is resides within the application boundary and which is maintained (added, changed, deleted, updated) by the application

External Interface File (EIF) is a user recognizable group of logically related data or control information which is referenced by the application being measured, but maintained within the boundary of another application. It is identified as an ILF in 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

Adopted from David Consulting Group

Page 17: Overview of Function Points Analysis

www.luxoft.com

Exercise #1 – Counting Radio Alarm Clock

Inputs (EIs)• Set time• Set alarm• Set type of alarm (radio, buzz) Set radio station• Set volume of radio• Set am/fm• Set Snooze• On/Off alarm

Outputs (EOs/EQs)• Alarm• Sound(Music/ Radio/Buzzer)• Display Time

Internal Data Stores (ILFs)• Time Data (Alarm Data/Time

Data)• Radio Data

External Data Sources (EIFs)• Radio Frequency

from David Consulting Group

Page 18: Overview of Function Points Analysis

www.luxoft.com

Determine The Complexity and Weight 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.

ApplicationExternal Interface File (EIF)

RETsDETsDETsDETs

Internal Logical File (ILF)RET - A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF

DET is a unique user recognizable, non-repeated attribute

from David Consulting Group

Page 19: Overview of Function Points Analysis

www.luxoft.com

Type Low Avg High Total

EI _ X 3 +

_ X 4 +

_X6 =

EO _ X 4 +

_ X 5 +

_X7 =

EQ _ X 3 +

_ X 4 +

_X6 =

ILF _ X 7 +

_ X 10 +

_X15 =

EIF _ X 5 +

_ X 7 +

_X6 =

Function Point Counting Weights

Page 20: Overview of Function Points Analysis

www.luxoft.com

RETs 1-19 DETs

20-50 DETs

51+ DETs

1 Low Low Avg2-5 Low Avg High6+ Avg High High

ILF and EIF Complexity Matrix

EI Complexity MatrixFTRs 1-4

DETs5-15 DETs

16+ DETs

0-1 Low Low Avg2 Low Avg High3+ Avg High High

EO and EQ* Complexity Matrix

FTRs 1-5 DETs

6-19 DETs

20+ DETs

0-1 Low Low Avg2-3 Low Avg High4+ Avg High High

Page 21: Overview of Function Points Analysis

www.luxoft.com

Exercise #2 – Counting Application Data from David Consulting Group

Page 22: Overview of Function Points Analysis

www.luxoft.com

Exercise #2 Results from David Consulting Group

Page 23: Overview of Function Points Analysis

www.luxoft.com

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

Adopted from David Consulting Group

Page 24: Overview of Function Points Analysis

www.luxoft.com

Identifying Transactional Functions from David Consulting Group

Page 25: Overview of Function Points Analysis

www.luxoft.com

Transactional Functions

ApplicationExternal Interface File (EIF)

RETsDETsDETsDETs

Internal Logical File (ILF)RET - A record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF

DET is a unique user recognizable, non-repeated attribute

UserEI = External InputEO = External OutputEQ = External Inquiry

EI

EO

EQ

EO

Adopted from David Consulting Group

Page 26: Overview of Function Points Analysis

www.luxoft.com

Exercise #3 – Counting Application Primary Processes and Data

Adopted from David Consulting Group

Page 27: Overview of Function Points Analysis

www.luxoft.com

Exercise #3 – Results

Description ILF/EIF/EI/EO/EQ

FTRs DETs

Add EI 1 6Change EI 1 6Delete EI 1 5Student Data ILF 1 4

16 FPs

Adopted from David Consulting Group

Page 28: Overview of Function Points Analysis

www.luxoft.com

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 Communicati

on

Distributed Data or

Processing Performance Objectives

Heavily Used Configuration

Transaction Rate

On-Line Data Entry

End-User Efficiency

On-Line Update

Complex Processing Reusability

Conversion & Install Ease

Operational Ease

Multiple-Site Use

Facilitate Change

Adopted from David Consulting Group

Page 29: Overview of Function Points Analysis

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).

Insert the TDI into the formula to produce the VAF

Formula: VAF=(TDI*0.01)+0.65

Page 30: Overview of Function Points Analysis

www.luxoft.com

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%.

Adopted from David Consulting Group

Page 31: Overview of Function Points Analysis

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)

Page 32: Overview of Function Points Analysis

www.luxoft.com

Page 33: Overview of Function Points Analysis

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

Page 34: Overview of Function Points Analysis

www.luxoft.com

Agile EventsTrainings: 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

Page 35: Overview of Function Points Analysis

www.luxoft.com

THANK YOU