Function Point Tutorial

Embed Size (px)

Citation preview

  • 8/3/2019 Function Point Tutorial

    1/115

    Page 1

    www.SoftwareMetrics.ComLongstreet Consulting Inc March 2004

    Function Points AnalysisTraining Course

    Instructor: David Longstreet

    [email protected]

    816.739.4058

  • 8/3/2019 Function Point Tutorial

    2/115

    Page 2

  • 8/3/2019 Function Point Tutorial

    3/115

    Page 3

    www.SoftwareMetrics.ComLongstreet Consulting Inc August 2004

    Table of ContentsIntroduction _________________________________________________________________9

    Objective of Section:______________________________________________________________ 9

    Introduction:____________________________________________________________________ 9

    Elementary Process:______________________________________________________________ 9

    Definition: _____________________________________________________________________ 10

    Benefits and Uses:_______________________________________________________________ 10

    When Not to Use Function Points __________________________________________________ 11

    Types of Function Point Counts:___________________________________________________ 11

    What about Lines of Code (LOC)__________________________________________________ 12

    Understanding Productivity:______________________________________________________ 13

    Understanding Software Productivity:______________________________________________ 14

    Questions: _____________________________________________________________________ 17

    Function Point Counting Process _______________________________________________19

    Objective of Section:_____________________________________________________________ 19

    Introduction:___________________________________________________________________ 19

    Definition: _____________________________________________________________________ 19

    Types of Function Point Counts:___________________________________________________ 21

    High Level Steps: _______________________________________________________________ 21

    Independence and Dependence: ___________________________________________________ 21

    FPA Steps for Files: _____________________________________________________________ 23

    Questions: _____________________________________________________________________ 23

    Are transactions independent or dependent on FTRs? _______________________________ 23

    Establishing the Boundary ____________________________________________________24

    Objective of Section:_____________________________________________________________ 24

    Definition: _____________________________________________________________________ 24

    Identify the Boundary:___________________________________________________________ 24

    Standard Documentation: ________________________________________________________ 24

    Establishing the Boundary early in the Life cycle: ____________________________________ 24

    Technology Issues: ______________________________________________________________ 25

    Tabulating: ____________________________________________________________________ 25

  • 8/3/2019 Function Point Tutorial

    4/115

    Page 4

    Questions: _____________________________________________________________________ 25

    Identifying RETs, DETs and FTRs____________________________________________26

    Objective of Section:_____________________________________________________________ 26

    Definition: _____________________________________________________________________ 26

    Rating: ________________________________________________________________________ 26

    Transaction DETs: _____________________________________________________________ 27

    Record Element Types (RETs): ___________________________________________________ 27

    Tips to Identify RETs and DETs early in the life cycle:_______________________________ 27

    DETs for GUI _________________________________________________________________ 27

    DETs For Real Time Systems_____________________________________________________ 29

    Navigation _____________________________________________________________________ 29

    Skill Builder:___________________________________________________________________ 29

    External Inputs _____________________________________________________________31

    Objective of Section:_____________________________________________________________ 31

    Definition: _____________________________________________________________________ 31

    Rating: ________________________________________________________________________ 31

    Counting Tips: _________________________________________________________________ 31

    Examples: _____________________________________________________________________ 32

    Data Elements: _________________________________________________________________ 32

    File Types Referenced (FTRs): ___________________________________________________ 32

    Uniqueness: ____________________________________________________________________ 33

    Understanding Enhancement Function Points:_______________________________________ 33

    Technology Issues: ______________________________________________________________ 33

    Standard Documentation: ________________________________________________________ 34

    Tips to Identify External Inputs early in the life cycle:_________________________________ 34

    Typical Vocabulary:_____________________________________________________________ 35

    Skill Builder:___________________________________________________________________ 35

    External Outputs ____________________________________________________________37

    Objective of Section:_____________________________________________________________ 37Definition: _____________________________________________________________________ 37

    Rating: ________________________________________________________________________ 37

    Counting Tips: _________________________________________________________________ 38

    Terminology:___________________________________________________________________ 38

    Examples: _____________________________________________________________________ 38

  • 8/3/2019 Function Point Tutorial

    5/115

    Page 5

    www.SoftwareMetrics.ComLongstreet Consulting Inc August 2004

    Data Elements: _________________________________________________________________ 38

    File Types Referenced (FTR): _____________________________________________________ 39

    Uniqueness: ____________________________________________________________________ 39

    Understanding Enhancement Function Points:_______________________________________ 39

    Technology Issues: ______________________________________________________________ 39

    Standard Documentation: ________________________________________________________ 40

    Tips to Identify External Outputs early in the life cycle: _______________________________ 40

    Typical Vocabulary:_____________________________________________________________ 40

    Special Issues and Concerns:______________________________________________________ 41

    Skill Builder:___________________________________________________________________ 42

    External Inquiries ___________________________________________________________47

    Objective of Section:_____________________________________________________________ 47

    Definition: _____________________________________________________________________ 47

    Rating: ________________________________________________________________________ 47

    Examples: _____________________________________________________________________ 48

    Terminology:___________________________________________________________________ 48

    Data Elements: _________________________________________________________________ 48

    File Type Referenced (FTRs): ____________________________________________________ 49

    Uniqueness: ____________________________________________________________________ 49

    Understanding Enhancement Function Points:_______________________________________ 49

    Technology Issues: ______________________________________________________________ 50Standard Documentation: ________________________________________________________ 50

    Tips to Identify EQs early in the life cycle:__________________________________________ 50

    Typical Vocabulary:_____________________________________________________________ 50

    Special Issues and Concerns:______________________________________________________ 51

    Skill Builder:___________________________________________________________________ 52

    Transaction Review __________________________________________________________55

    Objective of Section:_____________________________________________________________ 55

    Multiple Languages _____________________________________________________________ 55Display of Graphical Images or Icons_______________________________________________ 56

    Messages ______________________________________________________________________ 57

    Complex Control Inputs _________________________________________________________ 58

    Hyperlinks on WebPages _________________________________________________________ 58

  • 8/3/2019 Function Point Tutorial

    6/115

    Page 6

    Internal Logical Files ________________________________________________________60

    Objective of Section:_____________________________________________________________ 60

    Definition: _____________________________________________________________________ 60

    Rating: ________________________________________________________________________ 60

    Counting Tips: _________________________________________________________________ 60

    Examples: _____________________________________________________________________ 61

    Record Element Types: __________________________________________________________ 61

    Data Element Types: ____________________________________________________________ 62

    Technology Issues: ______________________________________________________________ 62

    Standard Documentation: ________________________________________________________ 62

    Tips to Identify ILFs early in the life cycle: _________________________________________ 62

    Other comments: _______________________________________________________________ 62

    Skill Builder:___________________________________________________________________ 63

    External Interface Files_______________________________________________________66

    Objective of Section:_____________________________________________________________ 66

    Definition: _____________________________________________________________________ 66

    Rating: ________________________________________________________________________ 66

    Counting Tips: _________________________________________________________________ 67

    Examples: _____________________________________________________________________ 67

    Technology Issues: ______________________________________________________________ 67

    Standard Documentation: ________________________________________________________ 67

    Tips to Identify EIFs early in the life cycle: _________________________________________ 68

    General System Characteristics_________________________________________________69

    Objective of Section:_____________________________________________________________ 69

    Definition: _____________________________________________________________________ 69

    Rating: ________________________________________________________________________ 69

    Standard Documentation: ________________________________________________________ 69

    Rating GSCs early in the life cycle:________________________________________________ 69

    Tabulating: ____________________________________________________________________ 70GSCs at a Glance: ______________________________________________________________ 70

    Considerations for GUI Applications _______________________________________________ 71

    Detail GSCs:___________________________________________________________________ 72

    Skill Builder:___________________________________________________________________ 83

    General System Characteristics Notes Page ________________________________________ 84

  • 8/3/2019 Function Point Tutorial

    7/115

    Page 7

    www.SoftwareMetrics.ComLongstreet Consulting Inc August 2004

    History and IFPUG __________________________________________________________85

    Objective of Section:_____________________________________________________________ 85

    Brief History: __________________________________________________________________ 85

    Growth and Acceptance of Function Point Analysis___________________________________ 85

    More Information about IFPUG: __________________________________________________ 85

    Calculating Adjusted Function Point ___________________________________________87

    Objective of Section:_____________________________________________________________ 87

    Understanding the Equations:_____________________________________________________ 87

    Definition: _____________________________________________________________________ 88

    Unadjusted Function Point:_______________________________________________________ 88

    Development Project Function Point Calculation: ____________________________________ 88

    Application Function Point Count (Baseline):________________________________________ 89

    Enhancement Project Function Point Calculation:____________________________________ 89

    Application After Enhancement Project:____________________________________________ 90

    Skill Builder:___________________________________________________________________ 92

    Case Studies ________________________________________________________________93

    Objective of Section:_____________________________________________________________ 93

    Collection Letter________________________________________________________________ 95

    Control Inputs__________________________________________________________________ 96

    Graphical Information___________________________________________________________ 97

    Graphs Part II__________________________________________________________________ 98

    The Weather Application_________________________________________________________ 99

    Adding A New Customer ________________________________________________________ 101

    Enhanced Weather Application __________________________________________________ 104

    BikeWare_____________________________________________________________________ 105

    Pizza Screen Design ____________________________________________________________ 107

    www.PIZZACLUB.COM________________________________________________________ 109

    Control Information____________________________________________________________ 112

  • 8/3/2019 Function Point Tutorial

    8/115

    Page 8

  • 8/3/2019 Function Point Tutorial

    9/115

    Page 9

    www.SoftwareMetrics.ComLongstreet Consulting Inc March 2004

    INTRODUCTION

    Objective of Section:Introduce the basic concepts of Function Point Analysis and to introduce and reinforce unit cost

    estimating. The exercises at the end of the section help the student demonstrate that they havegained the basic knowledge required.

    Introduction:Systems continue to grow in size and complexity, becoming increasingly difficult to understand.As improvements in coding tools allow software developers to produce larger amounts ofsoftware to meet ever-expanding user requirements, a method to understand and communicatesize must be used. A structured technique of problem solving, function point analysis is a methodto break systems into smaller components, so they can be better understood and analyzed. Thisbook describes function point analysis and industry trends using function points.

    Human beings solve problems by breaking them into smaller, understandable pieces. Problemsthat may initially appear to be difficult are found to be simple when dissected into theircomponents, or classes. When the objects to be classified are the contents of software systems, aset of definitions and rules, or a scheme of classification, must be used to place these objects into

    their appropriate categories. Function point analysis is one such technique: FPA is a method tobreak systems into smaller components, so they can be better understood and analyzed. Italso provides a structured technique for problem solving.

    Function points are a unit measure for software much like an hour is to measuring time, miles areto measuring distance or Celsius is to measuring temperature. Function Points are an ordinal

    measure much like other measures such as kilometers, Fahrenheit, hours, so on and so forth.

    Function Points measure software by quantifying its functionality provided to the user basedprimarily on the logical design. Frequently the term end user or user is used without specifyingwhat is meant. In this case, the user is a sophisticated user. Someone that would understand thesystem from a functional perspective --- more than likely someone that would providerequirements or does acceptance testing.

    There are a variety of different methods used to count function point, but this book is based uponthose rules developed by the Alan Albrecht and later revised by the International Function PointUser Group (IFPUG). The IFPUG rules have much to be desired, so this book attempts to fill in

    gaps not defined by IFPUG.

    Elementary Process:A software application is in essence a defined set of elementary processes. When theseelementary processes are combined they interact to form what we call a software system or

    1

  • 8/3/2019 Function Point Tutorial

    10/115

    Chapter 1

    Page 10

    software application. An elementary process is not totally independent existing alone, but theelementary processes are woven together becoming interdependent. There are two basic typesof elementary processes (data in motion and data at rest) in a software application. Data inmotion has the characteristic of moving data inside to outside the application boundary oroutside to inside the application boundary.

    Definition:On a conceptual level, function point analysis helps define two abstract levels of data - data atrest and data in motion.

    Data in motion

    Data in motion is handled via transactional function types or simple transactions. All softwareapplications will have numerous elementary processes or independent processes to move data.Transactions (or elementary processes) that bring data from outside the application domain (or

    application boundary) to inside that application boundary are referred to as external inputs.Transactions (or elementary processes) that take data from a resting position (normally on a file)to outside the application domain (or application boundary) are referred as either an externaloutputs or external inquiries (these will be defined later in this book).

    Data at rest

    Data at rest is maintained by the application in question and is classified as internal logical files.Data at rest is maintained by another application in question are classified as external interfacefiles.

    Benefits and Uses:A function point count has many uses. There are three types of function point counts. In thesectionHow are Function Point Useful the benefits of function point counting is discussed ingreat detail. The article can be found on www.SoftwareMetrics.Com.

    Function Points can be used to communicate more effectively with business user groups.

    Function Points can be used to reduce overtime.

    Function points can be used to establish an inventory of all transactions and files of a currentproject or application. This inventory can be used as a means of evaluation of an application.

    If an inventory is conducted for a development project or enhancement project, then thissame inventory could be used to help maintain scope creep and to help control projectgrowth. Even more important this inventory helps understand the magnitude of the problem.

    Function Points can be used to size software applications. Sizing is an important componentin determining productivity (outputs/inputs), predicting effort, understanding unit cost, so onand so forth.

  • 8/3/2019 Function Point Tutorial

    11/115

    Introduction

    Page 11www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Unlike some other software metrics, different people can count function points at differenttimes, to obtain the same measure within a reasonable margin of error. That is, the sameconclusion will be drawn from the results.

    FPA can help organizations understand the unit cost of a software application or project.Once unit cost is understood tools, languages, platforms can be compared quantitativelyinstead of subjectively. This type of analysis is much easier to understand than technicalinformation. That is, a non-technical user can easily understand Function Points.

    There are several other uses of function points. The following list are some practicalapplications of Function Points and FPA. The article Using Function Points on the Websitewww.SoftwareMetrics.Com, in the article section of the Website, provides more detail regardingeach of these items. Function Points can be used for:

    Defining When and What to Re-Engineer

    Estimating Test Cases Understanding Wide Productivity Ranges

    Understanding Scope Creep

    Calculating the True Cost of Software

    Estimating Overall Project Costs, Schedule and Effort

    Understanding Maintenance Costs

    Help with contract negotiations

    Understanding the appropriate set of metrics

    When Not to Use Function PointsFunction points are not a very good measure when sizing maintenance efforts (fixing problems)or when trying to understand performance issues. Much of the effort associated with fixingproblems (production fixes) is due to trying to resolve and understand the problem (detectivework). Another inherent problem with measuring maintenance work is that much ofmaintenance programming is done by one or two individuals. Individual skill sets become amajor factor when measuring this type of work. The productivity of individual maintenanceprogrammers can very as much as 1,000 percent.

    Performance tuning may or may not have anything to do with functionality. Performance tuningis more a result of trying to understand application throughput and processing time. There are

    better metrics to utilize when measuring this type of work.

    Types of Function Point Counts:Function point counts can be associated with either projects or applications. There are threemajor types of software projects (Development, Enhancements and Maintenance). In accordance

  • 8/3/2019 Function Point Tutorial

    12/115

    Chapter 1

    Page 12

    with these types of function points there are three different types of function point counts(Development, Enhancement and Application).

    Development Project Function Point Count

    Function Points can be counted at all phases of a development project from requirements up to

    and including implementation. This type of count is associated with new development work.Scope creep can be tracked and monitored by understanding the functional size at all phase of aproject. Frequently, this type of count is called a baseline function point count.

    Enhancement Project Function Point Count

    It is common to enhance software after it has been placed into production. This type of functionpoint count tries to size enhancement projects. All production applications evolve over time.By tracking enhancement size and associated costs a historical database for your organizationcan be built. Additionally, it is important to understand how a Development project has changedover time.

    Application Function Point Count

    Application counts are done on existing production applications. This baseline count can beused with overall application metrics like total maintenance hours. This metric can be used totrack maintenance hours per function point. This is an example of a normalized metric. It is notenough to examine only maintenance, but one must examine the ratio of maintenance hours tosize of the application to get a true picture.

    Additionally, application counts can assist organizations in understanding the size of the entirecorporate portfolio (or inventory). This type of count is analogous to taking an inventory for astore. Like inventory, a dollar value can be associated with any application function point countand for the entire organization portfolio.

    What about Lines of Code (LOC)There are several problems with using LOC as a unit of measure for software. Imagine twoapplications that provide the same exact functionality (screens, reports, databases). One of theapplications is written in C++ and the other application written a language like Clarion (a veryvisual language). The number of function points would be exactly the same, but aspects of theapplication would be different. The lines of code needed to develop the application would not bethe same. The amount of effort required to develop the application would be different (hours perfunction point). We are able to compare the productivity of the languages. Unlike Lines of

    Code, the number of function points will remain constant (should remain constant).

    With this in mind;

    1. The number of lines of code delivered is dependent upon the skill level of theprogrammer. In fact, the higher skill level of the programmer the few lines of code theywill develop to perform the same function.

  • 8/3/2019 Function Point Tutorial

    13/115

    Introduction

    Page 13www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Frederick W. Taylor

    2. Higher-level languages such as Forte, Dynasty, VB, Java Script, or other visuallanguages require far fewer lines of code than Assembler, COBOL, or C to perform thesame functionality. That is, there is an inverse relationship between level of language andwork output (when work output is LOC).

    3. The actual number of LOC is not known until the project is almost completed.Therefore, LOC cannot be used to estimate the effort or schedule of a project. FunctionPoints can be derived from requirements and analysis documents that are available earlyin a project life cycle.

    4. There is no agreed upon method to count lines of code. The statement and type ofstatements used in Visual C++, Assembler, COBOL, SQL are completely different. It iscommon for applications to have a combination of different languages being utilized.

    Understanding Productivity:The standard economic definition of productivity is Goods or services per unit of labor or

    expenses until 1979, when A.J. Albrecht of IBM published a paper about Function Points, therewas no definition of what goods or services were the output of software project. The good orservice of software is the business functionality provided.

    While software productivity is a relatively new subject industrialproductivity has been a subject of interest for many years. One of the firstindividuals to study productivity was Frederick Taylor (1856-1912). Taylorsmajor concern throughout most of his life was to increase efficiency inproduction. Taylor decided that the problem of productivity was a matter ofignorance on the part of management. Taylor believed that application ofscientific methods, instead of custom and rules of thumb could yield higher

    productivity. A century after Frederick Taylor most software managers userules of thumb instead of systematic study.

    Hawthorne Studies

    Several scientists undertook the famous experiments at the Hawthorne plant of the WesternElectric Company in 1927 and 1932. They began a study to determine the effect of illuminationon workers and their productivity. They found that productivity improved when illuminationwas either increased or decreased for a test group. They found that when people felt they werebeing noticed then their productivity increased. They also found that the improvement inproductivity was due to such social factors as morale, satisfactory interrelationships and effectivemanagement. They also found that the best managers were those that managed via counseling,leading, and communicating. The phenomenon, arising basically from people being noticed,has been known as the Hawthorne effect.

    History of Software Measurements

  • 8/3/2019 Function Point Tutorial

    14/115

    Chapter 1

    Page 14

    While there have been many individuals that have contributed to the advancement of softwaremeasurement the most prominent pioneers are Capers Jones, Tom DeMarco, Howard Ruben,Barry Boehm and Alan Albrecht.

    Capers Jones

    Perhaps the most prolific author on the subject of software metrics. While he has many booksthat should be read by any serious practitioner of software metrics his most notable contributionwas Applied Software Measurement.

    Barry Boehm

    In the late 1970s Dr. Boehm wrote the book, Software Engineering Economics.

    Alan Albrecht

    Function Point Analysis was developed first by Allan J. Albrecht in the mid 1970s. It was anattempt to overcome difficulties associated with lines of code as a measure of software size, andto assist in developing a mechanism to predict effort associated with software development. The

    method was first published in 1979, then later in 1983. In 1984 Albrecht refined the method andsince 1986, when the International Function Point User Group (IFPUG) was set up, severalversions of the Function Point Counting Practices Manual have been published by IFPUG.

    Productivity:

    The definition of productivity is the output-input ratio within a time period with dueconsideration for quality.

    Productivity = outputs/inputs (within a time period, quality considered)

    The formula indicates that productivity can be improved by (1) by increasing outputs with thesame inputs, (2) by decreasing inputs but maintaining the same outputs, or (3) by increasingoutputs and decreasing inputs change the ratio favorably.

    Software Productivity = Function Points / Inputs

    Effectiveness v. Efficiency:

    Productivity implies effectiveness and efficiency in individual and organizational performance.Effectiveness is the achievement of objectives. Efficiency is the achievement of the ends withleast amount of resources.

    Understanding Software Productivity:Software productivity is defined as hours/function points or function points/hours. This is theaverage cost to develop software or the unit cost of software. One thing to keep in mind is theunit cost of software is not fixed with size. What industry data shows is the unit cost of softwaregoes up with size.

  • 8/3/2019 Function Point Tutorial

    15/115

    Introduction

    Page 15www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    How does size impact productivity

    As the size of software development project becomes larger the cost per function point actuallyrises. As can be seen from the graph and data, the effort per unit does not remain constant as thesize of the software project increases. This is self-evident because the tasks are not the same for

    software projects as the size increases.

    What is Marginal Cost?

    As some of you remember Marginal Cost is an economic term and is different from average cost.

    Average cost is the total cost of producing a particular quantity of output divided by thatquantity. In this case to Total Cost/Function Points.

  • 8/3/2019 Function Point Tutorial

    16/115

    Chapter 1

    Page 16

    Marginal cost is the change in total cost attributable to a one-unit change in output. In our case,how does per unit cost change as the software project size change? How does the cost ofsoftware change as the product becomes larger and larger?

    Imagine the average cost per square foot of a one-story building compared to the cost per square

    foot of a 100-story building. No doubt the construction costs (per unit cost) for the 100-storybuilding are much higher than a one-story building. This same concept is true for a softwareproject.

    Besides size there are several other factors, which impact the cost of construction

    Where the building is located

    Who is the general contractor?

    Who does the actual labor?

    Why increasing Marginal Costs for Software Development?

    There are a variety of reasons why marginal costs for software increase as size increases. Thefollowing is a list of some of the reasons

    As size becomes larger complexity increases.

    As size becomes larger a greater number of tasks need to be completed.

    As size becomes larger there is a greater number of staff members and they become moredifficult to manage.

    Since fixed costs for software projects is minimal. There are little if any economies of scale forsoftware projects.

    Function Points are the output of the software development process. Function points are the unitof software. It is very important to understand that Function Points remain constant regardlesswho develops the software or what language the software is develop in. Unit costs need to beexamined very closely. To calculate average unit cost all items (units) are combined anddivided by the total cost. On the other hand, to estimate the total cost each item is examined.

  • 8/3/2019 Function Point Tutorial

    17/115

    Introduction

    Page 17www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    For example, assume you are going to manufacture a computer mousepad. The totalCost to manufacture 1,000 mousepad is $2,660. The unit cost is $2.66 (per pad). The cost breakdown is:

    Artwork is a fixed cost at $500 (or .50 per unit) Set Up costs are $250 (or .25 per unit)

    Shipping costs are $10 (or .01 per unit)

    Papers for production will cost $1.50 per unit.

    Rubber Pads are $ .15 per unit.

    Application of paper to pad cost is $.25 per unit

    Notice the variation in the unit cost for each item. One of the biggest problems with estimatingsoftware projects is understanding unit cost. Software managers fail to break down items intosimilar components or like areas. They assume all units cost the same.

    There are different costs for each of the function point components. The unit cost for externalinputs is not the same as the unit cost of external outputs for example. The online external inputsand the batch external inputs do not have the same unit cost (or cost per function point). Thecost per unit to build and implement internal logical files is not the same per unit cost as thebuilding and implementing of online reports.

    To accurately estimate the cost of an application each component cost needs to be estimated.The same is true for the mousepad problem above.

    Questions:

    Problem 1How would you estimate the number of hot chocolates being sold at the AFC Championshipgame in Kansas City (use your imagination, the Chiefs could be there)?

    What are the keys factors to consider?

    Who would you benchmark against and why?

    Problem 2What is the average cost per mousepad if you produce 1,000 units at the following costs?

    Artwork is a fixed cost at $500Sets Up costs are $250Shipping costs are $10Papers for production will cost $2.50 per unit.Pads are $ .25 per unit.Application of paper to pad cost is $.35 per unit

  • 8/3/2019 Function Point Tutorial

    18/115

    Chapter 1

    Page 18

    Are the unit costs the same for all items?

    Is it correct to assume that unit costs are fixed for software? (Intuitively, do you expect the perunit cost to create reports the same as the per unit cost to build a data base.)

  • 8/3/2019 Function Point Tutorial

    19/115

    Page 19www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    FUNCTION POINT COUNTING PROCESS

    Objective of Section:The objective of this chapter is to introduce the student to the high level steps necessary to countfunction points and to perform function point analysis. Details of each step are discussed later inthis book. The exercises at the end of the section help the student demonstrate that they havegained the basic knowledge required.

    Introduction:Even though there have been attempts by the National Bureau of Standards (NBS) and IEEE to

    standardize terms and definitions, there are no industry wide practiced terms and definitionsrelated to software development. IFPUG has developed some standard terms and definitionsrelated to function points, but these terms and definitions need to be applied to a variety ofdifferent software environments.

    Clients who have standardized their terminology within their own environments have seensignificant jumps in productivity. That is, they have reduced the number of verbs used todescribe transactions and other events.

    Imagine if we compared a blue print document used for construction purposes with a typicalsoftware design document. While the blue print uses standard terminology the software design

    document uses a variety of different terminology to describe the same exact thing.

    Definition:The overall objective is to determine adjusted function point count. There are several stepsnecessary to accomplish this. While you may not understand the mechanics of the followingsteps, they will be discussed in great detail in the remainder of the book. The actual sequence ororder of steps is not necessary. Many counters will complete step 5 through out the entire count gathering information as they go;

    1. Determine type of function point count2. Determine the application boundary

    3. Identify and rate transactional function types to determine their contribution to the unadjustedfunction point count.

    4. Identify and rate data function types to determine their contribution to the unadjusted functionpoint count.

    5. Determine the value adjustment factor (VAF)

    2

  • 8/3/2019 Function Point Tutorial

    20/115

    Chapter 2

    Page 20

    6. Calculate the adjusted function point count.

    The unadjusted function point (UFP) count is determined in steps 3 & 4. Steps 3 & 4 arediscussed later in this chapter and discussed in detail later in the book. It is not important if step3 or step 4 is completed first. In GUI and OO type applications it is easy to begin with step 3.

    The final function point count (adjusted function point count) is a combination of bothunadjusted function point count (UFP) and the general system characteristics (GSCs).

  • 8/3/2019 Function Point Tutorial

    21/115

    Function Point Counting Process

    Page 21www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Types of Function Point Counts:Function point counts can be associated with either projects or applications. There are threetypes of function point counts.

    Development project functionpoint count

    Enhancement project functionpoint count

    Application function point count

    High Level Steps:

    o complete a function point count knowledge of function point rules and applicationdocumentation is needed. Access to an application expert can improve the quality of thecount also.

    Once the application boundary has been established, FPA can be broken into three majorparts (FPA for transactional function types, FPA for data function types and FPA for GSCs).

    Independence and Dependence:Since the rating of transactions is dependent on both information contained in the transactionsand the number of files referenced, it is recommended that transactions are counted first. At thesame time the transactions are counted a tally should be kept of all FTRs that the transactionsreference. It will be made clear in later chapters that every FTR must have at least one or moretransactions.

    High Level FPA Process

    Application Documentation

    Application Experts

    FPA RulesFPFPA

    FPA

    FPA Major Processes

    FPA for Tranactions

    FPA for Files

    FPA for GSCs

  • 8/3/2019 Function Point Tutorial

    22/115

    Chapter 2

    Page 22

    FPA Steps for Transactional Function Types:Later in this document external inputs, external outputs and external inquiries are discussed indetail. Each transaction must be an elementary process. An elementary process is the smallestunit of activity that is meaningful to the end user in the business. It must be self-contained andleave the business in consistent state.

    T1. Application documentation and transactionrules are used to identifytransactions.

    T2. The applicationdocumentation and transactionrules are used to determinetype of transaction (externalinput, external output, orexternal inquiry).

    T3. With the help ofapplication documentation(data model and transactionmodel) and transaction rules the number data elements and file type referenced are determined.

    T4. Each identified transaction is assigned a value of low, average or high based upon type, dataelements, and files referenced.

    T5. A distinct numerical value is assigned based upon type and value (low, average, or high).

    T6. All transactions are summed to create a transaction unadjusted function point count.

    FPA for Transactions

    FPA Rules

    Application Documentation

    Functional Complexity

    Transaction Model

    Data Model

    T1. Identify Transactions

    T2. Type of Transaction(EO, EI, EQ)

    T3. Number of DETs and FTRs

    T4. Determine Low, Ave, High

    T5. Values Determined

    T6. All Transactions are

    summed to obtain UFP for

    Transactions.

    Transaction Rules

    Tables of Weight

  • 8/3/2019 Function Point Tutorial

    23/115

    Function Point Counting Process

    Page 23www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    FPA Steps for Files:

    Later in this document internal logical files and external interface files are discussed in detail.

    F1. Applicationdocumentation and file rulesare used to identify files.

    F2. The applicationdocumentation (transactionmodel and data model) is usedto determine type of file(either external interface fileor internal logical file).

    F3. With the help ofapplication documentation(data model) and file rules the number data elements and record element types are determined.

    F4. Each identified file is assigned a value of low, average or high based upon type, dataelements and record types.

    F5. A distinct numerical value is assigned based upon type and value (low, average, or high).

    F6. All files are summed to create a file unadjusted function point count.

    Questions:

    Is there any benefit to the sequence or order of counting function points? That is, is there abenefit to counting transactions prior to FTRs?

    Are transactions independent or dependent on FTRs?

    What about FTRs? Are they counted independent or dependent of Transactions?

    FPA for Files

    FPA Rules

    Application Documentation

    Functional Complexity

    Transaction Model

    Data Model

    F1. Identify Files

    F2. Type of File(ILF or EIF)

    F3. Number of DETs and RETs

    F4. Determine Low, Ave, High

    F5. Values Determined

    F6. All Files are summed to

    obtain UFP for Files.

    File Rules

    Tables of Weight

  • 8/3/2019 Function Point Tutorial

    24/115

    Page 24www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    ESTABLISHING THE BOUNDARY

    Objective of Section:Describe and define the concepts necessary to establish a boundary between applications.

    Definition:Since it is common for computer systems to interact with other computer systems and/or humanbeings, a boundary must be drawn around each system to be measured prior to classifyingcomponents. This boundary must be drawn according to the sophisticated users point of view.In short, the boundary indicates the border between the project or application being measuredand the external applications or user domain. Once the border has been established, componentscan be classified, ranked and tallied.

    One of the benefits of function point is analysis is creating ratios with other metrics such hours,cost, headcount, duration, and other application metrics. It is important the function pointboundary be consistent with other metrics that are being gathered for the application and project.

    Identify the Boundary: Review the purpose of the function point count.

    Look at how and which applications maintain data.

    Identify the business areas that support the applications.

    The boundary may need to be adjusted once components have been identified. In practice theboundary may need to be revisited, as the overall application is better understood. Functionpoint counts may need to be adjusted as you learn about the application.

    Standard Documentation: General Specification Documents

    Interface Documents

    Other metric reports

    Interviews with the users

    User Documentation

    Design Documentation

    Requirements

    Data flow diagrams

    Establishing the Boundary early in the Life cycle:Boundaries can be established early in the software life cycle. If the application is a replacementproject, then the project boundary should be similar (perhaps identical) to the previous

    3

  • 8/3/2019 Function Point Tutorial

    25/115

    Identifying RETs, DETs and FTRs

    Page 25www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    application. If the application is a new application, other applications boundaries should bereviewed to establish the correct boundary.

    Technology Issues:

    Internet/Intranet ApplicationsThe boundary for an Internet/Intranet application is defined in a similar way for traditionalapplications. For traditional applications the boundary is not drawn just around the userinterface or a group of screens but around the entire application. Frequently, Internet/Intranetapplications are just extensions to current and existing applications. There is a tendency tocreate a "new" application for the Internet/Intranet extension, but this approach is incorrect.

    Client/Server

    The boundaries for client/server applications need to be drawn around both the client and server.The reason is that neither the client nor server supports a users (or sophisticated) view. That is,one alone does not represent a total application. As mentioned early, any complete application

    needs both data at rest (server) and data in motion (client).

    Tabulating:There is no special tabulating that needs to take place for establishing the boundary, but theboundary can dramatically impact the number of external inputs and external outputs.

    Questions:

    In theory, how does making the boundary too large impact a function point count?

    What if the boundary is too small?

  • 8/3/2019 Function Point Tutorial

    26/115

    Page 26www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    IDENTIFYING RETS, DETS ANDFTRS

    Objective of Section:Learn the necessary techniques to identify a RET, a DET and a FTR. Understanding how toidentify DETs and FTRs is critical to distinguish one transaction from another. While inpractice understanding the exact number of DETs and FTRs may not impact a function pointcount, understanding DETs and FTRs can help understand how to count function points forenhancement function point counts. The exercises at the end of the section help the studentdemonstrate that they have gained the basic knowledge required.

    Definition:

    Record Element Type (RET): A RET is user recognizable sub group of data elements within anILF or an EIF. It is best to look at logical groupings of data to help identify them. The conceptof RET will be discussed in detail in the chapters that discuss internal logical file and externalinterface files. Additionally, a short article, Understanding RETs can be found at record types.

    File Type Referenced (FTR): A FTR is a file type referenced by a transaction. An FTR must alsobe an internal logical file or external interface file.

    Data Element Type (DET): A DET is a unique user recognizable, non-recursive (non-repetitive)field. A DET is information that is dynamic and not static. A dynamic field is read from a fileor created from DETs contained in a FTR. Additionally, a DET can invoke transactions or can

    be additional information regarding transactions. If a DET is recursive then only the firstoccurrence of the DET is considered not every occurrence.

    Understanding the FTRs and DETs helped distinguish one transaction from anothertransactions. This concept will be discussed in detail later in this book.

    Rating:All of the components are rated based upon DETs, and either RETs or FTRs.

    Component RETs FTRs DETs

    External Inputs (EI)

    External Outputs (EO)

    External Inquiries (EQ)

    External Interface Files (EIF)

    Internal Logical Files (ILF)

    4

  • 8/3/2019 Function Point Tutorial

    27/115

    Identifying RETs, DETs and FTRs

    Page 27www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Transaction DETs:External Inputs: Data Input Fields, Error Messages, Calculated Values, Buttons External Outputs: Data Fields on a Report, Calculated Values, Error Messages, and ColumnHeadings that are read from an ILF. Like an EQ and EO can have an input side and output sides. External Inquiries: Input Side - field used to search by, the click of the mouse. Output side -

    displayed fields on a screen.

    Record Element Types (RETs):Record element types are one of the most difficult concepts in function point analysis. Mostrecord element types are dependent on a parent - child relationship. In this case, the childinformation is a subset of the parent information. In a parent child relationship there is a one tomany relationship. That is, each child piece of information is linked directly to a field on theparent file. More will be discussed about RETs in the internal logical file and external interfacefile sections.

    Tips to Identify RETs and DETs early in the life cycle:RETs and DETs may be difficult to evaluate early in the software life cycle. Since RETs andDETs are essential to rating components, several techniques can be used to rate components.

    Rate all transactional function types and data function types as Average.

    Determine how are transactional function type and data function types rated in similar typeapplications. Are the majority of data function types rated as low in similar typeapplications?

    DETs for GUIUsing the strict definition of a data element provided by IFPUGs Counting Practices Manual.A data element is a user recognizable, non recursive field. Unfortunately this does not providemuch guidance when counting GUI applications. In fact, the IFPUG Counting Practices manualdoes not provide much detail on counting, radio buttons, check boxes, pick list, drop downs, lookups, combo boxes, so on and so forth. In GUI applications, a data element is information that isstored on an internal logical file or that is used to invoke a transaction. A comprehensive articleon the application of Function Points to New and Emerging Technologies exist atWebsite\Articles\index.htm

    Radio Buttons

    Radio Buttons are treated as data element types. Within a group of, a frame, radio buttons theuser has the option of selecting only one radio button; so only one data element type is countedfor all the radio buttons contained in the frame.

  • 8/3/2019 Function Point Tutorial

    28/115

    Chapter 4

    Page 28

    Check Boxes

    Check Boxes differ from radio buttons in that more than one check box can be selected at a time.Each check box, within a frame, that can be selected should be treated as a data element.

    Command Buttons

    Command buttons may specify an add, change, delete or inquire action.A button, like OK, may invoke several different types of transactions.

    According to IFPUG counting rules each command button would be counted as a data elementfor the action it invokes. In practice this data element will not impact the rating of thetransaction, but it does help understand and dissect a screen full of transactions.

    A button like next may actually be the input side of an inquiry or anothertransaction.

    For example, a simple application to track distributors could have fields for Distributor Name,

    Address, City, State, Zip, Phone Number, and Fax Number. This would represent seven fields or(seven data elements) and the add command button would represent the eighth data element. Inshort, the add external input represent a one external input with eight data elements, thechange external input represents another external input with eight (seven data elements plusthe change command button), and the delete external input represents the last external inputwith eight data elements (seven fields plus the delete command button).

    Display of Graphical Images or Icons

    A display of a graphical image is simply another data element. An inventory application, forexample, may contain data about parts. It may contain part name, supplier, size, and weight andinclude a schematic image of the part. This schematic is treated as a single data element.

    Sound Bytes

    Many GUI applications have a sound byte attached. This represents one data element. Thenumber of notes played is simply recursive information. If the length of the sound byteincreases, then the data element remains one. For example, you can play the Star SpangledBanner for two seconds or four seconds, but youll still count the sound bytes as one dataelement. The longer it is played the more recursive information it has.

    Photographic Images

    A photographic image is another data element, and is counted as one. A human resourceapplication may display employee name, start date, etc. and a photograph of the employee. Thephotograph is treated the same as employee name or employee start date. The photograph isstored and maintained like any other piece of information about the employee.

    Messages

    There are three types of messages that are generated in a GUI application: error messages,confirmation messages and notification messages. Error messages and confirmation messagesindicate that an error has occurred or that a process will be or have been completed. They are

  • 8/3/2019 Function Point Tutorial

    29/115

    Identifying RETs, DETs and FTRs

    Page 29www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    not an elementary or independent process alone, but they are part of another elementary process.A message that would state, zip code is required would be an example of an error message. Amessage that would state, are you sure you want to delete customer is an example of aconfirmation message. Neither type of message is treated as a unique external output, but each istreated as a data element for the appropriate transaction.

    On the other hand, a notification messages is a business type message. A notification is anelementary process, has some meaning to the business user and is independent of otherelementary processes. It is the basis of processing and a conclusion being drawn. For example,you may try to withdraw from an ATM machine more money than you have in your account andyou receive the dreaded message, You have insufficient funds to cover this transaction. Thisis the result of information being read from a file regarding your current balance and aconclusion being drawn. A notification message is treated as an External Output.

    DETs For Real Time SystemsUsing the strict definition of a data element provided by IFPUGs Counting Practices Manual.

    A data element is a user recognizable, non recursive field. Unfortunately this does not providemuch guidance when counting real time or embedded systems. In fact, the IFPUG CountingPractices manual does not provide any detail on counting these types of systems.

    Some traditional definitions can be applied directly to real time and embedded systems. Thefields on a diagnostics file: time of diagnostics, hardware state during diagnostics, temperature,voltage, so on and so forth would all be examples of data elements.

    Real Time Systems may not have any traditional user interface. That is, the stimulus for theReal Time System may be its own output or state. A real time or embedded systems cansignal to determine current Hardware State (or location) and determine the appropriate

    adjustment (input) based on the current state.

    NavigationNavigation is moving from one transaction to another.

    Skill Builder:

    1. The following information is heard in the Rome Train Station. How many data elementsare heard? That is, what information varies from one train arrival to the next?

    The train arriving from Florence will arrive on Track 46 at 8:30 a.m.The train arriving from Naples will arrive on Track 43 at 11:00 a.m.

    2. The totals on a particular report change colors depending if the amount is above or below$ 500.

  • 8/3/2019 Function Point Tutorial

    30/115

    Chapter 4

    Page 30

    3. For example if the amount is -$250 it appears as $250, but if the amount is over 0 thenthe value appears blue. For example if the amount is$1,000. How many data elementsare represented by the number and by the color?

  • 8/3/2019 Function Point Tutorial

    31/115

    Page 31www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    EXTERNAL INPUTS

    Objective of Section:Describe and define the concepts necessary to identify and rate External Inputs. The exercises atthe end of the section help the student demonstrate that they have gained the basic knowledgerequired.

    Definition:External Inputs (EI) - is an elementary process in which data crosses the boundary from outsideto inside. This data may come from a data input screen or another application. The data may beused to maintain one or more internal logical files. The data can be either control information or

    business information. If the data is control information it does not have to maintain an internallogical file.

    If an external input adds, changes and deletes (maintains) information on an internal logical file,then this represents three external inputs. External inputs (especially change & delete) may bepreceded by an external inquiry (see the section on external inquiries). Hence a full functionscreen is add, change, delete and inquiry (more will be discussed about inquiries later in thebook).

    Rating:Like all components, EIs are rated and scored. The rating is based upon the number of data

    element types (DETs) and the file types referenced (FTRs). DETs and FTRs are discussedearlier. The table below lists both the level (low, average or high) and appropriate score (3, 4 or6).

    Files Type Referenced (FTR) Data Elements

    1-4 5-15 Greater than 15

    Less than 2 Low (3) Low (3) Average (4)

    2 Low (3) Average (4) High (6)

    Greater than 2 Average (4) High (6) High (6)

    Counting Tips:Try to ask the question, do external inputs need more or less than 2 files to be processed? Forall the EIs that reference more than 2 FTRs, all that is needed to know is if the EI has more orless than 4 data element types referenced. If the EI has more than 4 DETs the EI will be rated

    5

  • 8/3/2019 Function Point Tutorial

    32/115

    Chapter 5

    Page 32

    as high; less than 4 DETs the EI will be rated as average. Any EIs that reference less than 2FTRs should be singled out and counted separately.

    Examples:EIs can be business data, control data and rules based data.

    Business Data: Customer Name, Address, Phone, and so on and so forth.

    Control Data:

    The data elements are thosethat invoke the transaction orchange the behavior of theapplication. Each check boxrepresents a data element.Additionally, the sort

    employee list radio buttonsrepresents one data element aswell as the time format radiobuttons.

    Control information changesor alters the state (or behavior) of the application. Control information specifies how, what, andwhen data will be processed.

    Data Elements:Unique sets of data elements help distinguish external input from other external input.

    Data Input Fields

    Calculated Values or Derived Data that are stored

    Error Messages

    Confirmation Messages

    Recursive fields are only counted as one DET.

    Action keys (command buttons such as OK, Next, so on and so forth)

    Multiple Action Keys that perform the same function are counted only as one DET.

    File Types Referenced (FTRs):Unique FTRs helps distinguish external input from other external input. An FTR must be eitheran Internal Logical File and/or External Interface File. Each internal logical file that an externalinput maintains is counted as an FTR. Any internal logical file or external interface file that isreferenced by an external input as part of the elementary process of maintaining an internallogical file would be considered an FTR also. For example, an External Input may update an

  • 8/3/2019 Function Point Tutorial

    33/115

    External Inputs

    Page 33www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    internal logical file, but must also reference a security file to make sure that the user hasappropriate security levels. This would be an example of two FTRs.

    Uniqueness:

    A unique set of data elements, and/or a different set of FTRs, and/or a unique set of calculationsmake one external input unique or different from other external inputs. That is, one of thefollowing must be true:

    Unique or different set of data elements

    Unique or different set of FTRs

    Unique or different calculations

    Calculations alone are not an elementary process but part of the elementary process of theexternal input. A calculation (or derived data) does not make the transaction an external output.External outputs and derived data will be discussed in detail in the external output section of thisdocument.

    Understanding Enhancement Function Points:Modification of any of the items, which make an External Input unique from other externalinputs, causes the EI to be enhanced. If any of the following are true:

    DETs added to an EI

    DETs modified on an EI. The DET was included in the last FP Count.

    A New FTR

    Modifications to a calculation that appears on an EI.

    Technology Issues:

    GUI

    Radio Buttons - each set of radio buttons is counted as one DET. Only one radio button can beselected at a time.

    Pick Lists- The actual pick list (also known as drop downs, lookups) could be an externalinquiry, but the result of the inquiry may be a DET for an external input.

    Check Box - Each check box that can be simultaneously checked is a unique DET.

    Buttons - Buttons can be DETs. The OK button above would be a data element. If there was aseries of buttons Add, Change and Delete. Each button would be counted as a DET for theassociated transaction.

  • 8/3/2019 Function Point Tutorial

    34/115

    Chapter 5

    Page 34

    A single GUI screen may represent several transactional function types. For example, it iscommon for a GUI screen to have a series of external inquiries followed by an external input.

    OtherError Messages - error messages are counted as data elements (DETs), not unique external

    inquiries. Count one DET for the entire input screen. Multiple Error Messages are similar torecursive values. An error message is part of another elementary process.

    The number of error messages on a GUI screen is less than the number of error messagesassociated with traditional applications. If used correctly, radio buttons and pick lists can forceusers to select correct information; therefore, eliminating the need to do editing behind thescenes.

    In practice the number of DETs do not make much of a difference in evaluating an EI,understanding error or confirmation messages help in the understanding of uniqueness.

    Real Time and Embedded SystemsIn real time and embedded systems communication between hardware and software is commonand should not be overlooked when counting these types of systems. Other types of inputs forreal time and embedded systems are: Operator Controls, Volume Controls, Sensor Readings,Radio Frequencies, Standards and Limit Settings (Alarms Settings, so on and so forth.

    Standard Documentation:A good source of information to determine external inputs is Screen Layouts, Screen Formats &dialogs, and layouts of any input forms. Additional inputs from other applications should beinventoried here. Inputs from other applications must update internal logical files of theapplication being counted.

    Screen Layouts

    Screen Dialogs

    Design Documentation

    Functional Specifications

    User Requirements

    Any Input Forms

    Context Diagrams

    Data Flow Diagrams

    Tips to Identify External Inputs early in the life cycle:

    The following types of documentation can be used to assist in counting EIs prior to systemimplementation.

    Any refined objectives and constraints for the proposed system.

    Collected documentation regarding the current system, if such a system (either automated ormanual) exits.

    Documentation of the users perceived objectives, problems and needs.

  • 8/3/2019 Function Point Tutorial

    35/115

  • 8/3/2019 Function Point Tutorial

    36/115

  • 8/3/2019 Function Point Tutorial

    37/115

    Page 37www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    EXTERNAL OUTPUTS

    Objective of Section:Describe and define the concepts necessary to identify and rate External Outputs. The exercisesat the end of the section help the student demonstrate that they have gained the basic knowledgerequired.

    Definition:External Outputs (EO) - an elementary process inwhichderived data passes across the boundary frominside to outside. Additionally, an EO may update anILF. The data creates reports or output files sent toother applications. These reports and files are created

    from information contained in one or more internallogical files and external interface files.

    Derived Data is data that is processed beyond direct retrieval and editing of information frominternal logical files or external interface files. Derived data is usually the result of algorithms,or calculations. Derived data occurs when one or more data elements are combined with aformula to generate or derive an additional data element(s). This derived data does not appearin any FTR (internal logical file or external interface file).

    An algorithm is defined as a mechanical procedure for performing a given calculation or solvinga problem in a series of steps.

    A calculation is defined as an equation that has one or more operators. An operator is amathematical function such as addition, subtraction, multiplication, and division (+, -,x, /).

    Rating:Like all components, EOs are rated and scored. The rating is based upon the number of dataelements (DETs) and the file types referenced (FTRs). The rating is based upon the totalnumber of unique (combined unique input and out sides) data elements (DETs) and the filetypes referenced (FTRs) (combined unique input and output sides). DETs and FTRs werediscussed earlier in this section. The table below lists both the level (low, average or high) andappropriate score (4, 5 or 7).

    File Types Referenced (FTR) Data Elements

    1-5 6-19 Greater than 19

    less than 2 Low (4) Low (4) Average (5)

    2 or 3 Low (4) Average (5) High (7)

    6

  • 8/3/2019 Function Point Tutorial

    38/115

  • 8/3/2019 Function Point Tutorial

    39/115

    External Outputs

    Page 39www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    System generated dates that are on the tops or reports or are displayed are normally notcounted as DETs. If system generated dates is part of business information of the externaloutput they should be counted as DETs. For example, the date an invoice is printed or thedate a check is printed.

    File Types Referenced (FTR):Unique FTRs help distinguish one external output from another. An FTR must be either anInternal Logical File and/or External Interface File.

    The elementary process associated with an external output may update an internal logical file orexternal interface file. For example, the elementary process that produces as payroll check mayinclude an update to a file to set a flag to indicate that the payroll check was produced. This isnot the same as maintaining the file. Maintained is the process of modifying data (adding,changed and deleting) via an elementary process (via an External Input). The primary intent ofan EO is not to maintain an ILF.

    Uniqueness:A unique set of data elements, and/or a different set of FTRs, and/or a unique set of calculationsmakes one external output unique or different from other external outputs. That is, one of thefollowing must be true:

    Unique or different set of data elements

    Unique or different set of FTRs

    Unique or different calculations

    Unique processing logic

    Understanding Enhancement Function Points:Modification of any of the items, which make an External Output unique from other externaloutputs, causes the EO to be enhanced. If any of the following are true:

    DETs added to an EO

    DETs modified on an EO. The DET was included in the last FP Count.

    A New FTR

    Modifications to a calculation that appears on an EO.

    Technology Issues:Each media that a report is sent to is counted as a unique EO. If a report were available on line,paper and electronic it would be counted as three EOs.

  • 8/3/2019 Function Point Tutorial

    40/115

    Chapter 6

    Page 40

    Disk Cache: Information that is prepared, processed, and derived and put on cache files foranother application to utilize should not be overlooked. These cached files may be externaloutputs or external inquiries.

    Standard Documentation:

    Report Layouts Design Documentation

    Functional Specifications

    User Requirements

    Database descriptions

    Field Sizes and Formats

    Graphical Report Layouts

    Tips to Identify External Outputs early in the life cycle:The following types of documentation can be used to assist in counting External Outputs prior to

    system implementation.

    Any refined objectives and constraints for the proposed system.

    Collected documentation regarding the current system, if such a system (either automated ormanual) exits.

    Documentation of the users perceived objectives, problems and needs.

    Preliminary Data Flow Diagrams.

    Typical Vocabulary:

    The following words are associated with an external outputs. While reading textualdocuments or application descriptions look for these types of words. They may indicate anexternal output. Notice these words are very similar to those words used for an External Inquiry(discussed in the next chapter).

    BrowseDisplayGetOn-linesOutputPrint

    Query

    ReportsRequestRetrieveSeekSelectView

  • 8/3/2019 Function Point Tutorial

    41/115

    External Outputs

    Page 41www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Special Issues and Concerns:

    When to count DETs for Report Headings:

    Report headings are counted when they are dynamic. That is, if report headings are being readfrom an internal logical file they should be counted as DETs.

    Can an External Output have an input side?

    Since the input side is not stand-alone (independent or an elementary process) it should beconsidered as part of the entire external output. The FTRs and DETs used to search should becombined with unique outside DETs and FTRs for at grand total FTRs and DETs for theentire EO. In short, an external output can have an input side.

    Can an External Output Update an Internal Logical File?

    An external output can update an internal logical file, but it is incorrect to say that an externaloutput can maintain an internal logical file. The update is part of the elementary process of theexternal output. An external input maintains data on and ILF file. The maintain process is anelementary process alone. The definition for maintaining is discussed in the internal logical fileand external input sections of this book.

    Graphs

    Graphs are counted the same way as the textual EOs. That is, the graph is rated and scoredbased on the number of DETs and the number of FTRs. In fact, recursive information is easilyseen in a graph, but can be more difficult to visualize in a text report.

    There are 10 data elements in the following table1. Days

    2. Hits3. % of Total Hits4. User Sessions5. Total Hits (weekday)6. Total % (weekday)7. Total User Sessions (weekday)8. Total Hits (weekend)9. Total % (weekend)10. Total User Sessions (weekend)

  • 8/3/2019 Function Point Tutorial

    42/115

    Chapter 6

    Page 42

    Days, Hits, % of Total Hits and User Sessions all have recursive data.

    The same data could be processed and presented as bar graph. But on the following bar graphthere are only two data elements (user session and day of week). The bar graph is a separateexternal output and is unique from the above table. In short, it provides different businessslightly different information than the table.

    Skill Builder:The following questions are used to help build on the concepts discussed in this section. Theyare designed to encourage thought and discussion.

    Ice Cream Cone Sales by Month

  • 8/3/2019 Function Point Tutorial

    43/115

  • 8/3/2019 Function Point Tutorial

    44/115

    Chapter 6

    Page 44

    Max Average Daily Temperature in Kansas City

    Data is from 1893 - Present

    32

    42

    52

    62

    72

    82

    92

    102

    Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec

    Month

    Fahrenheit

    0

    5

    10

    15

    20

    25

    3035

    40

    Celsius

  • 8/3/2019 Function Point Tutorial

    45/115

    External Outputs

    Page 45www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    5. How many data elements are there in the following pie chart?

    6. If an EO has 4 file types referenced and 15 data elements is it rated, low average or high?

    7. What about 5 data elements with 4 FTRs? Or 45 Data elements with 4 FTRs?

    8. Is it possible to have an EO that does not reference any ILFs? Why?

    9. What is the criterion for an EO to be rated low?

    10. Fill in the value of a low ____ average ____ and high ____ EO? How does thiscompare to an EQ? Why the difference?

    11. You have a list of 25 reports and you can safely assume that each report is separateelementary processes, estimate the number of unadjusted function points.

    12. You are given a list of the following 5 reports and the only information you have are the

    number of FTRs.Report 1, 3 FTRsReport 2, 5 FTRsReport 3, 1 FTRReport 4, 2 FTRsReport 5, 1 FTR

    Percent of Cones Sold by Flavor

    Vanilla

    37%

    Chocolate

    33%

    Strawberry

    20%

    Pistachio

    4%

    Other

    6%

    Figure 2

  • 8/3/2019 Function Point Tutorial

    46/115

    Chapter 6

    Page 46

    Estimate the number of unadjusted function points. What method did you use?

    13. How would estimate the unadjusted number of function points if you were provided thefollowing information.

    Report 1, 4 DETsReport 2, 25 DETsReport 3, 10 DETsReport 4, 15 DETsReport 5, 2 DETs

    14. What method did you use?

    15. Previously, the line graph of ice cream cone sales was counted as one unique ExternalOutput. If a graph were exactly the same except in Italian, would this be consideredanother unique external output?

    16. Two separate checks are created an expense check and a payroll check. Both checks lookidentical and have the following fields, employee name, employee address, amount ofcheck, date of check is printed. The expenses check uses the expenses reimbursementfile and the employee file and the payroll check uses the payroll file and the employeefile. The calculations for each check are different. How many external outputs arethere? Explain your answer?

  • 8/3/2019 Function Point Tutorial

    47/115

    Page 47www.SoftwareMetrics.Com

    Longstreet Consulting Inc March 2004

    EXTERNAL INQUIRIES

    Objective of Section:Describe and define the concepts necessary to identify and rate External Inquiries. The exercisesat the end of the section help the student demonstrate that they have gained the basic knowledgerequired.

    Definition:External Inquiry (EQ) - an elementary process withboth input and output components that result in dataretrieval from one or more internal logical files andexternal interface files. The input process does notupdate or maintain any FTRs (Internal Logical Files or

    External Interface Files) and the output side does notcontain derived data.

    Rating:Like all components, EQs are rated and scored. Basically, an EQ is rated (Low, Average orHigh) like an EO, but assigned a value like and EI. The rating is based upon the total numberof unique (combined unique input and out sides) data elements (DETs) and the file typesreferenced (FTRs) (combined unique input and output sides). DETs and FTRs were discussedin earlier chapter. If the same FTR is used on both the input and output side, then it is countedonly one time. If the same DET is used on both the input and output side, then it is only countedone time.

    Functional Complexity Matrix (shared table between EO and EQ)

    File Types Referenced (FTR) Data Elements

    1-5 6-19 Greater than 19

    less than 2 Low (3) Low (3) Average (4)

    2 or 3 Low (3) Average (4) High (6)

    Greater than 3 Average (4) High (6) High (6)

    7

  • 8/3/2019 Function Point Tutorial

    48/115

    Chapter 7

    Page 48

    Examples:EQs can contain business data, control data and rules based data.

    Business Applications: An example of Business data is customer names, addresses, phone

    number, so on and so forth. An example of Rules Data is a table entry that tells how many days acustomer can be late before they are turned over for collection.

    Drop Down List (a listing of customers by name) would be an example of an EQ.

    A screen full of customer address information would be an example of an EQ.

    Terminology:The definition states that an EO contains information, which derived data passes across theboundary from inside to outside. Some confusion may arise because an EO has an input side.

    The confusion is the definition reads data passes across the boundary from inside to outside. Theinput side of an EO is search criteria, parameters, etc does not maintain an ILF. The informationthat a cross from outside to inside (input side) is not permanent data, but it is transient data. Theintent of the information coming from outside the application (input side) is not to maintain anILF.

    Data Elements:Unique sets of data elements help to distinguish one external inquiry from another externalinquiry.

    Input Side

    Click of a the mouse Search values Action keys (command buttons) Error Messages Confirmation Messages (searching) Clicking on the an action key Scrolling Recursive fields are counted only once.

    Outside Values read from an internal logical file or external interface file Color or Font changes on the screen

    Error Messages Confirmation Messages Recursive fields are counted only once.

    The combined (unique) total input and outside DETs are used when rating EQs.

    Like an EI, action keys that perform the same function but appear multiple times are counted asonly one DET.

  • 8/3/2019 Function Point Tutorial

    49/115

    External Inquiries

    Page 49www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Error Messages and confirmation messages can and do occur on either the input side and/oroutput side. If a user initiates a search and a message is displayed, please wait searching isan example of a confirmation message on the input side. The message all fields must bepopulated is another example of an error message on the input side. On the other hand, if the

    message is customer not found is an example of an error message on the output side. That is,the input side contained no problems. The database was searched and the error has occurredon the output side of the transaction.

    File Type Referenced (FTRs):Unique FTRs help distinguish one external inquiry from another external inquiry.

    Both the input side and output side must be considered when evaluating the FTRs used by anexternal inquiry. Normally they are the same but there are instances where they may not be thesame. The combined total should be used when evaluating an EQ. For example, a securitycheck may be done on the input side of an external inquiry. The security check is done to make

    sure the user of the application has the appropriate level of authority to view the data.

    Uniqueness:A unique set of data elements, and/or a different set of FTRs make one external inquiry uniqueor different from other external inquiry. That is, one of thefollowing must be true:

    Unique or different set of data elements

    Unique or different set of FTRs

    Unique processing logic

    Sorting does not make on external inquiry unique from anothersince the data elements and FTRs are the same.

    An external inquirycannot have calculated values or deriveddata. This characteristic distinguishes an external inquiry from an external output.

    Understanding Enhancement Function Points:Modification of any of the items, which make an External Inquiry unique from other externalinquiries, causes the EQ to be enhanced. If any of the following are true:

    DETs added to an EQ

    DETs modified on an EQ. The DET was included in the last FP Count.

    A New FTR

  • 8/3/2019 Function Point Tutorial

    50/115

    Chapter 7

    Page 50

    Technology Issues:GUI applications are usually rich with EQs (and EOs).A dynamic pick list that reads from a file is an example an External Inquiry.GUI screens my have a series of EQs prior to an EI.

    Standard Documentation: Screen Layouts

    Design Documentation

    Functional Specifications

    Table Layouts

    User Requirements

    Database descriptions

    Pick lists

    Field sizes and formats

    Tips to Identify EQs early in the life cycle:The following types of documentation can be used to assist in counting internal logical files priorto system implementation.

    Any refined objectives and constraints for the proposed system.

    Collected documentation regarding the current system, if such a system (either automated ormanual) exits.

    Documentation of the users perceived objectives, problems and needs.

    Preliminary Data Flow Diagrams.

    Typical Vocabulary:The following words are associated with an external inquiry. While reading textual documentor application description look for these type of words. They may indicate an external inquiry.Notice the words are very similar to those related to external outputs.

    BrowseDisplayExtractFetchFindGetDrop DownListsLook UpsOn-linesOutputPick ListsPrint

    QueryScanSeekSelectShowViewReports

  • 8/3/2019 Function Point Tutorial

    51/115

    External Inquiries

    Page 51www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    Special Issues and Concerns:

    Can an External Inquiry not have an input side?Even though it may not be visible all external inquiries have an input side. In cases where theinput side is not readily visible is referred to as an implied inquiry.

    Can an External Inquiry Update an Internal Logical File?

    Like an external output, an external inquiry may update an internal logical file, but it is incorrectto say that an external inquiry can maintains an internal logical file. The update is part of theelementary process of the external inquiry. The definition for maintaining is discussed in theinternal logical file and external input sections of this book. The only component that maintains

    an internal logical file is an external input.

    Menus (Dynamic Menus)

    The menu displayed to the right is adynamic menu. Word displays the lastseveral files that have been opened. Wecan easily conclude that this information isbeing read from some type of internal file.Hence, the information is dynamic. Themenu would be counted as an externalinquiry.

    Even though the IFPUG Manual explicitlystates that menus are not counted, in thiscase it is clear that the menu is dynamicand changes.

    The real distinction is if a menu isdynamic or static. That is, are the contentsof the screen or report dynamic (read fromsome file) or are they static (hard coded).

  • 8/3/2019 Function Point Tutorial

    52/115

    Chapter 7

    Page 52

    Skill Builder:The following questions are used to help build on the concepts discussed in this section. Theyare designed to encourage thought and discussion.

    The following customer list is displayed by clicking on the title barCustomer. The following list is displayed (and is read from a file).

    If a particular customer is double clicked additional information is displayed.

    1. How many EQs does the Customer Button, Customer: Job List and Edit Customerrepresent?

  • 8/3/2019 Function Point Tutorial

    53/115

    External Inquiries

    Page 53www.SoftwareMetrics.Com

    Longstreet Consulting Inc August 2004

    IfCustomer:Job is clicked then the following menu is displayed. If new is selected a blank(empty screen appears same fields as Edit Customer). If delete is selected on deleteconfirmation is displayed.

  • 8/3/2019 Function Point Tutorial

    54/115

    Chapter 7

    Page 54

    2. How many EIs does this series of screens (Edit, New and Delete) represent?

    3. If an EQ references one file type and has 25 data elements is it rated, low average orhigh? What about 5 data elements? Or 45 Data elements?

    4. Does every EQ have to have at least one FTR? Why?How does this differ from an EO?

    5. What is the criterion for an EQ to be rated high?

  • 8/3/2019 Function Point Tutorial

    55/115

  • 8/3/2019 Function Point Tutorial

    56/115

    Chapter 8

    Page 56

    The Spanish chart is not a unique external output. If external outputs are available in multiplelanguages then several things need to be considered. First there is probably some control inputthat allows the user to dynamically select the language. Second, there is an additional FTRreferenced that contains the language text. Third, this language internal logical file is maintainedby an external input. Fourth, there are more data elements in the report. If an external output isavailable in more than one language then it is not considered an unique external output, but theexternal output is more complex (more DETs and more FTRs).

    Display of Graphical Images or IconsA display of a graphical image is simply another data element. An inventory application maycontain data about parts. It may contain part name, supplier, size, and weight and include aschematic image of the part. This schematic is treated as another data element.

    Another example would be a map. The map may be hot. As the mouse pointer is moved overthe map different city names are displayed. If the user clicks on a particular hot point detailsabout that city i