Weighted Micro Function Points
Encyclopedia
Weighted Micro Function Points (WMFP) is a modern software sizing
Software Sizing
Software sizing is an activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities...

 algorithm invented by Logical Solutions in 2009 which is a successor to solid ancestor scientific methods as COCOMO
COCOMO
**********************************************************************************************The Constructive Cost Model is an algorithmic software cost estimation model developed by Barry W. Boehm...

, COSYSMO
Cosysmo
The Constructive Systems Engineering Cost Model was created by Ricardo Valerdi while at the University of Southern California Center for Software Engineering. It gives an estimate of the number of person-months it will take to staff systems engineering resources on hardware and software projects...

, maintainability index, cyclomatic complexity
Cyclomatic complexity
Cyclomatic complexity is a software metric . It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures the number of linearly independent paths through a program's source code...

, function points, and Halstead complexity
Halstead complexity measures
Halstead complexity measures are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development....

. It produces more accurate results than traditional software sizing methodologies, while requiring less configuration and knowledge from the end user, as most of the estimation is based on automatic measurements of an existing source code.
As many ancestor measurement methods use source lines of code
Source lines of code
Source lines of code is a software metric used to measure the size of a software program by counting the number of lines in the text of the program's source code...

 (SLOC) to measure software size, WMFP uses a parser to understand the source code breaking it down into micro functions and derive several code complexity and volume metrics, which are then dynamically interpolated into a final effort score. In addition to compatibility with the waterfall software development life cycle methodology, WMFP is also compatible with newer SDLCs, such as Six Sigma, Boehm spiral
Spiral model
The spiral model is a software development process combining elements of both design and prototyping-in-stages, in an effort to combine advantages of top-down and bottom-up concepts. Also known as the spiral lifecycle model , it is a systems development method used in information technology...

, and Agile
Agile software development
Agile software development is a group of software development methodologies based on iterative and incremental development, where requirements and solutions evolve through collaboration between self-organizing, cross-functional teams...

 (AUP/Lean/XP/DSDM) methodologies, due to its differential analysis capability made possible by its higher-precision measurement elements.

Measured elements

The WMFP measured elements are several different software metric
Software metric
A software metric is a measure of some property of a piece of software or its specifications. Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development...

s deduced from the source code by the WMFP algorithm analysis. They are represented as percentage of the whole unit (project or file) effort, and are translated into time.
Flow complexity (FC) – Measures the complexity of a programs' flow control
Control flow
In computer science, control flow refers to the order in which the individual statements, instructions, or function calls of an imperative or a declarative program are executed or evaluated....

 path in a similar way to the traditional cyclomatic complexity
Cyclomatic complexity
Cyclomatic complexity is a software metric . It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures the number of linearly independent paths through a program's source code...

, with higher accuracy by using weights and relations calculation.
Object vocabulary (OV) – Measures the quantity of unique information contained by the programs' source code, similar to the traditional Halstead vocabulary
Halstead complexity measures
Halstead complexity measures are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development....

 with dynamic language compensation.
Object conjuration (OC) – Measures the quantity of usage done by information contained by the programs' source code.
Arithmetic intricacy (AI) – Measures the complexity of arithmetic calculations across the program
Data transfer (DT) – Measures the manipulation of data structures inside the program
Code structure (CS) – Measures the amount of effort spent on the program structure such as separating code into classes and functions
Inline data (ID) – Measures the amount of effort spent on the embedding hard coded data
Comments (CM) – Measures the amount of effort spent on writing program comments

Calculation

The WMFP algorithm uses a three-stage process: function analysis, APPW transform, and result translation.
A dynamic algorithm balances and sums the measured elements and produces a total effort score.
The basic formula is:

∑(WiMi)∏Dq


M = the source metrics value measured by the WMFP analysis stage
W = the adjusted weight assigned to metric M by the APPW model
N = the count of metric types
i = the current metric type index (iteration)
D = the cost drivers factor supplied by the user input
q = the current cost driver index (iteration)
K = the count of cost drivers


This score is then transformed into time by applying a statistical model called average programmer profile weights (APPW) which is a proprietary successor to COCOMO II 2000
COCOMO
**********************************************************************************************The Constructive Cost Model is an algorithmic software cost estimation model developed by Barry W. Boehm...

 and COSYSMO
Cosysmo
The Constructive Systems Engineering Cost Model was created by Ricardo Valerdi while at the University of Southern California Center for Software Engineering. It gives an estimate of the number of person-months it will take to staff systems engineering resources on hardware and software projects...

. The resulting time in programmer work hours is then multiplied by a user defined cost per hour of an average programmer, to produce an average project cost, translated to the user currency.

Downsides

The basic elements of WMFP, when compared to traditional sizing models such as COCOMO, are more complex to a degree that they cannot realistically be evaluated by hand, even on smaller projects, and require a software to analyze the source code. As a result, it can only be used with analogy based cost predictions, and not theoretical educated guesses.

See also

  • Software sizing
    Software Sizing
    Software sizing is an activity in software engineering that is used to estimate the size of a software application or component in order to be able to implement other software project management activities...

  • Software metric
    Software metric
    A software metric is a measure of some property of a piece of software or its specifications. Since quantitative measurements are essential in all sciences, there is a continuous effort by computer science practitioners and theoreticians to bring similar approaches to software development...

  • Function points
  • Cyclomatic complexity
    Cyclomatic complexity
    Cyclomatic complexity is a software metric . It was developed by Thomas J. McCabe, Sr. in 1976 and is used to indicate the complexity of a program. It directly measures the number of linearly independent paths through a program's source code...

  • Halstead complexity measures
    Halstead complexity measures
    Halstead complexity measures are software metrics introduced by Maurice Howard Halstead in 1977 as part of his treatise on establishing an empirical science of software development....

  • Software parametric models
    Software parametric models
    A parametric model is a set of related mathematical equations which incorporates variable parameters. A scenario is defined by selecting a value for each parameter...

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK