软件需求工程综述

1. 需求工程的任务与目标;
需求工程任务总括:清楚的理解应户的需求,完整准确地获取作用户的需求,并用《软件需求规格说明书》规范准确的表达用户的需求。
一:确定对系统的综合要求

  1. 功能需求:这方面的需求指定系统必须提供的服务。通过需求分析应该划分出系统必须完成的所有功能。

  2. 性能需求:性能需求指定系统必须满足的定时约束或容量约束,通常包括速度(响应时间)、信息量速率、主存容量、磁盘容量、安全性等方面的需求。

  3. 可靠性和可用性需求:可靠性需求定量地指定系统的可靠性。
    可用性与可靠性密切相关,它量化了用户可以使用系统的程度。

  4. 出错处理需求:
    这类需求说明系统对环境错误应该怎样响应。例如,如果它接收到从另一个系统发来的违反协议格式的消息,应该做什么?注意,上述这类错误并不是由该应用系统本身造成的。

  5. 接口需求:接口需求描述应用系统与它的环境通信的格式。常见的接口需求有:用户接口需求;硬件接口需求;软件接口需求;通信接口需求。

  6. 约束:设计约束或实现约束描述在设计或实现应用系统时应遵守的限制条件。在需求分析阶段提出这类需求,并不是要取代设计(或实现)过程,只是说明用户或环境强加给项目的限制条件。常见的约束有:精度;工具和语言约束;设计约束;应该使用的标准;应该使用的硬件平台。
    二:分析系统的数据要求

  7. 逆向需求:逆向需求说明软件系统不应该做什么。理论上有无限多个逆向需求,我们应该仅选取能澄清真实需求且可消除可能发生的误解的那些逆向需求。

  8. 将来可能提出的要求:应该明确地列出那些虽然不属于当前系统开发范畴,但是据分析将来很可能会提出来的要求。
    三。 导出系统的逻辑模型
    综合上述两项分析的结果可以导出系统的详细的逻辑模型,通常用数据流图、实体-联系图、状态转换图、数据字典和主要的处理算法描述这个逻辑模型。
    四。 修正系统开发计划
    根据在分析过程中获得的对系统的更深入更具体的了解,可以比较准确地估计系统的成本和进度,修正以前制定的开发计划。
    2. 软件需求的层次与内涵;
    层次
    一:业务需求(Business Requirements, BR):

         一般使用前景和范围(Vision and Scope)文档来记录业务需求,有时也被称作项目章程或市场需求(Project Charter或Market Requirement)文档。BR的核心部分为业务建模(System Modeling),对当前企业当前业务流程进行评估,并对新开发系统的业务处理流程进行展望。
    

