2015 Workshop2rev2
2015 Workshop2rev2
Dietmar Pfahl
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
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
14
FPA – Components
15
Components
Each component rated as Low, Average or High
Based on (perceived) 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
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)
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
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)
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
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)
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
71
How it all fits together
73
See course wiki ...
75
Function Point Analysis
Identify Application Boundaries
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
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)
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
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)
91
Exercise – Rate EIF
92
Function Points – Context
Identify Application Boundaries
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.
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