怎么写需求分析

 

一、需求分析的目的

需求分析是一项软件工程的活动,其目的包括以下几点:

完整地获取用户要求,清楚地理解索要解决的问题;

描述清楚软件的功能和性能;

指明软件与其他系统元素的接口;

建立软件必须满足的约束(如运行环境等)。


二、需求分析的任务

需求分析是研究用户要求,以得到目标系统的需求定义的过程。需求分析的基本任务是软件开发人员和用户一起完全弄清用户对系统的确切要求。具体步骤包括下面几点。

1. 需求获取

调查研究的方法有访谈、分发调查表或开会等。

(1)访谈 :正式访谈和非正式访谈 。

(2)分发调查表:调查表中列出需要的内容,让用户书面回答问题。

(3)开会 :可采用开会-讨论-确认的方法进行调查。


2. 需求建模

需求分析建立起来的模型为日后的软件设计提供了可被翻译成数据、体系结构、接口和处理过程设计的模型。

 

2.1软件需求的层次

1).业务需求(business requirement)反映了组织机构或客户对系统、产品高层次的目标要求,它们在项目视图与范围文档中予以说明。

2).用户需求(user requirement) 文档描述了用户使用产品必须要完成的任务,这在使用实例(usecase)文档或方案脚本说明中予以说明。

3).功能需求(functional requirement) 定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。

4). 非功能需求(non-functional requirement) 作为功能需求的补充,软件需求规格说明还应包括非功能需求,它描述了系统展现给用户的行为和执行的操作等。它包括产品必须遵从的标准、规范和合约;外部界面的具体细节;性能要求;设计或实现的约束条件及质量属性。所谓约束是指对开发人员在软件产品设计和构造上的限制。质量属性是通过多种角度对产品的特点进行描述,从而反映产品功能。多角度描述产品对用户和开发人员都极为重要。常见的非功能需求如表所示。

产品要求

性能要求

实时性;响应时间、处理时间、包传送时间等时间要求;资源配置要求;精确度、速度;处理量等要求

可靠性

有效性;数据完整性

安全保密

安全性;保密性

运行要求

使用频度、运行期限;控制方式;对操作员要求

物理要求

系统规模

过程要求

开发类型

实用性开发或试验性开发

项目估算

开发工作量估算

开发方法

质量控制标准;里程表和评审;验收标准

优先顺序

权衡各种质量目标要求,排定优先实现次序

可维护性

可理解性、可测试性、可移植性、可修改性

 

       下面以一个字处理程序为例来说明需求的不同种类。业务需求可能是:“用户能有效地纠正文档中的拼写错误”,该产品的包装盒封面上可能会标明这是个满足业务需求的拼写检查器。而对应的用户需求可能是“找出文档中的拼写错误并通过一个提供的替换项列表来供选择替换拼错的词”。同时,该拼写检查器还有许多功能需求,如找到并高亮度提示错词的操作;显示提供替换词的对话框以及实现整个文档范围的替换。

 

2.2常用分析方法

(1) SA(Structure Analysis):面向数据流的结构化分析方法。

(2) JSD(Jackson System Development):面向数据结构的Jackson方法。

(3) DSSD(Data Structure System Development):面向数据结构的结构化数据系统开发方法。

(4) OOA(Object-Oriented Analysis):面向对象的分析方法。

 

2.3建立系统的逻辑模型(结构化分析方法)

功能模型:DFD数据流图

描述数据在系统中如何被传送或者变换,以及描述如何对数据进行变换的功能(子功能)。

数据模型:ERD实体-关系图

描述数据对象及数据对象之间的关系。

行为模型:STD状态-迁移图

描述系统对外部事件如何响应,如何动作以及系统的各种行为模式和不同状态的转换。

 

结构化分析遵循的三条基本原则:分解、抽象、映射

三个主要目标:

描述用户需要

建立创建软件设计的基础

定义软件完成后可被确认的一组需求


3. 需求规格说明书

       需求规格说明书可以简单理解为由可行性分析、需求建模等内容组成,它为开发人员和用户提供软件开发完成时质量评价的依据。


4. 需求评审

需求分析研究的对象是用户的需求,必须全面理解用户的各项要求,准确表达被接受的用户要求。只有经过确切描述的软件需求才能成为软件设计的基础。

在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。

由系统分析员和用户一起对需求分析结果进行严格的审查,确保软件需求的一致性,完整性和正确性。审查内容有:实体-关系图、详细的数据流图、数据字典、状态转换图和一些简明的算法描述等。


三.编写需求分析报告的要求

a.无歧义性

对最终产品的每一个特性用某一术语描述;若某一术语在某一特殊的行文中使用时具有多种含义,那么应对该术语的每种含义做出解释并指出其适用场合。

b.完整性

需求分析报告应该包括全部有意义的需求,无论是关系到功能的、性能的、设计约束的、还是关系到外部接口方面的需求;对所有可能出现的输入数据的响应予以定义,要对合法和非合法的输入值的响应做出规定;填写全部插图、表、图示标记等;定义全部术语和度量单位。

c.可验证性

需求分析报告描述的每一个需求应是可以验证的。可以通过一个有限处理过程来检查软件产品是否满足需求。

d.一致性

在需求分析报告中的各个需求的描述不能互相矛盾。

e.可修改性

