Function Point Analysis And Software Development Organizations Computer Science Essay

Published:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

5.1 Function Point Analysis Overview

Software Cost and Duration Estimation is an important factor in Software Development Organizations and one of the major specialization area in software engineering research. Project Planning phase start with an estimate of cost, effort, dates, schedule, duration, and resources [79]. Different techniques have been proposed to calculate the rough and exact cost of software during the initial stage of software development. As I mentioned in chapter 2 that there are three methods, Size-related metrics, Function-related metrics and Line of Source code per programming month (LOC/pm).

According to [80], instead of giving an answer to why software measurement is needed, we should focus on who needs software measurement. Function Point goal is to determine the functionality and calculating the complexity of the application, it is not about line of code [52]. The reason behind to choose Function Point Analysis is to enhance my experience and knowledge by further exploring this area. Software development organization usually uses Line of Code method, mostly developer are not aware of this technique [51]. But the interesting thing that has been seen in Function Point is; it gives you almost exact cost if you can precisely determine its scope, boundaries and all the major components i.e. Internal Logical File, External Interface File, External Input, External Output and External Queries. FPA give you the estimate independent of the technology you are going to use for developing the application [51]. According to the IFPUG Reference guide, another interesting thing which is notable about FPA is that it is conducted in a language independent of Information Technology jargon i.e. the language which is understandable by both the user of the system and the developer [54].

The important contribution of Function Point in my thesis can give me confidence so that I can go for further research in software engineering field in terms of Software Cost and Duration Estimation. International Function Point User Group (IFPUG) worked hard to introduce Function Point Analysis technique to decompose the attribute to its functional level and then classify it into data types as data function and transactional function point. Before decomposing the functionality, application boundary is identified. Application boundary is the scope of application. Function point is basically an integer which is assigned to data/transaction function, then comparing the complexity of that data type against the complexity matrix. Hence we get an unadjusted function point count which is again multiplied by a constant factor and resulting in a value added factor and then sum up all the point. The final figure is the total function point count.

Software Measurement is divided into three tiers according to their audience in software organization, (1) Project Management, (2) Middle Management & (3) Senior Management. Project Management is mostly dealing with function points efforts, defects, schedule and compliance. Middle Management is focusing on productivity, cost monitoring, efficiency and performance whereas Senior Management is responsible for time to market, customer satisfaction and cost saving, [80]. There are various techniques of cost estimation but the question arises that why these professionals and technical managers avoid software estimating techniques? Among reasons the more important one is lack of clear communication between customer, software professionals and managers [79]. I would not go in a deep detail about what is function point analysis? If I would jump into the details of FPA then the whole chapter would include the definitions and explanation. Where necessary, I would explain the meaning and relevance of the FPA terms with respect to the context. I would use the methodology of function points in next section. For readers who are newbie to FPA technique or they are not well aware of Function Point Analysis, please read the tutorial as mentioned at [59].

5.1.1 Functional Requirement

According to International Function Point User Group classification, we have two types of Functional Requirements:

1: Data Functions

2: Transactional Functions

Further classification of Data Functions and Transactional Functions is described as follows.

Internal Logical Files (ILF),

External Interface Files (EIF),

External Inputs (EI),

External Outputs (EO),

External Queries(EQ) , [51]

The first two components also called data components or data input files which end-user maintains while he/she interacts with the system. The last three components also called transactional components which end-user can manipulate (add/delete/change/display) while he/she interacts with the system.

It is important to clarify that end-user in this case can be either data entry operator/manager manipulating data with Inventory Control System or any customer sitting at any remote place and interacting with online shopping system. I concentrated a lot on data findings which is core for my development project to introduce this technique in my thesis. Many people do the rough calculation to estimate the cost and duration.

Figure 1: Explanation of ILF, EIF, EI, EO and EQ

5.1.2 Overview of Functional Requirements

