曾经有项目组拿着用户编写的原始需求就开始开发,随后状况不断,一次令人崩溃的研发过程。拿着用户编写的原始需求,编写我们自己的需求规格说明书,之所以重要,就在于用户编写的原始需求,是脱离了技术实现,编写的一份十分理想的业务需求。理想与现实总是有差距,我们之所以要编写自己的需求规格说明书,就是要本着实事求是、切实可行的态度,去描述用户的业务需求。那些不可行的需求被摒弃,或者换成更加可行的解决方案。这就是需求规格说明书的重要作用。
从理论上讲,需求规格说明书(Requirement Specification)分为用户需求规格说明书和产品需求规格说明书。用户需求规格说明书是站在用户角度描述的系统业务需求,是用于与用户签字确认业务需求;产品需求规格说明书是站在开发人员角度描述的系统业务需求,是指导开发人员完成设计与开发的技术性文档。但是,我认为,用户需求规格说明书与产品需求规格说明书的差别并不大。领域驱动设计所提倡的就是要让用户、需求分析员、开发人员站在一个平台,使用统一的语言(一种混合语言),来表达大家都清楚明白的概念。从这个角度将,需求规格说明书就应当是一个,不区分用户需求规格说明书和产品需求规格说明书。
那么需求规格说明书怎么写呢?不同的公司、不同的人、不同的项目,特别是在需求分析中采用不同的方法,写出来的需求规格说明书格式都是不一样的。在这里,我给大家一个,采用RUP统一建模的方式分析需求,编写需求规格说明书的模板,供大家参考。
1.引言
1.1 编写目的
如题,描述你编写这篇文档的目的和作用。但最关键的是,详细说明哪些人可以使用这篇文档,做什么。需求规格说明书是用来做什么的?毫无疑问,首先供用户与开发公司确认软件开发的业务需求、功能范围。其次呢,当然就是指导设计与开发人员设计开发系统。当然,还包括测试人员设计测试,技服人员编写用户手册,以及其它相关人员熟悉系统。描述这些,可以帮助读者确定,阅读这篇文档是否可以从中获得帮助。
1.2 业务背景
描述业务背景,是为了读者了解与该文档相关的人与事。你可以罗列与文档相关的各种事件,也可以描写与项目相关的企业现状、问题分析与解决思路,以及触发开发该项目的大背景、政策法规,等等。
1.3 项目目标(或任务概述)
就是项目能为用户带来什么利益,解决用户什么问题,或者说怎样才算项目成功。前面提到过,这部分对项目成功作用巨大。
1.4 参考资料
参考资料的名称、作者、版本、编写日期。
1.5 名词定义
没啥可说的,就是文档中可能使用的各种术语或名词的定义与约定,大家可以根据需要删减。
2.整体概述
这部分是对系统整体框架性地进行描述。
2.1 整体流程分析
绘制的整体行动图,及其对它的说明。
2.2 整体用例分析
绘制的整体用例图,以及对每个用例的用例说明。如果项目比较大,存在多个子系统,可以将用例图改为构件图,详细描述每个子系统及其相互的接口调用。
2.3 角色分析
一个用例图,描述系统中所有的角色及其相互关系。在随后的说明中,详细说明每个角色的定义及其作用。
这部分还可以根据项目需要编写其它的内容,如部署方案、网络设备、功能结构、软件架构、关键点难点技术方案,等等。
3.功能需求
3.1 功能模块(子系统)
一个一个描述系统中的每个功能模块(或子系统),即整体用例分析中的每个用例。这部分是需求规格说明书最主要的部分。
3.1.1 用例图
绘制该模块的用例图(详见
《功能角色分析与用例图》)。
3.1.2 用例说明
对用例图中的每个用例编写用例说明(详见
《用例说明》)。
3.1.3 领域模型
为用例绘制领域模型,并编写领域模型说明,对每个实体进行说明。对实体的说明包括对实体的定义、属性说明、行为说明、实体关系说明等等。如果实体间关系复杂,还要使用对象图说明实体关系的所有情况(如
《领域驱动设计》中的描述)。
4.非功能需求
这里描述的是软件对非功能需求的一般要求,即整体设计原则。那些与具体功能相关的非功能需求应该放在用例说明的“非功能需求”部分(详见
《非功能需求》)。
5.接口需求
如果项目涉及到与外部系统的接口,则编写这部分需求。
5.1 接口方案
详细描述采用什么体系结构与外部系统的接口。
5.2 接口定义
接口的中文名、英文名、功能描述、参数、返回值、使用者、使用频率,等等。
我们应当怎样做需求分析 我们应当怎样做需求调研:初识 我们应当怎样做需求调研:拜访 我们应当怎样做需求调研:研讨会 我们应当怎样做需求调研:需求研讨 我们应当怎样做需求调研:迭代 我们应当怎样做需求调研:需求捕获(上) 我们应当怎样做需求调研:需求捕获(下) 我们应当怎样做需求分析:功能角色分析与用例图 我们应当怎样做需求分析:业务流程分析(上) 我们应当怎样做需求分析:业务流程分析(下) 我们应当怎样做需求分析:用例说明 我们应当怎样做需求分析:查询报表分析 我们应当怎样做需求分析:子用例与扩展用例 我们应当怎样做需求分析:行动图和状态图 我们应当怎样做需求分析:业务领域分析 我们应当怎样做需求分析:原文分析法 我们应当怎样做需求分析:领域驱动设计 我们应当怎样做需求分析:非功能需求 我们应当怎样做需求确认:需求列表 我们应当怎样做需求确认:一个需求列表的实例 我们应当怎样做需求确认:快速原型法 我们应当怎样做需求确认:需求规格说明书 我们应当怎样做需求确认:评审与签字确认会 (续)
相关推荐
需求分析
随着信息技术的不断发展,我们现在已经步入了一个信息化的时代,而信息时代的代表便是网络技术的日渐成熟,现在网络已经和我们的生活紧密的联系起来了,我们不敢想象没有网络我们的生活会像怎么样,也许就像食物中...
例如,新员工入职培训,对于这节课程的需求分析我们之前要了解组织需要新员工知道什么,遵守什么,应该去做什么等。通过分析我们得出课程的内容,所以一般入职培训都包括企业的发展、愿景、使命、价值观、组织结构、...
让我们先来看一个需求变更的典型案例:Steven刚出任项目经理,并承接了一个中型软件项目。公司再三叮咛他一定要尊重客户,充分满足客户需求。项目开始比较顺利,但进入到后期,客户频繁的需求变更带来很多额外工作。...
我们今天的话题是用DesignThinking创新框架来深度挖掘用户的人性需求,两个模块,一个是人性及人性需求,实际讲的是一个问题,后面会综合做一个分析,第二部分就是怎么样洞察需求。我们今天讲需求,大家感觉到没有,...
而具体每个需求点达到什么程度,怎样做达到这个程度,有什么样的规则,即有哪些功能点,业务逻辑是什么,有哪些约束条件;这些是需求分析阶段要做得事情; 界面原型看什么?;1、看需求;1、看需求;1、看需求;1、看...
CRM项目设计我们理性的上CRM项目,显然首先要有一个详细的...需求收集是一个长期和复杂的过程,但是核心是,需求收集必须要列出CRM能为企业做什么。对于每一个业务领域,问问这个问题:“CRM能够帮助我们解决什么样问题
为了深入了解市场,获取社 会对电子商务方面人才需求的情况,明确电子商务专业的学生培养目标,我们对电子商 务专业人才需求进行了专向调研。现将调研结果总结如下。 (一)技术类人才岗位方向细分: 1、电子商务...
摘要:对于设计师,-挖掘用户需求,具有什么样的价值?-挖掘用户需求,能做些什么事?-挖掘用户需求,保持怎样的心态?-挖掘用户需求,实践中可以怎样做?俺的宗旨,尽量把自己的实践方法介绍给大家,重点在于HOW。...
无论你做的事多伟大、多么令人感动,你是在运作一门生意,不是慈善,盈利模式是面向中老年人产品的巨大问题,这个问题不解决,产品做的好就是先烈,做的不好就跟我们—样,炮灰。IT和互联网的老人领域是片蓝海,这是...
我们在做嵌入式设计的时候,首先我们要知道要干什么、我们要实现什么,也就是要实现的目标。规范来说我们第一件要做的事情就是确定设计任务和设计目标,并提炼规格说明书,作为正式设计指导和验收的标准。 系统需求...
议题概要:我相信大家一定有一些需求,比方说在发生安全事件的时候我们怎么样去快速的做一个事件的评估,怎么样做一个安全事件的快速的响应,怎么掌握安全的态势。实际上我觉得这其实就是我们公司也是关心这样的一些...
在做系统之前,我们必须做的就是需求分析。它主要就是确定开发出来的软件是做什么用的,它可以达到怎样的效果。 在软件的开发过程中,软件需求分析是尤为重要的一个步骤,它的主要工作是描述系统的范围、定义、功能...
在产品需求分析阶段,我们可以通过以下这些途径猎取产品需求: 1〕市场分析与调研,主要是看市场有什么需求,还有就是前沿的技术是什么〔站在做一款产品的角度〕; 2〕客户调研和用户定位,从市场广阔客户那猎取最...
刘宁东:作为一个优秀的服务器销售员,他首先应该是一个产品专家,其次是要有贴近 用户层面的渠道销售能力,要知道什么叫客户需求,什么样的解决方案适合某一类型的 客户,等等。不仅需要知道这些问题,他还需要...
2、技术方案(技术、要求、能力可行性),我们要对我们所调查的事项进行一下分析, 看看产品的市场需求量是不是很大、值不值得我们生产,产品的销售途径怎么样以及我 们对产品的技术可行性,并且评估市场的规模、...
2、技术方案(技术、要求、能力可行性),我们要对我们所调查的事项进行一下分析, 看看产品的市场需求量是不是很大、值不值得我们生产,产品的销售途径怎么样以及我 们对产品的技术可行性,并且评估市场的规模、...