Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides...

96
Workshop 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012

Transcript of Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides...

Page 1: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Workshop 2: Function Point Analysis

Marlon Dumas

(slides partly based on FPA Manual by David Longstreet)

Software Economics – Fall 2012

Page 2: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 3: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 4: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 5: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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.

Page 6: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

6

Function Points – Context Identify Application Boundaries

Count Data Functions

Count Transactional Functions

Determine Unadjusted FP Count

Determine Adjusted FP Count

Page 7: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

7

Function Points – Context Identify Application Boundaries

Page 8: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

8

Application Boundary l  Border between application being measured

and external applications

Page 9: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 10: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

10

What functionality is part of application?

Page 11: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 12: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Example – Application Boundary www.blanklabel.com

Page 13: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise

Let’s define application boundaries to analyze www.doodle.com

Page 14: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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)

Page 15: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

15

FPA – Components

Page 16: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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?

Page 17: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 18: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 19: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

19

Data Element Type – Examples

DET-s

Page 20: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

20

Data Element Type – Examples DET-s

Repeated DET-s. Count only once

Page 21: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

21

Data Element Type – Examples

Page 22: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

22

Data Element Type – Examples

DET-s

Page 23: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise •  Design a simplified data model of doodle.com

(given the application boundaries you chose). •  Count DETs for the “poll” type.

Page 24: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 25: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

25

Record Element Type – Examples

1 RET each

Page 26: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

26

Record Element Type – Examples

2 RET-s

Page 27: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

27

Record Element Type – Examples Inheritance in object oriented development

Table per object hierarchy in relational

database

Page 28: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

28

Record Element Type – Examples

2 RET-s

Page 29: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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)

Page 30: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

30

File Type Referenced - Examples l  Edit article details

-  Abstract -  Tags -  Notes

Page 31: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

31

FTR-s For Edit Article Details

FTR-s

Not referenced

Page 32: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

32

File Type Referenced Examples l  How many FTR-s for “List of Articles”?

-  Tables: Articles, Authors, Tags

Page 33: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

33

Components

Page 34: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

34

Components and DETs, RETs, FTRs

Page 35: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

35

Function Points – Context Identify Application Boundaries

Count Transactional Functions

Page 36: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

36

External Inputs l  Information flows into the application

-  Online, user inserted, from other application

Page 37: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

37

External Inputs – Examples

Page 38: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

38

External Inputs – Examples EI

Page 39: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 40: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 41: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

41

External Inputs – Examples l  External Inputs

include error messages!

l  All errors messages are counted as 1 Dynamic Element Type

Page 42: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 43: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 44: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

44

These are NOT External Inputs l  Login screens

-  Should be counted as External Inquiry

l  (Static) menus, link, navigational screens -  Usability, not functionality

Page 45: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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, ...

Page 46: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

46

Exercise – Rate External Input

Page 47: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

47

External Outputs l  Derived information flows from the application

-  Algorithms, calculations -  Reports, graphs, charts

Page 48: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise •  Identify and rate EIs in the doodle system

Page 49: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Function Points – Context

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

49

Identify Application Boundaries

Count Transactional Functions

Page 50: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

50

Derived Information

Page 51: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

51

External Outputs – Examples EO

Page 52: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 53: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 54: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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, ...

Page 55: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 56: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 57: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

57

External Outputs – Identification Rules l  Data ordering produces the same external

output → counted only once!

Page 58: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

58

External Outputs – Identification Rules

l  Different derived data from the same data → different external outputs!

Page 59: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

59

Example – Rate External Output

Page 60: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise •  Identify and rate EOs in the Doodle system

Page 61: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

61

External Inquiries l  Information flows from the application

-  Existing, already stored data -  Input side and output side -  Reports, graphs, charts,

Page 62: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

62

External Inquiries l  Existing data + Input and output sides

Page 63: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

63

External Inquiries – Examples 1 EI

Page 64: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

64

External Inquiry – Examples

1 EI

Page 65: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 66: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 67: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 68: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 69: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 70: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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, ...

Page 71: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise •  Identify and rate EQs in the Doodle system

Page 72: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 73: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

73

Function Points – Context Identify Application Boundaries

Count Data Functions

Count Transactional Functions

Page 74: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

74

Internal Logical Files l  Data that resides within app. boundaries

-  Business data, control data, rules based data

Page 75: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

75

Internal Logical Files – Examples

3 ILF-s

Page 76: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 77: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

77

Internal Logical Files – Examples l  Application configuration stored on hard drive

-  If maintained through the application

l  Log files

Page 78: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 79: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 80: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 81: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

81

Exercise – Rate ILF-s

Page 82: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

82

Exercise – Rate ILF

Page 83: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Exercise •  Identify and rate ILFs in the Doodle system

Page 84: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

84

External Interface Files l  Data that resides outside app. boundary

-  Internal data of other application

Page 85: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

85

External Interface Files – Examples

Google Scholar is EIF

Page 86: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 87: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 88: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

88

External Interface Files – Identification Rules

l  User identifiable logical grouping of information l  Data external to application

Page 89: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

89

Exercise – Rate EIF

Page 90: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

90

Function Points – Context Identify Application Boundaries

Count Data Functions

Count Transactional Functions

Determine Unadjusted FP Count

Page 91: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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)

Page 92: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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

Page 93: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

FP Tools •  Many tools can speed up/automate some FP

count •  SPR KnolwedgePLAN •  PRICE Systems TruePlanning •  SCOPE •  Others check “Software Parametric Models” in

Wikipedia

Page 94: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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…

Page 95: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

Further exercises •  FP Analysis of the following address book

example: •  http://www.cs.gordon.edu/courses/cs211/

AddressBookExample/

Page 96: Workshop 2: Function Point Analysis Marlon Dumas 2: Function Point Analysis Marlon Dumas (slides partly based on FPA Manual by David Longstreet) Software Economics – Fall 2012 2

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