Presentation on Sefp

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_flow
  • 8/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_programming
  • 8/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_number
  • 8/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