软件需求基础

5-软件需求基础

需求工程概念:
所有需求处理活动的总和。它收集信息、分析问题、整合观点、记录需求并验证其正确性,最终描述出软件被应⽤后与其环境互动形成的期望效应

需求工程的三个任务:

①说明软件系统被应用的环境及其目标(在哪里做什么),说明达成这些目标的软件功能(以什么做),也即要同时说明软件需要“做什么”和“为什么”需要做。(环境,目标,功能)

②需求工程必须将目标和功能反映到软件系统当中,映射为可行的软件行为,并对其进行准确的规格说明。(反映,规格说明)

③现实世界是不断变化的世界,因此需求工程还需要处理目标和功能随着时间演化的变动情况。(迎接变化)

需求工程的活动

①(“需求特性”)需求开发:

需求获取:从人、文档或者环境中获取需求的过程。

需求分析:通过建模分析,达到开发者与用户对需求的共同理解,检查需求中存在的各种缺陷,并加以修改。

需求规格说明:将获取的需求编写成文档,从软件产品的角度以系统级需求列表的方式描述软件系统解决方案。

需求验证(验证方法有:同级评审,原型,模型):验证文档中定义的需求的正确性和准确性。

②(“工程特性”)需求管理:保证需求作用的持续、稳定和有效发挥以及进行变更控制。

需求获取的方法

面谈:需求工程师与用户面对面交谈

集体获取方法:多个用户集中在一起讨论,发现需求

头脑风暴:特殊的面谈方式,鼓励自由思考,目的是发现潜在需求

原型:建立一个有形的制品来增进用户与需求工程师的交流

需求定义

1)用户的一种期望,用户为了解决问题或达到某些目标所需要的条件或能力。

2)系统或系统部件为了满足合同、标准、规范或其他正式文档所规定的要求而需要具备的条件或能力。

3)对 1) 或 2)中的一个条件或一种能力的一种文档化表述。

需求的三个层次

①业务需求: 抽象层次最高的需求,是系统建立的战略出发点,描述了组织为什么要开发系统,

描述:系统提供…服务(图书管理系统应该提供查询,借书,还书等服务)

②用户需求:用户对系统所能完成的具体任务的期望,描述了系统能够帮助用户做些什么

描述:系统应该允许…做…(系统应该允许图书管理员查看书库存和借书人信息)

③系统级需求:用户对系统行为的期望,每个系统级需求反映了一次外界与系统的交互行为,或者系统的一个实现细节,描述了开发人员需要实现什么

描述:当…,系统应该…(当管理员输入借书编号时,应该提供借书人信息和其结束记录)

需求三个层次的联系

都是用户的一种期望,用户为了解决问题或达到某些目标所需的条件或能力。

业务需求指导用户需求的获取、而用户需求又需要进行分析转化为系统级需求进而用于系统开发。

image-20220801000436859

需求、问题域、规格说明三者的区别与联系:

区别

①需求:需求是用户的一种期望。源于现实又高于现实,需求是多变和可调整的,项目可以依据实际情况调整需求的实现程度。

②问题域:是现实世界运行规律的一种反映,是需求的产生地也是解决地。最终的软件产品要在现实中部署,它能够部分影响问题域,但不能任意改变现实。

③规格说明:从软件产品的角度以系统级需求列表的方式描述软件系统解决方案。不是需求但实现需求,不是问题域但需要与问题域互动。

联系:都是是进行需求开发的三个重要内容。

①如果忽视需求,则软件系统只是单纯模拟现实而不是改变现实,丢失了软件产品的价值。

②如忽视问题域,则软件系统脱离现实,无法得到应用。

③规格说明本质上是对需求以及问题域的吸纳。

需求谱系

image-20220801112003126

软件需求的分类:

①功能需求:和系统主要工作相关的需求,主要表现为系统和环境之间的交互(需求的三个层次是功能性需求的三个层次)

②非功能需求:描述了一个系统的性能特点,包括性能需求,质量属性,对外接口和约束等,其中质量属性是非功能需求中最大的需求

非功能需求:

​ ①性能需求:系统限定的约束下,完成其制定功能的程度,例如速度,容量,吞吐量,负载,实时性

​ ②质量属性:隐式的需求,分为可靠性,可用性,安全性,可维护性,可移植性,易用性

​ ③对外接口:指系统和环境中其他系统之间需要建立的接口,包括用户界面,标题的形式,软硬件接口,网络通信接口,需要说明接口的用途,输入输出,数据格式,命令格式,异常处理要求

​ ④约束:进行系统构造时需要遵守的约定,编程语言,硬件设施。(开发运行环境,问题域内相关标准(法律等),商业规则)

③数据需求:功能需求的补充,常用于数据库、文件等存储数据的描述。

质量属性

①可用性:软件投入使用时的可操作性和可访问程度

②可靠性:软件产品维持规定性能水平的能力。

③安全性:软件安全保护机制不受非法入侵的能力

④可维护性:修正缺陷,改进功能或适应环境而修改软件的容易程度。

⑤可移植性:从一种软件或环境环境转移到另一种环境的容易程度。

⑥易用性:用户使用软件所花费的努力及对其使用的评价。(易学性,易记性,效率,主观满意度,出错率)


软件需求基础
http://example.com/2022/06/15/计算机基础/软件工程/5-软件需求基础/
作者
PALE13
发布于
2022年6月15日
许可协议