二八定律是19世纪末20世纪初意大利经济学家帕累托发现的。他认为,在任何一组东西中,最重要的只占其中一小部分,约20%,其余80%尽管是多数,却是次要的,因此又称二八定律。在软件工程当中也有很多这样的二八定律。
Walker Royce扩展了Barry Boehm提出的有关软件项目管理的“二八定理”,他认为在软件工程中存在以下的二八定理:
1. 80%的工程活动是由20%的需求消耗的
这条定理说明软件开发的工作量主要集中在一小部分的需求上面。
所以,如果我们在需求分析的时候,应当做好需求关键程度和优先级的分析,并由此找出关键的那部分需求,对这些需求做好分析、定义,以避免后续的变更,为后续的设计和实现铺平道路,那么我们就能把软件开发的工作量降低,确保开发的进度。
2. 80%的软件成本是由20%的构件消耗的
这条定理说明软件开发的成本和维护的成本主要集中在一小部分的构件上。
所以,我们在进行软件设计的时候,应当标识出关键构件,并且通过严格控制这些构件的质量水平来控制开发和维护成本。
3. 80%的缺陷是由20%的构件引起的
这条定理说明软件缺陷主要集中在一小部分的构件上。
所以,我们在进行软件设计的时候,应当标识出关键构件,并且严格执行对这些构件评审、测试,严格控制这些构件的质量,降低这些构件产生的缺陷数量。