软件开发工作不是为了表现自己,而是要准确而深刻地表现用户的需求、社会的需求。如果开发人员不能准确知道用户需要什么,就很难开发出用户满意的软件。要解决这些问题,开发人员需要具备系统的探索能力和知识。缺乏相关业务知识,缺乏对用户的系统了解,只凭软件技术知识很难开发出符合用户需求的软件。

以不同的角度对软件需求进行分层,对于全面准确地分析理解用户的需求,会起到有效的促进作用,所以我们有必要对软件需求的层次进行分析讨论。下面就是本人收集总结的以不同角度的对软件需求的分层,但愿不同角度的不同需求层次提供给大家不同的视角,可以给大家一点启示。

1、以需求用途角度
以需求用途角度需求可以分为市场需求、产品线需求、产品需求、系统需求等层次。

市场需求:主要说明的是市场前景分析,用户需要的是哪一类的产品,或者是对这个产品的哪项功能更感兴趣,优先级如何,其用途是确定要不要做这样的产品。

产品线需求:是对一组在使用价值、系统功能、销售对象等方面比较接近的产品(软件系统)的概念描述,从用户的目的需要推导出概要性的方式需要。

产品需求:一条产品线因为阶段不同或用户不同而有不同版本的产品,产品需求就是对某一具体版本产品(软件系统)的概念描述,其用途是确定产品的范围和轮廓。

系统需求:是为了开发软件产品,在产品需求的基础上对完成用户目的需要的方式进一步分析细化,细化到可以为设计人员提供设计的基础。

2、以明确程度角度
以明确程度角度需求可以分为明确的需求(包括书面的需求、口头的需求)、潜在的需求等层次。

明确的需求是指用户明确表达解决现在问题的一种主观愿望。这种需求也可以叫“显性需求”,是指用户对自己需要的商品或服务,在心中已明确地了解自己的欲望,形成了书面的需求(包括合同、确认后的需求规格说明书等)或口头的需求。

明确的需求是比较容易获得的,困难的是获得潜在的需求和周边的需求。有些需求开发人员往往只满足于获得明确的需求,而不太注重获得潜在的需求。而其中有些潜在的需求又恰恰是系统必须满足的需求。

潜在的需求一是指客户目前因为软件知识、视野等局限而无法明确或具体提出的需求,经过需求分析人员引导,用户采纳为自己的需求;二是指不需要用户明确提出的需求,如公安信息系统中的信息应当符合公安信息标准,像“行政区划、案件类型等编码型的信息项应当采用诱导性输入法”等等,这些需求不需要用户明确提出,但软件系统一定要满
足。如何掌握住这种需求,使需求明确化,是最重要的,也是最困难的一件事,因为有的时候客户本身往往也不知道自己的需要到底是什么。

大多数初次购买软件系统的潜在客户,都无法确切地知道自己真正的需求。因此,开发人员碰到这类客户时最重要也是最困难的工作,就是发掘这类客户的需求,使潜在的需求转变成明确的需求。为了更好挖掘潜在需求,需求调研分析人员应该具有丰富的业务经验和知识,同时还要善于利用如询问、图表、原型等各种手段来引导客户。

3、以涉众范围角度
以涉众范围角度需求可以分为客户的需求、用户的需求、周边的需求等层次。

客户常常不是直接用户,如企业或政府的系统建设管理部门、软件产品的中间商等,他们与软件开发商联系,为即将开发的软件提供部分需求或全部需求,但不一定直接使用软件。

这里的用户包括直接用户个人和用户所在的集体。

用户和客户的需求往往存在关注角度的不同。例如用户往往关注系统本身的功能好不好用、实不实用;而中间商客户往往是关心软件产品好不好卖,企业或政府的系统建设管理部门会比较关心与其他系统的整体联系。好用才会好卖,因此软件需求分析人员不能仅仅听取“客户”意见,还要收集“用户”意见,特别是典型用户的意见。

