0% found this document useful (0 votes)
42 views99 pages

2015 Workshop2rev2

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

2015 Workshop2rev2

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

Software Economics – Fall 2015

Workshop 2-3: Function Point


Analysis

Dietmar Pfahl

(slides based on material of Marlon


Dumas and (partly) on FPA Manual by
David Longstreet)
Function Point Analysis
 Function point is a measure of the amount of
business functionality in a software application
 The larger number of FPs the more
functionality

 Function Point Analysis is based on breaking


down applications into very small components
and measuring their size individually

2
Scope & Limitations of FPA
 FPA is largely geared towards “form-based” or
“record-oriented” applications
 Might not be suitable for applications involving:
 Complex algorithms, e.g. image/video/audio
processing, text or data mining, simulation,
optimization, strategy games
 Complex multimedia apps, 3D animation
 Real-time embedded software
 Very large-scale data management

3
FPA – Basic Principles
Software applications are treated as a
combination of:
 Data in motion = Transactions
 Moving data from application to outside or
from outside to application
 Data at rest
 Data sources that need to be accessed by the
application

4
FPA – Basic Principles
Three types of transactions:
 Input (EI) – data is fed into the system
 Inquiry (EQ) – data is retrieved from the system
 Output (EO) – data is retrieved and enriched
And two types of data sources
• Internal files (ILF)
• External files (EIF)
Note: “files” means “bucket of logically-related
records”, not “files” in the Unix sense.
5
Function Points – Context
Identify Application Boundaries

Count Transactional Count Data


Functions Functions

Determine Unadjusted FP Count

Determine Adjusted FP Count

6
Function Points – Context
Identify Application Boundaries

7
Application Boundary
 Border between application being measured
and external applications

8
Scenario
 Assume we are building a web application that
aggregates and displays stream of events in a
software development team:
 Anton fixed a bug
 Mark added new task
 Anton committed new code change
 Everybody can sign-up
 Create new streams
 Data is stored in database

9
What functionality is part of
application?

10
Scenario: Within Boundaries or Not?
 Authentication
 Configuration of connections to tools team is
using (bug&task tracking, code management)
 Organization/optimization of database files
 Forwarding events to Twitter/Facebook
 Sending HTML/JS/CSS over HTTP to browser

11
Example – Application Boundary
www.blanklabel.com
Exercise

Let’s define application boundaries to


analyze www.doodle.com
FPA – Components
 Transactions (Transactional Components)
 External Inputs (information input)
 External Inquiries (no derived data, data
retrieval):
 External Outputs (derived data, algorithms):
 Data at rest (Data components)
 Internal Logical Files (maintained internally)
 External Interfaces Files (maintained by
external apps)

14
FPA – Components

15
Components
 Each component rated as Low, Average or High
 Based on (perceived) complexity

 Points are assigned based on the rating

 Question: How to evaluate complexity?

16
Break things up into even smaller
pieces!
 Transaction
 Dependent on data transferred
 Dependent on data stored
 Data at rest
 Dependent on data stored
 Independent of data transferred

17
Smaller Pieces
 Data Element Type (DET)
 Dynamic user recognizable fields
 Controls (things that invoke actions)
 Used to estimate complexity of both
transactions and data

18
Data Element Type – Examples

DET-s

19
Data Element Type – Examples
DET-s

Repeated DET-s. Count only once


20
Data Element Type – Examples

21
Data Element Type – Examples

DET-s

22
Exercise
• Design a simplified data model of doodle.com
(given the application boundaries you chose).
• Count DETs for the “poll” type.
Smaller Pieces
 Data Element Type (DET)
 Dynamic user recognizable field
 Record Element Type (RET)
 User recognizable subgroup of data elements
in internal logical file or external interface file
 For relational databases typically one Internal
Logic File (table) = one Record Element Type

24
Record Element Type – Examples

1 RET each

25
Record Element Type – Examples

