{"id":268,"date":"2018-07-22T18:29:24","date_gmt":"2018-07-22T18:29:24","guid":{"rendered":"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/?post_type=chapter&#038;p=268"},"modified":"2018-07-22T18:29:24","modified_gmt":"2018-07-22T18:29:24","slug":"function-point-analysis-lecture-i","status":"publish","type":"chapter","link":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/chapter\/function-point-analysis-lecture-i\/","title":{"rendered":"Function Point Analysis \u2013 Lecture I"},"content":{"raw":"<p style=\"text-align: justify\">Ability to estimate the associated cost of development early in the development process is vital in Software development process. Estimating software size is a difficult problem that requires specific knowledge of the system functions in terms of:<\/p>\r\n&nbsp;\r\n<ul>\r\n \t<li>Scope<\/li>\r\n \t<li>Complexity Interactions<\/li>\r\n<\/ul>\r\nMost frequently cited sources of software size metrics are:\r\n<ul>\r\n \t<li>Lines of code<\/li>\r\n \t<li>Function point<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Lines of Code is the simplest and most widely used metric. It is easily recognizable, uses different approaches. It doesn\u2019t include data declarations, comments or any other lines that did not result in object code. It mainly include the declaration and any other un-executable statements but exclude blank lines and comments. The major problems with the Lines of Code are:<\/p>\r\n\r\n<div>\r\n<ul>\r\n \t<li style=\"text-align: justify\">Lack of a universally accepted definition<\/li>\r\n \t<li style=\"text-align: justify\">Language dependence (high-level versus low-level programming languages).<\/li>\r\n \t<li style=\"text-align: justify\">It is difficult to estimate the number of LOC needed to develop a system from information that is available in analysis and design phases<\/li>\r\n \t<li style=\"text-align: justify\">LOC places all emphasis on coding, which is only part of the implementation phase of a software development project.<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Function Point is designed to estimate and measure the time, and thereby the cost, of developing new software applications and maintaining existing software applications. Measures software size by quantifying the functionality provided to the user based on logical design and functional specifications. Function point analysis is used mainly to measure productivity. (eg. Number of function points achieved per work hour expended), estimate development and support (cost benefit analysis, staffing estimation), monitor outsourcing agreements (Ensure that the outsourcing entity delivers the level of support and productivity gains that they promise), normalize other measures (Such as defects, frequently require the size in function points). Function point analysis is a method of quantifying the size and complexity of a software system in terms of the functions. Independent of the computer language, development methodology, technology or capability of the project team. Project can be decomposed into functional units<\/p>\r\n\r\n<\/div>\r\n<strong>Transactional Function Types<\/strong>\r\n<ul>\r\n \t<li>Inputs : Information entering the system<\/li>\r\n \t<li>Outputs: Information leaving the system<\/li>\r\n \t<li>Inquiries: Requests for instant access to information<\/li>\r\n<\/ul>\r\n<strong>Data Function Types<\/strong>\r\n<ul>\r\n \t<li>Internal logical files :Information held within the system<\/li>\r\n \t<li>External interface files :Information held by other systems that is used by the system being analyzed<\/li>\r\n<\/ul>\r\n<img class=\"alignnone size-full wp-image-269\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65.png\" alt=\"\" width=\"617\" height=\"303\" \/>\r\n<div>\r\n<p style=\"text-align: justify\">A function point count is performed to produce a functional size measure.<\/p>\r\n&nbsp;\r\n\r\nThe size can be used to generate project estimates.\r\n\r\n&nbsp;\r\n\r\nEstimates should be based upon delivery rates.\r\n\r\n<\/div>\r\nAnalysis - plan versus actual comparisons\r\n\r\n&nbsp;\r\n\r\n<strong>How good is the information received during requirements?<\/strong>\r\n\r\n&nbsp;\r\n\r\n<strong>How good (accurate) is project estimating?<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>External inputs <\/strong>are elementary processes in which derived data passes across the boundary from outside to inside. In an example library database system, enter an existing patron's library card number. External outputs are elementary processes in which derived data passes across the boundary from inside to outside. In an example library database system, display a list of books checked out to a patron. External outputs are elementary processes with both input and output components results in data retrieval from one or more internal logical files and external interface files. In an example library database system, determine what books are currently checked out to a patron. Internal log files are user identifiable groups of logically related data that resides entirely within the applications boundary maintained through external inputs. In an example library database system, the file of books in the library. External log files are user identifiable groups of logically related data that are used for reference purposes only, and which reside entirely outside the system. In an example library database system, the file that contains transactions in the library's billing system.<\/p>\r\n&nbsp;\r\n\r\nIn order to compute the Unadjusted Function Point (UFP) we rate each component as low, average, or high.\r\n<ul>\r\n \t<li style=\"text-align: justify\">For transactions (EI, EO, and EQ), the rating is based on the FTR and DET.<\/li>\r\n \t<li style=\"text-align: justify\">EI-External Inputs EO-External outputs EQ-External Queries<\/li>\r\n \t<li style=\"text-align: justify\">FTR - The number of files updated or referenced. DET - The number of user-recognizable fields.<\/li>\r\n<\/ul>\r\n<div>\r\n<p style=\"text-align: justify\">For files (ILF and ELF), the rating is based on the RET and DET. RET - The number of user-recognizable data elements in an ILF or ELF. DET - The number of user-recognizable fields.<\/p>\r\n\r\n<ul>\r\n \t<li>ILF - Internal Logic File<\/li>\r\n \t<li>ELF - External Logic File<\/li>\r\n<\/ul>\r\n<strong>Compute the Final Function Point (FP)<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Compute Value Adjustment Factor (VAF) based on 14 general system characteristics (GSC).<\/p>\r\n\r\n<\/div>\r\n<img class=\"alignnone size-full wp-image-270\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66.png\" alt=\"\" width=\"618\" height=\"451\" \/>\r\n\r\nWeight each GSC on a scale of 0 to 5 based on whether it has no influence to strong influence.\r\n\r\n&nbsp;\r\n\r\nCompute the FP as follows.\r\n\r\n&nbsp;\r\n\r\nVAF=Sum (GSC)\r\n\r\n&nbsp;\r\n\r\nFP = UFP * (0.65 + (VAF* .01))\r\n<ul>\r\n \t<li>GSC-General System<\/li>\r\n \t<li>Characteristics FP \u2013 Function Point<\/li>\r\n \t<li>VAF - Value Adjustment Factor<\/li>\r\n \t<li>UFP-Unadjusted Function Point<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">In stock control system a company sells goods on the phone - if agents call the customers, customers call the agents, and so on - business operates successfully, but there comes a time for putting the whole in order. There occurs a need for developing a system able to control the whole stock, from orders to payments. Our objective is to estimate how complex such system can be and predict how long it would take to develop it. Grouping functions into five categories:<\/p>\r\n&nbsp;\r\n<ul>\r\n \t<li style=\"text-align: justify\">External Inputs - Customer, order, stock, and payment details.\r\n<ul>\r\n \t<li style=\"text-align: justify\">External Outputs - Customer, order, and stock details, and credit\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 rating.<\/li>\r\n \t<li>External Inquiries - Customer, order, and stock details.<\/li>\r\n<\/ul>\r\n<\/li>\r\n \t<li>External Interface Files - there's no EIFs to consider.<\/li>\r\n \t<li>Internal Logical Files - Customer, and good files, and customer, and good transaction files.<\/li>\r\n<\/ul>\r\n<p style=\"text-align: justify\">Usually a question arises How Do Function Points Overcome LOC Problems? Function points are independent of the language, tools, or methodologies used for implementation. Function points can be estimated early in analysis and design. Since function points are based on the system user\u2019s external view of the system, even non-technical users of the software system have a better understanding of what function points are measuring.<\/p>\r\n&nbsp;\r\n\r\n<strong>Summary<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Function Points are easily understood by the non-technical user. This helps to communicate sizing information to a user or customer. Function Points can be used to determine whether a tool, a language, an environment, is more productive when compared with others. Function point Analysis for a case study \u201cStock Control System \u201chas been illustrated in this lecture. It is assumed that general system characteristics (GSC) have no influence on the function point.<\/p>\r\n&nbsp;\r\n\r\n<img class=\"alignnone size-full wp-image-271\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67.png\" alt=\"\" width=\"667\" height=\"193\" \/>","rendered":"<p style=\"text-align: justify\">Ability to estimate the associated cost of development early in the development process is vital in Software development process. Estimating software size is a difficult problem that requires specific knowledge of the system functions in terms of:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Scope<\/li>\n<li>Complexity Interactions<\/li>\n<\/ul>\n<p>Most frequently cited sources of software size metrics are:<\/p>\n<ul>\n<li>Lines of code<\/li>\n<li>Function point<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Lines of Code is the simplest and most widely used metric. It is easily recognizable, uses different approaches. It doesn\u2019t include data declarations, comments or any other lines that did not result in object code. It mainly include the declaration and any other un-executable statements but exclude blank lines and comments. The major problems with the Lines of Code are:<\/p>\n<div>\n<ul>\n<li style=\"text-align: justify\">Lack of a universally accepted definition<\/li>\n<li style=\"text-align: justify\">Language dependence (high-level versus low-level programming languages).<\/li>\n<li style=\"text-align: justify\">It is difficult to estimate the number of LOC needed to develop a system from information that is available in analysis and design phases<\/li>\n<li style=\"text-align: justify\">LOC places all emphasis on coding, which is only part of the implementation phase of a software development project.<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Function Point is designed to estimate and measure the time, and thereby the cost, of developing new software applications and maintaining existing software applications. Measures software size by quantifying the functionality provided to the user based on logical design and functional specifications. Function point analysis is used mainly to measure productivity. (eg. Number of function points achieved per work hour expended), estimate development and support (cost benefit analysis, staffing estimation), monitor outsourcing agreements (Ensure that the outsourcing entity delivers the level of support and productivity gains that they promise), normalize other measures (Such as defects, frequently require the size in function points). Function point analysis is a method of quantifying the size and complexity of a software system in terms of the functions. Independent of the computer language, development methodology, technology or capability of the project team. Project can be decomposed into functional units<\/p>\n<\/div>\n<p><strong>Transactional Function Types<\/strong><\/p>\n<ul>\n<li>Inputs : Information entering the system<\/li>\n<li>Outputs: Information leaving the system<\/li>\n<li>Inquiries: Requests for instant access to information<\/li>\n<\/ul>\n<p><strong>Data Function Types<\/strong><\/p>\n<ul>\n<li>Internal logical files :Information held within the system<\/li>\n<li>External interface files :Information held by other systems that is used by the system being analyzed<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-269\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65.png\" alt=\"\" width=\"617\" height=\"303\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65.png 617w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65-300x147.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65-65x32.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65-225x110.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-65-350x172.png 350w\" sizes=\"auto, (max-width: 617px) 100vw, 617px\" \/><\/p>\n<div>\n<p style=\"text-align: justify\">A function point count is performed to produce a functional size measure.<\/p>\n<p>&nbsp;<\/p>\n<p>The size can be used to generate project estimates.<\/p>\n<p>&nbsp;<\/p>\n<p>Estimates should be based upon delivery rates.<\/p>\n<\/div>\n<p>Analysis &#8211; plan versus actual comparisons<\/p>\n<p>&nbsp;<\/p>\n<p><strong>How good is the information received during requirements?<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><strong>How good (accurate) is project estimating?<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>External inputs <\/strong>are elementary processes in which derived data passes across the boundary from outside to inside. In an example library database system, enter an existing patron&#8217;s library card number. External outputs are elementary processes in which derived data passes across the boundary from inside to outside. In an example library database system, display a list of books checked out to a patron. External outputs are elementary processes with both input and output components results in data retrieval from one or more internal logical files and external interface files. In an example library database system, determine what books are currently checked out to a patron. Internal log files are user identifiable groups of logically related data that resides entirely within the applications boundary maintained through external inputs. In an example library database system, the file of books in the library. External log files are user identifiable groups of logically related data that are used for reference purposes only, and which reside entirely outside the system. In an example library database system, the file that contains transactions in the library&#8217;s billing system.<\/p>\n<p>&nbsp;<\/p>\n<p>In order to compute the Unadjusted Function Point (UFP) we rate each component as low, average, or high.<\/p>\n<ul>\n<li style=\"text-align: justify\">For transactions (EI, EO, and EQ), the rating is based on the FTR and DET.<\/li>\n<li style=\"text-align: justify\">EI-External Inputs EO-External outputs EQ-External Queries<\/li>\n<li style=\"text-align: justify\">FTR &#8211; The number of files updated or referenced. DET &#8211; The number of user-recognizable fields.<\/li>\n<\/ul>\n<div>\n<p style=\"text-align: justify\">For files (ILF and ELF), the rating is based on the RET and DET. RET &#8211; The number of user-recognizable data elements in an ILF or ELF. DET &#8211; The number of user-recognizable fields.<\/p>\n<ul>\n<li>ILF &#8211; Internal Logic File<\/li>\n<li>ELF &#8211; External Logic File<\/li>\n<\/ul>\n<p><strong>Compute the Final Function Point (FP)<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Compute Value Adjustment Factor (VAF) based on 14 general system characteristics (GSC).<\/p>\n<\/div>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-270\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66.png\" alt=\"\" width=\"618\" height=\"451\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66.png 618w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66-300x219.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66-65x47.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66-225x164.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-66-350x255.png 350w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><\/p>\n<p>Weight each GSC on a scale of 0 to 5 based on whether it has no influence to strong influence.<\/p>\n<p>&nbsp;<\/p>\n<p>Compute the FP as follows.<\/p>\n<p>&nbsp;<\/p>\n<p>VAF=Sum (GSC)<\/p>\n<p>&nbsp;<\/p>\n<p>FP = UFP * (0.65 + (VAF* .01))<\/p>\n<ul>\n<li>GSC-General System<\/li>\n<li>Characteristics FP \u2013 Function Point<\/li>\n<li>VAF &#8211; Value Adjustment Factor<\/li>\n<li>UFP-Unadjusted Function Point<\/li>\n<\/ul>\n<p style=\"text-align: justify\">In stock control system a company sells goods on the phone &#8211; if agents call the customers, customers call the agents, and so on &#8211; business operates successfully, but there comes a time for putting the whole in order. There occurs a need for developing a system able to control the whole stock, from orders to payments. Our objective is to estimate how complex such system can be and predict how long it would take to develop it. Grouping functions into five categories:<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"text-align: justify\">External Inputs &#8211; Customer, order, stock, and payment details.\n<ul>\n<li style=\"text-align: justify\">External Outputs &#8211; Customer, order, and stock details, and credit\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 rating.<\/li>\n<li>External Inquiries &#8211; Customer, order, and stock details.<\/li>\n<\/ul>\n<\/li>\n<li>External Interface Files &#8211; there&#8217;s no EIFs to consider.<\/li>\n<li>Internal Logical Files &#8211; Customer, and good files, and customer, and good transaction files.<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Usually a question arises How Do Function Points Overcome LOC Problems? Function points are independent of the language, tools, or methodologies used for implementation. Function points can be estimated early in analysis and design. Since function points are based on the system user\u2019s external view of the system, even non-technical users of the software system have a better understanding of what function points are measuring.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Summary<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Function Points are easily understood by the non-technical user. This helps to communicate sizing information to a user or customer. Function Points can be used to determine whether a tool, a language, an environment, is more productive when compared with others. Function point Analysis for a case study \u201cStock Control System \u201chas been illustrated in this lecture. It is assumed that general system characteristics (GSC) have no influence on the function point.<\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-271\" src=\"http:\/\/csp9.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67.png\" alt=\"\" width=\"667\" height=\"193\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67.png 667w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67-300x87.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67-65x19.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67-225x65.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-content\/uploads\/sites\/54\/2018\/07\/pic1-67-350x101.png 350w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/p>\n","protected":false},"author":4,"menu_order":30,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-268","chapter","type-chapter","status-publish","hentry"],"part":3,"_links":{"self":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapters\/268","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/wp\/v2\/users\/4"}],"version-history":[{"count":1,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapters\/268\/revisions"}],"predecessor-version":[{"id":272,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapters\/268\/revisions\/272"}],"part":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapters\/268\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/wp\/v2\/media?parent=268"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/pressbooks\/v2\/chapter-type?post=268"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/wp\/v2\/contributor?post=268"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp9\/wp-json\/wp\/v2\/license?post=268"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}