11.07.2015 Views

Analysis of Changes Depend on Use Cases

Analysis of Changes Depend on Use Cases

Analysis of Changes Depend on Use Cases

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A PREDICTION MODEL FORREQUIREMENTS EVOLUTION IN THENEXT SOFTWARE RELEASELin ShiInstitute <str<strong>on</strong>g>of</str<strong>on</strong>g> S<str<strong>on</strong>g>of</str<strong>on</strong>g>tware Chinese Academy <str<strong>on</strong>g>of</str<strong>on</strong>g> Sciences


Motivati<strong>on</strong>2 Requirements creep or change may cause calamity Cost, Schedule, Quality If given the requirements that are instable at thebeginning <str<strong>on</strong>g>of</str<strong>on</strong>g> s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware development, engineers cando: Figure out the root-causes <str<strong>on</strong>g>of</str<strong>on</strong>g> instable requirements Improve the requirements processes Raise the flexibility <str<strong>on</strong>g>of</str<strong>on</strong>g> s<str<strong>on</strong>g>of</str<strong>on</strong>g>tware designs Can we predict requirements to be changed based<strong>on</strong> historical requirements evoluti<strong>on</strong> data?


Intuiti<strong>on</strong>s3 Requirements which are frequently changed inhistorical versi<strong>on</strong>s are also likely to change in thesubsequent versi<strong>on</strong>s— Frequency The probability <str<strong>on</strong>g>of</str<strong>on</strong>g> a requirement change may relateto the gaps between versi<strong>on</strong>s where changeshappened and the predicting versi<strong>on</strong>— Center <str<strong>on</strong>g>of</str<strong>on</strong>g> Change Gravity The probability <str<strong>on</strong>g>of</str<strong>on</strong>g> a requirement change may relateto the gap between the versi<strong>on</strong> which a requirement isinitialized and the predicting versi<strong>on</strong> — Lifecycle


Variable Definiti<strong>on</strong>s4 Frequency Times that a requirement has been changed Center <str<strong>on</strong>g>of</str<strong>on</strong>g> Change Gravity Sum <str<strong>on</strong>g>of</str<strong>on</strong>g> gaps between the versi<strong>on</strong> that a changehappened and the predicting versi<strong>on</strong> / Frequency Lifecycle Gaps between the versi<strong>on</strong> which a requirement isinitialized and the predicting versi<strong>on</strong>


Example5Requirements12345Change History√ √ XX √ √X X X√ X √NA X XV0 V1 V2 V3Predicting Versi<strong>on</strong> = V4, Frequency ( 1 ) = 1+1+0 = 2 Gravity( 1 ) = ((V4-V1) + (V4-V2)) / 2 Lifecycle ( ) = V4-V25


Research Questi<strong>on</strong>6FrequencyGravityLifecycleAnyrelati<strong>on</strong>ship?Requirementsevoluti<strong>on</strong> in thenext release


Predicti<strong>on</strong> Approach7 Logistic Regressi<strong>on</strong> (LR) is a predicti<strong>on</strong>approach that can be used when the targetvariable is a categorical variable with twocategories. LR aims to determine whether there is someform <str<strong>on</strong>g>of</str<strong>on</strong>g> functi<strong>on</strong>al dependency between theexplanatory variables and the dependentvariable.


8Logistic Regressi<strong>on</strong> Equati<strong>on</strong>


Overview <str<strong>on</strong>g>of</str<strong>on</strong>g> Approach9V1√XX√V4V2V3√√XXXX√X√XXLearnerPredictorXX√√XX


Case Study10 To investigate, we used 322 changed requirementsfrom 8 versi<strong>on</strong>s <str<strong>on</strong>g>of</str<strong>on</strong>g> QONE. Unit <str<strong>on</strong>g>of</str<strong>on</strong>g> requirements Features, use cases, functi<strong>on</strong> points, user stories…Versi<strong>on</strong> V0 V1 V2 V3 V4 V5 V6 V7# <str<strong>on</strong>g>of</str<strong>on</strong>g> use case 186 189 195 221 276 310 303 339# changed use cases(add+del+mod)N/A 14 43 109 121 143 38 63


Data Collecti<strong>on</strong>11 added = 2, modified = 1, deleted = -1,unchanged = 0<strong>Use</strong> Case ID V1 V2 V3 V4 V5 V6 V71 0 0 2 1 0 -1 0… … … … … … … …322 0 2 0 0 1 1 0


Data12 Training data Sum <str<strong>on</strong>g>of</str<strong>on</strong>g> four subsets where PredictV = V3,V4,V5,V6 Testing data One subset where PredictV= V7 Input <strong>Use</strong> <strong>Cases</strong>’ change records from V1 to V7 Output <strong>Use</strong> Case IDs predicted to change in V8


