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

[51]

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

Requirement No: 1 Login page

R1 Login

General Description

Login page is the page where administrator or user can log in to the system

Importance

Top level

Need for

Administrative purposes.

Constraints

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

Details

Administrative Perform following functionality's

Sign In

Sign out

Forgot your password

Table 1: Login Page Requirement

Requirement No: 2 Book Manager

R2 Book Manager

General Description

Book Manager can manage Books

Importance

Top level

Need for

Administrative purposes.

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

Add Book Category

Delete Book Category

Update Book Category

Add New Book

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.

Customer can check the 'home page', 'about us page', 'service page' and 'Contact us page'.

5.1.5 Specific Functional Requirements of online shopping website

Requirement No: 3 Client Site

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

Select / Add into Basket

Edit /Delete Basket

New Order

View Order Information

View Home page

View About us page

View Service Page

View Contact us 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.

5.3 Determine the Scope & Boundary of 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.

Identification of ILF, EIF, EI, EO, EQ in Client Site

Online Website's Function Type

Online website's Data or Transactional function

ILF

Buyer

EQ

Search Book / advance

Search

EI

Select Book

EI

Add into Basket

EI

Update from Basket

EI

Delete from Basket

EQ

View Home page

EQ

View About us page

EQ

View Contact Us page

ILF

Order

EI

New Order

EO

Order Tracking information

EIF

Book

EIF

Category

Table 4: Data Function and Transaction Function in Client Site

Identification of ILF, EIF, EI, EO, EQ in Admin Site

Admin website's Function Type

Admin website's Data or Transactional function

ILF

Admin

EO

Log in

EQ

Logout

EQ

Admin Page

ILF

Category

EI

Add New Book Category

EI

Update Book Category

EI

Delete Book Category

EI

Add New Book

EI

Update Book

EI

Delete Book

EQ

Search Book / Advance Search

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.

5.4.2 Calculate ILF for Client Site i.e. Buyer

Buyer

Buyer_ID

Name

Address

Phone

Email

Comments

Count as RETS

No

No

Yes

No

No

No

Count as DETS

Yes

Yes

No

Yes

Yes

Yes

Total no of DETS = 5

Total no of RETS =1

Table 6: ILF Calculation i.e. Buyer

5.4.3 Calculate ILF for Client site i.e. Order

Order

Order_ID

Buyer_ID

Order Date

Delivery_Date

Delivery_Address

Status

Comment

Count

as RETS

No

No

No

No

Yes

No

No

Counts as DETS

Yes

Yes

Yes

Yes

No

Yes

Yes

Total no DETS = 6

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.

5.4.4 Calculate EQ, EO for Client Site (in most cases EO = EQ) Search Book

Process

Search Book / advance Search

View Home page

View About us page

View Contact Us page

Order Tracking information

Process Name

Book/Category

Home Page

About

Us page

Contact us Page

Order/

Order detail

No of FTR

2

1

1

1

3

No of DETS

15

0

0

0

1

Total no DETS = 16

Total no of FTR = 8

Table 8: EQ, EO Calculation for Client Site

Process

New Order

Select Book

Add into Basket

Update from Basket

Delete

From Basket

Process Name

Order/Fill User Form

Session

Session

Session

No of FTR

3

0

0

0

1

No of DETS

16

3

3

3

3

Total no DETS = 28

Total no of FTR =4

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

Table 9: EI Calculation for Client Site

5.4.6 Calculate ILF for Admin Site i.e. Admin

Admin

User_id

Password

Hint

Hint_Answer

User type

Shop_id

Count as RETS

No

No

No

No

No

No

Count as DETS

Yes

Yes

Yes

Yes

Yes

Yes

Total no DETS = 6

Total no of RETS =1

Table 10: EIF Calculation for Client and Admin

5.4.7 Calculate ILF for Admin Site & EIF for Client Site i.e. Book

Book

B_ID

Cat_ID

B_Name

Author

Edition

ISBN

Published

Price

Count as

RETS

No

No

No

Yes

No

No

No

No

Counts as DETS

Yes

Yes

Yes

No

Yes

Yes

