文档视界 最新最全的文档下载
当前位置:文档视界 › 软件需求分析-复习题

软件需求分析-复习题

软件需求分析-复习题
软件需求分析-复习题

简答题

1.需求分析的目的是什么难点在哪里需求分析为什么特别重要

需求分析的目的:需求分析主要用于获取用户的具体需求,通过对实际需求的获取、分析、文档化和验证等需求分析过程,为进一步的设计和实现提供依据:

(1) 需求分类。将软件功能、性能、可靠性等相关需求进行分类、逐一细化。

(2) 面向用户获取并分析需求。软件研发其他阶段都是面向技术的,只有需求分析阶段是面向用户的,深入调研获取并分析软件的功能、性能、可靠性等,也可从系统和用户需求中推导出软件具体需求,并检查需求定义准确性,是否存在二义性。

(3) 检查和解决不同需求间的矛盾。尽量达到均衡和优化。

(4) 确定软件的边界,以及软件与环境的相互作用方式等。如应用及运行边界和环境。

(5) 对需求文档化并进行最后验证与确认。。

难点:主要体现在以下5个方面:

(1)问题确定难。主要原因一是应用领域的复杂性及业务变化,难以具体确定;二是用户需求所涉及的多因素引起的,如运行环境和系统功能、性能、可靠性和接口等。

(2)需求动态性。软件的需求在整个软件生存周期,常会随着时间和业务而有所变化。有的用户需求经常变化,一些企业可能正处在体制改革与企业重组的变动期和成长期,其企业需求不成熟、不稳定和不规范,致使需求具有动态性。

(3)交流共识难。需求分析涉及的人事物及相关因素多,与用户、业务专家、需求工程师和项目管理员等进行交流时,不同的背景知识、角色和角度等,使交流共识较难。

(4)完备一致难。由于不同人员对系统的要求认识不尽相同,所以对问题的表述不够准确,各方面的需求还可能存在着矛盾。难以消除矛盾,形成完备和一致的定义。

(5)深入完善难。需求理解对不全面准确的分析,客户环境和业务流程的改变,市场趋势的变化等,也会随着分析、设计和实现而不断深入完善,可能在最后重新修订软件需求。分析人员应认识到需求变化的必然性,并采取措施减少需求变更对软件的影响。对必要的变更需求要经过认真评审、跟踪和比较分析后才能实施。

需求分析之所以特别重要是因为1)许多软件开发失败的原因都归结为需求分析没有做好。2)需求分析输出的文档“用户需求报告”是客户、开发者、管理者三方遵守的基线,是产品验收的依据。3)需求分析要占整个软件开发时间或工作量的30%左右。4)需求分析出现错误会在后续的开发过程中发散式传播。

2.需求分析阶段的基本任务是什么

答:需求分析阶段的基本任务是:

(1.问题识别:

双方对问题的综合需求:a.功能需求b.性能需求c.环境需求d.用户界面需求.

(2.分析与综合,导出软件的逻辑模型.

(3.编写文档

3需求规格说明书由哪些部分组成各部分之间的关系是什么

答:软件需求说明书一般包括如下内容:

1)引言部分编写目的;项目背景 (应包括:a.项目的委托单位、开发单位和主管部门;b.该软件系统与其他系统的关系。) ;定义;(列出文档中所用到的专门术语的定义和缩写词的原文。)参考资料。

2)任务概述目标;运行环境;条件与限制。

3)数据描述静态数据;动态数据 (包括输入数据和输出数据) ;数据库描述 (给出使用数据库的名称和类型) ;数据词典;数据采集。

4)功能要求功能划分;功能描述。

5)性能需求数据精确度;时间特性(如响应时间、更新处理时间、数据转换与传输时间、运行时间等);适应性(在操作方式、运行环境、与其他软件的接口以及开发计划等发生变化时,应具有的适应能力。)

6)运行需求用户界面(如屏幕格式、报表格式、菜单格式、输入输出时间等);硬件接口;软件接口;故障处理。

7)其他要求如可使用性、安全保密、可维护性、可移植性等。

8)附录

4、假设现在由你来负责所在学校选课系统的需求工作,现在需要你来安排一次群体面谈,你打算怎么做

答:(1)目标和内容的确定(1分)

(2)场地的确定(1分);解释场地的条件:提供各种开会需要材料,会议室、道具、餐饮等(1分)

(3)时间的确定(1分);解释时间要求:全职的2~4天;(1分)

(4)人员的确定(1分);解释多涉众的共同参与(1分)

(5)会议准备(1分);准备会议讨论材料(1分);议程(1分)

5如何有效的处理需求的变化是很多现代软件开发技术的主题,请从需求变更的原因、一般过程以及控制对策等方面谈谈你的看法。

答:

(1)认识到需求变化是不可避免的;1分

给出需求变化不可避免原因的解释;2分

包括:问题发生了改变。环境发生了改变。需求基线存在缺陷。

(2)明确需求的变化是需要控制的;1分

能够描述需求基线的概念;1分

