function point analysis

75
Function Point Analysis ISO/IEC 20926:2009 ARAF KARSH HAMID

Upload: araf-karsh-hamid

Post on 14-Apr-2017

477 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Function Point Analysis

Function Point AnalysisISO/IEC 20926:2009

ARAF KARSH HAMID

Page 2: Function Point Analysis

2

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

Page 3: Function Point Analysis

3

History – Measurement Methodologies

• Lines of Code (Oldest)

• Use case based Software Sizing

• IPFUG Function Point Analysis (ISO)

Page 4: Function Point Analysis

4

Need for Software Sizing1. Estimation and Budgeting2. Phasing Development Work3. Prioritization of Work4. Monitoring the Progress5. Bidding for Projects6. Allocating Testing Resources7. To measure and Manage Productivity8. Risk Assessment9. Software Asset Valuation10. CMMi Level 2 and 3 require that a valid sizing

method be used.

Page 5: Function Point Analysis

5

Software Sizing – Lines of CodeThe 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.

AdvantagesAutomation of the counting process can be doneIntuitive as the measurements are easily understood

DisadvantagesLines of Code is language and the skill set of the developerThe coding phase is only around 30-35% of the actual software development.Lack of counting standards (What about comments, notes etc.?)

Page 6: Function Point Analysis

6

Lines of Code• Language Dependent

• Skill dependent

• Unknown until written

• No Standards

• Function Points are better

Page 7: Function Point Analysis

7

History

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

Page 8: Function Point Analysis

8

Best in Class Software Companies

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

Page 9: Function Point Analysis

9

Function point

Page 10: Function Point Analysis

10

Overview of Function Point1. Measured from the users perspective2. Technology Independent3. Low Cost (Once the system is in place)4. Repeatable5. Works well with use cases6. Answers lots of questions7. Can be automated

Page 11: Function Point Analysis

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.

Page 12: Function Point Analysis

12

Types of Function Point CountsDevelopment

All Phases through developmentForms a baseline

EnhancementIn Production, has a baselineCount the size of the successive enhancements

ApplicationIn Production, no baselineForms a baseline

Page 13: Function Point Analysis

13

Function Points and CMMSEI Capability Maturity Model

1. INITIALAd hoc

2. REPEATABLEBasic management control

3. DEFINEDProcess definition

4. MANAGEDProcess measurement

5. OPTIMIZINGProcess 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

Page 14: Function Point Analysis

14

Major App Sizes (2010)Applications Approximate Size in

Function PointsStar Wars Missile Defense 350,000ERP (SAP, Oracle etc.,) 300,000Microsoft Windows Vista 159,000Microsoft Office 2007 98,000Airline Reservation System 50,000NASA Space shuttle 25,000

Page 15: Function Point Analysis

15

Maj

or A

pp

Size

s

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

Page 16: Function Point Analysis

16

Changes to requirements

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)

EffortScheduleCost

+ 1 month+ 2 weeks+ $5 K

+ .5 month+ 1 week+ $2.5 K

+ .25 month+ 2.5 days+ $1.25 K

Delivered Application

DetailDesign

FunctionalDesign

Requirements

Impact

Source: International Function Point User Group 2001

Page 17: Function Point Analysis

17

Deep DIVEFUNCTION POINT ANALYSIS

Page 18: Function Point Analysis

18

How to count Function Points?

Displays

Reports

Master Files Size

Reference Files

Signals

Control Files

Page 19: Function Point Analysis

19

Steps in FP Counting1. Determine Type of Count2. Identify Counting Scope and Application

Boundary

3. Count Data Functions4. Count Transaction Functions

5. Determine Unadjusted Function Points6. Determine Value Adjustment Factor

7. Calculate Adjusted Function Point Count

Page 20: Function Point Analysis

20

FP - Functionalities Data Functionality

◦ Internal Logical Files (ILF)◦ External Interface Files (EIF)

• Transaction Functionality• External Inputs (EI)• External Outputs (EO)• External Queries (EQ)

Page 21: Function Point Analysis

21

FP Data & Transaction Functionality

USER

ADD, CHG INVOICES PAYMENTS

USER

USER

PAYMENTSTATUS

USER

PAIDINVOICES

PURCHASEORDER INFO

PURCHASEORDERSYSTEM

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

Page 22: Function Point Analysis

22

Terms within ILF and EIFControl 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 IdentifiableThe 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

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

Page 23: Function Point Analysis

23

Elementary ProcessAn 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.

Page 24: Function Point Analysis

24

Data Functions

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

Page 25: Function Point Analysis

25

Data Functions

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

Page 26: Function Point Analysis

26

Transactional Functions

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.

