Вы находитесь на странице: 1из 57

Estimation Techniques FPA - Mark I (Albrechts Method)

Pre-requisites
Trainees should
Know Need for Estimation

Know Estimation Process & Flow


Be aware of Estimation Techniques (Overview)

Objectives The participants will be able to Estimate the size of software requirements using FPA for
Development projects Enhancement projects

Apply Quick FPA

Contents FPA- Albrechts Method (Mark I) for development projects


Identify types of function point & transaction point counts Calculate
Unadjusted Function Points Degree of Influence & Value Adjustment Factor

Calculate Function Point Index Compute efforts & map to the schedule Apply FPA for enhancement projects Quick FPA Useful Sites

FPA - An Overview
Albrecht [1] states that:
The purpose...is to provide each Application Development and Maintenance site a consistent way to measure, portray and demonstrate the productivity of their AD/M activities FPA aims to provide a consistent measure of system size that:
is independent of the development technology is simple to apply can be estimated (reasonably well) from the requirements specification is meaningful to the end user

Where not to use


Systems Programming Maintenance Projects Non Functional Testing
Performance Reliability Security Scalability

FPA - Albrechts Method


By Allan Albrecht of IBM in 1979 What are function points
A measurement of information processing content of a systems delivered function

Function decomposition technique


Break application into smaller components

FPA - Albrechts Method Contd


Can be counted early in lifecycle Language/Platform/Technology independence

Consistency within organization

Steps to Compute FP Index


Determine the Type of Count Identify Application Boundary

Identify Data Function Points


Count Transaction Function Points Compute Unadjusted function points (UFP)

Steps to Compute FP Index Contd .


Compute Degree of influence (DI)
Multiple sites Installation/operational ease Distributed processing Data communication Performance OLTP requirements etc.

Compute Technical Complexity Adjustment Compute Function Point Index

Types of Count
Development Projects
User functionality in the project on first installation Results in an application base

Application or Baseline FP (Existing Projects)


Current functions of the application Updated every time after enhancements

Enhancement Projects
Size of renovation / modification of the project Enhancement of existing project Equal to sum of areas of New FP, Changed FP and Removed FP

Case Study About a software company Develop an application for warehouse management

Case Study-Entities

Customers
Name Address Amount Due

Items
Description Pallets Storage Date

Storage Place
Location Space

Case Study-Entity-Relationship

Customers
Name Address Amount Due

Items
Description Pallets Storage Date Owner Storage Place

Storage Place
Location Space

Case Study - Transactions Add customer Change customer data Delete customer Receive payment Deposit item Retrieve item Add place Change place data Delete place Print customer item list Print bill Print stored items list Query customers Query customer's items Query places Query stored items

Case study Sample UI

Application Boundaries
The border between the application and external applications or manual user domains
Determine the scope of work to be automated (functionality) Boundary is not a physical form Use a boundary to
Identify interfaces with other systems Identify interfaces with users Identify data stores and data entities

The boundary for an internet application is defined in a similar way for traditional applications

Case Study-Identify Application Boundary

Identify Data Function Points


Internal Logical files (ILF)
External Interface files (EIF)

Two inputs required


RET Record Element Type
User recognizable subgroup of data elements with the ILF / EIF

DET Data Element Type (DET)


Unique attribute or a field Contains information that is dynamic and not static

Terminologies RET (Record Element Type) DET (Data Element Type) FTR (File Type Referenced)

Data Element Type (DET)Counting Rules


Count a DET for each unique user recognizable, nonrepeating field maintained in the ILF or retrieved from the EIF through the execution of an elementary process

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
Count each DET for each piece of data required by the user establish relationship with another ILF / EIF

Record Element Type Counting Rules


Count a RET for each optional or mandatory subgroup of the ILF / EIF If there are not subgroups, count the ILF or EIF as a RET

Entity Customer Item

RET 1 (Customer Record) 1 (Item Record)

