You are on page 1of 6

PRACTICAL FILE

SOFTWARE PROJECT MANAGEMENT

DELHI TECHNOLOGICAL
UNIVERSITY

Submitted to: Submitted by:


Ms.Kishwar Khan Ishu Dhariwal
2K18/SE/068
SE – 2K18 (G2)
2

INDEX
Sno. EXPERIMENT Page No. SIGN

1 Write a program to implement function point analysis 3


method

10

[Type here]
3

EXPERIMENT: 1

AIM: Write a program to implement function point analysis and calculate productivity, quality, cost
and documentation of the project.

THEORY:
What is Function Point Analysis?
Function Point Analysis (FPA) is a method or set of rules of Functional Size Measurement. It assesses
the functionality delivered to its users, based on the user’s external view of the functional
requirements. It measures the logical view of an application not the physically implemented view or
technical view.
Components of Function Point Analysis
Based on the interaction of the system components internally and with external users, applications, etc
they are categorized into five types:

 External Inputs (EI): This is the process of capturing inputs from users like control
information or business information and store it as internal/external logic database files.
 External Outputs (EO): This is the process of sending out data to external users or systems.
The data might be directly grabbed from database files or might undergo some system-level
processing.

 Inquiries (EQ): This process includes both input and output components. The data is then
processed to extract relevant information from internal/external database files.

 Internal Logic File (ILF): This is the set of data present within the system. The majority of
the data will be interrelated and are captured via the inputs received from the external sources.
 External Logic File (ELF): This is the set of data from external resources or external
applications. The majority of the data from the external resource is used by the system for
reference purpose

CODE:

#include <iostream>
using namespace std;

void calfp(int frates[][3], int fac_rate)


{

string funUnits[5] = {
"External Inputs",
"External Outputs",
"External Inquiries",
"Internal Logical Files",
"External Interface Files"
};

string wtRates[3] = { "Low", "Average", "High" };

[Type here]
4

int wtFactors[5][3] = {
{ 3, 4, 6 },
{ 4, 5, 7 },
{ 3, 4, 6 },
{ 7, 10, 15 },
{ 5, 7, 10 },
};

int UFP = 0;

for (int i = 0; i < 5; i++) {

for (int j = 0; j < 3; j++) {

int freq = frates[i][j];

UFP += freq * wtFactors[i][j];


}
}

string aspects[14] = {
"reliable backup and recovery required ?",
"data communication required ?",
"are there distributed processing functions ?",
"is performance critical ?",
"will the system run in an existing heavily utilized operational environment ?",
"on line data entry required ?",
"does the on line data entry require the input transaction to be built over multiple screens or
operation?” "are the master files updated on line ?",
"is the inputs, outputs, files or inquiries complex ?",
"is the internal processing complex ?",
"is the code designed to be reusable ?",
"are the conversion and installation included in the design ?",
"is the system designed for multiple installations in different organizations ?",
"is the application designed to facilitate change and ease of use by the user ?"
};

int sumF = 0;

for (int i = 0; i < 14; i++) {

int rate = fac_rate;

sumF += rate;
}

[Type here]
5

double CAF = 0.65 + 0.01 * sumF;

double FP = UFP * CAF;

double LF = 30; // Language factor for C#

double pages_of_documentation = 220;

double rupees = 25000;

double defects = 30;

double SLOC = FP *LF;

double KDSI = SLOC/1000;

double PM = 2.4 * (KDSI) * 1.05;

double productivity = FP/PM;

double quality = defects/FP;

double cost = rupees/FP;

double documentation = pages_of_documentation/FP;

cout << "Function Point Analysis :-" << endl;

cout << "Unadjusted Function Points (UFP) : " << UFP << endl;

cout << "Complexity Adjustment Factor (CAF) : " << CAF << endl;

cout << "Function Points (FP) : " << FP << endl;

cout << "Source Lines of Code (SLOC): "<< SLOC <<" LOC"<< endl;

cout << "Productivity: "<< productivity << endl;

cout << "Quality: "<< quality << endl;

[Type here]
6

cout << "Cost: "<< cost << endl;

cout << "Documentation: "<< documentation << endl;

}
int main()
{
int frates[5][3] = {
{ 0, 70, 0 },
{ 0, 10, 0 },
{ 0, 50, 0 },
{ 0, 20, 0 },
{ 0, 10, 0 }
};

int fac_rate = 3;

calfp(frates, fac_rate);

return 0;
}

OUTPUT:

CONCLUSION:

FPA method is suitable for estimating the size, cost, productivity, development time, documentation
and quality for a project.

FINDING AND LEARNING:

Function points are useful-


● Independent of technology
● Helps in estimating overall costs, schedule and effort.
● In estimating testing projects

[Type here]

You might also like