《软件需求分析》习题集 - 图文 下载本文

涉众类别列表。如果新列出的涉众类别列表趋于稳定,就可以结束涉众识别过程。如果新列 出的涉众类别列表有了新的发现,就提交新的涉众类别列表,转向第②步。

5、试比较面谈问题组织的三种结构。 答:

(1)金字塔结构

面谈问题的归纳式组织被看做是金字塔形状。使用这种形式时,会见者以很具体的问题 (通常是封闭式的问题)开始,然后逐渐提高问题的开放度,同时允许被会见者用越来越笼 统的答案来回答问题。

在主动的情况下,如果会见者认为被会见者需要对话题进行预热,可以采用金字塔结构, 通过逐步的引导使被会见者进入讨论。

在被动的情况下,如果会见者发现自己事先对事实的确认存在较大偏差或者被会见者看 上去不情愿讨论某个话题,也可以采用金字塔结构。

在某个话题讨论结束的时候,使用金字塔结构的提问顺序也是有用的。 (2)漏斗结构 在这种结构中,会见者使用演绎的方法,以一般的、开放式的问题开始,然后用封闭式 的问题缩小可能的答复。这种面谈结构可看做是漏斗型。

在主动的情况下,漏斗结构为开始一场面谈提供了一种容易而轻松的途径。答复者即使 答错了开放式问题,也不会感到压力。

在被动的情况下,当被会见者对话题有情绪,并且需要自由表达这些情绪的时候,需要 采用漏斗型提问顺序。或者在会见者事先对事实了解不多时,也应该采用漏斗结构的问题组 织方式。

使用漏斗结构的一个好处是:用这种方式组织面谈能得出很多的详细信息,以至于没有 必要使用长序列的封闭式问题。

(3)菱形结构

人们在面谈中常常会将上述两种结构结合起来使用,其中菱形结构就是一种最好的结合 结果。这种结构以一种非常明确的方式开始,然后考察一般问题,最后得出一个非常明确的 结论。

会见者首先提出一些简单的、封闭式的问题,为面谈过程做好铺垫。在面谈的中间阶段, 向被会见者提出明显没有“正确答案”的一般话题的看法。然后,会见者再次限制问题以获 得明确的答复,这样就为会见者和被会见者提供了面谈的结束时机。

菱形结构结合了其他两种结构的长处,但是也有缺点,即所花的时间比其他任何一个都 长。

6、简述软件开发中为何使用原型工具以及使用的好处。 答:

因为原型是在最终系统产生之前的一个局部真实表现,所以原型方法可以让人们在系统 的开发过程中,就能够对一些具体问题进行基于实物的有效沟通,从而帮助人们尽早解决软 件开发过程中存在的各种不确定性。不确定性是指人们已经拥有的知识是不充分的,不足以 预测将来的事件发展,或者不足以清晰、准确地描述某个事物。

实践证明,利用原型有如下好处:

①及时、有力地响应用户需求的变化。 ②减少返工。

③帮助控制不完整需求所带来的风险。

16

④可以将一个大的难以处理的开发过程细分成一些更小更容易处理的步骤。 ⑤减少开发成本,提高经济效益。

⑥增加开发者之间的交流,帮助确定技术解决方案的可行性。 ⑦有效地识别风险和解决风险,帮助进行风险管理。 ⑧提高用户在软件开发中的参与程度。

7、试说明在哪些情景下原型法可以帮助需求工程师及早解决需求的不确定性。 答:

①产品以前从未存在过,而且难以可视化。这些产品属于创新性产品,它们的基本需求 是潜在的,有着很大的不确定性。

②产品的用户对相关类别的产品没有经验,而且对将要采用的技术也没有经验。此时用 户无法明确工作的具体细节,产品的细节需求存在着不确定性。

③用户进行自己的工作已经有一段时间了,但在完成工作的方式上仍然存在障碍。此时 用户无法判断问题的解决方案是否现实可行,所以产品在整体方案的可行性上存在着不确定 性。

④用户在清晰说明他们的需求方面存在困难,例如默认需求或者潜在需求。这些相关的 需求是有着不确定性的需求。

⑤需求工程师在理解用户的需求上存在困难。在澄清和理解之前,这些需求存在着不确 定性。

⑥需求的可行性值得怀疑,即具体需求的可满足性存在着不确定性。 8、试比较原型开发方法的三种类型。 答:(划线部分为必答要点)

(1)探索式

探索式原型法是以缺陷需求开始继而不断调整和修正需求的原型开发方式。探索式的 原型方法通常要尽可能地调整各种设计选项(例如需求内容、软件化内容以及软件支持方式 等),并比较多种设计方案下的用户反馈以得到理想的用户需求。探索式的原型方法能够帮 助开发者更深入地了解用户的业务、问题和期望。

(2)实验式

实验式的原型方法初始时拥有清晰的用户需求,但是开发者对这些需求的实现方法、 实现效果和可行性没有太大的把握。实验式的原型方法需要首先定义一个对原型的评估方 法,确定评估的属性(例如可行性、适用性、效率、吞吐量等),据此评估各种技术方案下 的原型,明确需求的可行性和有效的技术实现方案。

(3)演化式

