A级重点:
需求:
1)用户
为了解决问题或达到某些目标所需要的
条件或能力
2)系统或系统部件为了满足
合同、标准、规范或其他正式文档所规定的要求而需要具备的
条件或能力
3)对 1) 或 2)中的
一个条件或一种能力的一种文档化表述
需求的三个层次:
①
业务需求
:为什么要开发系统,描述
高层级的解决方案
,定义系统
特性
。确定系统
边界
商业目标:系统使用几个月后,销售额提高20%
②
用户需求
:
具体任务
的期望。特点:模糊。需要充分的问题域知识
③
系统级需求
:
系统行为
的期望。每个系统级需求反映了一次外界与系统的交互行为。一系列的系统行为联系在一起可以帮助用户完成任务,满足业务需求
需求谱系:
软件需求的分类:
①
功能需求
②
非功能需求
非功能需求:
①
性能需求:速度,容量,吞吐量,负载,实时性
②
质量需求:
可靠性:在规定的时间和条件下,系统执行功能的能力
CS通信时,如果网络故障,系统不能发生故障
可用性:软件在投入使用时,可操作可访问的程度,能实现指定系统功能的概率
QA2:系统的可用性要达到98%
安全性:软件阻止对其程序和数据进行未授权访问的能力
QA3:收银员只能查看,不能修改会员信息
可维护性:为维护软件而修改软件系统或部件的容易程度
系统加新的特价属性,要在2个人月内完成
可移植性
系统要能在1个人月内更换操作系统
③
对外接口:用户界面,硬件,软件,网络通信
④
约束:进行系统构造时需要遵守的约定。环境,标准,商业规则
系统要用Java语言进行开发
数据需求:功能需求的补充
用户需求获取方法:面谈,集体获取方法,头脑风暴,原型
B级:
需求工程:
就是所有
需求处理活动的总和
,它
收集
信息、
分析
问题、
整合
观点、
记录
需求并
验证
其正确性,描述出软件被应用后与环境互动形成的
期望效应
。
三个主要任务:
①需求工程必须说明软件系统将被应用的应用环境及其目标(在哪里做什么),说明用来达成这些目标的
软件功能
(以什么做),也即要同时说明软件需要
“做什么”
和
“为什么”
需要做。(是什么,为什么,怎么样(具体),在哪里)
②
规格说明
。需求工程必须将目标和功能反映到软件系统当中,映射为可行的软件行为,并对软件行为进行准确的
规格说明
。
③迎接
变化
。现实世界是不断变化的世界,因此需求工程还需要妥善处理目标和功能随着时间演化的变动情况。
需求工程活动
:
需求开发
、
需求管理
需求开发
:需求
获取
,需求
分析
,需求
规格说明
,需求
验证
C级:
需求工程
常见困难:
用户和开发人员的背景不同,立场不同。
普通用户缺乏概括性、综合性的表述能力。
用户存在认知困境。用户越俎代庖。缺乏用户参与。
需求分析的目的:保持需求的一致性和完整性
需求规格说明的目的:将完整、一致的软件解决方案以文档的方式固定下来。描述的结果文档是软件需求规格说明文档。
需求验证的目的是保证软件需求规格说明文档的质量,正确地反映用户的真实意图
需求验证的标准:文档内每条需求都正确、准确的反映了用户的意图;文档记录的需求集在整体上具有完整性和一致性;文档的组织方式和需求的书写方式具有可读性和可修改性。
验证的方法:同级评审,原型,模拟
需求获取的两个方面:目标分析,用户需求获取
目标分析:“问题”,“利益关系人”
需求分析的主要工作:(业务需求转变为系统需求)
①通过
建模
来整合各种信息,以使得人们更好的理解问题。
②为问题定义出
⼀
一个需求集合,这个集合能够为问题界定一个有效的
解决方案
。
③
检查
需求当中存在的错误、遗漏、不
⼀
一致等各种缺陷,并加以修正。
需求分析的任务:
①边界分析
②需求建模
③发挥创造力
需求规格说明:在系统用户之间交流需求信息。质量要求是简洁、精确、一致和易于理解。
需求管理:
①保证需求作用的持续、稳定和有效发挥
②变更控制
建模的手段:抽象和分解