在功能、质量和审美这三个特征中,功能是必备的,但不是充分的。如果一个设计方案没有效用,就完全失去了价值,但仅有效用却不坚固的设计方案也是不可取的。
一个软件设计方案的功能来自产品设计(即需求开发)。软件设计(工程设计)的任务是满足需求开发的结果——软件需求规格说明书的要求,不需要再设计功能与效用。所以,设计好用的产品,即让软件有好的功能设置——开发出好的软件规格说明,是需求工程师而不是软件设计师的任务。
既然软件设计师的任务是满足需求规格而不是开发新功能,那么软件设计师就要时刻谨记需求跟踪任务,不要进行额外的镀金行为。如果软件设计师发现需求规格可能存在问题,要跟需求工程师进行反馈,不要自行处理。
在需求工程中,功能需求是多层次和多维度的。最高层次的效用是软件产品被开发的战略目的,被称为业务需求,例如ATM提升银行工作效率、降低人工成本、降低储户交易成本等。中间层次的效用是软件产品能够帮助用户完成的具体任务,被称为用户需求,例如存款、取款、转账等。低层次的效用是软件产品能够针对用户的请求提供的响应,被称为系统级需求,例如用户请求查询余额时,系统就要显示账户的余额数据。需求工程师负责找出各个层次的需求并将它们整合。
软件产品通常有很多不同的用户类别,各自有不同的目标和任务,它们之间可能一致,也可能冲突。整个产品有着自己的目标,它可能与具体用户的目标相一致也可能冲突。需求工程师负责发现并整合来自不同立场的目标和任务。
最后,这些不同层次、不同维度的需求在整合处理后都会出现在软件需求规格说明文档中。它们就是设计师在执行设计任务时的效用依据。