周边的需求是指虽然不直接使用系统产品,但与系统相关的人员的需求,这类需求往往很容易被忽视(如:税务系统对于交税的企业的需求、海关报关系统对于报关企业的需求、上网儿童或使用教育软件学生的家长的需求)。周边的需求考虑的是从用户满意到社会满意,要挖掘这方面的需求,就要设身处地为相关的群众着想,找机会接触相关群众,听取大家的意见。

4、以期望程度角度
以期望程度角度需求可以分为基本的需求、期望的需求、超越期望的需求等层次。

日本卡诺搏士提出的顾客需求的模型定义了3 种类型的顾客需求:基本型、期望型、兴奋型。因此按照用户对需求的期望程度我们可以将需求分为三个层次:基本需求、期望需求、超越用户期望的需求。用户对这三个层次表现的情绪分别是:满足、满意、惊喜。

用户的基本需求是产品必须满足的要求,也可以叫核心的需求。例如系统必须提供的功能或必须用到的一些强制性标准,可能这一基本要求用户没有提出来,但这并不意味着他们就可以接受不能满足那些需求的产品。如果系统满足不了用户的这一层次的需求,用户就会产生强烈的不满,系统也会因此而失去用户。

以“顾客”为中心,不仅考虑顾客基本的需求,还要考虑期望的需求,完成从满足基本需求一期望需求一兴奋需求的过渡。

用户期望的需求不一定是必须的属性或功能,但却是用户希望得到的,如果能满足这一期望那就很可能使用户高兴,吸引用户继续与你合作。期望的需求在产品中实现的越多,顾客就越满意;当没有满足这些需求时,顾客就会不满意。

超越用户期望的需求是一些让用户完全出乎其意料的特性。如果产品没有提供这类特性,顾客不会不满意,因为他们通常没有想到这些需求;而当产品提供了这类特性时,顾客就非常满意,非常乐意使用这一系统。

在软件开发市场竞争日趋激烈的今天,仅仅满足用户的基本需求是不够的,我们不仅要正确理解用户的需求,而且要善于想用户所想,挖掘用户的潜在需求,使用户感到满意和惊喜,同时还要尽可能地超越用户的期望。

当然,超越用户期望的需求一定要由用户作最终的决定,如果开发人员擅作主张就很可能成为“镀金的需求”。

5、以需求调研角度
以需求调研角度需求可以分为业务需求、用户需求、系统需求等层次。这是最经典的需求分层方法。

目标层:客户为什么愿意为产品花钱。它有助于开发商更好地理解领域,也有助于检查是否所有目标都已体现在需求中,在开发过程中是否都考虑到了。

领域层:产品应该支持(帮助或替代)的用户的各项任务。领域层的描述可以使开发商更好地理解领域、也可以帮助开发商了解隐含的需求或要求提供更进一步的信息。

产品层:产品应该提供的功能,指定了产品的输入输出情况,只需说明功能或特性而无需说明细节。

设计层:如产品界面的细节、通信协议、用户希望用B/S还是用C/S等等设计上的要求,但并没有说明产品内部如何实现。

6、以建设阶段角度
以建设阶段目标需要角度需求可以分为基础信息化需求、工作流程优化需求、信息资源整合需求、信息综合利用需求等不同层次。

在基础信息化实现以后,就会考虑流程的优化,帮助整个企业或政府机关进行整体流程再
造,以提高工作效率。流程优化开始可能是各个部门单点突破,然后会面临如何解决信息孤岛的问题,因此有了信息资源整合需求,进而自然地会考虑如何综合利用各种已经积累的信息。

虽然是以阶段来划分,却体现了不同阶段用户需求的不同层次。无论是企业还是政府机关,信息系统的建设都包括了这些层次,每一层需求是上一层需求的基础。新的系统建设可以一次性的综合考虑四个层次的需求。将企业或政府信息化的需求分为这样四个层次,有助于了解发展的趋势,了解客户当前的背景和目标,对症下药地提出和挖掘准确合理的用户需求。