需求分析报告应具有一个有条不紊、易于使用的内容组织;没有冗余,即同一需求不能在需求分析报告中出现多次。

f.可追踪性

每一个需求的源流必须清晰,在进一步产生和改变文件编制时,可以方便地引证每一个需求。

g.运行和维护阶段的可使用性

需求分析报告必须满足运行和维护阶段的需要。在需求分析报告要写明功能的来源和目的。

 

  • 19
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
教会你如何需求分析报告~~·需求分析说明书 1 、系统功能结构图( HIPO 图) (在该功能结构图中选一个子系统进行逐层分解) 2 、系统功能说明 (对以上选中的子系统进行功能描述) 3 、现有系统的业务流程图及说明 (对以上选中的子系统绘制手工系统或旧的计算机系统的业务流程图并进行简单的功能说明) 4 、新系统的业务流程图及说明 (对以上选中的子系统绘制计算机系统下的业务流程图(重组后的)并进行简单的功能说明) 采购管理系统分析 采购是企业 物资供应部门 按已确定的物资供应计划,通过市场采购、加工订制等各种渠道,取得企业 生产经营活动所需要的各种物资的经济活动,采购业务的状况会影响到企业的整体运营状况。 通常情况,企业的采购业务通常由 采购部 来执行—— 制造部 根据销售定单制定生产计划,企业生产 制造系统根据 生产技术部 提供的有关材料定额资料以及 制造部 提供的生产计划,考虑现有库存情况, 生成采购计划。 采购部 根据采购计划分别进行国内采购和国外采购。 采购管理系统 主要进行 采购订单 、 采购入库单 和 采购的管理 。采购业务发生后, 采购部 将 采购录入 采购管理系统 ,采购物料入库时, 采购部 储运科根据验收单在 库存管理系统 中录入入 库单; 财务部 根据采购和物料验收单据进行采购结算,系统自动生成相关凭证,登记相关库存帐。 课程设计应该递交哪些文档? 课程设计应提交一份课程设计报告,课程设计报告包括以下几个方面的内容:①封面、②目录、③ 系统可行性分析报告、④系统分析报告、⑤课程设计小组成员清单。 如何撰课程设计报告? 课程设计报告包括两个方面的内容,一个是系统可行性分析报告,一个是系统分析报告。可行性分 析报告简单的来讲我们要求大家两个方面的内容,首先是对企业目前的状况进行描述,指出企业需要用 计算机来进行管理(即需要信息系统),然后从经济上、技术上、管理上阐述企业是否具备了相应的条件 ,最后得出系统是否可行的结论。我们的课程设计是基于系统可行来进行的。用文字把以上内容描述清楚 就是我们的可行性分析报告。
需求分析文档和设计文档是软件开发过程中非常重要的文档,它们用于明确软件系统的需求和设计细节。下面是一些关于如何编需求分析文档和设计文档的一般指导: 需求分析文档: 1. 引言:对项目进行简要介绍,包括项目的目标、范围和读者等信息。 2. 需求概述:对项目需求的总体概述,包括主要功能、非功能需求和用户角色等。 3. 详细需求描述:逐个详细描述各个功能需求,包括输入输出、处理逻辑、约束条件等。 4. 用例描述:使用用例图或用例表格来描述不同用户角色下的典型用户行为和系统响应。 5. 数据模型:描述系统中的数据实体、关系和属性,可以使用数据流图、ER图等工具。 6. 系统界面:描述系统的用户界面,包括界面布局、操作流程、界面元素等。 7. 约束条件:列出对系统设计和实现有限制的约束条件,如硬件平台、编程语言、性能要求等。 8. 非功能性需求:描述系统的性能、安全、可靠性、可维护性等非功能性要求。 9. 可行性分析:对项目的可行性进行评估,包括技术、经济和操作可行性等方面的分析和结论。 10. 附录:包括词汇表、缩词定义、参考文献等补充信息。 设计文档: 1. 引言:对设计文档的目的、范围和读者进行简要介绍。 2. 系统架构:描述系统的整体结构,包括模块划分、组件关系和接口定义等。 3. 模块设计:对系统中的各个模块进行详细设计,包括模块功能、接口定义和数据结构等。 4. 数据库设计:描述数据库的结构和关系,包括表结构、索引、约束和查询语句等。 5. 界面设计:详细描述系统的用户界面,包括界面布局、交互流程和界面元素等。 6. 算法设计:对系统中需要用到的算法进行详细说明,包括算法原理、流程图和伪代码等。 7. 安全设计:描述系统的安全性措施,包括身份验证、访问控制和数据加密等。 8. 性能设计:对系统的性能进行分析和优化设计,包括并发性、响应时间和资源消耗等方面。 9. 测试计划:描述系统的测试策略和测试用例,包括功能测试、性能测试和安全测试等。 10. 部署计划:描述系统的部署方案和发布计划,包括硬件需求、软件安装和配置过程等。 11. 附录:包括词汇表、缩词定义、参考文献、图表和代码清单等补充信息。 需要根据具体项目的特点和要求来编需求分析文档和设计文档,并且可以根据团队的实际情况进行调整和补充。这些文档应该清晰、准确地描述系统的需求和设计,以便开发团队能够理解和实施。 希望以上信息能够对你编需求分析文档和设计文档有所帮助。如果有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值