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

答:

图中,火车管理系统主要有三个高层的软目标:服务更多的旅客(ServeMorePassengers)、 尽可能降低成本(Costs,类型 Min)和安全运输(SafeTransport)。

对 ServeMorePassengers的工作可以同时从增加新班次(NewTracksAdded)和提高原有班 次效率上着手。提高原有班次效率则可以通过提高列车运行速度(TrainSpeed,类型 Max) 或者缩短班次间隔(DistanceBetweenTrains,类型 Min)来实现。

降低成本的实现可以考虑降低新投资( DvlptCosts,类型 Min)或者降低运营成本 (OperationCosts,类型 Min)。而增加新班次(NewTracksAdded)的目标要求可能会增加降 低新投资目标的实现困难。

在实现安全运输的措施中,有三个是必须达到的: ①要保持安全的车距(WCS—DistBetweenTrains,类型 Maintain)。

②列车的速度要保持在轨道能够承受的范围内(TrackSegmentSpeedLimit ,类型 Maintain)。

③列车不要进入已经关闭的站台(TrainEnteringClosedGate,类型 Avoid)。 14、下图是为一个会议安排系统建立的目标模型,请分析说明该目标模型。

20

答:

图中所示的目标模型。系统有两类行为者,一类是会议的发起人 Meeting Initiator,另 一类是会议的参加者 Meeting Participant。

在会议的参加者中,又有一些比较特殊的人员,它们的参加与否对会议的成败有着至 关重要的影响,因此被单独列为一类行为者 Important Participant。

Meeting Initiator成功安排会议的目标是让 Meeting Participant(尤其是 Important Participant)出席会议(Attends Meeting)。而且为了保证会议的成功,Meeting Initiator要相 当程度上能够确信 Important Participant会出席会议(Assured(Attends Meeting))。会议应该 安排在一个所有 Meeting Participant都空闲的时间,也就是说不能安排在 Meeting Participant 抽不出身来的时间(Exclusion Dates)。

在了解所有 Meeting Participant的空闲时间之后,Meeting Initiator可以提出一些可能的

会议时间(Proposed Dates)。然后,Meeting Participant从中选择一个自己倾向的时间(Preferred Dates)。在对所有会议参与者的倾向时间进行协调之后,可以确定最终的会议安排情况 Agreement。

15、简述场景应用和处理生命周期的 5种情况。 答:

场景的生命周期关注场景的处理和应用,也就是关注场景在整个需求工程中是如何被 捕获、修改和演化的。

实践中发现的场景应用和处理可以概括为 5种情况:

①从当前系统中捕获和建立关于现在的场景,它们描述问题域的状态和问题。 ②在当前的系统中分析问题和期望,捕获、分析和建立关于未来的场景。

③在当前的系统中分析问题和期望,捕获、分析和建立关于未来的场景,并依据场景 对解决方案的描述,建立需求模型。

④依据已经建立的需求规格说明解释和建立关于未来的场景,然后为场景中描述的解 决方案建立需求模型。

⑤依据需求规格说明所描述的解决方案,建立需求模型,同时建立能够验证解决方案 的场景。最后,使用场景来验证需求模型的正确性。

16、简要说明结构化分析方法的局限性。 答:

结构化分析方法也有自身的局限性。

首先,虽然有了功能实体矩阵、实体生命历史和事件实体矩阵等分析技术,但是数据 需求和处理需求的联接仍然不是一个容易的工作。

其次,结构化分析向结构化设计的过度(数据流图到结构图)中间有着难以处理的鸿沟。 再次,结构化分析过于重视对已有系统的建模,而这常常是难以实现的。 17、请说明为何要确定需求的优先级。 答:(划线部分为必答要点)

在理想的情况下,开发者应该让最终的软件系统完美地满足用户提出来的所有需求。 但是这种理想的情况并不总是会在现实中发生,甚至是很少在现实中发生。作为一项工程, 软件开发总是在一定的环境限制下进行的,成本效益比是它成功的一个基本衡量标准。因此, 在工程环境下,需求与需求之间并不是同等重要的,一些需求应该优于另一些需求得到更多 的实现保证,这就是要确定需求优先级的原因。

21

在实践中,确定优先级的活动尤为重要的情况有:

①一个项目的资源(时间、人力、成本等)有限,无法满足用户的所有需求。此时项目 管理者就需要确定一种最佳方案,在既定的成本下取得最大的效益。需求优先级就是项目管 理者进行此项工作的重要基础。

②项目采用了分阶段的开发方式。为了最大化地体现项目的成本效益,项目应该在第一 阶段就交付用户最重要和最紧急的需求,并将用户最不重要和最不紧急的需求放在开发的最 后一个阶段。这就需要通过确定需求优先级的方式来划分需求的重要性和紧急性等级。

