Software effort estimation based on Use Cases - Semantic Scholar

15 downloads 24998 Views 269KB Size Report
Computer Software and Applications Conference(2006) ⓒ KAIST SE LAB 2009 ... Can determine functional size of software in an early stage of a project. Client. List of. Textual .... Real project database of a private company. ▫ Each module ...
Software effort estimation based on Use Cases Marcio Rodrigo Braz, Silvia Regina Vergilio Computer Software and Applications Conference(2006)

2009. 4. 22 Lee, sunkyung

ⓒ KAIST SE LAB 2009

Contents Introduction Background  Use Case Point(UCP)  Fuzzy set theory

Suggested method  Use case Size Point(USP)  Fuzzy Use case Size Point(FUSP)

Case study Conclusion Discussion ⓒ KAIST SE LAB 2009

2 / 25

Introduction(1/2) Project estimation based on requirement is readily available and easily assessable1  But, it’s difficult to select a requirement format has consistent quality  Use case can reduce variability in quality and increase format consistency

Use Case Point2 can be useful for project estimation  UCP* is an accepted software size metric3

* : Use Case Point

• Easy to count • Can be used in early phase 1. 2. 3.

Project Estimation : A simple use-case-based model [Project management, 2004] Metrics for Objectory[Diploma. Thesis, University of Linköping, Sweden, Karner, G, 1993] Software size measurement and productivity rating in a large-scale software development department[ICSE, 1998]

Introduction(2/2) However, the method based on UCP* has some * : Use Case Point limitations  UCP* does not consider the internal structure of Use Case  UCP* has only 3 categories of complexity • Complexity categories : simple, average, complex

In this paper,  Apply new classification of complexity • Use Case Size Point(USP)

 Use fuzzy theory for gradual change of complexity • Fuzzy Use Case Size Point(FUSP) ⓒ KAIST SE LAB 2009

4 / 24

Background(1/5) Use Case Point  Derived from Function Point  Can determine functional size of software in an early stage of a project Client requirements definition

Total effort :=

System requirements List of

Unadjusted UCP

Graphic functional Inputs User InterfaceRequirements

Use Cases

X

Technical Complexity Factor

Textual Project influence Description of Can use Use Cases Use Case Point

X

Productivity Environmental X Factor Factor

Entity

nonfunctional Outputs Relationship requirements Model

Can use Function Point

[Temporal sequence of the different artifacts] User Developer

ⓒ KAIST SE LAB 2009

5 / 24