Page 27: Function Point Analysis

27

Transactional Functions

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

Page 28: Function Point Analysis

28

External Queries (EQ)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.

Page 29: Function Point Analysis

29

FTRs, RETs & DETsFile 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 TypeA 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.

Page 30: Function Point Analysis

30

Understanding DETsRadio 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.

Page 31: Function Point Analysis

31

Understanding DETsError 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.

Page 32: Function Point Analysis

32

Understanding DETsNotification 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

Page 33: Function Point Analysis

33

Understanding RETsA record element type (RET) is a user recognizable subgroup of data elements within an ILF or EIF.

There are two types of subgroups: OptionalMandatory

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)

Page 34: Function Point Analysis

34

Rules for Counting FP

Page 35: Function Point Analysis

35

Internal Logical File (ILF) RulesAll 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.

Page 36: Function Point Analysis

36

External Interface File (EIF) RulesAll 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.

Page 37: Function Point Analysis

37

Data Element Type (DET) RulesA 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.

Page 38: Function Point Analysis

38

Data Element Type (DET) RulesA 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.

Page 39: Function Point Analysis

39

Data Element Type (DET) RulesA 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.

Page 40: Function Point Analysis

40

Record Element Type (RET) Rules

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.

Page 41: Function Point Analysis

Linkin

g ev

eryt

hing

……

Function TypeFunctional Complexity

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

Page 42: Function Point Analysis

42

Unadjusted Function Point Calculator

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 10Total Unadjusted Function Points 122

Page 43: Function Point Analysis

43

General Software Characteristics

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

Page 44: Function Point Analysis

44

CalculationsFP = UFP X VAFFUNCTION POINT = UNADJUSTED FP X VALUE ADJUSTMENT FACTOR

Page 45: Function Point Analysis

45

When to count Function PointsCorrective

MaintenanceProposal Design QA DeliveryRequirements

Development

SIZING

Initial UserRequirements

Initial TechnicalRequirements

Final FunctionalRequirements

FeasibilityStudy

SIZING

ChangeRequest

ScopeAdjustment

SIZING

SIZING SIZING

Page 46: Function Point Analysis

46

Calculating Unadjusted Function Points (UFP)

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)

Page 47: Function Point Analysis

47

Value Adjustment Factor (VAF)

Degree of Influence (Di)0 Not Present, or No Influence1 Incidental Influence2 Moderate Influence3 Average Influence4 Significant Influence5 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 Communication2. Distributed Data Processing3. Performance4. Heavily Used Configuration5. Transaction Rate (Frequency of Transaction)6. Online Data Entry7. End User Efficiency8. Online Update (How many ILF are updated using

Online transaction)9. Complex Processing (Extensive Logical or

Mathematical Processing)10. Reusability11. Installation Ease12. Operational Ease (Start-up, Back & Recovery Process)13. Multiple Sites (Multi-Tenant)14. Facilitate Change15. Security Framework16. Multi Language Support17. Multi Form Factors

Adjusts FP count by up to + / - 50%

Page 48: Function Point Analysis

48

Standard Function PointThe final Function Point Count is obtained by multiplying the Unadjusted Function Point times the Value Adjustment Factor.

FP = UFP x VAF

WhereUFP = Unadjusted Function PointVAF = Value Adjustment Factor

Page 49: Function Point Analysis

49

Function Points Per Person MonthPlatform FP / Person / Month

Client Server 15Main Frame 13Web 22E-Business Web 12Vendor Packages 19Data 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

Page 50: Function Point Analysis

50

Costing for Simple SOA AppA : 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

Page 51: Function Point Analysis

51

CASE STUDY1. Case 1: Simple Form with 1 Table2. Case 2: Simple Form with 4 Tables3. Case 3: Shopping Portal

Page 52: Function Point Analysis

52

External Inputs (EI) – CustomerFTR 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 101

Page 53: Function Point Analysis

53

External Inputs (EI) – CustomerFTR 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 28Total UFP = EI + ILF = 28 + 6 = 34

EI = 4 FTR, 13 DET = 6 FP 342

Page 54: Function Point Analysis

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 = 131

2

Effort Estimation Java = 10.6 Hours / FP

13 * 10.6 = 137 Hours

44 * 10.6 = 466 Hours

Page 55: Function Point Analysis

55

General Software Characteristics

Page 56: Function Point Analysis

56

Value Adjustment Factor (VAF) Based on 14+1 General System Characteristics

User Business Constraints Independent of Technology