③在项目的开始阶段,并不能明确所有的用户需求,或者无法保证会最终满足所有的用 户需求。这个情况是实践中最为常见的情况,迭代式的开发基本都属于这种情况。对这种情 况,要区分用户需求的优先级,优先迭代级别高的需求,保证项目最终最大程度地满足了用 户的需求。

18、请说明需求分析人员在需求协商当中应该予以确保的三个原则。 答:(划线部分为必答要点)

需求分析人员在需求协商当中应该予以确保的三个原则是:

①明确冲突的因素,避免情绪上的冲突。需求分析人员应该从技术上发现和描述冲突背 后的本质原因,并帮助避免和解决涉众在协商中间可能产生的情绪冲突(Emotional conflict)。

②明确冲突的解决空间。需求分析人员应该引导涉众之间的协商,在涉众协作中发现和 明确各种可能的解决方式(Alternatiyes)、论据(Argumentations)和理由(Rationales)。

③确定最佳解决方案。需求分析人员应该提供足够的技术信息支持,帮助涉众在既有 的解决空间内达成最佳的解决方案。

19、简述使用 DFD描述系统过程模型是必须遵守哪些规则。 答:

使用 DFD描述系统过程模型是必须遵守一些规则,这些规则可以保证过程模型的正确 性。这些规则有:

①过程是对数据的处理,必须有输入,也必须有输出,而且输入数据集和输出数据集 应该存在差异。

如果过程在没有输入的情况下产生了输出,称之为“奇迹”,即输出数据在没有任何可 见来源的情况下就奇迹般产生了。

如果过程接收了数据输入却没有产生输出,称之为“黑洞”。它浪费了输入的数据资源, 却没有做出应有的贡献。

过程是对数据的处理,这种处理是要产生附加价值的,即进行了数据的加工和变换, 而不是简单的数据转移。

②数据流是必须和过程产生关联的,它要么是过程的数据输入,要么是过程的数据输 出。

③DFD当中所有的对象都应该有一个可以唯一标识自己的名称。过程使用动词,外部 实体、数据流和数据存储使用名词。

20、请说明 DFD层次结构的建立的主要步骤。 答:

DFD层次结构的建立的主要步骤是: ①创建上下文图。 ②发现并建立 DFD片断。

22

③根据 DFD片断组合产生 0层图。

④对 0层图的过程进行功能分解,产生 N层图。 21、请说明 DFD图质量评判的准则是什么? 答:

对 DFD图(尤其是 0层图)质量的判定有下面几个准则: ①遵守相应的规则,没有语法错误。

②具有良好的语义,过程的功能设置要高内聚、低耦合。

③保持数据一致性,过程的输人流要足以产生数据输出。同时过程的输出流是在充分 利用输入数据的基础上产生的,不存在输入数据的浪费。

④控制复杂度,不要一次在图中显示太多的信息。一般情况下,一个图中的过程数量 最好控制在 5~9(人脑的最佳信息处理量)个。而且图中的数据流数量越少越好,越简洁 越好(接口最小化)。

22、请说明如何快速有效地判定一个 DFD图是否为原始 DFD图? 答:

功能分解的过程需要持续进行,直至最终分解产生的子图都是原始 DFD图,关键问题 是如何快速有效地判定一个 DFD图是否是原始 DFD图。在分解产生的子图为下述情景之一 时,可以判定其为原始 DFD图,此时应该停止持续的功能分解活动:

①所有过程都已经被简化为一个选择、计算或者数据库操作。 ②所有数据存储都仅仅表示了一个单独的数据实体。

③用户已经不关心比子图更为细节的内容,或者子图的描述已经详细的足以支持后续 的开发活动。

④每一个数据流都已经不需要进行更详细的切分,以展示对不同数据的不同处理方式。 ⑤每一个业务表单、事务、计算机的屏幕显示(Computer On-line Display)和业务报表 都已经被表示为一个单独的数据流。

⑥系统的每一个最低层菜单选项都能在子图中找到独立的过程。 23、请说明如何进行 DFD的验证? 答:(划线部分为必答要点)

在结束 DFD的建立工作之前,还应该执行 DFD的验证,以确保所创建 DFD的正确性 和有效性。

对 DFD的验证主要包括以下几个方面: (1)验证DFD的语法

要确保DFD中不会发生语法错误。有一些常见的语法错误,例如有些数据流没有终点、 有些过程没有输出流等,往往意味着在进行DFD描述时存在着信息的遗漏。 (2)验证DFD的结构

首先要验证DFD层次结构之间的一致性,包括分解的平衡性,也包括不同 DFD之间元 素实例使用的一致性(例如命名是否一致、格式要求是否一致等)。

其次要验证DFD层次结构说明的完备性,例如,是否所有的过程都有更详细的说明(子 图或者逻辑说明),是否所有的数据流和数据存储都有数据说明等。 (3)验证DFD的语义

验证DFD的语义是为确保DFD所说明内容的正确性和准确性。这个工作通常要由用户 在需求工程师的帮助下来执行,用户需要浏览DFD图,从中发现和需求不符或者理解上存在

23