恩格尔定律,软件工程中的恩格尔定律

软件工程中的恩格尔定律 - 应用软件 - 电脑教程网

软件工程中的恩格尔定律

日期:2007-01-08   荐:
在经济领域有一个恩格尔定律:

19世纪德国统计学家恩格尔根据统计资料,对消费结构的变化得出一个规律:一个家庭收入越少,家庭收入中(或总支出中)用来购买食物的支出所占的比例就越大,随着家庭收入的增加,家庭收入中(或总支出中)用来购买食物的支出则会下降。推而广之,一个国家越穷,每个国民的平均收入中(或平均支出中)用于购买食物的支出所占比例就越大,随着国家的富裕,这个比例呈下降趋势。恩格尔定律的公式:
                 食物支出变动百分比
  食物支出对总支出的比率(R1)=──────────
                   总支出变动百分比
  或
              食物支出变动百分比
  食物支出对收入的比率(R2)=─────────
             收入变动百分比
  R2又称为食物支出的收入弹性。 

恩格尔定律是根据经验数据提出的,它是在假定其他一切变量都是常数的前提下才适用的,因此在考察食物支出在收入中所占比例的变动问题时,还应当考虑城市化程度、食品加工、饮食业和食物本身结构变化等因素都会影响家庭的食物支出增加。只有达到相当高的平均食物消费水平时,收入的进一步增加才不对食物支出发生重要的影响。

恩格尔系数是根据恩格尔定律得出的比例数,是表示生活水平高低的一个指标。 其计算公式如下:
         食物支出金额
  恩格尔系数=───────
         总支出金额

除食物支出外,衣着、住房、日用必需品等的支出,也同样在不断增长的家庭收入或总支出中,所占比重上升一段时期后,呈递减趋势。

在软件工程领域也存在恩格尔定律:

这个定律可以这样描述:一个软件产品的代码可以分为功能性代码和非功能性代码,如果功能性代码在整个代码中的比例越低,软件的成熟度就高,反之则越低。

因为在软件中,60%以上的代码处理的都不是功能性问题,它们在处理异常,在为软件增加监控能力,在处理日志信息等等。如果没有这些非功能性的代码,那么软件的可靠性、可维护性、可监控性可能就很难保证。我们近3年的实践也说明了这一点,我们代码的60%以上都是在处理这些事情。可是我们的原型系统,这几乎没有,这就是成熟和非成熟的差异。这就是我们的代码最初只有200K,但是现在有1.2M,但是感觉功能似乎没有增加多少的原因。

知道windows为什么那么大,为什么不断吃CPU了吗?

使你成功的不仅仅是功能,还有其它很多。
标签: