Having scanned over some of what you link, I would suggest learning a bit about fractal geometry and the possibilities of non-integer dimensions. I suggest this because code and modules probably don't multiply exactly as an area. This will be especially true if you try to go beyond 2D, because the discrepancies between the full R^n space and what software actually does (streak through it in something like a powerlaw distribution) will become worse and worse. (See something like https://physics.stackexchange.com/questions/55269/why-do-fra... .)
See also some ideas in https://codeburst.io/software-estimation-in-the-fractal-dime... or https://www.quora.com/Engineering-Management/Why-are-softwar... for more thoughts that head in that direction.