2 RET-s
26
Record Element Type – Examples
Inheritance in object Table per object
oriented development hierarchy in relational
database

27
Record Element Type – Examples

2 RET-s

28
Smaller Pieces
 Data Element Type (DET)
 Dynamic user recognizable field
 Record Element Type (RET)
 User recognizable subgroup of data elements
in internal logical file or external interface file
 File Type Referenced (FTR)
 File type referenced by transaction (internal
logical file or external interface file)

29
File Type Referenced - Examples
 Edit article details
 Abstract
 Tags
 Notes

30
FTR-s For Edit Article Details

Not referenced

FTR-s

31
File Type Referenced Examples
 How many FTR-s for “List of Articles”?
 Tables: Articles, Authors, Tags

32
Components

33
Components and DETs, RETs,
FTRs

34
Function Points – Context
Identify Application Boundaries

Count Transactional
Functions

35
External Inputs
 Information flows into the application
 Online, user inserted, from other application

36
External Inputs – Examples

37
External Inputs – Examples
EI

38
External Inputs
 Elementary process in which data or control
information crosses the boundary from outside
to inside
 Data is maintained = added, changed or
deleted
 Application is controlled (manipulated,
behavior is changed)
 Rated based upon Data Element Types and
Files Type Referenced

39
External Inputs → Function Points
Files Referenced Data Elements (DET-s)
(FTR-s) 1–4 5 – 15 > 15
1 Low (3) Low (3) Average (4)
2 Low (3) Average (4) High (6)
>2 Average (4) High (6) High (6)

 Low → 3 function points


 Average → 4 function points
 High → 6 function points
40
External Inputs – Examples
 External Inputs
include error
messages!
 All errors
messages are
counted as 1
Dynamic
Element Type

41
External Inputs – Data Types
 Business data: customer name, number of
credits for course, … → updates Internal
Logical Files (ILF-s)
 Control data: printer port, number of copies, …
→ may or may not update ILF-s
 Rules data: number of days before registration
closes, min amount eligible for free shipping →
updates ILF-s

42
External Inputs
 Data element types for External Inputs
 Fields, Controls, Messages (both error and
confirmation)
 Calculated values that are stored
 Cancel – not counted in EI
 Data doesn't cross boundary – noting
changed, edited or deleted
 State or behavior of application is not changed

43
These are NOT External Inputs
 Login screens
 Should be counted as External Inquiry
 (Static) menus, link, navigational screens
 Usability, not functionality

44
External Inputs – Identification
Rules
 Data is received from outside the app boundary
 Maintains data in Internal Logical Files
 Process is self contained and leaves the
application in consistent state
 Typical vocabulary
 Add, Change, Delete, Modify, Remove, Edit,
Enable, Save, Store, Submit, ...

45
Exercise – Rate External Input

46
Function Points – Context
Identify Application Boundaries

Count Transactional
Functions

• External input (EI)


• External output (EO)
• External enquiry (EQ)

48
External Outputs
 Derived information flows from the application
 Algorithms, calculations
 Reports, graphs, charts

49
Derived Information

50
External Outputs – Examples
EO

51
External Output
 Elementary process in which derived data
passes across the boundary from inside to
outside
 Based on internal logical files and/or external
interface files
 Data processed beyond direct retrieval and
editing from internal logical files or external
interface files
 Rated based upon Data Element Types and
Files Type Referenced

52
External Outputs → Function Points
Files Referenced Data Elements (DET-s)
(FTR-s) 1–5 6 – 19 > 19
1 Low (4) Low (4) Average (5)
2–3 Low (4) Average (5) High (7)
>3 Average (5) High (7) High (7)

 Low → 4 function points


 Average → 5 function points
 High → 7 function points
53
External Outputs
 Notification messages – result of processing =
calculation
 Data element types for External Outputs
 Error messages
 Calculated values on reports
 Values on reports retrieved from application
 Recursive DET-s counted only once!
 External Outputs can have input side
 Report configuration, ...

54
These are NOT External Outputs
 Error message, confirmation message
 Parts of External Outputs or other transactions
 Reports without derived data
 External Inquiries

55
External Outputs – Identification Rules
 Data is sent from the app boundary to outside
 Process is self contained and leaves the
application in consistent state
 Typical vocabulary
 Browse, Display, Query, Report, View, Select,
Request, Retrieve, Aggregate, Calculate

56
External Outputs – Identification Rules
 Data ordering produces the same external
output → counted only once!

57
External Outputs – Identification Rules
 Different derived data from the same data →
different external outputs!

58
Example – Rate External Output

59
Exercise
• Identify and rate EOs in the Doodle system
External Inquiries
 Information flows from the application
 Existing, already stored data
 Input side and output side
 Reports, graphs, charts,

61
External Inquiries
 Existing data + Input and output sides

62
External Inquiries
 Elementary process with both input and output
components that result in data retrieval from
one or more internal logical files and/or external
interface files
 Does not maintain any internal logical files
 Does not contain derived information
 Rated based upon Data Element Types and
Files Type Referenced

63
External Inquiries – Examples
 Input: customer name in the search field
 Output: list of customers by name

 Input: click on the document title


 Output: document details

64
External Inquiries – Examples
1 EQ

65
External Inquiries → Function Points
Files Referenced Data Elements (DET-s)
(FTR-s) 1–5 6 – 19 > 19
1 Low (3) Low (3) Average (4)
2–3 Low (3) Average (4) High (6)
>3 Average (4) High (6) High (6)

 Low → 3 function points


 Average → 4 function points
 High → 6 function points
66
External Inquiries – Data Types
 Pagination: NEXT and BACK buttons –
recursive information, counted as the same
function
 Messages are DET-s!
 “data not found” = 1 DET-s

67
These are NOT External Inquiries
 Error message, confirmation message
 Parts of External Inquiries or other
transactions
 Screens with derived data
 External Outputs

68
External Inquiries – Identification Rules
 Request enters the boundaries, result exits the
boundaries
 Data retrieval, no derived data
 Input and Output together form an elementary
process
 Data is not maintained
 Typical vocabulary
 Browse, Display, Fetch, Find, List, Drop-down,
Select, View, Query, Report, ...

69
Exercise
• Identify and rate EQs in the Doodle system
Function Point Analysis
Identify Application Boundaries

Count Transactional Count Data


Functions Functions

External External External Internal External


Input Output inQuiry Logical Interface
(EI) (EO) (EQ) File File
(ILF) (EIF)

71
How it all fits together

© Alvin Alexander, 2004


Transactional Components Quiz
 For which components is true:
 DETs are retrieved from ILFs or EIFs
 Updates ILF
 Maintains ILF
 Contains derived data
 Information must flow from outside to inside
 Never produces derived data
 Information must flow from inside to outside
 At least one FTR is referenced

73
See course wiki ...
75
Function Point Analysis
Identify Application Boundaries

Count Transactional Count Data


Functions Functions

External External External


How to count
Input Output inQuiry ILFs and EIFs
(EI) (EO) (EQ)
?
76
Internal Logical Files
 Data that resides within app. boundaries
 Business data, control data, rules based data

77
Internal Logical Files – Examples

3 ILF-s

78
Internal Logical Files – Data Types
 Business data: course name, address, student
 Control data: printer port, copies, database url
 Rules based data: registration criteria, grading
scheme

79
Internal Logical Files – Examples
 Application configuration stored on hard drive
 If maintained through the application
 Log files

80
Internal Logical Files
 Group of logically related data residing entirely
within application boundary
 Maintained by External Inputs
 Has at least one Record Element Type

 Rated based upon Data Element Types and


Record Element Types

81
Internal Logical Files → FP-s
Record Elements Data Elements (DET-s)
(RET-s) 1 – 19 20 – 50 > 50
1 Low (7) Low (7) Average (10)
2–5 Low (7) Average (10) High (15)
>5 Average (10) High (15) High (15)

 Low → 7 function points


 Average → 10 function points
 High → 15 function points
