Introducing multiple objective functions to cocomo.py to support monte carlo simulations, it is found that certain values may need to be saved in the model. Here is a sample output computing both estimated effort and estimated months to completion. Also of note is that the estimations are generally at the upper end of previous data seen.
sced 1.10374478929 1.24379570838
flex 3.18327262758 2.61918685665
cplx 1.16993654826 0.810233522997
site 2.78086160785 1.0208471033
acap 4.08550479924 0.856455446536
rely 2.79509206577 0.970624810294
arch 1.52977754313 3.64286212636
prec 2.60300768966 2.69520959565
pmat 1.93849259272 3.69000784304
aexp 1.21214826296 1.14197561475
pexp 1.95664357311 1.13821406249
pcon 4.64991956732 0.806931122196
tool 3.672965413 0.893688345633
time 5.33559574511 1.16750907363
stor 4.00732679549 1.12328497753
docu 1.1245419464 0.853590713082
b 9.2944521547 0.643490350238
data 3.51126371228 1.05518529753
kloc 654.740065278
ltex 3.62581140746 0.908983366991
ruse 3.91603088042 1.1123939103
pcap 4.85036424753 0.827654929489
team 1.37304562403 3.23708175068
pvol 3.59547684544 1.06280165763
:a 9.2944521547 :b 0.657084517624 :kloc 85.9734460178 :exp 0.810643288666 :sum 15.3558771042 :prod 18.0554715192 effort 6207.43379569 months 45.0217290274
({'sced': 1.1037447892852588, 'flex': 3.18327262757599, 'cplx': 1.1699365482601933, 'site': 2.7808616078467976, 'acap': 4.085504799243289, 'rely': 2.79509206577425, 'arch': 1.529777543133112, 'prec': 2.603007689655303, 'pmat': 1.938492592716496, 'aexp': 1.2121482629597513, 'pexp': 1.9566435731061547, 'pcon': 4.649919567322444, 'tool': 3.6729654130036895, 'time': 5.335595745107138, 'stor': 4.007326795486877, 'docu': 1.1245419463964668, 'b': 9.294452154704873, 'data': 3.5112637122816897, 'kloc': 654.7400652777252, 'ltex': 3.6258114074591927, 'ruse': 3.9160308804151143, 'pcap': 4.8503642475262385, 'team': 1.3730456240284985, 'pvol': 3.59547684544323}, 6207.433795687203, 45.02172902735297)
Finally, the numbers to the right in the 3-column sets do not seem to be the same used in the effort/etc calculations, y() is called each time to generate a random.uniform() based value (?) These can either be kept or replaced with the hardcoded array versions from coco.awk
No comments:
Post a Comment