If you double the size of the software you are producing, is the effort (cost) required doubled? In some industries there would be an economy of scale, so the cost would be less than double, in software production it works the other way, there is a diseconomy of scale. Cost estimation formulae should take this scalability into account, and COCOMO does, using a formula Cost = A * (KLOC) ** B where B>1. Try out a few values of B to get feeling for how dramatic the effect is. COCOMO uses a number of "cost-drivers" to determine the value of B to use. It would be worth your while reading the COCOMO book if you can get hold of it, otherwise I could send you a couple of pages summarising key ideas that Juan Fernandez-Ramil and I wrote for our book "Managing the Software Enterprise".
If you mean by "scalability" the ability of a system to scale up its performance after providing more resources, and if by "cost driver in cost estimation" you mean, whether it should affect a cost estimation by a multiplicative factor, I guess it depends on the cost drivers your model already supports. Looking at Cocomo II I did not see a good candidate though. The TIME cost driver seems related, but from what I read it is more related to stringent performance requirements in which the resources are fixed, and not adaptable.
In a way scalability forces you to do things that you otherwise might not have to do, like increased flexibility, and increased reliability. So it is going to cost, but whether it is so pervasive to become a cost driver.... But a quality requirement like reusability does get its own cost driver in Cocomo II.
Still, it seems that scalability is fostered by choosing the right software architecture and tactics. So it all depends on the other quality attributes the system is supposed to be having and how that clashes with the choice for a scalable architecture. At that point the cost may creep in through other cost drivers like development flexibility, required reliability, or product complexity.
Economists often talk about scalability in terms of economies or diseconomies of scale. So in terms of the COCOMO model Pat suggests then B>1 implies diseconomies, B=1 implies linearity and B1 based presumably upon the insight of larger projects entailing more bureaucracy and more greater communication overhead there is surprisingly little empirical evidence to support this viewpoint.
Although a little dated Barbara Kitchenham's analysis is extremely helpful [1]. When thinking about these things you might ask yourself if you expect such a simple model to hold across all sizes of project and what the impact of noise and bias would be in our attempting to fit complex models to such data.
Good luck!
Martin
References:
1. Kitchenham, B.A., The question of scale economies in software - why cannot researchers agree? Information & Software Technology, 2002. 44(1): p. 13-24.
Syed: Martin refers to a different kind of scalablity, and rereading your question you can both refer to mine (related to software performance) and his (scalability of development). So which is the one you refer to?
thanks a lot #Martin John Shepperd, #Jurriaan Hage
Dear Jurriaan Hage;
This is exactly the scalability related to software performance. But here the context of the question is whether there is any impact of incorporating this parameter to our newly developed project on its overall effort estimation or not. If you feel that by considering this as a critical parameter of this modern age development please tell me to what extent this factor can contribute to towards overall project estimation.
I am finding this confusing and need you to be a lot more precise about your problem. From your last posting, it seems to be something to do with performance, but I would never have guessed that from your original posting, though somehow Juriaan Hage did.. Please could you write what your exact problem is, if necessary posting a lengthy description as an attached document.
@Syed Andrabi: in answer to your later clarification: it seems to me that adding scalability and how costly that will be depends on any other quality criteria you might have, like I said in my earlier answer. In that case it should show up in your cost estimate as something like a cost driver associated with "inflexbility of requirements" and "complexity".
I know of little published work on this topic although one would expect a positive relationship so as scalability requirements increase so do development costs. To go deeper you need data and as Jur points out there are many confounders.