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