在响应需求变更的过程中,项目团队还要及时准确的维护需求基线,审计变更记录:要更新需求基线,保证项目涉众可以访问到最新的需求;

能够描述需求变更的过程;2分

修改者变更控制委

员会

验证者

评估者

接收者提请者提请需求变更

接受变更请求

: 需求变更表单变更评估

变更决策

执行变更

验证变更

决定变更

拒绝变更

(3)明确需求变化需要特殊处理的;1分 能够大概写出特殊处理情况的;2分

包括:

推迟产品的交付时间。

要求增派人手。当然,这个做法只有在有限的情况下有效,因为很多情况下,增加人手只会使得项目更加落后。

要求员工加班工作。一段时期的加班会耗尽员工的储备精力,因此加班不能是长期的,一般以30天为限,否则会产生很多消极影响。因此,这个做法也只能适度的使用。

推迟或者去除尚未实现的优先级较低的需求。

容许产品质量的降低。当然,这个做法是最不提倡的,因为低质量的产品会伤害整个开发团队。所以,除非其他的做法都不能达到效果,否则不要使用这种做法。

五、应用题(共24分, 每小题12分)

1.进行需求文档写作时主要有三种手段:形式化语言、非形式化语言和半形式化语言,请:(1)说明这三种手段的不同及其各自的优缺点,以表达“每本书至少有一个作者”为例;(2)说明在实践当中,应该怎样综合运用这三种手段。

答:

信息的描述语言可以分为三种类别: 非形式化语言,即自然语言。 半形式化语言,比自然语言具有更丰富的语义和更严格的语法同时又没有严格到可以完全基于数学方法的语言,例如ER 图、DFD 图、UML 等图形语言。 形式化语言,基于数学的语言,例如VDM 、Z 语言等。 自然语言具有复杂的规则和多样化的表达方式,所以它的表达能力最为强大。而且自然语言是属于普通人的语言,每个人都熟知其规则、表达方式和特点,所以非常利于用户的理解。但同时自然语言也具有松散、模糊、歧义、凌乱等不好的特性。这使得它无法被机器所

理解,它所描述的信息内容也无法准确的映射为机器行为。

形式化语言是基于数学方法的语言,具有数学的表示法特性。使用形式化语言描述的信息内容是可以进行逻辑一致性推导和证明的,所以它能够保证信息的正确性。而且形式化的信息描述能够被机器所理解,它所描述的信息内容可以准确的映射为机器行为。但是形式化描述的信息要求读者具备谓词演算方面的知识,这对普通的用户而言显然要求过高,以至于大多数用户无法读懂以形式化方法描述的信息。形式化方法所能描述的内容也是有限的,具体的有限性因形式化方法的不同而各异。

半形式化语言是介于自然语言和形式化语言之间的描述语言。一方面,半形式化语言具有严格的语法,定义方式比自然语言更加严格,这使得它可以避免自然语言模糊、松散、歧义、凌乱等不好的特性。另一方面,半形式化语言具有丰富的语义,使用规则比形式化语言更复杂和多样,这使得它具有比形式化方法更强的表达能力。但是,丰富的语义使得半形式化语言的语法无法严格到可以等价于数学方法的程度,所以它描述的信息还需要进行额外的处理才能够被机器所理解或者准确的映射为机器行为。同时,严格的语法限制也使得半形式语言的表达能力无法达到自然语言的程度。而且因为具有独特的语法和语义,所以半形式语言对普通用户而言无异于一门全新的语言,它所描述的信息很难被用户所理解。

为了让需求规格说明文档的内容能够同时满足用户和开发人员的需要,需求工程师在实践中更多的会综合使用自然语言、半形式化语言和形式化语言。例如,为半形式化语言和形式化语言添加自然语言的注释,或者分别使用自然语言和半形式化语言(或者形式化语言)重复描述同样的信息,或者使用半形式语言和形式化语言描述概要与抽象信息,然后再用自然语言进行详细信息的描述。

2.下面是一段用例的描述,针对一个汽车保险系统中“将一辆新车加入一个已有保单中”的用例:(1)客户打电话给保险公司,并提供他的保单号,办事员输入这个信息,系统显示基本的保单。然后办事员检查信息,以确保保险费通用及保单有效;(2)客户给出要添加的汽车的牌子、模型、年份和车辆识别代号(VIN),办事员输入这些信息系统验证这些数据是否有效。然后客户选择期望的保额类型,以及每种类型的数量,办事员输入这些信息,系统会逐一记录并根据保单限制验证所请求的数量。输入所有的保额后,系统验证保额总和,包括保单上的其他汽车;(3)最后,客户必须要确认所有的驾驶员,以及他们驾驶汽车的时间比例。如果有一个新驾驶员加入,则调用另一个用例“增加新驾驶员”;(4)整个过程最后,系统更新保单,计算新的保险费,打印新的保单说明,邮寄给保单所有人。请你为其设计:(1)领域模型(要求给出建立过程);(2)活动图。答

(1)领域模型:结果基本正确(4分);给出了过程(2分)

(2)活动图:结果基本正确(8分)

相关文档