Modélisation de formules de coûts d'un logiciel


  • P

    Bonsoir à tous,

    Dans le cadre d'une étude des coûts (de création et maintenance) des logiciels (je suis de filière informatique), j'ai trouvé un article d'une personne s'étant amusée à les modéliser en formules mathématiques :
    Lien : http://www.volle.com/rapports/duree.htm

    J'aimerais bien pouvoir citer et exploiter ces travaux mais il y a une partie que je ne comprends pas.
    La partie qui m'intéresse va jusqu'au graphique 1, tout ce qui est en dessous ne m'intéresse pas.

    Voici le principe :

    • "Taille" d'un logiciel est notée "n", donc sa complexité est notée f(n)
    • Le "coût initial" de production d'un logiciel noté C0 est donc sa complexité initiale multipliée par une constante de proportion.

    Donc C0 = k * f(n0).

    Ensuite on modélise les coûts de maintenance à une année donnée :
    mt = delta * k * f(nt) ; delta étant la croissance de la complexité (car le logiciel s'agrandit).

    On compare ce coût en disant qu'il pourrait être égal au coût cumulé du logiciel (initial + maintenances) multiplié par un coefficient p :

    mt = p * k * f(nt).

    Voilà, jusqu'ici tout va bien, seulement à la ligne d'après "il en résulte que" :

    delta * f(nt) / f(nt) = p ; ici pas de soucis, on a remplacé "mt" dans la première équation pour avoir ça, mais la ligne suivante, après le "d'où" :

    f(nt) = f(n0) * e^pt

    C'est ici que je ne comprends plus rien, d'où sortent le n0 et l'exponentielle ? Je ne vois pas le rapport avec les autres équations ? (pareil pour la ligne d'en dessous)

    Toute aide serait appréciable ! Je gamberge sur ce problème depuis quelques jours et je n'arrive pas à en sortir, je regrette d'avoir un peu délaissé les maths pendant mes 3 années d'ingé informatique !

    Merci !


  • mtschoon

    Bonjour,

    Je te donne des indications pour trouver le résultat souhaité, mais la notation utilisée me laisse perplexe...J'ai "interprété" !

    Tu as écrit:
    Citation
    mt = delta * k * f(nt)
    delta * f(nt) / f(nt) = p

    Ce symbole de multiplication * n'a pas de sens...
    Δf(ntf(n_tf(nt) ne représente pas un produit.

    Δf(ntf(n_tf(nt) représente forcément Δ[f(nt[f(n_t[f(nt)]

    Qu'est ce que cela veut dire ?
    Pour pouvoir faire les calculs, j'ai admis que Δf(ntf(n_tf(nt) correspondait à ladérivée de f(ntf(n_tf(nt) par rapport à t

    Ainsi,

    δf(nt)f(nt)=p\frac{\delta f(n_t)}{f(n_t)}=pf(nt)δf(nt)=p peut s'écrire y′y=p\frac{y'}{y}=pyy=p

    y′=pyy'=pyy=py Equation différentielle usuelle.

    Solution : y=λepty=\lambda e^{pt}y=λept , λ étant une constante réelle.

    En revenant aux notations de l'énoncé :f(nt)=λeptf(n_t)=\lambda e^{pt}f(nt)=λept

    Pour trouver la valeur de la constante λ, tu donnes à t la valeur 0 :

    f(n0)=λep0=λe0=λf(n_0)=\lambda e^{p0}=\lambda e^{0}=\lambdaf(n0)=λep0=λe0=λ

    Conclusion:

    $\fbox{ f(n_t)=f(n_0) e^{pt}}$

    Bien sûr, pour pouvoir exploiter le document joint, je ne conseille de t'informer sur cette notation Δf(ntf(n_tf(nt)...

    Bon travail !


  • P

    Hello !
    En effet je n'ai pas réalisé que Δ correspondait à la dérivée... Tout prend son sens maintenant !
    Merci à toi, bonne journée :).


  • mtschoon

    De rien et bonne journée à toi !


Se connecter pour répondre