Ce qui suit a été du code qui a été écrit durant un examen et j'illustre comment j'ai pu utiliser ce qui est fourni.
Notez que j'inscrit ici (ce Gist sur GitHub aujourd'hui en Février 2024) ce qui était dans mes fichiers que je n'ai pas touché depuis plus de 2 ans (Mai 2021!).
La question citait des points de données en liste que j'ai assigné dans DATA_KLOC
, DATA_MOD
, DATA_FD
directement de l'exercice.
Exemple de listes de références ou l'on peux obtenir la *moyenne(, la médiane, et ce qui est entre deux membres de listes
calculateAverage(...)
getMedian(...)
getRangeBetween(<N1>, <N2>)
import { getRangeBetween, calculateAverage, getMedian } from './utils.mjs'
// Listes de nombres mentionnés en exercice pour lesquels nous voulons extraire la médiane, ...
const DATA_KLOC = [
10, 23, 26, 31, 31, 40, 47, 52, 54, 67, 70, 75, 83, 83, 100, 110, 200,
]
const DATA_MOD = [
15, 43, 61, 10, 43, 57, 58, 65, 50, 60, 50, 96, 51, 61, 32, 78, 48,
]
const DATA_FD = [
36, 22, 15, 33, 15, 13, 22, 16, 15, 18, 10, 34, 16, 18, 12, 20, 21,
]
calculateAverage(DATA_MOD) //?
getMedian(DATA_FD) //?
getRangeBetween(126, 129) //?
Ce que j'ai utilisé pour calculer des références de papiers et savoir lesquels sont communs entre chacun.
J'analysais un papier sur les techniques d'evaluation de l'effort.
Je ne me rappelle plus des techniques (ça fait 2.5 ans que j'ai mis de coté ces fichiers), mais c'était des techniques de régression linéaire (LR, Linear Regression) qui étaient populaires.
Le papier listait les références (chaque nombre étant un numéro d'article en référence) et je voulais savoir quel papier était en commun.
Ces calculs étaient alors que j'analysais le papier (DOI: 10.25103/jestr.104.08):
S. Bilgaiyan, S. Sagnika, S. Mishra and D. Madhabananda, "A Systematic Review on Software Cost
Estimation in Agile Software Development," Journal of Engineering Science and Technology Review,
vol. 10, no. 4, pp. 51-64, 08 2017.
Code:
const table3Papers = new Map()
// Table 3. Accuracy parameters used by different estimation mechanisms
// NN: Neural Network, une méthode d'estimation qui utilise le machine learning
// Papers: [109-123]
// Accuracy parameters: MRE, MMRE, PRED(X), MAPE, MdMRE, R2, MSE, MMER
table3Papers.set('NN', [...getRangeBetween(109, 123)].sort()) // 15
// EJ: Expert Judgement, une méthode d'estimation (la façon que l'on fait depuis toujours lorsqu'on a des experts!)
// Papiers: [124, 126-129]
// Accuracy parameters: MRE, MdMRE
table3Papers.set('EJ', [...getRangeBetween(126, 129), 124].sort()) // 5
// PP/Da: Planning Poker / Disaggregation des mécanismes d'estimation
// Papiers: [124, 130-132]
// Accuracy parameters: MRE, BRE
table3Papers.set('PPDA', [...getRangeBetween(130, 132), 124].sort()) // 4
// UCP: Use Case Point
// Papiers: [111, 125, 133, 134]
// Accuracy parameters: MRE, MMRE, MMER, PRED(X), R2, MSE
table3Papers.set('UCP', [111, 125, 133, 134]) // 4
// MUCP: Modified Use Case Point
// Papiers: [133, 134, 138, 139]
// Methods: MRE, MMRE, MdMRE, PRED(X)
table3Papers.set('MUCP', [133, 134, 138, 139]) // 4
// LR: Linear Regression
// Papiers: [135, 136]
// Accuracy parameters: MRE, MMRE, MMER, PRED(X), MdMRE
table3Papers.set('LR', [135, 136]) // 2
// Wd: Wideband Delphi
// Papiers: [124, 132]
// Accuracy parameters: MRE
table3Papers.set('WD', [124, 132]) // 2
// BUTD: Buttom UP, Top Down
// Papiers: [129, 137]
// Accuracy parameters: MRE
table3Papers.set('BUTD', [129, 137]) // 2
const all = []
for (const [k, c] of table3Papers.entries()) {
all.push(...c)
}
const unique = new Set(all)
const shared = new Map()
for (const [k, c] of table3Papers.entries()) {
shared.set(k, c)
}