程序原本(六十六):应用开发基础——应用开发的背景与成因(产品需求通常是非功能性的,但又是最上层的应用表现)

阅读数:27 2019 年 10 月 3 日 14:26

程序原本(六十六):应用开发基础——应用开发的背景与成因(产品需求通常是非功能性的,但又是最上层的应用表现)

那么什么是非功能性需求呢?我将这一类需求理解为:即使这些需求完全不存在,也并不影响应用的主体功能的交付,那么这类需求就称为非功能性需求。例如安装、手册、升级维护工具等。14在我们的应用开发中,有大量的工作与技能都是与这些非功能性需求相关的。然而它们并非是不必要的,相反,掌握这些技能是成长为应用开发工程师所必需的。只是这些内容的思维方式与学习方法,与我们此前所讨论的“(严格意义上的)程序”完全不同。

14 有一类软件叫“绿色软件”,它有一个特定的名称叫“Portable Software”,通常是某个应用产品的定制版。比较绿色软件与相应产品的发布包,其中被删减掉的部分基本上就可以称为非功能性需求。

综合上述讨论,应用开发中存在三个层次上的需求,如图 31 所示。

图 31 应用开发中三个层次上的需求

程序原本(六十六):应用开发基础——应用开发的背景与成因(产品需求通常是非功能性的,但又是最上层的应用表现)

其中,必须完成的计算需求是通过系统分析,在机器数据层、基础数据层和应用数据层上所得出的功能性需求。独立领域的应用需求,是通过业务分析,在用户的业务领域中所得出的功能性需求。而第三个方面,产品需求则通常是非功能性的15。最后需要强调,有一部分非功能性需求可能同时也是非当前需求,例如版本管理16

15 这些狭义的、刻意与其他类型的需求区别开来的产品需求当然也表现为具体的功能,这里的“非功能性”是针对目标用户而言。例如产品互联网产品中存在如何运营、营利的问题,这类运营需求往往不是目标用户所关心的,而是互联网企业对于该产品的需求。

16 在这一视角下,“版本”这个概念是相当混杂的,它包括功能性需求、非功能性的需求,以及产品和产品线的需求。在后面我们会再次谈到:在“应用开发”这一领域中所言的版本,仅是这个概念中的一部分。

评论

发布