Data13 To investigate the performance evoluti<strong>on</strong> with theincreasing <str<strong>on</strong>g>of</str<strong>on</strong>g> sample size, we trained another threepredicti<strong>on</strong> models#Model Training Data Testing DataM1 subsets where PredictV = V3,V4,V5,V6 PredictV = V7M2 subsets where PredictV = V3,V4,V5 PredictV = V6M3 subsets where PredictV = V3,V4 PredictV = V5M4 subsets where PredictV = V3 PredictV = V4


Predicti<strong>on</strong> Model14# Model M4 M3 M2 M1Sample size (use cases) 221 497 807 1110w 1w 2w 0Likelihoodvalue 4.065 3.683 3.811 4.769p-value 0.011 0 0 0value -0.489 -0.247 -0.964 -1.138p-value 0.904 0.734 0.138 0.013value -1.867 -1.715 -1.965 -2.144p-value 0 0 0 0p-value 0.017 0 0 0Ratio 8.131 21.161 23.784 43.994


Predicti<strong>on</strong> Model15# Model M4 M3 M2 M1Sample size (use cases) 221 497 807 1110w 1w 2w 0Likelihoodvalue 4.065 3.683 3.811 4.769p-value 0.011 0 0 0value -0.489 -0.247 -0.964 -1.138p-value 0.904 0.734 0.138 0.013value -1.867 -1.715 -1.965 -2.144p-value 0 0 0 0p-value 0.017 0 0 0Ratio 8.131 21.161 23.784 43.994


Significance level1610.90.80.70.60.50.4w1w20.30.20.10M4 M3 M2 M1


Evaluati<strong>on</strong> – Classificati<strong>on</strong> tables17ObservedPVM1 (size = 303) M2 (size = 310)PredictedPredictedPVPercentage ObservedPVNo Yes CorrectNo YesPercentageCorrectNo 253 22 92 No 253 31 89.08PVYes 15 13 46.43 Yes 23 3 11.54Overall 87.79 Overall 82.58ObservedPVM3 (size = 276) M4 (size = 221)PredictedPredictedPVPercentage ObservedPVNo Yes CorrectNo YesPercentageCorrectNo 108 111 49.32 No 108 70 60.67PVYes 20 37 64.91 Yes 20 23 53.49Overall 52.54 Overall 59.28


Evaluati<strong>on</strong> – Classificati<strong>on</strong> tables18ObservedPVM1 (size = 303) M2 (size = 310)PredictedPredictedPVP PVPercentage Observed 0 :percentage correct <str<strong>on</strong>g>of</str<strong>on</strong>g> usecases predicted to be unchangedNo Yes CorrectNo YesPercentageCorrectNo 253 22 92 No 253 31 89.08PVYes 15 13 46.43 Yes 23 3 11.54Overall 87.79 Overall 82.58PM3 (size = 276) 1 :percentage correct <str<strong>on</strong>g>of</str<strong>on</strong>g> useM4 (size = 221)cases predicted to be changedPPredictedPredictedavg : the overall percentage correctPVPVObservedPercentage ObservedPercentageNo Yes CorrectNo Yes CorrectPVNo 108 111 49.32 No 108 70 60.67PVYes 20 37 64.91 Yes 20 23 53.49Overall 52.54 Overall 59.28Select 0.2 as the cut value


Percentage Correct19100.00%90.00%80.00%70.00%60.00%50.00%40.00%30.00%20.00%10.00%0.00%P1P0Pavg• Less #modified usecases than others (26)• Nearly half <str<strong>on</strong>g>of</str<strong>on</strong>g>modified use casesM4 M3 M2areM1firstly changed.


Feedback from the Company20 Acti<strong>on</strong> In the design phases, the project managers made thearchitecture <str<strong>on</strong>g>of</str<strong>on</strong>g> those predicted use cases more flexible,e.g., using low-coupling criteria to design those usecases.‣ C<strong>on</strong>sequence‣ The design <str<strong>on</strong>g>of</str<strong>on</strong>g> QONE is capable <str<strong>on</strong>g>of</str<strong>on</strong>g> future changes.


Feedback from the Company21 Acti<strong>on</strong> The product managers changed the requirementanalysis process. They first filtered those changerequests that can be mapped with the predicti<strong>on</strong> results,and ranked them with high priority.‣ C<strong>on</strong>sequence‣ The efforts <str<strong>on</strong>g>of</str<strong>on</strong>g> expert analysis <strong>on</strong> the predicti<strong>on</strong> resultsdecreased.


C<strong>on</strong>clusi<strong>on</strong>22 Predict requirements to be change in the earlyphase is possible. 46.43% correct <str<strong>on</strong>g>of</str<strong>on</strong>g> predicted modified use cases,and 92% correct <str<strong>on</strong>g>of</str<strong>on</strong>g> predicted unchanged use cases. Predicti<strong>on</strong>s can be further be used as inputs forimproving the requirements and design processes.


23Thank you!


24Questi<strong>on</strong>s ?

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!