Introduction to EVM

Embed Size (px)

Citation preview

  • 8/3/2019 Introduction to EVM

    1/28

    http://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%88%E0%AE%A4%E0%AF%8D

    %E0%AE%A4%E0%AF%8B%E0%AE%A9%E0%AF%8D

    http://creations.zoomin.com/Modules/ViewModule.aspx?c=INDIA&ProjectId=917660

    Subsections

    What is a Pointer?

    Pointer and Functions

    Pointers and Arrays

    Arrays of Pointers Multidimensional arrays and pointers Static Initialisation of Pointer Arrays

    Pointers and Structures

    Common Pointer Pitfallso Not assigning a pointer to memory address before using it

    o Illegal indirection

    Exercise

    Pointers

    Pointer are a fundamental part of C. If you cannot use pointers properly then you havebasically lost all the power and flexibility that C allows. The secret to C is in its use of

    pointers.

    C usespointers a lot. Why?:

    It is the only way to express some computations. It produces compact and efficient code.

    It provides a very powerful tool.

    C uses pointers explicitly with:

    Arrays,

    Structures,

    Functions.

    NOTE: Pointers are perhaps the most difficult part of C to understand. C's

    implementation is slightly different DIFFERENT from other languages.

    http://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%88%E0%AE%A4%E0%AF%8D%E0%AE%A4%E0%AF%8B%E0%AE%A9%E0%AF%8Dhttp://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%88%E0%AE%A4%E0%AF%8D%E0%AE%A4%E0%AF%8B%E0%AE%A9%E0%AF%8Dhttp://creations.zoomin.com/Modules/ViewModule.aspx?c=INDIA&ProjectId=917660http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001010000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001020000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001030000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001040000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001050000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001060000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001070000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001080000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001081000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001082000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001090000000000000000http://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%88%E0%AE%A4%E0%AF%8D%E0%AE%A4%E0%AF%8B%E0%AE%A9%E0%AF%8Dhttp://ta.wikipedia.org/wiki/%E0%AE%AA%E0%AF%88%E0%AE%A4%E0%AF%8D%E0%AE%A4%E0%AF%8B%E0%AE%A9%E0%AF%8Dhttp://creations.zoomin.com/Modules/ViewModule.aspx?c=INDIA&ProjectId=917660http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001010000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001020000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001030000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001040000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001050000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001060000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001070000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001080000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001081000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001082000000000000000http://www.cs.cf.ac.uk/Dave/C/node10.html#SECTION001090000000000000000
  • 8/3/2019 Introduction to EVM

    2/28

    What is a Pointer?

    A pointer is a variable which contains the address in memory of another variable. We canhave a pointer to any variable type.

    The unary ormonadic operator& gives the ``address of a variable''.

    The indirection or dereference operator* gives the ``contents of an objectpointed to by a

    pointer''.

    To declare a pointer to a variable do:

    int *pointer;

    NOTE: We must associate a pointer to a particular type: You can't assign the address of a

    short int to a long int, for instance.

    Consider the effect of the following code:

    int x = 1, y = 2;int *ip;

    ip = &x;

    y = *ip;

    x = ip;

    *ip = 3;

    It is worth considering what is going on at the machine levelin memory to fullyunderstand how pointer work. Consider Fig. 9.1. Assume for the sake of this discussion

    that variable x resides at memory location 100, y at 200 and ip at 1000.Note A pointer is a variable and thus its values need to be storedsomewhere. It is the nature of the pointers value that is new.

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:pointhttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:pointhttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:point
  • 8/3/2019 Introduction to EVM

    3/28

    Fig. 9.1 Pointer, Variables and Memory Now the assignments x = 1 and y= 2 obviously load these values into the variables. ip is declared tobe apointer to an integerand is assigned to the address of x (&x). Soip gets loaded with the value 100.

    Next y gets assigned to the contents ofip. In this example ipcurrentlypoints to memory location 100 -- the location of x. So y getsassigned to the values of x -- which is 1.

    We have already seen that C is not too fussy about assigning values ofdifferent type. Thus it is perfectly legal (although not all that

    common) to assign the current value of ip to x. The value of ip at thisinstant is 100.

    Finally we can assign a value to the contents of a pointer (*ip).

    IMPORTANT: When a pointer is declared it does not point anywhere. Youmust set it to point somewhere before you use it.

    So ...

    int *ip;

    *ip = 100;

    will generate an error (program crash!!).

    The correct use is:

    int *ip;int x;

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:pointhttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:point
  • 8/3/2019 Introduction to EVM

    4/28

    ip = &x;*ip = 100;

    We can do integer arithmetic on a pointer:

    float *flp, *flq;

    *flp = *flp + 10;

    ++*flp;

    (*flp)++;

    flq = flp;

    NOTE: A pointer to any variable type is an address in memory -- whichis an integer address. A pointer is definitely NOT an integer.

    The reason we associate a pointer to a data type is so that it knowshow many bytes the data is stored in. When we increment a pointer weincrease the pointer by one ``block'' memory.

    So for a character pointer ++ch_ptr adds 1 byte to the address.

    For an integer or float ++ip or ++flp adds 4 bytes to the address.

    Consider a float variable (fl) and a pointer to a float (flp) as shownin Fig. 9.2.

    Fig. 9.2 Pointer Arithmetic Assume that flp points to fl then if weincrement the pointer ( ++flp) it moves to the position shown 4 byteson. If on the other hand we added 2 to the pointer then it moves 2float positionsi.e 8 bytes as shown in the Figure.

    Pointer and Functions

    Let us now examine the close relationship between pointers and C's other major parts.

    We will start with functions.

    When C passes arguments to functions it passes them by value.

    There are many cases when we may want to alter a passed argument in the function and

    receive the new value back once to function has finished. Other languages do this (e.g.

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:floathttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:floathttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:floathttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:float
  • 8/3/2019 Introduction to EVM

    5/28

    var parameters in PASCAL). C uses pointers explicitly to do this. Other languages mask

    the fact that pointers also underpin the implementation of this.

    The best way to study this is to look at an example where we must be able to receivechanged parameters.

    Let us try and write a function to swap variables around?

    The usual function call:

    swap(a, b) WON'T WORK.

    Pointers provide the solution:Pass the address of the variables to the functions and

    access address of function.

    Thus our function call in our program would look like this:

    swap(&a, &b)

    The Code to swap is fairly straightforward:

    void swap(int *px, int *py)

    { int temp;

    temp = *px;/* contents of pointer */

    *px = *py;*py = temp;

    }

    We can return pointer from functions. A common example is when passing back

    structures. e.g.:

    typedef struct {float x,y,z;} COORD;

    main()

    { COORD p1, *coord_fn();/* declare fn to return

    ptr ofCOORD type */

    ....p1 = *coord_fn(...);

    /* assign contents of address returned*/

    ....

  • 8/3/2019 Introduction to EVM

    6/28

    }

    COORD *coord_fn(...)

    { COORD p;

    .....p = ....;/* assign structure

    values */

    return &p;/* return address of p */

    }

    Here we return a pointer whose contents are immediately unwrappedintoa variable. We must do this straight away as the variable we pointed towas local to a function that has now finished. This means that theaddress space is free and can be overwritten. It will not have beenoverwritten straight after the function ha squit though so this is

    perfectly safe.

    Pointers and Arrays

    Pointers and arrays are very closely linked in C.

    Hint: think of array elements arranged in consecutive memory locations.

    Consider the following:

    int a[10], x;int *pa;

    pa = &a[0]; /* pa pointer to address of a[0] */

    x = *pa;/* x = contents of pa (a[0] in this case) */

    Fig. 9.3 Arrays and Pointers

    To get somewhere in the array (Fig. 9.3) using a pointer we could do:

    pa + i a[i]

    WARNING: There is no bound checking of arrays and pointers so you caneasily go beyond array memory and overwrite other things.

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:arrayshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:arrayshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:arrayshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:arrays
  • 8/3/2019 Introduction to EVM

    7/28

    C however is much more subtle in its link between arrays and pointers.

    For example we can just type

    pa = a;

    instead of

    pa = &a[0]

    and

    a[i] can be written as *(a + i).

    i.e. &a[i] a + i.

    We also express pointer addressing like this:

    pa[i] *(pa + i).

    However pointers and arrays are different:

    A pointer is a variable. We can dopa = a and pa++.

    An Array is not a variable. a = pa and a++ ARE ILLEGAL.

    This stuff is very important. Make sure you understand it. We will seea lot more of this.

    We can now understand how arrays are passed to functions.

    When an array is passed to a function what is actually passed is itsinitial elements location in memory.

    So:

    strlen(s) strlen(&s[0])

    This is why we declare the function:

    int strlen(char s[]);

    An equivalent declaration is : int strlen(char *s);

    since char s[] char *s.

    strlen() is a standard libraryfunction (Chapter 18) that returns thelength of a string. Let's look at how we may write a function:

    int strlen(char *s){ char *p = s;

    http://www.cs.cf.ac.uk/Dave/C/node19.html#ch:stringhttp://www.cs.cf.ac.uk/Dave/C/node19.html#ch:string
  • 8/3/2019 Introduction to EVM

    8/28

    while (*p != );p++;

    return p-s;}

    Now lets write a function to copy a string to another string. strcpy()is a standard library function that does this.

    void strcpy(char *s, char *t)

    { while ( (*s++ = *t++) != );}

    This uses pointers and assignment by value.

    Very Neat!!

    NOTE: Uses of Null statements with while.

    Arrays of Pointers

    We can have arrays of pointers since pointers are variables.

    Example use:

    Sort lines of text of different length.

    NOTE: Text can't be moved or compared in a single operation.

    Arrays of Pointers are a data representation that will cope efficiently and conveniently

    with variable length text lines.

    How can we do this?:

    Store lines end-to-end in one big char array (Fig.9.4). n will delimit lines.

    Store pointers in a different array where each pointer points to 1st char of eachnew line.

    Compare two lines using strcmp() standard library function. If 2 lines are out of order -- swap pointer in pointer array (not text).

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:stringshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:stringshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:strings
  • 8/3/2019 Introduction to EVM

    9/28

    Fig. 9.4 Arrays of Pointers (String Sorting Example)

    This eliminates:

    complicated storage management. high overheads of moving lines.

    Multidimensional arrays and pointers

    We should think of multidimensional arrays in a different way in C:

    A 2D array is really a 1D array, each of whose elements is itself an array

    Hence

    a[n][m] notation.

    Array elements are stored row by row.

    When we pass a 2D array to a function we must specify the number of columns -- the

    number of rows is irrelevant.

    The reason for this is pointers again. C needs to know how many columns in order that itcan jump from row to row in memory.

    Considerint a[5][35] to be passed in a function:

    We can do:

    f(int a[][35]) {.....}

    or even:

    f(int (*a)[35]) {.....}

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:stringshttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:strings
  • 8/3/2019 Introduction to EVM

    10/28

    We need parenthesis (*a) since [] have a higher precedence than *

    So:

    int (*a)[35]; declares a pointer to an array of 35 ints.

    int *a[35]; declares an array of 35 pointers to ints.

    Now lets look at the (subtle) difference between pointers and arrays. Strings are acommon application of this.

    Consider:char *name[10];

    char Aname[10][20];

    We can legally do name[3][4] and Aname[3][4] in C.

    However

    Aname is a true 200 element 2D char array.

    access elements via20*row + col + base_address

    in memory.

    name has 10 pointer elements.

    NOTE: If each pointer in name is set to point to a 20 element array then and only then

    will 200 chars be set aside (+ 10 elements).

    The advantage of the latter is that each pointer can point to arrays be of different length.

    Consider:

    char *name[] = { ``no month'', ``jan'',``feb'', ... };

    char Aname[][15] = { ``no month'', ``jan'',``feb'', ... };

  • 8/3/2019 Introduction to EVM

    11/28

    Fig. 2D Arrays and Arrays of Pointers

    Static Initialisation of Pointer Arrays

    Initialisation of arrays of pointers is an ideal application for an internal static array.

    some_fn(){ static char *months = { ``no month'',

    ``jan'', ``feb'',

    ...};}

    static reserves a private permanent bit of memory.

    Pointers and Structures

    These are fairly straight forward and are easily defined. Consider the following:

    struct COORD {float x,y,z;} pt;

    struct COORD *pt_ptr;

    pt_ptr = &pt; /* assigns pointer to pt */

    the operator lets us access a member of the structure pointed to by a pointer.i.e.:

    http://www.cs.cf.ac.uk/Dave/C/node10.html#fig:arrptr
  • 8/3/2019 Introduction to EVM

    12/28

    pt_ptr x = 1.0;

    pt_ptr y = pt_ptr y - 3.0;

    Example: Linked Lists

    typedef struct { int value;ELEMENT *next;

    } ELEMENT;

    ELEMENT n1, n2;

    n1.next = &n2;

    Fig. Linking Two NodesNOTE: We can only declare next as a pointer toELEMENT. We cannot have a element of the variable type as this wouldset up a recursive definition which isNOT ALLOWED. We are allowed toset a pointer reference since 4 bytes are set aside for any pointer.

    The above code links a node n1 to n2 (Fig. 9.6) we will look at thismatter further in the next Chapter.

    Common Pointer Pitfalls

    Here we will highlight two common mistakes made with pointers.

    Not assigning a pointer to memory address before using

    it

    int *x;

    http://www.cs.cf.ac.uk/Dave/C/node10.html#figure:link%23figure:linkhttp://www.cs.cf.ac.uk/Dave/C/node10.html#fig:linkhttp://www.cs.cf.ac.uk/Dave/C/node10.html#figure:link%23figure:link
  • 8/3/2019 Introduction to EVM

    13/28

    *x = 100;we need a physical location say: int y;

    x = &y;*x = 100;

    This may be hard to spot. NO COMPILER ERROR. Also x could some random

    address at initialisation.

    Illegal indirection

    Suppose we have a function malloc() which tries to allocate memory dynamically (at

    run time) and returns a pointer to block of memory requested if successful or a NULL

    pointer

    otherwise.

    char *malloc() -- a standard library function (see later).

    Let us have a pointer: char *p;

    Consider:

    *p = (char *) malloc(100); /* request 100 bytes of memory */

    *p = `y';

    There is mistake above. What is it?

    No * in

    *p = (char *) malloc(100);

    Malloc returns a pointer. Also p does not point to any address.

    The correct code should be:

    p = (char *) malloc(100);

    If code rectified one problem is if no memory is available and p is NULL. Therefore wecan't do:*p = `y';.

    A good C program would check for this:

    p = (char *) malloc(100);if ( p == NULL)

  • 8/3/2019 Introduction to EVM

    14/28

    { printf(``Error: Out of Memory n'');exit(1);

    }*p = `y';

    Exercise

    Exercise 12453

    Write a C program to read through an array of any type using pointers. Write a Cprogram to scan through this array to find a particular value.

    Exercise 12454

    Write a program to find the number of times that a given word(i.e. a short string) occurs

    in a sentence (i.e. a long string!).

    Read data from standard input. The first line is a single word, which is followed bygeneral text on the second line. Read both up to a newline character, and insert a

    terminating null before processing.

    Typical output should be:

    The word is "the".The sentence is "the cat sat on the mat".The word occurs 2 times.

    Exercise 12455

    Write a program that takes three variable (a, b, b) in as separate parameters and rotates

    the values stored so that value a goes to be, b, to c and c to a.

    Dave Marshall

    1/5/1999

    [[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[

    [[[[[[[[

  • 8/3/2019 Introduction to EVM

    15/28

    Introduction to EVM

    Essential features of any EVM implementation include

    1. a project plan that identifies work to be accomplished,

    2. a valuation of planned work, called Planned Value (PV) orBudgeted Cost ofWork Scheduled (BCWS), and

    3. pre-defined earning rules (also called metrics) to quantify the accomplishment

    of work, called Earned Value (EV) orBudgeted Cost of Work Performed(BCWP).

    EVM implementations for large or complex projects include many more features, such as

    indicators and forecasts of cost performance (over budget or under budget) and schedule

    performance (behind schedule or ahead of schedule). However, the most basicrequirement of an EVM system is that it quantifies progress using PV and EV.

    [edit] Project tracking without EVM

    http://en.wikipedia.org/wiki/Project_planhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_performedhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=2http://en.wikipedia.org/wiki/File:EVM_Fig1.pnghttp://en.wikipedia.org/wiki/Project_planhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_performedhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=2
  • 8/3/2019 Introduction to EVM

    16/28

    http://en.wikipedia.org/wiki/File:EVM_Fig4.pnghttp://en.wikipedia.org/wiki/File:EVM_Fig3.pnghttp://en.wikipedia.org/wiki/File:EVM_Fig2.png
  • 8/3/2019 Introduction to EVM

    17/28

    It is helpful to see an example of project tracking that does not include earned value

    performance management. Consider a project that has been planned in detail, including a

    time-phased spend plan for all elements of work. Figure 1 shows the cumulative budget(cost) for this project as a function of time (the blue line, labeled PV). It also shows the

    cumulative actual cost of the project (red line) through week 8. To those unfamiliar with

    EVM, it might appear that this project was over budget through week 4 and then underbudget from week 6 through week 8. However, what is missing from this chart is any

    understanding of how much work has been accomplished during the project. If the project

    were actually completed at week 8, then the project would actually be well under budgetand well ahead of schedule. If, on the other hand, the project is only 10% complete at

    week 8, the project is significantly over budget and behind schedule. A method is needed

    to measure technical performance objectively and quantitatively, and that is what EVM

    accomplishes.

    [edit] Project tracking with EVM

    Consider the same project, except this time the project plan includes pre-defined methodsof quantifying the accomplishment of work. At the end of each week, theproject manager

    identifies every detailed element of work that has been completed, and sums the PV foreach of these completed elements. Earned value may be accumulated monthly, weekly, or

    as progress is made.

    [edit] Earned value (EV)

    Figure 2 shows the EV curve (in green) along with the PV curve from Figure 1. The

    chart indicates that technical performance (i.e., progress) started more rapidly thanplanned, but slowed significantly and fell behind schedule at week 7 and 8. This chart

    illustrates the schedule performance aspect of EVM. It is complementary to critical path

    orcritical chainschedule management.

    Figure 3 shows the same EV curve (green) with the actual cost data from Figure 1 (in

    red). It can be seen that the project was actually under budget, relative to the amount of

    work accomplished, since the start of the project. This is a much better conclusion than

    might be derived from Figure 1.

    Figure 4 shows all three curves together which is a typical EVM line chart. The best

    way to read these three-line charts is to identify the EV curve first, then compare it to PV

    (for schedule performance) and AC (for cost performance). It can be seen from this

    illustration that a true understanding of cost performance and schedule performancerelies first on measuring technical performance objectively. This is thefoundationalprinciple of EVM.

    http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=3http://en.wikipedia.org/wiki/Project_managerhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=4http://en.wikipedia.org/wiki/Critical_path_methodhttp://en.wikipedia.org/wiki/Critical_chainhttp://en.wikipedia.org/wiki/Critical_chainhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=3http://en.wikipedia.org/wiki/Project_managerhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=4http://en.wikipedia.org/wiki/Critical_path_methodhttp://en.wikipedia.org/wiki/Critical_chain
  • 8/3/2019 Introduction to EVM

    18/28

    [edit] History

    Further reading: DoD/DSMC 1997[2] Abba 2000[3] Fleming 2005[4]

    EVM emerged as a financial analysis specialty in United States Government

    programs in the 1960s, but it has since become a significant branch ofprojectmanagement and cost engineering. Project management research investigating the

    contribution of EVM to project success suggests a moderately strong positive

    relationship.[5] Implementations of EVM can be scaled to fit projects of all sizes andcomplexities.

    The genesis of EVM occurred in industrial manufacturing at the turn of the 20th

    century, based largely on the principle of "earned time" popularized by Frank and

    Lillian Gilbreth, but the concept took root in the United States Department ofDefense in the 1960s. The original concept was called PERT/COST, but it was

    considered overly burdensome (not very adaptable) by contractors who were

    mandated to use it, and many variations of it began to proliferate among variousprocurement programs. In 1967, the DoD established a criterion-based approach,

    using a set of 35 criteria, called the Cost/Schedule Control Systems Criteria

    (C/SCSC). In 1970s and early 1980s, a subculture of C/SCSC analysis grew, but thetechnique was often ignored or even actively resisted byproject managers in both

    government and industry. C/SCSC was often considered a financial control tool that

    could be delegated to analytical specialists.

    In the late 1980s and early 1990s, EVM emerged as a project managementmethodology to be understood and used by managers and executives, not just EVM

    specialists. In 1989, EVM leadership was elevated to the Undersecretary of Defense

    for Acquisition, thus making EVM an essential element of program management andprocurement. In 1991, Secretary of Defense Dick Cheney canceled the Navy A-12

    Avenger II Program because of performance problems detected by EVM. This

    demonstrated conclusively that EVM mattered to secretary-level leadership. In the

    1990s, manyU.S. Government regulationswere eliminated or streamlined. However,EVM not only survived the acquisition reform movement, but became strongly

    associated with the acquisition reform movement itself. Most notably, from 1995 to

    1998, ownership of EVM criteria (reduced to 32) was transferred to industry byadoption of ANSI EIA 748-A standard.[6]

    The use of EVM quickly expanded beyond the U.S. Department of Defense. It was

    adopted by theNational Aeronautics and Space Administration, United StatesDepartment of Energy and other technology-related agencies. Many industrializednations also began to utilize EVM in their own procurement programs. An overview

    of EVM was included in firstPMBOKGuide in 1987 and expanded in subsequent

    editions. The construction industry was an early commercial adopter of EVM. Closerintegration of EVM with the practice of project management accelerated in the

    1990s. In 1999, the Performance Management Association merged with the Project

    Management Institute (PMI) to become PMIs first college, the College of

    http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=5http://en.wikipedia.org/wiki/Earned_value_management#cite_note-1%23cite_note-1http://en.wikipedia.org/wiki/Earned_value_management#cite_note-1%23cite_note-1http://en.wikipedia.org/wiki/Earned_value_management#cite_note-2%23cite_note-2http://en.wikipedia.org/wiki/Earned_value_management#cite_note-2%23cite_note-2http://en.wikipedia.org/wiki/Earned_value_management#cite_note-3%23cite_note-3http://en.wikipedia.org/wiki/Earned_value_management#cite_note-3%23cite_note-3http://en.wikipedia.org/wiki/Financial_analysishttp://en.wikipedia.org/wiki/United_States_Governmenthttp://en.wikipedia.org/wiki/Project_managementhttp://en.wikipedia.org/wiki/Project_managementhttp://en.wikipedia.org/wiki/Cost_engineeringhttp://en.wikipedia.org/wiki/Researchhttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-4%23cite_note-4http://en.wikipedia.org/wiki/Frank_Bunker_Gilbrethhttp://en.wikipedia.org/wiki/Frank_Bunker_Gilbrethhttp://en.wikipedia.org/wiki/Frank_Bunker_Gilbrethhttp://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Techniquehttp://en.wikipedia.org/wiki/Subculturehttp://en.wikipedia.org/wiki/Project_managerhttp://en.wikipedia.org/wiki/Secretary_of_Defensehttp://en.wikipedia.org/wiki/Dick_Cheneyhttp://en.wikipedia.org/wiki/A-12_Avenger_IIhttp://en.wikipedia.org/wiki/A-12_Avenger_IIhttp://en.wikipedia.org/wiki/Federal_Acquisition_Regulationshttp://en.wikipedia.org/wiki/Federal_Acquisition_Regulationshttp://en.wikipedia.org/wiki/Federal_Acquisition_Regulationshttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-5%23cite_note-5http://en.wikipedia.org/wiki/Earned_value_management#cite_note-5%23cite_note-5http://en.wikipedia.org/wiki/National_Aeronautics_and_Space_Administrationhttp://en.wikipedia.org/wiki/United_States_Department_of_Energyhttp://en.wikipedia.org/wiki/United_States_Department_of_Energyhttp://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledgehttp://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledgehttp://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledgehttp://en.wikipedia.org/wiki/Project_Management_Institutehttp://en.wikipedia.org/wiki/Project_Management_Institutehttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=5http://en.wikipedia.org/wiki/Earned_value_management#cite_note-1%23cite_note-1http://en.wikipedia.org/wiki/Earned_value_management#cite_note-2%23cite_note-2http://en.wikipedia.org/wiki/Earned_value_management#cite_note-3%23cite_note-3http://en.wikipedia.org/wiki/Financial_analysishttp://en.wikipedia.org/wiki/United_States_Governmenthttp://en.wikipedia.org/wiki/Project_managementhttp://en.wikipedia.org/wiki/Project_managementhttp://en.wikipedia.org/wiki/Cost_engineeringhttp://en.wikipedia.org/wiki/Researchhttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-4%23cite_note-4http://en.wikipedia.org/wiki/Frank_Bunker_Gilbrethhttp://en.wikipedia.org/wiki/Frank_Bunker_Gilbrethhttp://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/United_States_Department_of_Defensehttp://en.wikipedia.org/wiki/Program_Evaluation_and_Review_Techniquehttp://en.wikipedia.org/wiki/Subculturehttp://en.wikipedia.org/wiki/Project_managerhttp://en.wikipedia.org/wiki/Secretary_of_Defensehttp://en.wikipedia.org/wiki/Dick_Cheneyhttp://en.wikipedia.org/wiki/A-12_Avenger_IIhttp://en.wikipedia.org/wiki/A-12_Avenger_IIhttp://en.wikipedia.org/wiki/Federal_Acquisition_Regulationshttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-5%23cite_note-5http://en.wikipedia.org/wiki/National_Aeronautics_and_Space_Administrationhttp://en.wikipedia.org/wiki/United_States_Department_of_Energyhttp://en.wikipedia.org/wiki/United_States_Department_of_Energyhttp://en.wikipedia.org/wiki/Project_Management_Body_of_Knowledgehttp://en.wikipedia.org/wiki/Project_Management_Institutehttp://en.wikipedia.org/wiki/Project_Management_Institute
  • 8/3/2019 Introduction to EVM

    19/28

    Performance Management. The United States Office of Management and Budget

    began to mandate the use of EVM across all government agencies, and, for the first

    time, for certain internally-managed projects (not just for contractors). EVM alsoreceived greater attention by publicly-traded companies in response to the Sarbanes-

    Oxley Act of 2002.

    [edit] Scaling EVM from simple to advanced

    implementations

    Thefoundational principle of EVM, mentioned above, does not depend on the size

    or complexity of the project. However, the implementations of EVM can vary

    significantly depending on the circumstances. In many cases, organizations establishan all-or-nothing threshold; projects above the threshold require a full-featured

    (complex) EVM system and projects below the threshold are exempted. Another

    approach that is gaining favor is to scale EVM implementation according to the

    project at hand and skill level of the project team.

    [7]

    [8]

    [edit] Simple implementations (emphasizing only technical

    performance)

    There are many more small and simple projects than there are large and complexones, yet historically only the largest and most complex have enjoyed the benefits of

    EVM. Still, lightweight implementations of EVM are achievable by any person who

    has basic spreadsheet skills. In fact, spreadsheet implementations are an excellentway to learn basic EVM skills.

    Thefirst step is to define the work. This is typically done in a hierarchicalarrangement called a work breakdown structure (WBS) although the simplest projects

    may use a simple list of tasks. In either case, it is important that the WBS or list becomprehensive. It is also important that the elements be mutually exclusive, so that

    work is easily categorized in one and only one element of work. The most detailed

    elements of a WBS hierarchy (or the items in a list) are called activities (or tasks).

    Thesecond step is to assign a value, called planned value (PV), to each activity. Forlarge projects, PV is almost always an allocation of the total project budget, and may

    be in units of currency (e.g., dollars or euros) or in labor hours, or both. However, in

    very simple projects, each activity may be assigned a weighted point value" which

    might not be a budget number. Assigning weighted values and achieving consensuson all PV quantities yields an important benefit of EVM, because it exposes

    misunderstandings and miscommunications about the scope of the project, andresolving these differences should always occur as early as possible. Some terminal

    elements can not be known (planned) in great detail in advance, and that is expected,

    because they can be further refined at a later time.

    http://en.wikipedia.org/wiki/United_States_Office_of_Management_and_Budgethttp://en.wikipedia.org/wiki/Sarbanes-Oxley_Act_of_2002http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act_of_2002http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=6http://en.wikipedia.org/wiki/Earned_value_management#cite_note-6%23cite_note-6http://en.wikipedia.org/wiki/Earned_value_management#cite_note-6%23cite_note-6http://en.wikipedia.org/wiki/Earned_value_management#cite_note-7%23cite_note-7http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=7http://en.wikipedia.org/wiki/Spreadsheethttp://en.wikipedia.org/wiki/Work_breakdown_structurehttp://en.wikipedia.org/wiki/Mutually_exclusivehttp://en.wikipedia.org/wiki/United_States_Office_of_Management_and_Budgethttp://en.wikipedia.org/wiki/Sarbanes-Oxley_Act_of_2002http://en.wikipedia.org/wiki/Sarbanes-Oxley_Act_of_2002http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=6http://en.wikipedia.org/wiki/Earned_value_management#cite_note-6%23cite_note-6http://en.wikipedia.org/wiki/Earned_value_management#cite_note-7%23cite_note-7http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=7http://en.wikipedia.org/wiki/Spreadsheethttp://en.wikipedia.org/wiki/Work_breakdown_structurehttp://en.wikipedia.org/wiki/Mutually_exclusive
  • 8/3/2019 Introduction to EVM

    20/28

    The third step is to define earning rules for each activity. The simplest method is to

    apply just one earning rule, such as the 0/100 rule, to all activities. Using the 0/100

    rule, no credit is earned for an element of work until it is finished. A related rule iscalled the 50/50 rule, which means 50% credit is earned when an element of work is

    started, and the remaining 50% is earned upon completion. Other fixed earning rules

    such as a 25/75 rule or 20/80 rule are gaining favor, because they assign more weightto finishing work than for starting it, but they also motivate the project team to

    identify when an element of work is started, which can improve awareness of work-

    in-progress. These simple earning rules work well for small or simple projectsbecause generally each activity tends to be fairly short in duration.

    These initial three steps define the minimal amount of planning for simplified EVM.

    Thefinal step is to execute the project according to the plan and measure progress.

    When activities are started or finished, EV is accumulated according to the earningrule. This is typically done at regular intervals (e.g., weekly or monthly), but there is

    no reason why EV cannot be accumulated in near real-time, when work elements are

    started/completed. In fact, waiting to update EV only once per month (simplybecause that is when cost data are available) only detracts from a primary benefit ofusing EVM, which is to create a technical performance scoreboard for the project

    team.

    In a lightweight implementation such as described here, the project manager has not

    accumulated cost nor defined a detailed project schedule network (i.e., using a criticalpath or critical chain methodology). While such omissions are inappropriate for

    managing large projects, they are a common and reasonable occurrence in many verysmall or simple projects. Any project can benefit from using EV alone as a real-time

    score of progress. One useful result of this very simple approach (without schedule

    models and actual cost accumulation) is to compare EV curves of similar projects, as

    illustrated in Figure 5. In this example, the progress of three residential constructionprojects are compared by aligning the starting dates. If these three home construction

    http://en.wikipedia.org/wiki/Scoreboardhttp://en.wikipedia.org/wiki/File:EVM_Fig5.pnghttp://en.wikipedia.org/wiki/Scoreboard
  • 8/3/2019 Introduction to EVM

    21/28

    projects were measured with the same PV valuations, the relative schedule

    performance of the projects can be easily compared.

    [edit] Intermediate implementations (integrating technical and

    schedule performance)

    In many projects, schedule performance (completing the work on time) is equal in

    importance to technical performance. For example, some new product development

    projects place a high premium on finishing quickly. It is not that cost is unimportant,but finishing the work later than a competitor may cost a great deal more in lost

    market share. It is likely that these kinds of projects will not use the lightweight

    version of EVM described in the previous section, because there is no plannedtimescale for measuring schedule performance. A second layer of EVM skill can be

    very helpful in managing the schedule performance of these intermediate projects.

    The project manager may employ a critical path orcritical chain to build aprojectschedule model. As in the lightweight implementation, the project manager must

    define the work comprehensively, typically in a WBS hierarchy. He/she willconstruct a project schedule model that describes the precedence links betweenelements of work. This schedule model can then be used to develop the PV curve (or

    baseline), as shown inFigure 2'.

    It should be noted that measuring schedule performance using EVM does not replace

    the need to understand schedule performance versus the project's schedule model(precedence network). However, EVM schedule performance, as illustrated in Figure

    2 provides an additional indicator one that can be communicated in a single chart.

    Although it is theoretically possible that detailed schedule analysis will yield

    different conclusions than broad schedule analysis, in practice there tends to be a high

    correlation between the two. Although EVM schedule measurements are notnecessarily conclusive, they provide useful diagnostic information.

    Although such intermediate implementations do not require units of currency (e.g.,dollars), it is common practice to use budgeted dollars as the scale for PV and EV. It

    is also common practice to track labor hours in parallel with currency. The following

    EVM formulas are for schedule management, and do not require accumulation of

    actual cost (AC). This is important because it is common in small and intermediatesize projects for true costs to be unknown or unavailable.

    Schedule variance (SV)

    SV greater than 0 is good (ahead of schedule). The SV will be 0 at project

    completion because then all of the planned values will have been earned.

    http://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=8http://en.wikipedia.org/wiki/New_product_developmenthttp://en.wikipedia.org/wiki/Critical_path_methodhttp://en.wikipedia.org/wiki/Critical_chainhttp://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=8http://en.wikipedia.org/wiki/New_product_developmenthttp://en.wikipedia.org/wiki/Critical_path_methodhttp://en.wikipedia.org/wiki/Critical_chainhttp://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Project_network
  • 8/3/2019 Introduction to EVM

    22/28

    Schedule performance index (SPI)

    SPI greater than 1 is good (ahead of schedule).See alsoearned schedule for a description of known limitations in SV and SPI

    formulas and an emerging practice for correcting these limitations.

    [edit] Advanced implementations (integrating

    cost, schedule and technical performance)

    In addition to managing technical and schedule

    performance, large and complex projects require that cost

    performance be monitored and reviewed at regularintervals. To measure cost performance, planned value

    (or BCWS -Budgeted Cost of Work Scheduled) andearned value (or BCWP - Budgeted Cost of Work

    Performed) must be in units of currency (the same unitsthat actual costs are measured.) In large implementations,

    the planned value curve is commonly called a

    Performance Measurement Baseline (PMB) and may bearranged in control accounts, summary-level planning

    packages, planning packages and work packages. In large

    projects, establishing control accounts is the primarymethod of delegating responsibility and authority to

    various parts of the performing organization. Control

    accounts are cells of a responsibility assignment (RACI)matrix, which is intersection of the project WBS and theorganizational breakdown structure(OBS). Control

    accounts are assigned to Control Account Managers

    (CAMs). Large projects require more elaborate processesfor controlling baseline revisions, more thorough

    integration with subcontractor EVM systems, and more

    elaborate management of procured materials.

    In the United States, the primary standard for full-featured EVM systems is the ANSI/EIA-748A standard,

    published in May 1998 and reaffirmed in August 2002.The standard defines 32 criteria for full-featured EVMsystem compliance. As of the year 2007, a draft of

    ANSI/EIA-748B, a revision to the original is available

    from ANSI. Other countries have established similarstandards.

    http://en.wikipedia.org/wiki/Earned_schedulehttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=9http://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Organization_charthttp://en.wikipedia.org/wiki/Earned_schedulehttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=9http://en.wikipedia.org/wiki/Budgeted_cost_of_work_scheduledhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Responsibility_assignment_matrixhttp://en.wikipedia.org/wiki/Organization_chart
  • 8/3/2019 Introduction to EVM

    23/28

    In addition to using BCWS and BCWP, prior to 1998

    implementations often use the term Actual Cost of Work

    Performed (ACWP) instead of AC. Additional acronymsand formulas include:

    Budget at completion (BAC): The total planned value (PV or BCWS) at the end

    of the project. If a project has a Management Reserve (MR), it is typically notincluded in the BAC, and respectively, in the Performance Measurement

    Baseline.

    Cost variance (CV)

    CV greater than 0 is good (under budget).

    Cost Performance Index (CPI)

    CPI greater than 1 is good (under budget):

    < 1 means that the cost of completing the work is higher than planned (bad);

    = 1 means that the cost of completing the work is right on plan (good);> 1 means that the cost of completing the work is less than planned (good or

    sometimes bad).Having a CPI that is very high (in some cases, very high is only 1.2) may mean

    that the plan was too conservative, and thus a very high number may in fact not begood, as the CPI is being measured against a poor baseline. Management or the

    customer may be upset with the planners as an overly conservative baseline ties

    up available funds for other purposes, and the baseline is also used for manpowerplanning.

    Estimate at completion (EAC)

    EAC is the manager's projection of total cost of the project at completion.

    Estimate to complete (ETC)

    ETC is the estimate to complete the remaining work of the project.

  • 8/3/2019 Introduction to EVM

    24/28

    To-complete performance index (TCPI)

    The TCPI provides a projection of the anticipated performance required to

    achieve either the BAC or the EAC. TCPI indicates the future required cost

    efficiency needed to achieve a target BAC (Budget At Complete) or EAC(Estimate At Complete). Any significant difference between CPI, the cost

    performance to date, and the TCPI, the cost performance needed to meet the BAC

    or the EAC, should be accounted for by management in their forecast of the final

    cost.

    For the TCPI based on BAC (describing the performance required to meet the

    original BAC budgeted total):

    or for the TCPI based on EAC (describing the performance required to meet anew, revised budget total EAC):

    Independent estimate at completion (IEAC)

    The IEAC is a metric to project total cost using the performance to date to project

    overall performance. This can be compared to the EAC, which is the manager'sprojection.

  • 8/3/2019 Introduction to EVM

    25/28

    reverse engineeringReverse engineering is taking apart an object to see how it works in order to duplicate or

    enhance the object. The practice, taken from older industries, is now frequently used on

    computer hardware and software. Software reverse engineering involves reversing aprogram'smachine code (the string of 0s and 1s that are sent to the logic processor) back

    into the source codethat it was written in, using program language statements.

    Software reverse engineering is done to retrieve the source code of a program because the

    source code was lost, to study how the program performs certain operations, to improvethe performance of a program, to fix abug(correct an error in the program when the

    source code is not available), to identify malicious content in a program such as a virus or

    to adapt a program written for use with one microprocessor for use with another. Reverseengineering for

    Learn More

    CIO Midmarket Resources

    the purpose of copying or duplicating programs may constitute a copyright violation. In

    some cases, the licensed use of software specifically prohibits reverse engineering.

    Someone doing reverse engineering on software may use several tools to disassemble aprogram. One tool is a hexadecimal dumper, which prints or displays the binary numbers

    of a program in hexadecimal format (which is easier to read than a binary format). By

    knowing the bit patterns that represent the processor instructions as well as the instructionlengths, the reverse engineer can identify certain portions of a program to see how they

    work. Another common tool is the disassembler. The disassembler reads the binary code

    and then displays each executable instruction in text form. A disassembler cannot tell the

    difference between an executable instruction and the data used by the program so adebuggeris used, which allows the disassembler to avoid disassembling the data portions

    of a program. These tools might be used by acrackerto modify code and gain entry to a

    computer system or cause other harm.

    Hardware reverse engineering involves taking apart a device to see how it works. For

    example, if a processor manufacturer wants to see how a competitor's processor works,

    they can purchase a competitor's processor, disassemble it, and then make a processor

    http://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212507,00.htmlhttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212507,00.htmlhttp://searchsoa.techtarget.com/sDefinition/0,,sid26_gci213030,00.htmlhttp://searchsoa.techtarget.com/sDefinition/0,,sid26_gci213030,00.htmlhttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci211714,00.htmlhttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci211714,00.htmlhttp://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci213306,00.htmlhttp://searchcio-midmarket.techtarget.com/resources/CIO-Midmarket-Resourceshttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212247,00.htmlhttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212356,00.htmlhttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci211915,00.htmlhttp://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci211852,00.htmlhttp://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci211852,00.htmlhttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212507,00.htmlhttp://searchsoa.techtarget.com/sDefinition/0,,sid26_gci213030,00.htmlhttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci211714,00.htmlhttp://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci213306,00.htmlhttp://searchcio-midmarket.techtarget.com/resources/CIO-Midmarket-Resourceshttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212247,00.htmlhttp://searchcio-midmarket.techtarget.com/sDefinition/0,,sid183_gci212356,00.htmlhttp://searchsoftwarequality.techtarget.com/sDefinition/0,,sid92_gci211915,00.htmlhttp://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci211852,00.html
  • 8/3/2019 Introduction to EVM

    26/28

    similar to it. However, this process is illegal in many countries. In general, hardware

    reverse engineering requires a great deal of expertise and is quite expensive.

    Another type of reverse engineering involves producing3-Dimages of manufacturedparts when a blueprint is not available in order to remanufacture the part. To reverse

    engineer a part, the part is measured by a coordinate measuring machine (CMM). As it ismeasured, a 3-D wire frame image is generated and displayed on a monitor. After the

    measuring is complete, the wire frame image is dimensioned. Any part can be reverseengineered using these methods.

    The termforward engineeringis sometimes used in contrast to reverse engineering.

    Related glossary terms:Ohm's Law, reboot (warm boot, cold boot), self-destructing

    email, shared memory, electron,L1 and L2,permittivity (electric permittivity),cardinality,angular velocity (rotational velocity),SKU

    [edit] L

    EVM has nquality, so

    project is u

    scope fullyclients and

    other word

    project man

    Because EVproject plan

    inapplicabl

    software deit may be im

    projects far

    uncovers so

    and activelanother sch

    can be plan

    or other sho

    is to createimplementa

    not simply technical p

    lightweight

    described a

    changing warea of proj

    http://whatis.techtarget.com/definition/0,,sid9_gci211499,00.htmlhttp://whatis.techtarget.com/definition/0,,sid9_gci211499,00.htmlhttp://whatis.techtarget.com/definition/0,,sid9_gci211499,00.htmlhttp://searchcio-midmarket.techtarget.com/definition/Ohms-Lawhttp://searchcio-midmarket.techtarget.com/definition/reboothttp://searchcio-midmarket.techtarget.com/definition/self-destructing-emailhttp://searchcio-midmarket.techtarget.com/definition/self-destructing-emailhttp://searchcio-midmarket.techtarget.com/definition/shared-memoryhttp://searchcio-midmarket.techtarget.com/definition/electronhttp://searchcio-midmarket.techtarget.com/definition/L1-and-L2http://searchcio-midmarket.techtarget.com/definition/L1-and-L2http://searchcio-midmarket.techtarget.com/definition/permittivityhttp://searchcio-midmarket.techtarget.com/definition/permittivityhttp://searchcio-midmarket.techtarget.com/definition/permittivityhttp://searchcio-midmarket.techtarget.com/definition/cardinalityhttp://searchcio-midmarket.techtarget.com/definition/cardinalityhttp://searchcio-midmarket.techtarget.com/definition/angular-velocityhttp://searchcio-midmarket.techtarget.com/definition/SKUhttp://searchcio-midmarket.techtarget.com/definition/SKUhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=10http://en.wikipedia.org/wiki/Agilehttp://whatis.techtarget.com/definition/0,,sid9_gci211499,00.htmlhttp://searchcio-midmarket.techtarget.com/definition/Ohms-Lawhttp://searchcio-midmarket.techtarget.com/definition/reboothttp://searchcio-midmarket.techtarget.com/definition/self-destructing-emailhttp://searchcio-midmarket.techtarget.com/definition/self-destructing-emailhttp://searchcio-midmarket.techtarget.com/definition/shared-memoryhttp://searchcio-midmarket.techtarget.com/definition/electronhttp://searchcio-midmarket.techtarget.com/definition/L1-and-L2http://searchcio-midmarket.techtarget.com/definition/permittivityhttp://searchcio-midmarket.techtarget.com/definition/cardinalityhttp://searchcio-midmarket.techtarget.com/definition/angular-velocityhttp://searchcio-midmarket.techtarget.com/definition/SKUhttp://en.wikipedia.org/w/index.php?title=Earned_value_management&action=edit&section=10http://en.wikipedia.org/wiki/Agile
  • 8/3/2019 Introduction to EVM

    27/28

    Traditional

    discrete (co

    EVM standlevel of ef

    contains a s

    LOE is interesults will

    another are

    Traditional

    assume thanetwork sc

    prerequisit

    EVM. Manof these pre

    from EVM

    implementplanned wihave acces

    data. In pra

    timely actudifficult asp

    benefit from

    intermediatEarned Sch

    As a means

    EVM's lackperformancCommand

    initiated a p

    integrate trEVM proje

    These risk

    that may be

    exploited aproceeds. T

    Technical P

    methodologstill used b

    EVM estim[11] The resethe recipien

    University

    1997 Acke

    http://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Earned_Value_Management#Simple_implementations_.28emphasizing_only_technical_performance.29http://en.wikipedia.org/wiki/Earned_Value_Management#Intermediate_implementations_.28integrating_technical_and_schedule_performance.29http://en.wikipedia.org/wiki/Earned_Schedulehttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-10%23cite_note-10http://en.wikipedia.org/wiki/Project_networkhttp://en.wikipedia.org/wiki/Earned_Value_Management#Simple_implementations_.28emphasizing_only_technical_performance.29http://en.wikipedia.org/wiki/Earned_Value_Management#Intermediate_implementations_.28integrating_technical_and_schedule_performance.29http://en.wikipedia.org/wiki/Earned_Schedulehttp://en.wikipedia.org/wiki/Earned_value_management#cite_note-10%23cite_note-10
  • 8/3/2019 Introduction to EVM

    28/28