fpa mark i (ait)
TRANSCRIPT
-
8/3/2019 FPA Mark I (AIT)
1/57
Estimation TechniquesFPA - Mark I (Albrechts Method)
-
8/3/2019 FPA Mark I (AIT)
2/57
Pre-requisites
Trainees should
Know Need forEstimation
Know Estimation Process & Flow
Be aware of Estimation Techniques (Overview)
-
8/3/2019 FPA Mark I (AIT)
3/57
Objectives
The participants will be able to
Estimate the size of software requirements using FPA for Development projects
Enhancement projects
Apply Quick FPA
-
8/3/2019 FPA Mark I (AIT)
4/57
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
-
8/3/2019 FPA Mark I (AIT)
5/57
FPA - An Overview
Albrecht [1] states that:
The purpose...is to provide each Application Development and
Maintenance site a consistent way to measure, portray anddemonstrate 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
-
8/3/2019 FPA Mark I (AIT)
6/57
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
-
8/3/2019 FPA Mark I (AIT)
7/57
FPA - Albrechts Method Contd
Can be counted early in lifecycle
Language/Platform/Technology independence
Consistency within organization
-
8/3/2019 FPA Mark I (AIT)
8/57
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)
-
8/3/2019 FPA Mark I (AIT)
9/57
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
-
8/3/2019 FPA Mark I (AIT)
10/57
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 andRemoved FP
-
8/3/2019 FPA Mark I (AIT)
11/57
Case Study
About a software company
Develop an application for warehouse management
-
8/3/2019 FPA Mark I (AIT)
12/57
Case Study-Entities
Customers
Name
Address
Amount Due
Items
Description
Pallets
Storage Date
Storage Place
Location
Space
-
8/3/2019 FPA Mark I (AIT)
13/57
Case Study-Entity-Relationship
CustomersName
AddressAmount Due
ItemsDescriptionPallets
Storage DateOwnerStorage Place
Storage PlaceLocationSpace
-
8/3/2019 FPA Mark I (AIT)
14/57
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
-
8/3/2019 FPA Mark I (AIT)
15/57
Case study Sample UI
-
8/3/2019 FPA Mark I (AIT)
16/57
Application Boundaries
The border between the application and external applications ormanual 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 wayfor traditional applications
-
8/3/2019 FPA Mark I (AIT)
17/57
Case Study-Identify Application Boundary
-
8/3/2019 FPA Mark I (AIT)
18/57
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
-
8/3/2019 FPA Mark I (AIT)
19/57
Terminologies
RET (Record Element Type)
DET (Data Element Type)
FTR (File Type Referenced)
-
8/3/2019 FPA Mark I (AIT)
20/57
Data Element Type (DET)Counting Rules
Count a DET for each unique user recognizable, non-repeating 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 sameILF / 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 userestablish relationship with another ILF / EIF
-
8/3/2019 FPA Mark I (AIT)
21/57
Record Element Type Counting Rules
Count a RET for each optional or mandatory subgroup of theILF / EIF
If there are not subgroups, count the ILF or EIF as a RET
Entity RET DET
Customer 1 (CustomerRecord)
3 (Name, Address, Amount)
Item 1 (Item Record) 5 (Description, Pallets,Storage Date, Owner,
Storage Place)
Place 1 (Place Record) 2 (Location, Space)
-
8/3/2019 FPA Mark I (AIT)
22/57
Internal Logical Files (ILF)
Logically related data within the application boundary that ismaintained 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 residesentirely within the applications boundary and is maintained throughexternal inputs.
-
8/3/2019 FPA Mark I (AIT)
23/57
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 likeindex, 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
-
8/3/2019 FPA Mark I (AIT)
24/57
Internal Logical Files (ILF)- Case Study
ILF RET DET Weight
Customer 1 (CustomerRecord)
3 (Name, Address, Amount ) 10
Item 1 (Item Record) 5 (Description, Pallets,Storage Date, Owner,
Storage Place)
10
Place 1 (Place Record) 2 (Location, Space) 10
Total 30
Weighatges for ILFs :-
Simple: 7
Average: 10
Complex: 15
-
8/3/2019 FPA Mark I (AIT)
25/57
External Interfaces (EIF)
Logically related data outside the application boundary, used bythe application
Examples
Table maintained by other application but used by the application
A user identifiable group of logically related data that is used forreference purposes only. The data resides entirely outside theapplication and is maintained by another application. This means anEIF counted for an application must be an ILF in anotherapplication.
-
8/3/2019 FPA Mark I (AIT)
26/57
External Interfaces (EIF) Contd
Rules
Group of data or Control information is a logical, useridentifiable, and fulfils specific user requirements
Group of data is referenced by, and external to, the applicationbeing 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
-
8/3/2019 FPA Mark I (AIT)
27/57
External Interfaces (EIF) Case Study
EIF = 0
-
8/3/2019 FPA Mark I (AIT)
28/57
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 theseapplications are updating the file
-
8/3/2019 FPA Mark I (AIT)
29/57
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
-
8/3/2019 FPA Mark I (AIT)
30/57
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
-
8/3/2019 FPA Mark I (AIT)
31/57
External Inputs to the application (EI)
Related group of user data or control information that enters theboundary 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 boundaryfrom outside to inside. This data may come from a data inputscreen, electronically or another application. The data can be eithercontrol 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 updateinternal logical file.
External Inputs (EI) Contd
-
8/3/2019 FPA Mark I (AIT)
32/57
External Inputs (EI) Contd
Related group of user data or control information that enters theboundary 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 Id ifi i R l
-
8/3/2019 FPA Mark I (AIT)
33/57
EI Identification Rules
Each unique class of batch transaction is counted as 1 inputtype, even if many different classes come inside one filestructure. 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 ofinput (error messages, confirmation messages, calculatedfields etc)
Dont count static information such as constants, screenprompts etc
E t l I t (EI) C St d
-
8/3/2019 FPA Mark I (AIT)
34/57
External Inputs (EI) Case Study
EI DET FTR (File typeReferenced)
Weight
Add customer Name, Address, Amount due, Errormessage
Customer 3
Change customerdata
Name, Address, Amount due, Owner,Error message
Customer,Item
4
Delete customer Name, Address, Amount due, Errormessage
Customer,Item
3
Receive payment Amount due, Error message Customer 3
Deposit item Description, Pallets, Value, Storage date,Owner, Storage place, Error message
Customer, Item, Place 6
Retrieve item Amount due, Description, Pallets, Value,Storage date, Owner, Storage place,Error message
Customer,Item
4
Add place Location, Space, Error message Place 3
Change place data Location, Space, Storage place, Errormessage
Place, Item 3
Delete place Location, Space, Error message Place, Item 3
Total 32
E t l O t t t th li ti (EO)
-
8/3/2019 FPA Mark I (AIT)
35/57
External Outputs to the application (EO)
Related group of user data or control information that leavesthe boundary of the application. Ex: Customer Invoice (Pre-formatted 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 acrossthe boundary from inside to outside. The data createsreports or output files sent to other applications. Thesereports or files are created from one or more internal logicalfiles and external interface file.
E t l O t t t th li ti (EO)
-
8/3/2019 FPA Mark I (AIT)
36/57
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 iscounted as 1 type
Each medium output is counted as 1 EO
Multiple occurrences of the same unique logical data item are not becounted more than once (repeating rows)
Static information or system generated information like reportheadings, 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
Cl ifi ti f M 1
-
8/3/2019 FPA Mark I (AIT)
37/57
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 appropriatetransaction
Cl ifi ti f M 2
-
8/3/2019 FPA Mark I (AIT)
38/57
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
E t l O t t C St d
-
8/3/2019 FPA Mark I (AIT)
39/57
External Outputs- Case Study
EO DET FTR Weight
Printcustomeritem list
Name, Description,Value, Storage date,Total items, Total value
Customer,Item
7
Print bill Name, Address, Amountdue, Total items
Customer,Item
7
Print storeditems list
Description, Pallets,Storage place, Totalitems
Item 5
Total 19
External Inquiries (EQ)
-
8/3/2019 FPA Mark I (AIT)
40/57
External Inquiries (EQ)
Related group of user data or control information that enters theboundary of the application and generates an output. Ex: Userrequest 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 componentsthat result in data retrieval from one or more internal logical files
and external interface files. This information is sent outside theapplication boundary. The input process does not update anyinternal logical files and output side does not contain derived data.
External Inquiries (EQ)
-
8/3/2019 FPA Mark I (AIT)
41/57
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
-
8/3/2019 FPA Mark I (AIT)
42/57
External Inquiries (EQ) Case Study
EQ DET FTR Weight
Querycustomers
I/P: Name, error messageO/P: Name, address, Amountdue
Customer 3
Querycustomer'sitems
I/P: Name, error messageO/P: Name, Description,Pallets, Value, Storage date
Customer,Item
6
Queryplaces
I/P: Location, Error MessageO/P: Location, Space
Place 3
Query
storeditems
I/P: Location, Error Message
O/P: Location, Space,Description, Pallets
Place,
Item
6
Total 18
Compute Unadjusted Function Points (UFP)
-
8/3/2019 FPA Mark I (AIT)
43/57
Compute Unadjusted Function Points (UFP)
Compute the unadjusted function points using followingweights
Item Number Points Total
External Inputs x 3
x 4
x 6
External Outputs x 4
x 5
x 7
External Inquiries x 3
x 4
x 6
Internal Logical Files x 7
x 10
x 15
External Interfaces x 5
x 7x 10
Compute UFP Case Study
-
8/3/2019 FPA Mark I (AIT)
44/57
Compute UFP Case Study
Item Total Weight
External Inputs (EI) 32
External Outputs (EO) 19
External Inquiries (EQ) 18
Internal Logical Files (ILF) 30
External Interfaces (EIF) 0
Total (UFP) 99
Compute Degree of Influence
-
8/3/2019 FPA Mark I (AIT)
45/57
Compute Degree of Influence
Compute the degree of influence / General
System Characteristics (GSCs)
NO. DI Factors Degree of Influence
(DI)
Remarks
1 Data Communications
2 Distributed Data Processing
3 Performance
4 Heavily Used Configuration
5 Transaction Rate
6 On-line Data Entry
7 End-User Efficiency
8 On-line Update
9 Complex Processing
10 Reusability
11 Installation Ease12 Operational Ease
13 Multiple Sites
14 Facilitate Change
Total degree of Influence (TDI)
Compute Technical Complexity Adjustment (TCA)
-
8/3/2019 FPA Mark I (AIT)
46/57
Compute Technical Complexity Adjustment (TCA)
Compute the Technical Complexity Adjustment using thefollowing 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)
-
8/3/2019 FPA Mark I (AIT)
47/57
Compute Function Point Index (FPI)
Compute the Function Point Index (Size) using the followingformula
FPI = UFP * TCA
Add contingency factor
Case Study:
FPI = UFP * TCA
= 99*0.65
= round(64.35)
= 65
Compute Efforts
-
8/3/2019 FPA Mark I (AIT)
48/57
Compute Efforts
Productivity ratio
No. of hours per function point Past data from Organizations
Reference Table
Sr. Environment User Interface Hours/Function Points(Industry Standard)
1. RDBMS(Oracle/Informix/Ingres)
Character Based 8 hours per function point2. RDBMS
(Oracle/Informix/Ingres)GUI based 12 hours per function point
3. COBOL Character Based 22 hours per Function Pointfor total efforts
-
8/3/2019 FPA Mark I (AIT)
49/57
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
-
8/3/2019 FPA Mark I (AIT)
50/57
Mapping the efforts on to Schedule
Analysis 15%
High Level Design 15%
Low Level Design 10%
Coding 35%
Unit Testing 11%
Integration & System Testing 10%
Project Management 4%
Customer Acceptance Testing At actuals
Implementation At actuals
Warranty Support At actuals
Function Points for Enhancements
-
8/3/2019 FPA Mark I (AIT)
51/57
Function Points for Enhancements
Function Points for enhancements Contd
-
8/3/2019 FPA Mark I (AIT)
52/57
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
-
8/3/2019 FPA Mark I (AIT)
53/57
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
-
8/3/2019 FPA Mark I (AIT)
54/57
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
-
8/3/2019 FPA Mark I (AIT)
55/57
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 haveexpertise in detailed FPA
Case Study
-
8/3/2019 FPA Mark I (AIT)
56/57
Case Study
Download following documents and calculate function points
Useful Sites/Contact Details
-
8/3/2019 FPA Mark I (AIT)
57/57
Useful Sites/Contact Details
http://kms.techmahindra.com:6040/Pages/OrganizationalAssets.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 (Worddocument)
http://ourworld.compuserve.com/homepages/softcomp/fpfaq.htm (FAQ)
For queries, please contact Estimation Focus Group
http://kms.techmahindra.com:6040/Pages/OrganizationalAssets.aspxhttp://kms.techmahindra.com:6040/Pages/OrganizationalAssets.aspxhttp://kms.techmahindra.com:6040/Pages/OrganizationalAssets.aspxhttp://kms.techmahindra.com:6040/Pages/OrganizationalAssets.aspx