7、以用户关注角度
以用户关注角度需求可以分为目标性需求、功能性需求、操作性需求等层次。

目标性需求:定义了整个系统需要达到的目标;

功能性需求:定义了整个系统必须完成的任务;

操作性需求:定义了完成每个任务的具体的人机交互;

目标性需求是企业的高层管理人员所关注的,功能性需求是企业的中层管理人员所关注的,操作性需求是企业的具体操作人员所关注的。

8、以管理学的角度
以管理学的角度来说,一般可以分为业务层、监督层、决策层(公安机关称为实战层、指导层、决策层)。也可以针对具体情况调整或细化这些层次。

9、以业务差异角度
以业务差异角度角度来说,一般可以分为业务共性需求、行业特性需求及企业个性需求(或扩展需求)的多层次需求。

例如,开发ERP系统就要考虑不同行业、不同企业之间的共性需求,这样便于扩大ERP系统的适用范围。但仅仅考虑共性, 开发成千篇一律的软件肯定无法推广,因此也要考虑行业特性需求及企业个性需求,做到核心架构符合业务共性需求,通过灵活的系统配置或机动的局部修改来适应行业特性需求及企业个性需求。

再如,金盾工程就把信息库建设需求分为共享数据项集、业务管理项集和地方业务扩展项集等三个层次:

共享数据项集:由各业务数据库抽取出来的、能反映业务基本属性的、各部门需要共享的基本信息的集合。

业务管理项集:一般是由公安部统一规定的、能完成特定业务管理的项目集。

地方业务扩展项集:除业务管理项集以外,为满足本地的特殊业务需求而制定的业务管理项目集。

10、以业务先后角度
以业务先后角度角度来说,一般可以分为事前、事中、事后等三个层次。每一项业务都可以按照事前、事中、事后要做什么去考虑问题,这样能使需求分析得更全面。

结束语
需求分层的方式还能举出很多种,也可以由需求调研分析人员根据具体的情景以不同角度把需求分为不同层次。需求分层目的只有一个,就是更全面、更准确地挖掘用户的需求,更全面、更准确地表达用户的需求。

从多角度看软件系统需求(节选) 文/卢琳生相关推荐

  1. 写好一份软件开发设计文档

    如何写好一份软件开发设计文档 转载: 设计文档 - 也被称作技术规范和实现手册,描述了你如何去解决一个问题,是确保正确完成工作最有用的工具,其目的是迫使你对设计展开缜密的思考,并收集他人的反馈,进而完 ...

  2. 软件需求规格文档(含附录)

    智慧校园数据管理系统 软件需求规格文档 文件版本2.2版本 文件状态:修改完成 文件作者:22组全体成员 完成日期:2023年4月11日 软件需求规格说明 a. 引言 2 a. 1目的 a. 2文档约 ...

  3. 从人类的发展史看软件及软件工程的未来

    从人类的发展史看软件及软件工程的未来 摘 要: 透过人类数千万年的发展史,可以看到一条清晰的.刻在时间轴上的演变脉络.该脉络不仅诉说着人类过去的发展,而且也指出了人类命运的走向.软件和软件工程作为人类 ...

  4. 需求工程之软件需求规格文档(SRS文档)

    目录 软件需求规格文档包含: 软件需求规格说明文档的产生阶段 需求开发过程中的常见文档: 需求规格说活动过程 需求规格说文档编写目的; 需求说明文档常见读者群体: 文档写作的特点 软件需求规格文档包含 ...

  5. 怎样快速查看文档是否统一_开发到底喜欢看怎样的需求文档

    ​一份好的需求文档不仅能提高开发效率,还能避免需求误解导致的返工. 开发喜欢看怎样的需求文档?我总结了以下7点. 目录 需求文档必备的基本要素 分工要明细,避免多人看同一份文档 逻辑要清晰,避免口口相 ...

  6. 开发到底喜欢看怎样的需求文档?

    一份好的需求文档不仅能提高开发效率,还能避免需求误解导致的返工. 开发喜欢看怎样的需求文档?我总结了以下7点. -1- 需求文档必备的基本要素 需求迭代.需求优先级.需求产品负责人.需求开发人员.需求 ...

  7. 一定要多角度看事物 | 今日最佳

    全世界只有3.14 % 的人关注了 青少年数学之旅 一定要多角度看事物 岁月对我们做了什么 无法反驳 论发型的重要性 坐骨神经痛被赋予了新含义 老师真的很会总结了 (图源@E_Volution_) 扎 ...

  8. 开发到底喜欢看怎样的需求文档

    一份好的需求文档不仅能提高开发效率,还能避免需求误解导致的返工. 开发喜欢看怎样的需求文档?我总结了以下7点. 目录 需求文档必备的基本要素 分工要明细,避免多人看同一份文档 逻辑要清晰,避免口口相传 ...

  9. Martin对敏捷宣言中“可工作软件胜过面面俱到文档”的解释

    Martin对敏捷宣言中"可工作软件胜过面面俱到文档"的解释 没有文档的软件是一种灾难.代码不是传达系统原理和结构的理想媒介.团队更需要编制易于阅读的文档,来对系统及其设计决策的依 ...

  10. 产品版本、软件版本、文档版本定义

    最近对公司的产品版本.软件版本.文档版本定义进行了细化.供参考. 1.  软件版本 a)        X.Y.Z.build i.             X--软件主版本,与产品主版本对应: ii ...

