workshop 2: function point analysis marlon dumas 2: function point analysis marlon dumas (slides...
TRANSCRIPT
Workshop 2: Function Point Analysis
Marlon Dumas
(slides partly based on FPA Manual by David Longstreet)
Software Economics – Fall 2012
2
Function Point Analysis l Function point is a measure of the amount of
business functionality in a software application - The larger number of FPs the more
functionality
l Function Point Analysis is based on breaking down applications into smaller components and measuring their size
3
Scope & Limitations of FPA l FPA is largely geared towards “form-based” or
“record-oriented” applications l 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
4
FPA – Basic Principles Software applications are treated as a
combination of: l Data in motion = Transactions
- Moving data from application to outside or from outside to application
l Data at rest - Data sources that need to be accessed by the
application
5
FPA – Basic Principles Three types of transactions: l Input – data is fed into the system l Enquiry – data is retrieved from the system l Output – data is retrieved and enriched And two types of data sources • Internal files • External files Note: “files” means “bucket of logically-related records”, not “files” in the Unix sense.
6
Function Points – Context Identify Application Boundaries
Count Data Functions
Count Transactional Functions
Determine Unadjusted FP Count
Determine Adjusted FP Count
7
Function Points – Context Identify Application Boundaries
8
Application Boundary l Border between application being measured
and external applications
9
Scenario l 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
l Everybody can sign-up l Create new streams l Data is stored in database
10
What functionality is part of application?
11
Scenario: Within Boundaries or Not? l Authentication l Configuration of connections to tools team is
using (bug&task tracking, code management) l Organization/optimization of database files l Forwarding events to Twitter/Facebook l Sending HTML/JS/CSS over HTTP to browser
Example – Application Boundary www.blanklabel.com
Exercise
Let’s define application boundaries to analyze www.doodle.com
14
FPA – Components l Transactions (Transactional Components)
- External Inputs (information input) - External Inquiries (no derived data, data
retrieval): - External Outputs (derived data, algorithms):
l Data at rest (Data components) - Internal Logical Files (maintained internally) - External Interfaces Files (maintained by
external apps)
15
FPA – Components
16
Components l Each component rated as Low, Average or
High - Based on (perceived) complexity
l Points are assigned based on the rating l Question: How to evaluate complexity?
17
Break things up into even smaller pieces!
l Transaction - Dependent on data transferred - Dependent on data stored
l Data at rest - Dependent on data stored - Independent of data transferred
18
Smaller Pieces l Data Element Type (DET)
- Dynamic user recognizable fields - Controls (things that invoke actions) - Used to estimate complexity of both
transactions and data
19
Data Element Type – Examples
DET-s
20
Data Element Type – Examples DET-s
Repeated DET-s. Count only once
21
Data Element Type – Examples
22
Data Element Type – Examples
DET-s
Exercise • Design a simplified data model of doodle.com
(given the application boundaries you chose). • Count DETs for the “poll” type.
24
Smaller Pieces l Data Element Type (DET)
- Dynamic user recognizable field
l 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
25
Record Element Type – Examples
1 RET each
26
Record Element Type – Examples
2 RET-s
27
Record Element Type – Examples Inheritance in object oriented development
Table per object hierarchy in relational
database
28
Record Element Type – Examples
2 RET-s
29
Smaller Pieces l Data Element Type (DET)
- Dynamic user recognizable field
l Record Element Type (RET) - User recognizable subgroup of data elements
in internal logical file or external interface file
l File Type Referenced (FTR) - File type referenced by transaction (internal
logical file or external interface file)
30
File Type Referenced - Examples l Edit article details
- Abstract - Tags - Notes
31
FTR-s For Edit Article Details
FTR-s
Not referenced
32
File Type Referenced Examples l How many FTR-s for “List of Articles”?
- Tables: Articles, Authors, Tags
33
Components
34
Components and DETs, RETs, FTRs
35
Function Points – Context Identify Application Boundaries
Count Transactional Functions
36
External Inputs l Information flows into the application
- Online, user inserted, from other application
37
External Inputs – Examples
38
External Inputs – Examples EI
39
External Inputs l 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)
l Rated based upon Data Element Types and Files Type Referenced
40
External Inputs → Function Points Data Elements (DET-s)
1 – 4 5 – 15 > 151 Low (3) Low (3) Average (4)2 Low (3) Average (4) High (6)
> 2 Average (4) High (6) High (6)
Files Referenced (FTR-s)
l Low → 3 function points l Average → 4 function points l High → 6 function points
41
External Inputs – Examples l External Inputs
include error messages!
l All errors messages are counted as 1 Dynamic Element Type
42
External Inputs – Data Types l Business data: customer name, number of
credits for course, … → updates Internal Logical Files (ILF-s)
l Control data: printer port, number of copies, … → may or may not update ILF-s
l Rules data: number of days before registration closes, min amount eligible for free shipping → updates ILF-s
43
External Inputs l Data element types for External Inputs
- Fields, Controls, Messages (both error and confirmation)
- Calculated values that are stored
l Cancel – not counted in EI - Data doesn't cross boundary – noting
changed, edited or deleted - State or behavior of application is not changed
44
These are NOT External Inputs l Login screens
- Should be counted as External Inquiry
l (Static) menus, link, navigational screens - Usability, not functionality
45
External Inputs – Identification Rules l Data is received from outside the app boundary l Maintains data in Internal Logical Files l Process is self contained and leaves the
application in consistent state l Typical vocabulary
- Add, Change, Delete, Modify, Remove, Edit, Enable, Save, Store, Submit, ...
46
Exercise – Rate External Input
47
External Outputs l Derived information flows from the application
- Algorithms, calculations - Reports, graphs, charts
Exercise • Identify and rate EIs in the doodle system
Function Points – Context
• External input (EI) • External output (EO) • External enquiry (EQ)
49
Identify Application Boundaries
Count Transactional Functions
50
Derived Information
51
External Outputs – Examples EO
52
External Output l 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
l Rated based upon Data Element Types and Files Type Referenced
53
External Outputs → Function Points Data Elements (DET-s)
1 – 5 6 – 19 > 191 Low (4) Low (4) Average (5)
2 – 3 Low (4) Average (5) High (7)> 3 Average (5) High (7) High (7)
Files Referenced (FTR-s)
l Low → 4 function points l Average → 5 function points l High → 7 function points
54
External Outputs l Notification messages – result of processing =
calculation l Data element types for External Outputs
- Error messages - Calculated values on reports - Values on reports retrieved from application - Recursive DET-s counted only once!
l External Outputs can have input side - Report configuration, ...
55
These are NOT External Outputs l Error message, confirmation message
- Parts of External Outputs or other transactions
l Reports without derived data - External Inquiries
56
External Outputs – Identification Rules l Data is sent from the app boundary to outside l Process is self contained and leaves the
application in consistent state l Typical vocabulary
- Browse, Display, Query, Report, View, Select, Request, Retrieve, Aggregate, Calculate
57
External Outputs – Identification Rules l Data ordering produces the same external
output → counted only once!
58
External Outputs – Identification Rules
l Different derived data from the same data → different external outputs!
59
Example – Rate External Output
Exercise • Identify and rate EOs in the Doodle system
61
External Inquiries l Information flows from the application
- Existing, already stored data - Input side and output side - Reports, graphs, charts,
62
External Inquiries l Existing data + Input and output sides
63
External Inquiries – Examples 1 EI
64
External Inquiry – Examples
1 EI
65
External Inquiries l 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
l Rated based upon Data Element Types and Files Type Referenced
66
External Inquiries → Function Points Data Elements (DET-s)
1 – 5 6 – 19 > 191 Low (3) Low (3) Average (4)
2 – 3 Low (3) Average (4) High (6)> 3 Average (4) High (6) High (6)
Files Referenced (FTR-s)
l Low → 3 function points l Average → 4 function points l High → 6 function points
67
External Inquiries – Examples l Input: customer name in the search field l Output: list of customers by name l Input: click on the document title l Output: document details
68
External Inquiries – Data Types l Pagination: NEXT and BACK buttons –
recursive information, counted as the same function
l Messages are DET-s! - “searching”+data+”not found” = 3 DET-s
69
These are NOT External Inquiries l Error message, confirmation message
- Parts of External Inquiries or other transactions
l Screens with derived data - External Outputs
70
External Inquiries – Identification Rules l Request enters the boundaries, result exits the
boundaries l Data retrieval, no derived data l Input and Output together form an elementary
process l Data is not maintained (but can be updated) l Typical vocabulary
- Browse, Display, Fetch, Find, List, Drop-down, Select, View, Query, Report, ...
Exercise • Identify and rate EQs in the Doodle system
72
Transactional Components Quiz l For which components is true:
- DET-s are retrieved from FTR-s - Updates ILF - Maintains ILF - Contains derived data - Info from outside to inside - Never contains derived data - Info from inside to outside - At least on FTR is referenced
73
Function Points – Context Identify Application Boundaries
Count Data Functions
Count Transactional Functions
74
Internal Logical Files l Data that resides within app. boundaries
- Business data, control data, rules based data
75
Internal Logical Files – Examples
3 ILF-s
76
Internal Logical Files – Data Types l Business data: course name, address, student l Control data: printer port, copies, database url l Rules based data: registration criteria, grading
scheme
77
Internal Logical Files – Examples l Application configuration stored on hard drive
- If maintained through the application
l Log files
78
Internal Logical Files l Group of logically related data residing entirely
within application boundary - Maintained by External Inputs - Has at least one Record Element Type
l Rated based upon Data Element Types and Record Element Types
79
Internal Logical Files → FP-s Data Elements (DET-s)
1 – 19 20 – 50 > 501 Low (7) Low (7) Average (10)
2 – 5 Low (7) Average (10) High (15)> 5 Average (10) High (15) High (15)
Record Elements (RET-s)
l Low → 7 function points l Average → 10 function points l High → 15 function points
80
Internal Logical Files – Identification Rules
l User identifiable logical grouping l Data is maintained within application
boundaries l Data is modified via one or more External
Inputs
81
Exercise – Rate ILF-s
82
Exercise – Rate ILF
Exercise • Identify and rate ILFs in the Doodle system
84
External Interface Files l Data that resides outside app. boundary
- Internal data of other application
85
External Interface Files – Examples
Google Scholar is EIF
86
External Interface Files l Group of logically related data residing entirely
outside application boundary - Maintained by another application - Data is retrieved during External Output or
External Inquiry
l Rated based upon Data Element Types and Record Element Types
87
External Interface Files → FP-s Data Elements (DET-s)
1 – 19 20 – 50 > 501 Low (5) Low (5) Average (7)
2 – 5 Low (5) Average (7) High (10)> 5 Average (7) High (10) High (10)
Record Elements (RET-s)
l Low → 5 function points l Average → 7 function points l High → 10 function points
88
External Interface Files – Identification Rules
l User identifiable logical grouping of information l Data external to application
89
Exercise – Rate EIF
90
Function Points – Context Identify Application Boundaries
Count Data Functions
Count Transactional Functions
Determine Unadjusted FP Count
91
Value-Adjusment Factor (VAF) VAF is a “factor” that takes into account non-
functional requirements, e.g.: l Required performance (transaction rate) l Required reliability l Required usability (end-user efficiency) l 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)
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) 92
FP Tools • Many tools can speed up/automate some FP
count • SPR KnolwedgePLAN • PRICE Systems TruePlanning • SCOPE • Others check “Software Parametric Models” in
Wikipedia
94
Homework 1 l Team assignment (2-4 members per team) l See https://courses.cs.ut.ee/2013/softeco/
l Why not form teams now, select a system and post it on the message board?
l And why not start the homework now…
Further exercises • FP Analysis of the following address book
example: • http://www.cs.gordon.edu/courses/cs211/
AddressBookExample/
96
References
l D. Longstreet, Function Points Analysis Training Course - http://bit.ly/G6WIx
l Alvin Alexander: How to Determine Your Application Size Using Function Points. BorCon 2004 Proceedings
- http://tinyurl.com/8mbofd8