DET 3 (Name, Address, Amount) 5 (Description, Pallets, Storage Date, Owner, Storage Place) 2 (Location, Space)

Place

1 (Place Record)

Internal Logical Files (ILF)


Logically related data within the application boundary that is maintained and used by the application most frequently. Examples: Application data like Customer Master, Supplier Master, Item/Part Master, Message Table

A user identifiable group of logically related data that resides entirely within the applications boundary and is maintained through external inputs.

Internal Logical Files (ILF) Contd .


Rules
Group of Data or control information is logical, user identifiable, and fulfils specific user requirements Data is maintained within the application boundary Data is modified via an elementary process (One or more EIs) Has not been counted as an EIF for the application Each ILF is counted only once in the application Do not count files introduced for technical implementation like index, work files, checkpoint files Do not count system files

Classify the ILFs as Simple, Average, Complex


Based on no. of data elements No. of data groups involved

Internal Logical Files (ILF)- Case Study

ILF Customer Item

RET 1 (Customer Record) 1 (Item Record)

DET 3 (Name, Address, Amount ) 5 (Description, Pallets, Storage Date, Owner, Storage Place)

Weight 10 10

Place

1 (Place Record)

2 (Location, Space)
Total

10
30

Weighatges for ILFs :Simple: 7 Average: 10 Complex: 15

External Interfaces (EIF)


Logically related data outside the application boundary, used by the application
Examples
Table maintained by other application but used by the application

A user identifiable group of logically related data that is used for reference purposes only. The data resides entirely outside the application and is maintained by another application. This means an EIF counted for an application must be an ILF in another application.

External Interfaces (EIF) Contd


Rules
Group of data or Control information is a logical, user identifiable, and fulfils specific user requirements Group of data is referenced by, and external to, the application being counted Group of data has not been counted as an ILF by the application Each EIF is counted only once in the application EIFs are not maintained by the application Do not double count with internal logical files

Classify the EIFs as Simple, Average, Complex


Based on no. of data elements No. of data groups involved

External Interfaces (EIF) Case Study


EIF = 0

Things to Remember
Stand alone systems will not have an EIF Same file cannot be an ILF and EIF in the same application

Same file can be EIF for multiple applications


Same file can be ILF for multiple applications, if all these applications are updating the file

Transaction Function Points


Transactions are the data that do the processing in the application
Transaction Function Points are contributed by
External Inputs (EI) External Outputs (EO) External Inquiries (EQ)

Two inputs required


FTR File Type Referenced DET Data Element Type

FTR File Type Referenced


FTR
File Type Referenced by a transaction Must also be an ILF or EIF

FTR Counting Rules


Count a FTR for each ILF maintained Count only one FTR for each ILF maintained and read in the transaction

External Inputs to the application (EI)


Related group of user data or control information that enters the boundary of the application. Ex: Maintenance screen (Add/Modify/Delete/View), Transactions input from various users, Control Inputs May maintain one or more Internal Logical Files (ILFs)

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

External Inputs (EI) Contd


Related group of user data or control information that enters the boundary of the application. Ex: Maintenance screen (Add/Modify/Delete/View), Transactions input from various users, Control Inputs
May maintain one or more Internal Logical Files (ILFs)

EI Identification Rules
Each unique class of batch transaction is counted as 1 input type, even if many different classes come inside one file structure. These could be different record formats.

Add, modify and Delete will be 3 inputs


Dont count multiple occurrences of the same unique logical data item more than once, eg. Repeating rows on a screen Count data items not displayed but created as a result of input (error messages, confirmation messages, calculated fields etc) Dont count static information such as constants, screen prompts etc

External Inputs (EI) Case Study


EI Add customer Change customer data DET Name, Address, Amount due, Error message Name, Address, Amount due, Owner, Error message FTR (File type Referenced) Customer Customer, Item Weight 3 4

Delete customer

Name, Address, Amount due, Error message