最新文章

  1. jdbc mysql select_java连接mysql数据库并使用jdbc进行查询详解
  2. 计算机视觉与深度学习,看这本书就够了
  3. Codeforces Round #528 (Div. 2) - D. Minimum Diameter Tree
  4. ie浏览器打开aspx文件乱码_ie浏览器下载文件时文件名乱码
  5. jquery双击一行跳转页面_Word软件使用小技巧,鼠标双击在不同操作对象中有不同的功能...
  6. 11g RAC环境下客户端配置TAF
  7. 以太坊2.0客户端Lighthouse发布v1.3.0版本,为高优先级建议立即更新
  8. C语言第七讲,函数入门.
  9. python中for in循环结束才能执行后面的语句吗,python中for-in循环、while循环、if语句、input()函数、流程控制语句break和continue...
  10. vm虚拟机 centos7 联网(设置静态ip)
  11. java结合opencv进行照片人脸检测
  12. vpp之node节点分析一: dual类型节点
  13. solidity教程(四)僵尸作战系统
  14. 手机开热点但是电脑一直连接不上_电脑无法连接手机开的热点怎么解决
  15. 工具使用分享之爱思助手安装苹果APP
  16. JS中操作字符串的常用方法
  17. ffmpeg入门篇-ffmpeg是怎么转码的?
  18. Android终端硬件通讯总结(串口通讯、Usb Com、Usb、蓝牙、Wifi)
  19. H3C路由器静态NAT_路由器多WAN口方式解决访问不同专线接入的服务器
  20. 99%的人都想要的广告拦截软件

热门文章

  1. 【多目标优化求解】基于matlab遗传算法求解多目标配电网重构模型【含Matlab源码 970期】
  2. ai中如何建立阴影_在投资管理中采用AI:公司如何成功建立
  3. android 十六进制string转int,16进制string转成int
  4. Sublime Text3:解决win10输入法输入框不跟随问题
  5. parallels恢复linux密码,在Parallels Desktop中忘记Windows密码怎么办 Parallels Desktop忘记Windows密码的解决方法...
  6. linux 内存性能评估,linux的内存性能评估
  7. sqlmap自动扫描注入点_SQLMAP使用指南[学员作品]
  8. DateFormat与SimpleDateFormat区别和使用详解
  9. Spring Boot 构建电商基础秒杀项目 (二) 使用 Spring MVC 方式获取用户信息
  10. “飞跃四十载 同发展·共繁荣”巡回展在江苏举行