Background(2/5) Step 1. Weight actors and use cases  Weight actors • Unadjusted Actor Weight(UAW) = ∑ (# of actors x weight factor) – Simple(1) : another system with a defined API – Average(2) : another system interacting through a protocol – Complex(3) : a person interacting through a GUI or a web page

 Weight use cases • Unadjusted Use Case Weight (UUCW) = ∑ (# of use cases x weight factor) – Simple(5) : 3 or less transactions – Average(10) : 4 to 7 transactions – Complex(15) : more than 7 transactions

 Calculate Unadjusted Use Case Point(UUCP) • UUCP = UAW + UUCW ⓒ KAIST SE LAB 2009

6 / 24

Background(3/5) Step 2. Apply adjustment factors  Apply Technical Complexity Factor(TCF)

 Apply Environmental Factor(EF)

 Calculate Use Case Point • UCP = Unadjusted UCP x TCF x EF

ⓒ KAIST SE LAB 2009

7 / 24

Background(4/5) Step 3. Apply Productivity Factor  Effort = UCP x Productivity Factor Productivity Factor(PF)1,2,3 ● Productivity in organization ● Unit : PHperUCP ● The way to obtain 1. Historical data 2. Use values presented in the literature - FP varies from 20 to 36

1. 2. 3.

Metrics for Objectory[Diploma. Thesis, University of Linköping, Sweden, Karner, G, 1993] Resource estimation for objectory projects[Objective Systems SFAB, 1993] Applying use cases : a practical guide[Addison-Wesley, 1998]

8 / 24

Background(5/5)  Fuzzy set theory  Rigorous mathematical discipline that deals with imprecise, ‘fuzzy’ concepts  Determine the degree of membership by membership function Degree of pretty

score

weight

Little pretty

≤5

1

Pretty

6 to 10

2

Very pretty

> 10

3

Membership degree 1 0.6 0.4 0

P

LP

0

3.5

6

8.5 1011

VP

Weight

0

score

- LP : 1 -P :2 - VP : 3

Score: 10 Score: 8 Beauty score = 0.4 * 2 + 0.6 * 3 Beauty score = 2 [“She =is2.6 pretty!”, yes, but How much pretty?] ⓒ KAIST SE LAB 2009

9 / 24

Use case Size Point(1/5) [Use Case Point]

UCP classification - Actor - Main scenario - Alternative scenario

Apply technical complexity factors

[Use case Size Point]

UCP classification - Actor - Main scenario - Alternative scenario - Precondition - Exception - Postcondition

Apply environmental factors

Apply technical complexity factors

Calculate effort

Apply environmental factors

Calculate effort

ⓒ KAIST SE LAB 2009

10 / 24

Use case Size Point(2/5) Calculating of the unadjusted USP*  Weight actors(TPA)

* : Use case Size Point

• Total comPlexity of Actor = ∑ (# of actors x weight factor) – Simple(2) : 5 or less data – Average(4) : 6 to 10 data – Complex(6) : more than 10 data

※ Data : provided to or received from the UC

 Weight preconditions(TPPrC) • Total comPlexity of PreCondition = ∑ complexity of precondition – Simple(1) : 1 logical expression – Average(2) : 2 to 3 logical expressions – Complex(3) : more than 3 logical expressions

※ Logical expression : tested by the condition in precondition ⓒ KAIST SE LAB 2009

11 / 24

Use case Size Point(3/5) Calculating of the unadjusted USP(cont’d)  Weight main and alternative scenarios(PCP, TPCA) • Total comPlexity of scenario = ∑ complexity of scenario – – – – –

Very simple(4) : 5 or less # of (entities + steps) Simple(6) : 6 to 10 # of (entities + steps) Average(8) : 11 to 15 # of (entities + steps) Complex(12) : 16 to 20 # of (entities + steps) Very complex(16) : more than 20 # of (entities + steps)

 Weight exceptions(TPE) • Total comPlexity of Exception = ∑ complexity of exception – Simple(1) : 1 logical expression – Average(2) : 2 to 3 logical expressions – Complex(3) : more than 3 logical expressions

ⓒ KAIST SE LAB 2009

12 / 24

Use case Size Point(4/5) Calculating of the unadjusted USP(cont’d)  Weight postconditions(TPPoc) • Total comPlexity of Postcondition = ∑ complexity of postcondition – Simple(1) : 3 or less entities – Average(2) : 4 to 6 entities – Complex(3) : more than 6 entities

※ Entity : related entities with postcondition

 Calculate Unadjusted Use case Size Point(UUSP) • UUSP = TPA + TPPrC + PCP + TPCA + TPE + TPPoc

ⓒ KAIST SE LAB 2009

13 / 24

Use case Size Point(5/5) Apply adjustment factor  Derived from FP and UCP • Each influence value is between 0 and 5 according its influence in the UC

 Apply Technical Adjustment Factors

 Apply Environmental Factors

 Calculate the Use case Size Point = Unadjusted USP x (FTA – FAA) ⓒ KAIST SE LAB 2009

14 / 24

Fuzzy Use case Size Point(1/3) Extension of USP for gradual change of complexity by fuzzy set theory Procedures  Fuzzification • Discrete classification tables → continuous classification Complexity

Data

UUSP

Simple

≤5

2

Average

6 to 10

4

Complex

> 10

6

Membership simple degree 1

average complex

0 0

3.5

6

8.5 11

0

Entity

 Defuzzification • Fuzzy number → real value Membership degree 1

simple

average complex

Number of data : 10 → UUSP = 5.2

0 0

3.5

6

ⓒ KAIST SE LAB 2009

8.51011

0

Entity

15 / 24

Fuzzy Use case Size Point(2/3) Fuzzification  Trapezoidal number

ai

mi

ni

bi

● mi = lower value of the linguistic term Ti in the classification table

● ni = (mi + mi+1) / 2 ● ai = ni-1 ● bi = mi+1 Complexity

Data

UUSP

Simple

≤5

2

Average

6 to 10

4

Complex

> 10

6

ⓒ KAIST SE LAB 2009

Membership simple degree 1

average complex

0 1

m1

3.5

n1

6

m2

8.5 11

n2

Entity

m3 16 / 24

Fuzzy Use case Size Point(3/3) Defuzzification  Rule • When the value is between mi and ni Membership degree 1

simple

average

Complexity

Data

UUSP

Simple

≤5

2

Average

6 to 10

4

Complex

> 10

6

complex

Number of data : 7 → UUSP = 4

0 0

3.5

6 7 8.5

11

0

Entity

• When the value is between ni and bi Membership degree 1 0.6 0.4 0

simple

0

3.5

ⓒ KAIST SE LAB 2009

average

6

complex

8.5 1011

0

Entity

Number of data : 10 UUSP = 0.4 * 4 + 0.6 * 6 = 5.2

17 / 24

Case study(1/5) Data set  5 modules of one system • Real project database of a private company

 Each module corresponding to one month of work

Evaluated metrics    

Function Point Use Case Point Use case Size Point Fuzzy Use case Size Point

ⓒ KAIST SE LAB 2009

18 / 24

Case study(2/5) Evaluation  Step 1. Training phase • Get the productivity value for each metric • Use 1 module Measure

Value

Hour/FP

4.4743

Hour/UCP

26.0417

Hour/USP

2.6048

Hour/FUSP

2.5132

ⓒ KAIST SE LAB 2009

19 / 24

Case study(3/5) Evaluation(cont’d)  Step 2. Evaluation phase • Calculate the estimated effort • Use 4 remaining modules • Adjustment values – FP : 1.1 – UCP : 0.54 – USP & FUSP : 1.04

• Estimated effort

ⓒ KAIST SE LAB 2009

20 / 24

Case study(4/5) Result  Accuracy of result • USP and FUSP show better result than UCP • But, there’s no great difference between FP and USP/FUSP • There’s no great difference between USP and FUSP [Error rates of the estimates(%)] Module

UCP

FP

USP

FUSP

A2

77.6

60.8

67.9

67.6

A3

66.5

32.5

25.2

23.7

A4

39.1

3.4

17

16.1

A5

65.1

22.1

10.6

11.4

ⓒ KAIST SE LAB 2009

21 / 24

Case study(5/5) Result(cont’d)  Analysis of result • Internal structure of Use Case can affect the effort • If the intervals of categories is close, using fuzzy numbers is not effect 80 60 40 20 0

UCP FP USP FUSP module A2 module A3 module A4 module A5

ⓒ KAIST SE LAB 2009

22 / 24

Conclusion Contribution  Showed USP can deduce the size of use cases better than UCP  Suggest fuzzy set theory can be considered for gradual classification of complexity

Future work  Improvement of FUSP • Enlarge the number of elements considered • Increasing the difference among the complexity of the category

ⓒ KAIST SE LAB 2009

23 / 24

Discussion Limitation  Use Case is usually not detail • It may difficult to count the number of data, entity and logical expression

 The number of samples is too small • Only 1 module is used to get the productivity factor – There’s no guarantee the productivity factor is correct

• Metrics are evaluated by only 4 modules

 There’s no explanation how they get the adjustment factor

ⓒ KAIST SE LAB 2009

24 / 24

ⓒ KAIST SE LAB 2009