Amount due, Error message Description, Pallets, Value, Storage date, Owner, Storage place, Error message Amount due, Description, Pallets, Value, Storage date, Owner, Storage place, Error message Location, Space, Error message Location, Space, Storage place, Error message Location, Space, Error message

Customer, Item
Customer Customer, Item, Place

Receive payment Deposit item

3 6

Retrieve item

Customer, Item Place Place, Item Place, Item

Add place Change place data Delete place

3 3 3

Total

32

External Outputs to the application (EO)


Related group of user data or control information that leaves the boundary of the application. Ex: Customer Invoice (Preformatted o/p), Reports to printer or other media, O/P to other applications. May be generated using Internal Logical Files (ILFs)

An elementary process in which derived data passes across the boundary from inside to outside. The data creates reports or output files sent to other applications. These reports or files are created from one or more internal logical files and external interface file.

External Outputs to the application (EO)


Rules
The processing logic must contain at least one mathematical formula or calculation or create derived data It uses at least one ILF or EIF Each unique batch transaction type being sent to another application is counted as 1 type Each medium output is counted as 1 EO Multiple occurrences of the same unique logical data item are not be counted more than once (repeating rows) Static information or system generated information like report headings, data / time stamps, automatic page numbers are not counted Treat each output as separate if format or processing logic is different Do not count enquiry outputs

Classify the EOs as Simple, Average, Complex


Based on no. of data elements No. of data groups involved

Classification of Messages 1
Error messages
Employee not found Pin code is missing

Confirmation messages
Wait. Search is on

Neither of these types of messages is treated as an EO They are treated as data elements (DET) for the appropriate transaction

Classification of Messages 2
Notification Messages
Processing completed successfully insufficient funds in account

Notification message is a business type message


It is the basis of processing and a conclusion being drawn

A notification message is treated as an EO

External Outputs- Case Study


EO
Print customer item list

DET
Name, Description, Value, Storage date, Total items, Total value

FTR
Customer, Item

Weight
7

Print bill
Print stored items list

Name, Address, Amount due, Total items


Description, Pallets, Storage place, Total items

Customer, Item
Item

7
5

Total

19

External Inquiries (EQ)


Related group of user data or control information that enters the boundary of the application and generates an output. Ex: User request to display specific set of data, Help request and answer.
May be generated using Internal Logical Files (ILFs)

Is an elementary process with both input and output components that result in data retrieval from one or more internal logical files and external interface files. This information is sent outside the application boundary. The input process does not update any internal logical files and output side does not contain derived data.

External Inquiries (EQ)


Rules
An EQ is made up of input and output It requests immediate retrieval of data and does not result in any updates of ILF EQ may use one or more ILF / EIF An EQ can not have calculated or derived data No ILF is maintained in the process Treat each enquiry as separate if format or processing logic is different Do not double count with Inputs/Outputs

Classify the EQs as Simple, Average, Complex


Based on no. of data elements No. of data groups involved

External Inquiries (EQ) Case Study


EQ
Query customers Query customer's items Query places Query stored items

DET
I/P: Name, error message O/P: Name, address, Amount due I/P: Name, error message O/P: Name, Description, Pallets, Value, Storage date I/P: Location, Error Message O/P: Location, Space I/P: Location, Error Message O/P: Location, Space, Description, Pallets

FTR
Customer

Weight
3

Customer, Item Place

Place, Item

Total

18

Compute Unadjusted Function Points (UFP)


Compute the unadjusted function points using following weights
Item External Inputs Number Points x3 x4 x6 x4 x5 x7 x3 x4 x6 x7 x 10 x 15 x5 x7 x 10 Total Simple

External Outputs

Simple

External Inquiries

Simple

Internal Logical Files

Simple

External Interfaces

Simple

Total UFP :

Compute UFP Case Study

Item External Inputs (EI)

Total Weight 32

External Outputs (EO) External Inquiries (EQ)


