;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; This file is part of "NOVA": NOVA = search + COCOMO tools ; Copyright, 2008, Tim Menzies tim@menzies.us ; ; NOVA is free software: you can redistribute it and/or modify ; it under the terms of the GNU General Public License as published by ; the Free Software Foundation, either version 3 of the License, or ; (at your option) any later version. ; ; NOVA is distributed in the hope that it will be useful, ; but WITHOUT ANY WARRANTY; without even the implied warranty of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ; GNU General Public License for more details. ; You should have received a copy of the GNU General Public License ; a long with NOVA. If not, see . ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (in-package :xomo.model) (defun months (&optional (pm (effort))) "Returns elapsed development time in months." (macrolet ((f (x) `(em2effort ',x)) (s (x) `(sf2effort ',x))) (let* ((c (! 'c)) (d (! 'd)) (sced (em-range (! 'sced))) (sced-percents '((1 . 75) (2 . 85) (3 . 100) (4 . 130) (5 . 160))) (sced-percent (geta (round sced) sced-percents));like STAR ;; (sced-percent (interpolates sced (list (assoc (floor sced) sced-percents) ;; (assoc (ceiling sced) sced-percents)))) (pm-no-sced (/ pm (f sced))) (e-less-b (* 0.01 (+ (s prec) (s flex) (s resl) (s team) (s pmat)))) (f (+ d (* 0.2 e-less-b)))) (* c (expt pm-no-sced f) (/ sced-percent 100))))) (register-scoring-method-by-parameters 'months "Months" #'months #'<)