Upload
vishal-saxena
View
216
Download
0
Embed Size (px)
Citation preview
8/2/2019 Presentation on Sefp
1/27
8/2/2019 Presentation on Sefp
2/27
Keypoint
Introduction
Function Point Variations
Problems with Lines of Code
What is Function Points?
Objectives of Function Points How do Function Points Overcome LOC Problems?
Uses of Function Points
When Should You Count Function Points?
Function Point Counting Cyclomatic complexity
Cyclomatic complexity example
References
8/2/2019 Presentation on Sefp
3/27
Metric - A quantifiable characteristic ofsoftware.
Measurement - The process of mapping fromreal world attributes to a mathematicalrepresentation.
Model - A mathematical relationship betweenmetrics.
8/2/2019 Presentation on Sefp
4/27
Increasingly important for softwaredevelopment is the ability to estimate theassociated cost of development early in thedevelopment process
Estimating software size is a difficult problemthat requires specific knowledge of the systemfunctions in terms of Scope Complexity Interactions
Most frequently cited sources of software sizemetrics are Lines of code
Function point analysis
8/2/2019 Presentation on Sefp
5/27
Mk II Function Points Discovered weaknesses in Albrecht's approach
Feature Points Function points were not working for all classes of
applications
3D Function Points Designed to solve two problems with Albrecht
approach
8/2/2019 Presentation on Sefp
6/27
Lack of a universally accepted definitionfor exactly what a line of code is
Language dependence (high-level versuslow-level programming languages)
It is difficult to estimate the number oflines of code that will be needed todevelop a system from information thatis available in analysis and design phases
Lines of code places all emphasis oncoding, which is only part of theimplementation phase of a softwaredevelopment project
8/2/2019 Presentation on Sefp
7/27
Function Points are a unit of measure Like an hour is to measuring time
Or an inch is to measuring distance
An unit is important to understand and to
communicate such metrics as Average Cost.
8/2/2019 Presentation on Sefp
8/27
A software application in essence is a definedset of elementary business processes.
A function point is not a screen, a report, butinstead an elementary business process.
We often count screens, reports, but theseare not function points.
8/2/2019 Presentation on Sefp
9/27
Function points are independent of thelanguage, tools, or methodologies used forimplementation (ex. Do not take intoconsideration programming languages,DBMS, or processing hardware)
Function points can be estimated early inanalysis and design
Since function points are based on thesystem users external view of the system,
non-technical users of the software systemhave a better understanding of whatfunction points are measuring
8/2/2019 Presentation on Sefp
10/27
Measure productivity (ex. Number of functionpoints achieved per work hour expended)
Estimate development and support (cost benefitanalysis, staffing estimation)
Monitor outsourcing agreements (Ensure that the
outsourcing entity delivers the level of support andproductivity gains that they promise) Drive IS related business decisions (Allow decisions
regarding the retaining, retiring and redesign ofapplications to be made)
Normalize other measures (Other measures, suchas defects, frequently require the size in functionpoints)
8/2/2019 Presentation on Sefp
11/27
You cannot manage internally what you donot measure
Approximately 40% of all projects fail due tolack of management control (Coopers &
Lybrand Sept. 1995) Measurement gives you a tool to
communicate to your customers the size oftheir request, and extrapolate productivity,
quality and estimating accuracy Many competitors may already have these
insights You measure to understand and improve
your processes
8/2/2019 Presentation on Sefp
12/27
Measure functionality that the user requestsand receives
Measure software development andmaintenance independently of technology
used for implementation Simple enough to minimize the overhead of
the measurement process
A consistent measure among various
projects and organizations
8/2/2019 Presentation on Sefp
13/27
Early and often The sooner you can quantify what a project is
delivering, the sooner it is under control Under IFPUG 4.1, there are rules and guidelines
that make it possible to count function pointsonce the requirements have been finalized
During requirements gathering the estimate ofsize in function points can be refinedcontinuously
Function points should be recountedthroughout the development process andcounts can be compared to measure scopecreep and breakage
8/2/2019 Presentation on Sefp
14/27
Determine the type of function pointcount
Identify the counting scope andapplication boundary
Determine the Unadjusted Function PointCount
Count Data Functions
Count Transactional Functions Determine the Value Adjustment Factor Calculate the Adjusted Function Point
Count
8/2/2019 Presentation on Sefp
15/27
8/2/2019 Presentation on Sefp
16/27
Is a structured technique of classifying
components of a system. Is a method to break systems into smaller
components, so they can be betterunderstood and analyzed.
Measures software by quantifying itsfunctionality provided to the user basedprimarily on the logical design.
Logical functionality from a sophisticated(experienced) user view rather than a physicalview.
8/2/2019 Presentation on Sefp
17/27
A standard method for measuring softwaredevelopment from the customers point ofview.
8/2/2019 Presentation on Sefp
18/27
Improves requirements documentation Improves the estimating process
Improves the communication of workload
Improves the understanding of businessfunctions
Improves traceability of requirements throughImplementation
Improves the allocation of resources
8/2/2019 Presentation on Sefp
19/27
A software metric used to measure thecomplexity of software.
Developed by Thomas McCabe in 1976.
The cyclomatic complexity of a section ofsource code is the count of the number oflinearly independent paths throughthe source code.
http://en.wikipedia.org/wiki/Control_flowhttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Source_codehttp://en.wikipedia.org/wiki/Control_flow8/2/2019 Presentation on Sefp
20/27
For instance, if the source code contained nodecision points such as IF statements or FORloops, the complexity would be 1 since there isonly a single path through the code.
If the code had a single IF statementcontaining a single condition there would be
two paths through the code, one path wherethe IF statement is evaluated as TRUE and onepath where the IF statement is evaluated asFALSE.
8/2/2019 Presentation on Sefp
21/27
Mathematically, the Cyclomatic Complexityofa structured program is defined with
reference to a directed graph containingthe basic blocks of the program, with an edgebetween two basic blocks if control may passfrom the first to the second (the control flow
graphof the program).
http://en.wikipedia.org/wiki/Structured_programminghttp://en.wikipedia.org/wiki/Directed_graphhttp://en.wikipedia.org/wiki/Basic_blockhttp://en.wikipedia.org/wiki/Basic_blockhttp://en.wikipedia.org/wiki/Directed_graphhttp://en.wikipedia.org/wiki/Structured_programming8/2/2019 Presentation on Sefp
22/27
The complexity is then defined as:M = EN + 2P
whereM= cyclomatic complexity
E= the number of edges of the graph
N= the number of nodes of the graph
P= the number ofconnected components
http://en.wikipedia.org/wiki/Connected_component_(graph_theory)http://en.wikipedia.org/wiki/Connected_component_(graph_theory)8/2/2019 Presentation on Sefp
23/27
An alternative formulation is to use a graph inwhich each exit point is connected back to
the entry point. In this case, the graph is said to be strongly
connected, and the cyclomatic complexity ofthe program is equal to the
cyclomatic numberof its graph (also knownas the (first Betti number), which is definedas:M = EN + P
http://en.wikipedia.org/wiki/Betti_numberhttp://en.wikipedia.org/wiki/Betti_number8/2/2019 Presentation on Sefp
24/27
For this graph, E = 9, N = 8 and P = 1, so the cyclomatic complexityof the program is 3.
E l f
8/2/2019 Presentation on Sefp
25/27
Examples ofcyclomatic complexity
L=1, N=2, P=1
M=1-2+2=1
L=4, N=4, P=1
M=4-4+2=2
L=4, N=5, P=1M=4-5+2=1
L=2, N=4, P=2
M=2-4+4=2
8/2/2019 Presentation on Sefp
26/27
REFERENCES
Software engineering : A Practitioners
approach
5 Ed. By Roger Pressman,
Ivan sommerville.
8/2/2019 Presentation on Sefp
27/27
THANK YOU