IFPUG FPA for Maintenance, NESMA Tutorial

6.2 IFPUG FPA for Maintenance NESMA

Hello and welcome to software estimation course offered by Simplilearn. In the previous module, we understood Complexity Tables, General System Characteristics, and FPA Summary. In this module, we will cover IFPUG FPA for Maintenance, NESMA (pronounce as nes-ma). Let us begin with the agenda of this module in the next slide.

6.3 Agenda

In this module, we will first understand the various types of function point counts and dissect their equations. This will be followed by looking into the drawbacks of IFPUG FPA for maintenance projects. Finally, we will be introduced to another sizing technique called NESMA (pronounce as nes-ma), which is specifically aimed towards maintenance projects. In the next slide, we will look into the equations of various types of function point counts.

6.4 Types of FP Counts

The concepts covered till now were development function point. This is the type of count that is determined when a new software application is being developed afresh. The equation to determine the development function point count is shown by equation– 1 in the slide. This is the same equation that was covered in previous module, where unadjusted function point count is multiplied with value adjustment factor to determine the adjusted function point count. Often when a new application being developed is replacing a legacy application, the existing data must be converted and migrated to the new application. This attribute is counted as part of CFP which is an unadjusted conversion function point count. Application function point count represents the size of the application after all the functionality has been built in. The equation – 2 describes the equation to determine the application function point count. ADD (pronounced as add) describes the unadjusted function point count of those functions that were installed by the development project. Since many enhancements would have been installed in the application after the initial development, this factor describes all the functionality available in the application when the count is being performed. Enhancement function point describes only that delta of the functionality; that is added, modified, or deleted as a part of the enhancement project. Equation – 3 describes the equation to determine the function points for an enhancement project. ADD (pronounced as add) is the unadjusted function point count of those functions that are added by the enhancement project. To determine ADD, identify and rate all the data and transaction functions that are added newly due to the enhancement function. CHGA (pronounced as C-H-G-A) describes the functionality changed or modified due to the enhancement project. Similar to ADD, CHGA identify and rate all the data and transaction functions that are modified due to the enhancement. CFP, as discussed earlier, represents the conversion function point count. VAFA (pronounced as V-A-F-A) is the value adjustment factor of the application, after the enhancement is implemented. DEL (pronounced as del) represents the unadjusted function point of those data and transaction functions that are deleted as part of the enhancement project. To determine this factor, all the data and transaction functions that are deleted due to the enhancement factor have to be identified and rated. VAFB (pronounced as V-A-F-B) describes the value adjustment factor of the application before the enhancement project. While development and application function points are widely used, there have been concerns over enhancement function point. In the next slide, we will look into the drawbacks of IFPUG FPA for enhancement projects.

6.5 Drawback of Enhancement FP

One of the primary drawbacks of enhancement function point, based on IFPUG FPA, is to classify the data and transaction functions that are added, modified, and deleted as part of the enhancement. As the complexity of the applications increases, identifying specific functions that are added, modified, or deleted for an enhancement becomes difficult. Another important drawback is that the value adjustment factor has to be determined before and after the enhancement functions are implemented. What this means is that the GSCs have to be rated for the application before and after the change. This would make the entire process subjective, because a baseline for the ratings of the GSCs of the application, before changes must be available. Another key drawback was that the impact of change is not considered during the counting process. Even if the amount change for a data or transaction function is very minimal, the entire function is counted, which might adversely impact the overall enhancement count. Due to these drawbacks, acceptance of IFPUG FPA for enhancement projects was low. To counter these drawbacks, a technique prescribed by NESMA (Pronounced as nes-ma) (NEtherlands Software Metrics users Association) is widely used. In the next slide, we will be introduced to NESMA and its history.

6.6 Introduction to NESMA

Nesma was founded in 1989 as NEFPUG (Pronounced as nef-pug) (Netherlands Function Point Users Group). This Dutch organization is the second largest Functional Size Measurement (FSM) organization after IFPUG. The prime focus of NESMA when it was formed was to define techniques to determine the function point counts for enhancement projects. The first report on this analysis was first published by the group in August 1993 which consisted of a set of guidelines to determine enhancement function point count. After the guidelines were put to use by projects, the guidelines were revised, and the current version of the guidelines is version 2.2 released in August 2008. Let us cover the prerequisites for carrying out function point analysis for an enhancement based on NESMA guidelines in the following slide.

6.7 Pre requisites for NESMA

One of the pre-requisites for NESMA technique is the function point count, of the application which is being enhanced. This is the current application function point count discussed previously. The IFPUG FPA technique is used to determine the application function point count. In addition, documentation related to the current system is required, which will help to identify the functionalities provided by the current application, and helps to identify the functionalities getting impacted due to the enhancement. Most importantly, clear requirements of the enhancement being proposed to the application are required. These requirements are used to determine the functions impacted due to the enhancement. Optionally, if the detailed test plan of enhancement project is available, it helps in clear identification of the data, and transaction functions impacted due to the enhancement. After applying NESMA technique for determining the enhancement function point count with these prerequisites, there are two resulting function point counts. The first is the overall application function point of the enhanced application and the other is the functional size of the enhancement project. The next slide deals with steps in NESMA technique.

