什么是软件需求
2011-01-11 09:21
495 查看
需求对于搞软件行业的人都不会感到陌生,我们经常会看到这些术语,如:软件需求,系统需求,业务需求,用户需求,功能需求,非功能性需求等等.这么多术语,需求到底是什么,我们有没有一个清晰的认识,有没有一个标准.对于上述这些术语,相信很多人也会有困惑,分不清之间的异同.现在我来说说我对需求的认识.
需求应从两个角度去看:
一。站在开发人员的角度,从内部看;
软件需求(系统需求)可分为:1。功能性需求;2。非功能性需求(质量属性和约束规则)。平时我们经常提到的软件需求规格说明书应该是从这个层面去描述软件需求的,即为了完成某种目标或任务,软件应该具备哪些功能。
二。站在客户的角度,从外部看
根据客户的层次可以分为三类:决算出资人,部门领导人,基层做事的人。
根据三类用户,我们可以从客户的角度把需求分为三类:1。业务需求;2。用户需求;3。行为需求。
这三类需求的粒度从粗到细,最终都是为了满足业务需求(目标远景),这三类需求中,业务需求和用户需求是相对稳定的,
而行为需求是最容易发生变化的。
以上两种需求的分法,实际上是在陈述这样一件事实:即软件是用来解决什么问题,为了解决问题,软件应该具备什么样的功能。
客户需要什么(从外部描述需求);软件提供什么样的功能去满足。
再说几个在做需求过程中常见的一些不容易区分的概念:
业务用例:描述用户需求(外部),即描述职责及任务;
系统用例:描述功能需求(内部),即描述系统功能,及操作步骤。
通过系统用例和用例规约,可以把业务需求和功能性需求有机的联系起来,实现需求的可跟踪性。
目标->职责任务->系统功能->操作步骤
业务需求->用户需求->功能需求->行为需求
需求应从两个角度去看:
一。站在开发人员的角度,从内部看;
软件需求(系统需求)可分为:1。功能性需求;2。非功能性需求(质量属性和约束规则)。平时我们经常提到的软件需求规格说明书应该是从这个层面去描述软件需求的,即为了完成某种目标或任务,软件应该具备哪些功能。
二。站在客户的角度,从外部看
根据客户的层次可以分为三类:决算出资人,部门领导人,基层做事的人。
根据三类用户,我们可以从客户的角度把需求分为三类:1。业务需求;2。用户需求;3。行为需求。
这三类需求的粒度从粗到细,最终都是为了满足业务需求(目标远景),这三类需求中,业务需求和用户需求是相对稳定的,
而行为需求是最容易发生变化的。
以上两种需求的分法,实际上是在陈述这样一件事实:即软件是用来解决什么问题,为了解决问题,软件应该具备什么样的功能。
客户需要什么(从外部描述需求);软件提供什么样的功能去满足。
再说几个在做需求过程中常见的一些不容易区分的概念:
业务用例:描述用户需求(外部),即描述职责及任务;
系统用例:描述功能需求(内部),即描述系统功能,及操作步骤。
通过系统用例和用例规约,可以把业务需求和功能性需求有机的联系起来,实现需求的可跟踪性。
目标->职责任务->系统功能->操作步骤
业务需求->用户需求->功能需求->行为需求
相关文章推荐
- 2.1什么是软件需求,什么是功能需求
- 什么是软件需求,软件需求的分类
- 什么是软件需求
- 什么是软件需求,什么是功能需求?——论需求的三个层次和三个方面(2)
- 什么是软件需求
- 业务、架构、技术,我们应该关注什么 Java和.Net的优势劣势简单看法 市场经济决定,商业之道即是软件之道,市场的需求决定着软件技术的发展 利益决定着选择应用新技术
- 什么是软件需求?
- 什么是软件需求?软件需求是什么意思?
- 需求管理之软件需求分析关注什么
- 上帝的需求是什么?--谈软件的需求设计
- 软件需求分析—做什么
- 软件需求分析关注什么
- 什么是软件需求分析
- 什么是软件需求
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
- 软件需求评审会到底做什么?
- 什么是软件需求
- 软件测试过程中如何区分什么是功能bug,什么是需求bug,什么是设计bug?
- 什么是软件需求?什么是功能需求?
- 什么是软件需求?