Showing posts with label Estimation. Show all posts
Showing posts with label Estimation. Show all posts

Wednesday, January 19, 2011

Use case point analysis - a software estimation technique

The number of use case points of a project is dependent on following factors.

1. The number and complexity of use cases in the application system.
2. The number and complexity of actors in the system.
3. Some non-functional attributes like portability, performance, scalability etc.
4. Environmental factors team’s experience and team motivation.

Complexity of a use case is defined as simple, average or complex depending on the number of transactions in the use case. Extension transaction which starts with result of another transaction shouldn’t be counted usually. Use case points are assigned to a use case based the complexity of the use case as listed in below table.

Unadjusted Use Case Weight
Use Case ComplexityNo of TransactionWeight
Simple3 or fewer5
Average4-710
Complex7 or more15

Use case points for a use case actor are calculated per below summarized description in below table.

Unadjusted Actor Weight
Actor TypeExampleWeight
SimpleAnother System Through API1
AverageAnother System through a protocol, a person through text-base user interface2
ComplexA person through a graphical user interface3

Total unadjusted use case point for a software project is calculated as summation of use case point and actor points as shown in below table.

Unadjusted Use Case Point
Sl NoNameUse Case/ActorComplexityNumberWeightNumber*Weight
1 Use Case 1Use CaseAverage21020
2 Use Case 2Use CaseComplex31545
3 Use Case 3Use CaseSimple6530
4 Actor 1ActorAverage21242
5 Actor 2ActorComplex9327
Total164

There are 13 parameters in technical complexity with different weight value as listed in fig 4. These factors are assessed to a value between 0-5 depending on individual project requirement. The final technical complexity factor is calculated as TCF = 0.6 + (0.01 * TFactor).

Technical Complexity Factor
FactorWeightAssessment(0-5)Impact
Distributed system200
Performance objectives212
End-user efficiency133
Complex processing144
Reusable code144
Easy to install0.510.5
Easy to use0.510.5
Portable248
Easy to change155
Concurrent use155
Security155
Access for 3rd party155
Training Needs111
Total (TFacor)43

There are 8 parameters in environment complexity with different weight value as listed in fig 5. These factors are assessed to a value between 0-5 depending on the environment in which project is executed. The final environment factor is calculated as EF = 1.4 + (-0.03 * EFactor).

Environment Factor
FactorWeightAssessment(0-5)Impact
Familiar with the development process1.511.5
Application experience0.531.5
Object-oriented experience122
Lead analyst capability0.552.5
Motivation122
Stable requirements212
Part-time staff-11-1
Difficult programming language-13-3
Total (EFacor)7.5

And, finally total use case point of a software project is UUCW*TCF*EF where UUCW is unadjusted use case weight, TCF technical complexity factor and EF is environment factor.

Monday, January 17, 2011

Functional point analysis - A software estimation technique

Functional point is a standard unit of measure that represents functional size of a software application. Functional point analysis quantifies the functionality of a software application from user perspective based on a logical design. It’s technology independent and consistent across the project and across the organization.

There are five standard functions divided into two categories in functional point analysis as named below.

1. Data Function: There are two type of data functions - Internal logical file (ILF) & External interface file (EIF)
a. Internal logical file (ILF) – ILF is a group of data which are logical and user identifiable. Data defined by ILF is maintained through the elementary process occurring within the boundary of application whose functions are being counted.
b. External interface file (EIF) – EIF is also a group of data which are logical and user identifiable just like ILF. Here, the difference is EIF data is maintained outside the boundary of application whose functions are being counted. Based on the count of data element type (DET) and record element type (RET), low, average and high complexity is assigned to a data function - ILF or EIF and based on complexity of an ILF or EIF, function points are assigned to it as per below table.
c. Data element type (DET) – DET is a user recognizable and non-repeatable data of a data function – ILF or EIF.
d. Record element type (RET) – RET is user identifiable subgroup of DETs and it is part or subset of a data function - ILF or EIF.

Data Functions (ILF, EIF)
RETsDETs Functional Point
1-1920-5051-51+ ComplexityILF FPEIF FP
1 LLA L75
1-5LAH A107
6-6+AHH H1510

2. Transaction Function There are 3 types of transaction functions - External input (EI),External output (EO) & External inquiry (EQ).
a. External input (EI) – EI is a data entered by the user or data/file fed by an external application.
b. External output (EO) – EO is a report created by the application in consideration where the report contains derived information/data.
c. External inquiry (EQ) – EQ is a report created by the application in consideration where the report doesn’t contain the derived info/data. Based on the count of data element type (DET) and file transaction reference (FTR), low, average and high complexity is assigned to a transaction function - EI, EO or EQ and based on complexity of an EI, EO or EQ, function points are assigned to it as per below table.
d. File Transaction reference (FTR) – A FTR is an either ILF or EIF referenced by the transaction function of the application whose functions are being counted.

Transaction Functions (ILF, EIF)
FTR(EI)DTE FTR(EO, EQ)DET
1-45-1516+ 1-56-1920+
0-1LLA 0-1LLA
2LAH 2-3LAH
2+AHH 3+AHH
Functional Points
ComplexityEO FPEQ FPEI FP
L433
A544
H766

Count of data functions and transaction functions will give the total unadjusted function point count which can be put as in below table

Sl No.File/Trans NameFunction Type(Data/Trans.)Fn Type Name (ILF,EIF,EI,EO,EQ)DETRETFTRComplexityFunction Point
Total Unadjusted Function Point

There are also some other factors which influence the functional size of a software application. It's called value adjustment factor as a group. There are 14 parameters in the value adjustment factor known as general system characteristics listed as in below table.

General System Characteristics(GSC)Weight(0-5)
Data Communication
Distributed data processing
Performance
Heavily Used Configuration
Transaction Rate
Online data entry
End user efficiency
Online update
Complex processing
Reusability
Installation ease
Operational ease
Multiple sites
Facilitate change
Total Degree of Influence
Variable Adjustment Factor

These characteristics are given weight value of 0-5. Value adjustment factor is calculated as VAF = (TDI * 0.01) + 0.65
And, final function point count of a software application is derived as UFPC*VAF where UFPC is unadjusted function point count and VAF is value adjustment factor.