Every thing in the application should be referred to; either data function or transaction function as mentioned above. Transaction Function Point results in further three types; External Input (EI), External Output (EO) and External Inquiry (EQ). Note that External Inquiry/Query is represented by EQ whereas Data Function Point falls into two types naming Internal Logical File (ILF) and External Interface File (EIF). Each of the above is having their own complexity matrix (Appendix F). According to the requirements I have to develop two sites, Administrative site and Client site. Administrative site where employee can manage the whole system. Client site will be developed for customers to check the product on site and buy it online.

5.1.3 Speific Functional Requirements for administration web site

General Description

Importance

Top level

Need for

Constraints

Information must be updated every time in the database whenever any new change will happen.

Details

Sign out

R2 Book Manager

General Description

Book Manager can manage Books

Importance

Top level

Need for

Constraints

Information must be updated every time in the data- base when ever any new change will be Done.

Details

Book Manager Perform following functionality's

Delete Book Category

Update Book Category

Delete Book

Update Book

Check Stock info

Table 2: Book Manager

5.1.4 Online Shopping Sites

Customer can get books from selected category, or search the book via selected options (Book Title, Author Name, Publisher, and ISBN No) then click search button. When customer selects one or more books, now he/she can add, update and delete from his cart then he can Order the Books via click the Check out button.

Customer can track his order status via enter order number then click Get Order button.

R3 Customer Site

General Description

Client site search book option.

Importance

Top level

Need for

Customer purposes.

Constraints

Information must be updated every time in the database when ever any new change will be done.

Details

Client site Perform following functionality's.

Search Book

New Order

View Order Information

View Service Page

Table 3: Customer Site Requirement

5.1.6 Function Point Calculation

Applying the rules of IFPUG; According to [52]

Process 1: Determine the type of function point count

Process 2: Determine the scope and boundary of function point count

Process 3a: Identify and rate transactional function point types to calculate the contribution to the unadjusted function point (UFP).

Process 3b: Identify and rate the data function types and their contribution to UFP.

Process 4: Determine the Value Adjustment Factor by using General System Characteristics (GSC).

Process 5: Finally calculate the Adjusted Function Point Count( That is the numerical digit )

5.2 Determine the Type of Function Point Count: Process 1

Function Point Analysis offers three types of function point count i.e. Development Project Function Point Count, Enhancement Project Function Point Count and Application function Point Count [51]. As by requirement I am going to build a simple web application from the beginning so type of my application is Development Project Function Point Count.

Process 2

Boundary of our application is online website for client and Admin website for the employee. It usually encloses the logical files referenced by the application but it is not maintained by the application and mostly user external business point of view, [51].

5.4 Identification of Data Functions and Transaction Function: Process 3a and 3b

In this section I would mention all those functions which would be either data function or transaction function. The analysis is based on the definitions and details as mentioned at [59]. Every single word of application should be referred as ILF, EIF, EQ, EI, or EO.

5.4.1 Find the Unadjusted Function Point Count (UFP)

UFP can be determined once we get all data functions and transaction function and their corresponding values in the tables. See section 4.5.12 for detail.

Online website's Data or Transactional function

ILF

EQ

Search

EI

Select Book

EI

EI

EI

EQ

EQ

EQ

ILF

Order

EI

New Order

EO

Order Tracking information

EIF

Book

EIF

Category

Table 4: Data Function and Transaction Function in Client Site

Admin website's Data or Transactional function

ILF

EO

EQ

Logout

EQ

ILF

Category

EI

EI

Update Book Category

EI

Delete Book Category

EI

EI

Update Book

EI

Delete Book

EQ

ILF

Book

EQ

Check Stock Information

EI

Deliver order

EO

Order Track Display

EI

Cancel Order

EI

Return Order

Table 5: Data Function and Transaction Function in Admin Site

Calculation of ILF, EIF, EI,EO and EQ