6.8 Steps in NESMA Technique

The seven step process for determining the enhancement and application function point count is shown in the slide. Closer look at the steps will reveal that it is not too different from the IFPUG FPA process. However, the drawbacks of the IFPUG FPA process have been handled in these steps. The first step is to identify the functions within the scope of the enhancement project, and determine their functional size. The second step is to determine the functions that are to be added. The third step is to determine the functions that are to be deleted. Determining the data functions to be changed and the impact factor is the fourth step. This is followed by determining the transaction functions to be changed and the impact factor, which is the fifth step. The sixth step is to calculate enhancement function point count. The last step is to calculate the application function point count. Let us start with the first step, that is, to identify the functions within the scope of the enhancement project, in the next slide.

6.9 Identify the Functions Within the Scope of the Enhancement Project

The first step is to identify all the data and transaction functions within the scope of the enhancement project using the enhancement requirements, functional documentation of the current system, and the function point count of the existing system as reference. What this means is that all the data and transaction function of the current system needs to be identified, where the enhancement is being implemented. Once all such data and transaction functions are identified, the functional size of these functions must be determined using the usual IFPUG FPA technique. The resulting count is indicated as ???FP?_BASE (pronounced as sum of f-p base) which describes the base function point of all the existing data and transaction function. We will move on to the second step of the NESMA process in the next slide.

6.10 Determine Functions That Will be Added

In this step, all the data and transaction functions that are to be added for the enhancement project needs to be identified, based on the enhancement requirement specifications. Once identified, the functional size of these added functions are determined, based on the usual IFPUG FPA counting process. Remember, one of the constraints of IFPUG FPA is that the level of impact on the functions is not considered. In NESMA, an additional factor is introduced to eliminate the constraint, which is called impact factor. This impact factor is multiplied with the size calculated for added, modified, and deleted functions, to determine the total functional size of the impacted functions. In the case of added functionality, since the functions are newly created, the impact factor is 1.00. Thus, the enhancement function point for a single added functionality is the function point count of the added transaction or data functions. This is described by the equation – ?EFP?_ADDED= ?FP?_ADDED (pronounced as e-f-p added equals f-p added). The third step in the NESMA process is dealt in the next slide.

6.11 Determine Functions That will be Deleted

Similar to the previous step, in this step the data and transaction functions that are deleted due to the enhancement project are identified. Once identified, the size of these deleted functions is calculated using the usual IFPUG FPA technique. The sum of the size of these deleted functions is indicated as ???FP?_DELETED (pronounced as sum of f-p deleted). Where the impact factor for added functions was 1.00, the impact factor for deleted functions is 0.40 (pronounce as zero point four zero). Thus, enhancement function point for a single deleted functionality the function point count of the deleted transaction or data function. This is described by the equation – ?EFP?_DELETED= ?FP?_DELETED *0.40(pronounced as e-f-p deleted equals f-p deleted multiplied by zero point four zero). In the next slide, we will look into the next step in the process.

6.12 Determine the Data Functions to be Changed and Determine the Impact Factor

Unlike added and deleted data functions, the method to determine the functional size for changed functionality is not straight-forward. When a data function is being changed for an enhancement, they are assessed to identify the change which can be of two types – either when the DETs within the functions are being added, modified, or deleted which is known as the internal change. The other change is the change in type, which would occur when the function type changes from ILF to EIF or vice versa. Once all the data functions being changed are identified, the functional size of these data functions are determined based on standard IFPUG FPA technique. This is indicated as ?FP?_CHANGED (pronounced as f-p changed) The impact factor for changed data functions are determined by the type of change in the data function. If the type of the data function is changed, then the impact factor is 0.40. If the DETs are being changed in the data function, the percentage change in the DETs is first calculated. This percentage change in the DETs within a data function is used to determine the impact factor. The impact factor based on changes in DETs is determined with the table shown in the slide. For example, if the change is less than one-third of the number of original DETs, the impact factor is 0.25. Once the appropriate impact analysis is determined, this is multiplied with the functional size of the changed data function. The formula is ?EFP?_CHANGED= ?FP?_CHANGED*I_CHANGED (pronounced as e-f-p changed equals f-p changed multiplied with i changed) In the next slide, we will look at the next step of the process.

6.13 Determine the Transaction Functions to be Changed and Determine the Impact Factor