Yes

Yes

Total no DETS = 7

Total no of RETS =1

Table 11: EIF Calculation for Admin Site

5.4.8 Calculate ILF for Admin Site & EIF for Client i.e. Category

Category

Cat_ID

Cat_ID

Cat_Name

Cat_Decription

Count as RETS

No

No

No

Yes

Counts as DETS

Yes

Yes

Yes

No

Total no DETS = 3

Total no of RETS =1

Table 12: Category EIF Calculation for Admin Site

5.4.9 Calculate EI for Admin Site

Process

Add New Book Category

Update Book Category

Delete Book Category

Add New Book

Delete

Book

Update Book

Process Name

Book/Category/Stock

Book/Category

/Stock

Book/Category

/Stock

Book

/Stock

Book

/Stock

Book

/Stock

No of FTR

3

3

3

2

2

3

No of DETS

15

15

15

9

9

9

Total no DETS = 72

Total no of FTR =16

Table 13: EI Calculation for Admin Site

5.4.10 Calculate EI in Admin Web Site

Process

Deliver order

Cancel Order

Return order

Process Name

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

No of FTR

5

5

5

No of DETS

13

13

13

Total no DETS = 39

Total no of FTR =15

Table 14: EI Calculation for Admin Site

5.4.11 Calculate EI in admin website

Process

Log in

Logout

Search Book / Advance Search

Check Stock Info

Process Name

EO

Admin

EQ

Admin

Book/Category/

Order/Oder_detail/

Stock

Book/Category/

Order/Oder_detail/

Stock

No of FTR

5

5

5

5

No of DETS

13

13

13

13

Total no DETS = 39

Total no of FTR =15

Table 15: EI Calculation for Admin Site

From now onward I will explain how to get UFP.

5.4.12 Unadjusted Function Point Value

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 of ILF/EIF/EI/EO/EQ

Process

Complexity

Buyer (ILF)

L

ILF(Order)

L

EQ( Search Book )

H

EQ(Advance Book)

H

EQ(View e-book Home page)

L

EQ(View e-book About us page)

L

EQ(View Contact Us page)

A

EI(Select Book)

A

EI(Add into Basket)

L

EI(Update from Basket)

L

EI(Delete from Basket)

L

EI(New Order)

H

EO(Order Tracking information)

L

EIF(Book)

L

EIF(Category)

L

EIF Admin

L

EI( Add New Book Category)

H

EI (Update Book Category )

H

EI ( Delete Book Category )

H

EI (Add New Book)

A

EI (delete Book)

A

EI ( Update Book )

A

EI (Deliver order)

H

EI (Cancel order)

H

EI (return order)

H

EI ( Admin page )

L

EO (Log in )

H

EQ (Admin page)

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.

.

General System Characteristics NAME

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

Table 17: Value Adjustment Factor

[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

= 149 * 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

Writing Services

Essay Writing
Service

Find out how the very best essay writing service can help you accomplish more and achieve higher marks today.

Assignment Writing Service

From complicated assignments to tricky tasks, our experts can tackle virtually any question thrown at them.

Dissertation Writing Service

A dissertation (also known as a thesis or research project) is probably the most important piece of work for any student! From full dissertations to individual chapters, we’re on hand to support you.

Coursework Writing Service

Our expert qualified writers can help you get your coursework right first time, every time.

Dissertation Proposal Service

The first step to completing a dissertation is to create a proposal that talks about what you wish to do. Our experts can design suitable methodologies - perfect to help you get started with a dissertation.

Report Writing
Service

Reports for any audience. Perfectly structured, professionally written, and tailored to suit your exact requirements.

Essay Skeleton Answer Service

If you’re just looking for some help to get started on an essay, our outline service provides you with a perfect essay plan.

Marking & Proofreading Service

Not sure if your work is hitting the mark? Struggling to get feedback from your lecturer? Our premium marking service was created just for you - get the feedback you deserve now.

Exam Revision
Service

Exams can be one of the most stressful experiences you’ll ever have! Revision is key, and we’re here to help. With custom created revision notes and exam answers, you’ll never feel underprepared again.