I have to calculate the Transactional Function Points, which means all ILFs and EIFs. Taking ILF and EIF from table 5 and 6 and counting them as Record Element Types and Data Element Types. Record Element Type, if it has sub values i.e. Address and Data Element type if it has a single value. [51]. In the next section, I will mostly go through all tables and corresponding values against each variable. I will not mention the detail of the table but after finishing all tables then I will described that how these table values will be put together to find UFP.

No

No

Yes

No

No

No

Yes

Yes

No

Yes

Yes

Yes

Total no of RETS =1

Table 6: ILF Calculation i.e. Buyer

No

No

No

No

Yes

No

No

Yes

Yes

Yes

Yes

No

Yes

Yes

Total no of RETS =1

Table 7: ILF Calculation i.e. Order

When we calculate EI, EO or EQ, then we have to mention another term as File Type Referenced (FTR), if there is a file which is refering to another file to fetch data.If EI/EO/EQ exist on client site and admin site , then it must be counted as one transaction function. It is not necessary to count two separate data function.

Book/Category

Us page

Order/

Order detail

2

1

1

1

3

15

0

0

0

1

Total no of FTR = 8

Table 8: EQ, EO Calculation for Client Site

5.4.5 Calculate EI for Client Site i.e. New Order

Table 9: EI Calculation for Client Site

No

No

No

No

No

No

Yes

Yes

Yes

Yes

Yes

Yes

Total no of RETS =1

Table 10: EIF Calculation for Client and Admin

No

No

No

Yes

No

No

No

No

Yes

Yes

Yes

No

Yes

Yes

Yes

Yes

Total no of RETS =1

Table 11: EIF Calculation for Admin Site

No

No

No

Yes

Yes

Yes

Yes

No

Total no of RETS =1

Table 12: Category EIF Calculation for Admin Site

Process Name

Book/Category/Stock

Book/Category

/Stock

Book/Category

/Stock

Book

/Stock

Book

/Stock

Book

/Stock

3

3

3

2

2

3

15

15

15

9

9

9

Total no of FTR =16

Table 13: EI Calculation for Admin Site

Process Name

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

5

5

5

13

13

13

Total no of FTR =15

Table 14: EI Calculation for Admin Site

Process Name

EO

EQ

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

5

5

5

5

13

13

13

13

Total no of FTR =15

Table 15: EI Calculation for Admin Site

From now onward I will explain how to get UFP.

The next step after calculating all data function points and transactional function points then we have to compare each ILF, EIF, EI, EO and EQ against a complexity matrix to find UFP [51]. International Function Point User Group has described 3 different complexity matrices naming, ILF/EIF Complexity Matrix (Appendix F1), EI Complexity Matrix (Appendix F5) and EO/EQ Complexity Matrix (Appendix F3).

Complexity is determined in a table by the number of RETs, number of DETs and number of FTRs available in one table. It should be kept in mind that ILF/EIF have DETs and RETs combination in table and EI/EO/EQ have DETs and FTRs combination. The final value is compared against a standard chart in complexity matrix as mentioned above and regarded as Low, Average or High complexity. After finding the complexity as low, average or high then each function point is multiplied with a constant multiplying factor. After multiplying with constant factor then all EI, EO, EQ, ILF and EIF are summed up this gives us a numeric value which is called Unadjusted Function Point Count or simply UFP. All the matrices and their corresponding multiplying factor have been mentioned in Appendix F. After rough work out on paper and finding all the complexity levels, I am going to write it down in the following table.

Complexity

L

ILF(Order)

L

EQ( Search Book )

H

H

L

L

A

EI(Select Book)

A

L

L

L

EI(New Order)

H

EO(Order Tracking information)

L

EIF(Book)

L

EIF(Category)

L

L

H

EI (Update Book Category )

H

EI ( Delete Book Category )

H

A

EI (delete Book)

A

EI ( Update Book )

A

EI (Deliver order)

H

EI (Cancel order)

H

EI (return order)

H

L

H

L

EQ (Logout )

H

EI (Check stock info )