Similar to changed data functions, all transaction functions that are being changed for the enhancement project have to be identified. A transactional function is considered to be changed if it is altered in some way, but retains the same name and purpose after enhancement, as before it. Standards FPA rules are applied to determine the functional size of all the changed transaction functions and is indicated as ?FP?_CHANGED (pronounced as f-p changed). While for changed data functions, the percentage of DETs changed are calculated to determine the impact factor. In case of transaction function, the percentage of DETs and FTRs changed is calculated. The percentage of DETs changed is calculated as number of DETs added, modified, or deleted by the original number of DETs present in the transaction function. Similarly, percentage change in FTRs is calculated as number of FTRs added, modified, or deleted by original number of FTRs in the transaction function. Based on these percentage changes in DETs and FTRs, the impact factor is determined from the table shown in the slide. For example, if the percentage of change in DETs is less than or equal to 100 percent and the percentage change in FTRs is greater than 100 percent, then the impact factor would be 1.25. Thus, the enhancement function point of a single changed transaction function is calculated with the formula – ?EFP?_CHANGED= ?FP?_CHANGED*I_CHANGED (pronounced as e-f-p changed equals f-p changed multiplied with i changed). Let us calculate the enhancement function point size in the next slide.

6.14 Calculate the Enhancement Function Point Size

The total size of the enhancement project is determined by summing up the enhancement function points for the impacted transaction, and data functions that were calculated in the preceding steps. The equation for the total enhancement function point is ?EFP?_TOTAL= ????EFP?_ADDED+ ????EFP?_DELETED+ ???EFP?_CHANGED ?? (pronounced as e-f-p total equals sum of e-f-p added plus sum of e-f-p deleted plus sum of e-f-p changed) In the next slide, we will calculate the size of the system after enhancement.

6.15 Calculate the Size of the System After Enhancement

The functional size of an application may change as a result of an enhancement. To determine the size of the application after enhancement, the first step is to calculate the function point size of the application before implementation of the enhancement. This base functional size of the application is indicated as ?FP?_BASE (pronounced as f-p base). Next, identify all the deleted data and transaction functions and determine their functional size using the standard FPA counting rules. This is indicated as ???FP?_DELETED (pronounced as sum of f-p deleted). Similarly identify and determine the functional size of all the newly added data and transaction functions. This is indicated as ???FP?_ADDED (pronounced as sum of f-p added). Next, identify all the data and transaction functions that are changed. Once identified, determine the functional size of these functions before and after change using normal FPA rules. These are indicated as ???FP?_BEFORE (pronounced as sum of f-p before), and ???FP?_AFTER (pronounced as sum of f-p after) respectively. Once the added, deleted, and changed (before and after) functional size is calculated, the new application size can be determined using the equation – ?FP?_NEW= ?FP?_BASE+ (???FP?_ADDED )+ (????FP?_AFTER-???FP?_BEFORE ?)-(???FP?_DELETED ) (pronounced as f-p new equals f-p base plus sum of f-p added plus sum of f-p after minus sum of f-p before minus sum of f-p deleted). That is, to determine the new application size, the base size of the application is added with the functional size of new functions, plus the functional size of the changed functions and the functional size of the deleted functions are deducted. As an alternate to these steps, the application size can be determined by just analyzing the whole application after the enhancement has been implemented. ?FP?_NEW (Pronounced as f-p new) indicates the unadjusted function point of the application after enhancement. To determine the adjusted function point, the GSCs discussed in the previous modules are rated; VAF is determined and multiplied with the unadjusted function points. Let us summarize the module in the next slide.

6.16 Summary

We started this module with a recap of the types of function point counts, and understood the calculation formulae for each of the types of count. We covered that determining enhancement function point as per IFPUG FPA deals with the identification and rating of impacted data functions, as well as determining the VAF before and after enhancement. We found that one of the key drawbacks of the IFPUG FPA for enhancement function point is that it is not sensible for the degree of impact in the functions due to the change. NESMA is an alternative technique for counting the enhancement function point for an enhancement project. NESMA deals with identifying and rating the added, deleted, modified data, and transaction functions. The resulting count is multiplied with impact factors, to determine the enhancement function point. With this we have completed our study of functional size measurement (FSM) techniques, which were based on the research paper that Allan Albrecht had presented in 1979. In the next module, we will look into the other sizing techniques.

  • Disclaimer
  • PMP, PMI, PMBOK, CAPM, PgMP, PfMP, ACP, PBA, RMP, SP, and OPM3 are registered marks of the Project Management Institute, Inc.

We use cookies on this site for functional and analytical purposes. By using the site, you agree to be cookied and to our Terms of Use. Find out more

Request more information

For individuals
For business
Name*
Email*
Phone Number*
Your Message (Optional)

By proceeding, you agree to our Terms of Use and Privacy Policy

We are looking into your query.
Our consultants will get in touch with you soon.

A Simplilearn representative will get back to you in one business day.

First Name*
Last Name*
Email*
Phone Number*
Company*
Job Title*

By proceeding, you agree to our Terms of Use and Privacy Policy