Internal Logical Files (ILF) External Interfaces (EIF)

19 18
30 0

Total (UFP)

99

Compute Degree of Influence


Compute the degree of influence / General System Characteristics (GSCs)
NO. DI Factors Degree of Influence (DI) Remarks

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Data Communications Distributed Data Processing Performance Heavily Used Configuration Transaction Rate On-line Data Entry End-User Efficiency On-line Update Complex Processing Reusability Installation Ease Operational Ease Multiple Sites Facilitate Change Total degree of Influence (TDI)

Compute Technical Complexity Adjustment (TCA)


Compute the Technical Complexity Adjustment using the following formula: TCA = 0.65 + 0.01 * TDI Case Study:
TCA = 0.65 + 0.01 * TDI = 0.65+0 = 0.65

Compute Function Point Index (FPI)


Compute the Function Point Index (Size) using the following formula FPI = UFP * TCA Add contingency factor Case Study:

FPI

= UFP * TCA = 99*0.65 = round(64.35) = 65

Compute Efforts
Productivity ratio
No. of hours per function point Past data from Organizations

Reference Table

Sr. Environment 1. 2. 3. RDBMS (Oracle/Informix/Ingres) RDBMS (Oracle/Informix/Ingres) COBOL

User Interface

Hours/Function Points (Industry Standard) Character Based 8 hours per function point GUI based 12 hours per function point

Character Based 22 hours per Function Point for total efforts <= 12.5 Yrs.

Rules of thumb (Person Days to Person Months) 8 hours per day 20 days per month 240 days per year

Mapping the efforts on to Schedule


Analysis High Level Design Low Level Design Coding Unit Testing Integration & System Testing Project Management 15% 15% 10% 35% 11% 10% 4% At actuals At actuals At actuals

Customer Acceptance Testing Implementation Warranty Support

Function Points for Enhancements

Function Points for enhancements Contd


Total Unadjusted FP before enhancements (UFP_tot_bef) Total Unadjusted FP for changed functions before (UFP_chg_bef) Total Unadjusted FP for deleted functions before (UFP_del_bef) Technical Complexity Adjustment before (TCA_bef) Total Unadjusted FP for changed functions after (UFP_chg_aft) Total Unadjusted FP for functions added (UFP_add) Technical Complexity Adjustment after (TCA_aft)
FPI = (UFP_add * TCA_aft) + 0.5 * (UFP_chg_aft * TCA_aft) + 0.25 * (UFP_del_bef * TCA_bef) + (UFP_tot_bef - UFP_chg_bef - UFP_del_bef) * (ABS(TCA_aft - TCA_bef)

Quick FPA
Carried out at a very early stage of the project
May be at the time of proposal preparation stage

Carried out because


Lack of time Lack of information

Assumptions
Difference between High and Low is not much, hence average is used for calculation Use a judgment call for overall complexity

Quick FPA - Calculation


Identify and count EIs, EOs, EQs, ILFs and EIFs Do not count RETs, DETs and FTRs

Classify all functions as average


To calculate unadjusted function points, use the coefficients
EI 4 EO 5 EQ 4 ILF 10 EIF 7

VAF = 0.65 to 1.35 FPC = UFC * VAF

Quick FPA - Accuracy


With all information Quick FPA gives a result which is + / 10 % of detailed FPA It is INEFFECTIVE if used by persons who do not have expertise in detailed FPA

Case Study
Download following documents and calculate function points

Useful Sites/Contact Details


http://kms.techmahindra.com:6040/Pages/OrganizationalAs sets.aspx www.dacs.dtic.mil (Data & Analysis center for software) www.ifpug.org (International Function Point User Group) www.softwaremetrics.com ftp://ftp.cms.livjm.ac.uk/pub/General/fpa.doc (Word document) http://ourworld.compuserve.com/homepages/softcomp/fpfa q.htm (FAQ) For queries, please contact Estimation Focus Group

Вам также может понравиться