在演化式的原型方法中,原型的开发并不是一个独立的活动,而是整个项目的持续开 发过程中的一个部分。原型开发的初始点既有要求原型化的需求,也有项目积累下来的原型 资产。积累下的原型资产所没有实现的需求,往往是清晰的需求。在开发原型时,还要能够 以一个整体的方式传递给下一个原型开发过程。这个被不断传递和不断增强的原型资产将成 为最终的软件系统。通过在持续开发过程中使用原型方法,可以使软件开发过程更好地处理 用户需求的不断变动。

在探索式、实验式和演化式这三种原型方法中,前两种方法产生的原型往往是在经历 了很多次错误的尝试之后才产生的。这些错误的尝试过程会在最终的原型产品中留下痕迹, 原型中的一些代码是在错误的前提(错误的需求、错误的技术方案)下完成的,它们会使原 型产品具有很差的质量,所以人们在得到正确的尝试之后往往会抛弃这些原型产品,另起炉

17

灶。为此,探索式和实验式方法产生的原型产品又被称为抛弃式原型(Throwaway Prototype)。

抛弃式原型的贡献不在于它的代码,而是它所包含的内容,它说明了正确的需求和正 确的技术方案。

因为抛弃式原型的代码是要被抛弃的,所以在建立抛弃式原型时,应该尽量花费最小 的代价,争取最快的速度。为此,原型的开发者会使用一些简易的开发工具和不成熟的构造 技术,忽略或简化一些和原型目标不相关的功能特征。

9、试述在需求获取中使用原型方法的主要步骤。 答:

在需求获取中使用原型方法的主要步骤包括:

①确定原型需求。搞清楚为什么要开发原型,拥有的起始点是什么,期望的结束标准是 什么?

②原型开发。依据原型的需求特点和开发目的,选择原型的开发方法和构建技术,建 立初始原型。

③原型评估。对上一阶段产生的原型进行评估,根据评估者的反馈判断原型是否满足 结束标准。评估者一般是用户和开发者。

④原型修正。如果已经建立的原型达到了目的,就结束原型方法过程。否则根据评估 者反馈的不足进行原型调整,调整完成后准备再次进行原型评估。

10、简述使用原型方法的主要风险。 答:

原型方法的最大优点是能够及早地解决系统开发中的不确定性,从而降低软件项目失 败的风险,但原型方法的复杂性使得它在降低风险的同时也引人了新的风险。

(1)原型方法最大的风险就是涉众看到了一个正在运行的原型,从而得出产品几乎已 经完成的结论,从而提出快速交付产品的不当要求。

(2)原型方法的另一个风险是用户可能会被原型所表现出来的非功能特性遮蔽了眼 睛,从而忽略了他们更应该重视的功能特性。

(3)原型方法的第三个风险是原型方法在澄清需求不确定性的同时也可能会掩盖一些 用户的假设,这些假设将会无从发现。,原型的开发者要仔细地分析原型的

(4)最后,还应该避免对原型开发工作投入太多的工作,使开发团队消耗了过多的时 间和过大的成本,最后被迫只能匆匆忙忙实现一个产品,甚至只是交付一个原型。

11、试比较两种采样观察法的优劣。 答:

(1)时间采样 时间采样的优点:

①在于可以减少在任何某个单独时间段内进行观察时可能发生的偏差,将偶尔才发生 的事件看做是重要的业务事件。

②时间采样还可以只选取频繁发生的活动中一个代表样本进行观察,节省时间和成本。 时间采样的缺点:

①时间采样是以分段方式收集观察的数据,无法为某些长事件提供充分的观察时间。 ②一些很少发生(或不经常发生)但又非常重要的事件可能得不到观察,因为它们没 有出现在采样的时间之内。 (2)事件采样

18

事件采样通过有目的地选取整个事件进行观察,而不是随机采样时间段。 事件采样的优点:

事件采样为观察所提供的是在一个真实背景下的完整行为,所以不会遗漏重要的事件 或者重要事件的某些片断。

事件采样的缺点:

事件采样的不足之处在于它不能获得频繁发生事件的代表性样本。

从正反两方面考虑这两种方法,当决定要对用户活动的内容、时机、原因和方式进行 观察时,应该鼓励热衷于观察的分析员使用时间采样和事件采样相结合的方法。

12、简述民族志法及其优缺点。 答:

民族志是由人类学家最早提出来的,用来理解原始社会(Primitive Societies)的社会机 制。它要求人类学家花费长期的时间(通常是数年)在被研究的社会中生活并且仔细观察该 社会中的实际活动,得到第一手的观察数据。对这些观察数据的分析可以揭示被研究社会的 社会结构、组织方法和具体活动。

优点: (1)民族志最大的优点是它能够得到信息的深度理解。

(2)民族志的第二个优点是能够让真实世界的社会性因素可见化。

(3)通过民族志得到的知识是真实的知识,它可以打破人们已有的一些错误假设和错 误观念,能够避免一些更严重后果的发生。

缺点:

(1)民族志的一个主要缺点是需要耗费很多的时间。

(2)民族志的另一个缺点是调研结果很难传递到开发过程。

13、下图描述了火车管理系统的目标模型片段,试分析该目标模型关系。

19