背景:
在软件开发或者软件测试的过程中,经常会听到Function和Feature两个单词。那么Function和Feature具体的区别是什么呢。
区别:
Function:用户在特定版本中必须拥有的一项核心要求,这项要求会极大地影响产品的价值。Function描述具体实现什么目标,即What to do。例如:轿车必须具有刹车功能。
Feature:是用于帮助实现某种功能的具体工具, 即How to do。 例如,刹车碟片就是汽车用于实现刹车的功能的一个Feature。
在软件开发中也是类似的。Function多是在Requirement中被提及,而Feature则是在软件开发过程中用于实现具体Function的工具。Functiong是客户更侧重于宏观的描述与表达, 是一个目标或者要求,类似客户要一盒巧克力。Feature则是软件开发人员开发出的具体内容, 也就是在盒子里面具体放的巧克力。
Function:轿车必须具有刹车功能。
Feature:
- 为轿车安装鼓式刹车;
- 为轿车安装带有防抱死系统(ABS)的鼓式刹车;
- 为轿车安装卡钳刹车;
- 为轿车安装带有防抱死系统(ABS)的卡钳刹车。
由此可见,对于同一个Function,可以有多种不同的实现方法, 也就是有多项Feature可以满足一项Function。软件对于同一个Function升级和优化的意义,具体便是对于Feature的优化和升级。反而言之