软件需求分析-复习题2 下载本文

内容发布更新时间 : 2024/6/26 13:32:54星期一 下面是文章的全部内容请认真阅读。

简答题

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语言等。 自然语言具有复杂的规则和多样化的表达方式,所以它的表达能力最为强大。而且自然语言是属于普通人的语言,每个人都熟知其规则、表达方式和特点,所以非常利于用户的理解。但同时自然语言也具有松散、模糊、歧义、凌乱等不好的特性。这使得它无法被机器所