1. Data Communication2. Distributed Data Processing3. Performance4. Heavily Used Configuration5. Transaction Rate (Frequency of Transaction)6. Online Data Entry7. End User Efficiency8. Online Update (How many ILF are updated using Online

transaction)9. Complex Processing (Extensive Logical or Mathematical

Processing)10. Reusability11. Installation Ease12. Operational Ease (Start-up, Back & Recovery Process)13. Multiple Sites (Multi-Tenant)14. Facilitate Change15. Security Framework

Adjusts FP count by up to + / - 40%

Degree of Influence (Di)0 Not Present, or No Influence1 Incidental Influence2 Moderate Influence3 Average Influence4 Significant Influence5 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

Page 57: Function Point Analysis

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.

3Application includes online data collection or TP (teleprocessing) front end to a batch process or query system.

4Application is more than a front-end, but supports only one type of TP communications protocol.

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

Page 58: Function Point Analysis

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

0Application does not aid the transfer of data or processing function between components of the system.

1Application prepares data for end user processing on another component of the system such as PC spreadsheets and PC DBMS.

2Data 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.

5Processing 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.

Page 59: Function Point Analysis

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.

1Performance and design requirements were stated and reviewed but no special actions were required.

2Response time or throughput is critical during peak hours. No special design for CPU utilization was required. Processing deadline is for the next business day.

3Response 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.

4In addition, stated user performance requirements are stringent enough to require performance analysis tasks in the design phase.

5In 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.

Page 60: Function Point Analysis

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.

1Operational 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.

3Specific processor requirements for a specific piece of the application are included.

4Stated operation restrictions require special constraints on the application in the central processor or a dedicated processor.

5In 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.

Page 61: Function Point Analysis

61

The transaction rate is high and it influenced the design, development, installation, and support of the application.

5. Transaction Rate

Score As Description to Determine Degree of Influence

0 No peak transaction period is anticipated.

1Peak transaction period (e.g., monthly, quarterly, seasonally, annually) is anticipated.

2 Weekly peak transaction period is anticipated.

3 Daily peak transaction period is anticipated.

4High 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.

Page 62: Function Point Analysis

62

Online data entry and control functions are provided in the application.

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.

Page 63: Function Point Analysis

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:

Page 64: Function Point Analysis

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.

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

5Six 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.

Page 65: Function Point Analysis

65

The application provides online update for the internal logical files.

8. Online Update

Score As Description to Determine Degree of Influence

0 None

1Online update of one to three control files is included. Volume of updating is low and recovery is easy

2Online 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.

4In 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.

Page 66: Function Point Analysis

66

9. Complex Processing

Score As

Description to Determine Degree of Influence

0 None of the above.1 Any 1 of the above2 Any 2 of the above3 Any 3 of the above4 Any 4 of the above5 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.

Page 67: Function Point Analysis

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.

2Less than 10% of the application considered more than one user's needs.

3Ten 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.

Page 68: Function Point Analysis

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

0No special considerations were stated by the user, and no special setup is required for installation.

1No special considerations were stated by the user but special setup is required for installation.

2Conversion 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.

3Conversion 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.

4In addition to 2 above, automated conversion and installation tools were provided and tested.

5In addition to 3 above, automated conversion and installation tools were provided and tested.

Page 69: Function Point Analysis

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

0No 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.

5The 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.

Page 70: Function Point Analysis

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

0User requirements do not require considering the needs of more than one user/installation site.

1Needs of multiple sites were considered in the design, and the application is designed to operate only under identical hardware and software environments.

2Needs of multiple sites were considered in the design, and the application is designed to operate only under similar hardware and/or software environments.

3Needs of multiple sites were considered in the design, and the application is designed to operate under different hardware and/or software environments.

4Documentation and support plan are provided and tested to support the application at multiple sites and the application is as described by 1 or 2.

5Documentation and support plan are provided and tested to support the application at multiple sites and the application is as described by 3.

Page 71: Function Point Analysis

71

14. Facilitate Change

Score As Description to Determine Degree of Influence

0 None of the above.1 Any 1 of the above2 Any 2 of the above3 Any 3 of the above4 Any 4 of the above5 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).

Page 72: Function Point Analysis

72

15. Security Framework

Score As Description to Determine Degree of Influence

0 None of the above.1 Any 1 of the above2 Any 2 of the above3 Any 3 of the above4 Any 4 of the above5 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

Page 73: Function Point Analysis

73

THANK YOU

Araf Karsh Hamidemail : [email protected] | [email protected] Social : arafkarsh | Skype, Facebook, LinkedIn, Twitter, G+Phone : +91.999.545.8627 | http://www.metamagic.in/

Page 74: Function Point Analysis

74

Backup slides

Page 75: Function Point Analysis

75

Understanding External Inputs (EI)The following words are associated with External Inputs or InputsAdd 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)