82
Exercise – Rate ILF-s

83
Exercise – Rate ILF

84
Internal Logical Files – Identification
Rules
 User identifiable logical grouping
 Data is maintained within application
boundaries
 Data is modified via one or more External
Inputs

85
Exercise
• Identify and rate ILFs in the Doodle system
External Interface Files
 Data that resides outside app. boundary
 Internal data of other application

87
External Interface Files – Examples

Google Scholar is EIF

88
External Interface Files
 Group of logically related data residing entirely
outside application boundary
 Maintained by another application
 Data is retrieved during External Output or
External Inquiry
 Rated based upon Data Element Types and
Record Element Types

89
External Interface Files → FP-s
Record Elements Data Elements (DET-s)
(RET-s) 1 – 19 20 – 50 > 50
1 Low (5) Low (5) Average (7)
2–5 Low (5) Average (7) High (10)
>5 Average (7) High (10) High (10)

 Low → 5 function points


 Average → 7 function points
 High → 10 function points
90
External Interface Files – Identification
Rules
 User identifiable logical grouping of information
 Data external to application

91
Exercise – Rate EIF

92
Function Points – Context
Identify Application Boundaries

Count Transactional Count Data


Functions Functions

Determine Unadjusted FP Count

93
Value-Adjusment Factor (VAF)
VAF is a “factor” that takes into account non-
functional requirements, e.g.:
 Required performance (transaction rate)
 Required reliability
 Required usability (end-user efficiency)
 Etc.

Not always used because all this is usually part of


the cost estimation model (cf. next week)

We will only deal with unadjusted FPs (UFPs) 94


Shortcomings of FPA
• Suitable mostly for form-based database apps
• Requires experience
• Experienced FP raters have variance of +/- 10%
• Less experienced ones +/- 20%
• Requires detailed reqs & high-level design
• Time-consuming
• “Dutch Method”: for each ILF, 3 EIs, 2 Eos, 1 EQ; for
each EIF, 1 EO and 1 EQ
• UFP = 35 * ILF + 15 EIF
• Impractical for very large projects (> 10K FPs) 95
Extensions of FPs
• We have seen FP definitions of the Intl.
Function Point User Group (IFPUG)
• Alternatives
• Story points (agile – more next week)
• COSMIC FPs – finer-grained; based on continuous
size scale rather than discrete
• OMG Automated Function Points – similar to
IFPUG but strictly defined; meant for measuring
(not estimating) already developed software
• “per-FP” software pricing models
• Measuring defects-per-FP for contract penalties
Is this stuff used at all?
• Surely yes judging by
• User groups worldwide
• Project databases, e.g. ISBSG documents 5000+
projects counted using FPs
• 50K+ projects counted according to IFPUG + others
by COSMIC
• Several commercial tools
• Not universal though…
• Makes more sense in organizations with large
portfolios of projects
FP Tools
• Many tools can speed up/automate some FP
count
• SPR KnolwedgePLAN
• PRICE Systems TruePlanning
• SCOPE
• Others: check “Software Parametric Models” in
Wikipedia

Also – many FP Excel templates, see link on


course web site
Homework 3
 Schedule:
 Group forming – done
 Presentation: 30 November
 see presentation schedule on course wiki / next slide
 Report: 07 December, 16:00 (‘submit’ button)

 Full info on course wiki:


https://courses.cs.ut.ee/2015/softeco/fall/Main/FPAHomework

99
Homework 3
Presentation Schedule (30 Nov):

100
References
 D. Longstreet, Function Points Analysis Training Course
 http://bit.ly/G6WIx
 Alvin Alexander: How to Determine Your Application Size
Using Function Points. BorCon 2004 Proceedings
 http://tinyurl.com/8mbofd8
 http://conferences.embarcadero.com/article/32094
#SampleCount

102

You might also like