二:用户需求(User Requirements, UR):
UR描述用户对系统的期望和目标,即用户要系统做什么(What),产生什么业务价值。UR是需求获取阶段的产物,建立在户访谈、调查等基础上,对用户工作场景进行整理,从而建立从用户角度的需求。UR特点:
1)离散性,用户从不同角度、不同层面、不同粒度提出需求;
2)矛盾性,用户处于企业/组织的不同工作岗位,难免局限性和矛盾性。
三:系统需求(System Requirements, SR):
SR是需求分析和建模的产物,由系统分析人员对UR进行分析、提炼、整理,从而生成指导开发的、更准确的软件需求。
SR撰写在“软件需求规格说明书”SRS中,完整了表达了软件项目的预期特征,为接下来的软件设计和测试提供了依据和基础。
内涵:功能需求(Functional Requirements, FR):
FR用于定义软件产品必须提供的功能或服务,以及相关输入、输出、处理逻辑以及异常处理等。在用户需求文档中,FR以一种用户可理解的抽象模式进行表达;而在系统需求中,则FR要给出具体的细节。
注意:系统的功能需求必须保持清晰、准确、完备和一致,并且能够实现业务需求里确定的所有功能目标。
非功能需求:非功能需求(Non-functional Requirements, NFR):
NFR用于定义软件产品提供功能或服务时必须满足的约束条件,包括性能、环境、安全保密等。NFR通常适用于整个软件系统,而非某一个子 系统或模块。
1)产品需求(Product Requirements):
可用性需求,可靠性需求,可移植性需求,性能需求,空间需求
2)机构需求:
环境需求,操作需求,开发需求
3)外部需求
监督需求,伦理需求,立法需求
3. 需求开发的流程、阶段任务与主要的技术;
开发流程:
写需求规约:在需求文档中写用户,系统需求的过程。需求要求具有清晰性,明确性,易读性,完整性,和一致性的特点。
用户需求规约,从用户角度来描述系统功能及非功能的需求。
系统需求公约:是系统一个完备的,详尽的描述,也是系统设计的起点。
还可以利用 顺序图,通信图等进行分析
进行需求获取与分析:
3.4需求获取与分析_
●目标:完整获取系统必须提供的服务,以及需要满足的约束条件。
●实施人:开发人员;客户;用户:业务主管;领域专家等
1.需求发现
2.需求分类和组织
3.需求优先权)排序和协商
4.需求描述
进行项目启动会
需求发现(需求获取,Requirements Elicitation):对系统涉众进行充分沟通与交流,从而发现出用户需求的过程。
主要方法:
用户访谈; 用户调查
其他方法:用户访谈; 参与、观察业务流程;情景串联; 现有产品和竞争对手文档
需求分析:对第一手需求资料进行综合分析,从而得到系统需求的过程
建立用例模型(确定系统边界,寻找参与者 ,确定每个参与者的目标,定义用例)
主要的技术:
利用用例图可以定义系统的功能需求。其中用例之间的关系有:包含关系,扩展关系,
泛化关系
可作为计划的基础。可以估算实现每个用例所需的时间和资源;
可用来捕获功能需求。它们是分析、设计和实现的基础;
可作为软件测试的基础。测试人员可将那些在用例中描述的消息序列以及动作序列作为测试脚本来验证系统的功能;
可作为需求文档的基础。
顺序图(Sequence Diagram) 表示了对象之间传送消息的时间顺序。每一一个类元角色用–条生命线来表示一即用垂直线代表整个交互过程中对象的生命期。生命线之间的箭头连线代表消息。
顺序图可以用来进行一个场景说明,即一个事务的处理过程。
顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或状态机中引起转换的触发事件
使用用例描述是一组相关的成功和失败场景的集合,用来描述参与者怎样利用系统实现其目标。用例描述的方式有摘要和详述。
通信图(Communication Di agram;UML1.X中称为协作图,Co1 laborati on Di agram)对在一次交互中有意义的对象和对象间的链建模。类元描述了一个对象,关联描述了协作关系中的一个链。通信图用几何排列来表示交互作用中的各角色。附在类元上的箭头代表消息,消息顺序用消息箭头处的编号来说明。
通信图的一个用途是表示一个类操作的实现。协作图可以说明类操作中用到的参数和局部变量以及操作中的永久链。当实现一个行为时,消息编号对应了程序中嵌套调用结构和信号传递过程。
4需求规格说明书的用途和主要内容。
主要内容:
1 引言
1.1 编写目的 说明编写这份软件需求说明书的目的,指出预期的读者。
1.2 背景 说明:   a.待开发的软件系统的名称;  b.本项目的任务提出者、开发者、用户及实现该软件的计算中心或计算机网络;  C.该软件系统同其他系统或其他机构的基本的相互来往关系。
1.3 定义 列出本文件中用到的专门术语的定义和外文首字母组词的原词组。
1.4 参考资料 列出用得着的参考资料,如:  a.本项目的经核准的计划任务书或合同、上级机关的批文;  b.属于本项目的其他已发表的文件;  c.本文件中各处引用的文件、资料、包括所要用到的软件开发标准。 列出这些文件资料的标题、文件编号、发表日期和出版单位,说明能够得到这些文件资料的来源。
2 任务概述
2.1目标   叙述该项软件开发的意图、应用目标、作用范围以及其他应向读者说明的有关该软件开发的背景材料。解释被开发软件与其他有关软件之间的关系。如果本软件产品是一项独立的软件,而且全部内容自含,则说明这一点。如果所定义的产品是一个更大的系统的一个组成部分,则应说明本产品与该系统中其他各组成部分之间的关系,为此可使用一张方框图来说明该系统的组成和本产品同其他各部分的联系和接口。|
2.2用户的特点   列出本软件的最终用户的特点,充分说明操作人员、维护人员的教育水平和技术专长,以及本软件的预期使甩频度。这些是软件设计工作的重要约束
2.3假定和约束  列出进行本软件开发工作的假定和约束,例如经费限制、开发期限等。
3 需求规定
3.1对功能的规定  用列表的方式(例如IPO表即输入、处理、输出表的形式),逐项定量和定性地叙述对软件所提出的功能要求,说明输入什么量、经怎样的处理、得到什么输出,说明软件应支持的终端数和应支持的并行操作的用户数。
3.2对性能的规定 3.2.1精度   说明对该软件的输入、输出数据精度的要求,可能包括传输过程中的精度。 3.2.2时间特性要求   说明对于该软件的时间特性要求,如对: a.响应时间;  b.更新处理时间;  c.数据的转换和传送时间;  d.解题时间; 等的要求。 3.2.3灵活性   说明对该软件的灵活性的要求,即当需求发生某些变化时,该软件对这些变化的适应能力,如:  a.操作方式上的变化;  b.运行环境的变化;   c.同其他软件的接口的变化;  d.精度和有效时限的变化;   e.计划的变化或改进。   对于为了提供这些灵活性而进行的专门设计的部分应该加以标明。
3.3输人输出要求  解释各输入输出数据类型,并逐项说明其媒体、格式、数值范围、精度等。对软件的数据输出及必须标明的控制输出量进行解释并举例,包括对硬拷贝报告(正常结果输出、状态输出及异常输出)以及图形或显示报告的描述。
3.4数据管理能力要求   说明需要管理的文卷和记录的个数、表和文卷的大小规模,要按可预见的增长对数据及其分量的存储要求作出估算。 3.5故障处理要求  列出可能的软件、硬件故障以及对各项性能而言所产生的后果和对故障处理的要求。
3.6其他专门要求  如用户单位对安全保密的要求,对使用方便的要求,对可维护性、可补充性、易读性、可靠性、运行环境可转换性的特殊要求等。
4 运行环境规定
4.1设备   列出运行该软件所需要的硬设备。说明其中的新型设备及其专门功能,包括:  a.处理器型号及内存容量;  b.外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量;  c.输入及输出设备的型号和数量,联机或脱机;   d.数据通信设备的型号和数量;  e.功能键及其他专用硬件
4.2支持软件   列出支持软件,包括要用到的操作系统、编译(或汇编)程序、测试支持软件等。
4.3 接口  说明该软件同其他软件之间的接口、数据通信协议等。
4.4控制   说明控制该软件的运行的方法和控制信号,并说明这些控制信号的来源。
主要用途:保证软件开发的质量、需求的完整与可追溯性,编写此文档。通过此文档,以保证业务需求提出者与需求分析人员、开发人员、测试人员及其也相关利益人对需求达成共识。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值