H

Table 16: Complexity of Data Functions and Transactions Function

After analyzing the complexity as low, average or high then multiply with Multiplying Factor which is already in Appendix F2 and F4. Appendix F2 is the multiplying factor for ILF/EIF and Appendix F4 is the multiplying factor for EI/EO/EQ as recommended by IFPUG.

(Note: Complexity Matrix and Multiplying Factor are two different things)

Calculate the Total Complexity:

ILF (2 low * 7) = 14

EIF (3low * 5) = 15

EI (4low *3) = 12 + (3 Average * 4) = 12 + (9High* 6) = 54 = 78

EQ (3low * 3) = 9 + (1Average* 4) = 4 + (3 High * 6) = 18 = 31

EO (1low *4) = 4 + (1 High *7) = 7 =11

Total Complexity = 14+15+78+31+11 = 149

UFP in Total =149

The unadjusted function point count is used for information processing size [53]. The next step is to find the Value Adjustment Factor (VAF).

5.5 Value Adjustment Factor (VAF): Process 4

VAF is defined on the basis of 14 General System Characteristics for the application being counted. Each characteristic is given a value from 0(low) to 5(high) and finally added up together all the assigned values which results in Total Degree of Influence or simply TDI. In order to find Value Adjustment Factor, IFPUG has proposed formulae which gives you the final VAF. All the values ranging from 0 to 5 will be given according to IFPUG Reference Guide [54]. Enterprise applications are usually very critical and they need high degree of each characteristic.

RATE

Date Communication

4

Distributed data processing

5

Performance

4

Heavily used configuration

3

Transaction rate

4

Online data entry

5

End-User efficiency

4

Online update

5

Complex processing

4

Reusability

3

Installation ease

1

Operational ease

2

Multiple sites

1

Facilitate change

4

Total Degree of Influence (TDI) = 49

[1]

Value Adjustment Factor = (TDI *0.01) +.65

= 49 * 0.01 + .65

VAF = 1.14

Value adjustment factor is typically referred as Adjustment for Technical and Quality Requirements [53]. Regarding each activity in Value Adjustment Factor i.e. Data Communication, Performance etc, please read Appendix G for the definition to understand what does it mean? For tutorial please consult [54].

5.6 Evaluate the Adjusted Function Point count: Process 5

According to the formulae for adjusted function point count;

Size (Function Points) = Unadjusted FP count * Value Adjustment Factor [53]

The value for UFP = 149

The Value for VAF = 1.14

Adjusted Function Point Count = 169.84 = 170

The final digit gives you a clue about the estimate. Let us consider that if I would complete 20 function points in one month i.e. 20 FP/ month, then the total months taken for the whole function points will be:

Adjusted Function Point Count / (FP/Month) = 170 /20 = 8.5 Months

Regarding cost, If one function point can cost xxx NOK, then you can multiply xxx with total number of function points i.e. 170.

Final outcome is 170 * xxx = zzz NOK. It is certainly depends on software organization.

(Note: xxx and zzz are imaginary values)

5.7 Analysis and Conformance to the Research Question

According to IFPUG recommendations that the estimated time can increase or decrease. So the final outcome can be 8.5 +1 or 8.5 -1. This was the estimate that I made when I was going to start my thesis. My findings supposed that I will finish the project in about 9.5 months which is nearly true. It means that the findings would not give you the exact estimate but can be pretty close to the actual time. Regarding cost function, in case of mine; as I am developing this application for myself and that will not make any difference for me. But let us say that a typical software house is going to develop the software then the actual price will be Cost + Benefit. It means zzz + Benefit. After analyzing this technique, my understanding is that; this technique is good for large projects in terms of software complexity analysis.

Though this project is small in nature, my purpose was to introduce such a technique which would create a new area of research and contribute in my thesis. Wherever necessary, I tried to make the concept clear to understand FPA technique. By now the Essential Part is complete and I will start the Central Part in the next chapter