阅读下列说明和有关图表,回答问题1至问题3。 【说明】 A公司决定开发一套公共交通自动售票系统,系统要求如下所述。 (1)乘客能按以下3步操作购票:选定目的地,投入钱币,获得一张票。 (2)并且仅当乘客选定目的地后,系统才接收投钱

admin2009-02-15  40

问题 阅读下列说明和有关图表,回答问题1至问题3。
    【说明】
   A公司决定开发一套公共交通自动售票系统,系统要求如下所述。
   (1)乘客能按以下3步操作购票:选定目的地,投入钱币,获得一张票。
   (2)并且仅当乘客选定目的地后,系统才接收投钱;每次投入的钱只购买一张票。
   (3)只要投入的钱不少于所需的票价,且票库中有所要求的票,则应尽快出票。
   (4)如需找钱,则在出票的同时应退还多余的钱。
   (5)如果乘客投入的钱不够票价,或者票库中没有所需要的票时,系统将全额退钱,并允许乘客另选目的地,继续购票。
   (6)出票前乘客可以单击“取消”按钮取消购票,系统将全额退出该乘客投入的钱,并允许乘客另选目的地,继续购票。
   (7)出票结束(包括退还多余的钱)后,系统应保存销售记录,并等待乘客购票。
   该系统还要求快速响应和操作同步,所以它应是一个实时系统。为此,A公司在该系统的数据流程图中附加了过程控制部分,形成转换图。在该图中,控制流(事件流)用虚
                           
线表示,数据流用实线表示。图中的数据流并没有画全,需要考生填补。
   对售票全过程进行的控制可以用系统内部各个状态之间的迁移来描述,从而形成状态迁移图。在状态迁移图中,用双线框表示状态,用有向边表示状态的迁移。引起状态迁移的事件以及由该事件引起的动作,在有向边旁用“”形式注明。
                           
   该公司还制定了一个过程启动表,用以表明状态迁移图中的4个动作与转换图中的4个过程之间的“启动”关系,即说明哪个动作将启动哪个过程。用1表示启动,用0表示不启动。启动的过程将根据获得的输入数据产生输出数据,未唐动的过程则不会产生输出数据,该表中没有列出的过程,其执行与否与事件无关。
                           
   【问题1】
   转换图中缺少哪3条数据流?请指明每条数据流的名称、起点和终点。
   【问题2】
   在状态迁移图中,a、b、c分别表示什么事件?请用转换图中给出的事件名解答。
   【问题3】
   在过程启动表中,d、e处应填什么?请分别用4位二进制码表示。

选项

答案

解析 这道考题的题型比较特殊,但仍可以参考常考的数据流程图的解题思路。应全面细致地阅读试题说明、转换图和状态迁移图,体会系统的实际运行场景,以帮助顺利地解题。
   问题1已经明确指出转换图中缺少3条数据流,而从直观上看,“核查”处于核心位置,它还非常显著地同全部3个文件有关。当然,有些考生不一定有这种直接看出关键点的技能,但是对于具有扎实软件工程理论基础和实际系统设计经验的人员,在经过一定的考试训练后,应该具有这种技能。下面具体分析。
   系统的使用者——乘客与系统之间的活动有选择目的地、投钱、出票。首先应该按照这3个活动去解答第1个问题。
   ①乘客选择目的地应该经过核查,防止错误和异常,但这一点在转换图中没有画出。
   ②乘客投钱,系统接到钱后应核查,如果正确(不是假币,规定面值的纸币,面值不低于票价),系统将进入后面的出票流程。如果是规定的面值且面值大于票价,同时还要进入退还钱(找零)的流程。
   ③在②中,如果系统对钱核查后发现不正确(假币,不是规定的面值,面值低于票价),系统将进入退还钱的流程。
   出票时也应该核查,这一点在转换图中已经画出。现在,已经找到了缺少的3条数据流。
   将上述3条数据流补充到转换图中,在以“核查”为中心的转换图中,每个输入数据流/输出数据流都经过“核查”的检测。系统设计师们应该具有这样的设计思想:“核查”是系统中必须的、核心的、决定系统健壮性的功能。
   给出的状态图是一个完整的循环流程,正常过程中,状态“正在接受投钱”后,应该接下去是出票,但事件a导致“退钱”事件发生,在说明中已经很明确给出,是乘客按“取消”按钮。
   按照问题1中的分析,知道“接受投钱”后,系统经过“核查”,如果正确,就可以“出票”,所以b是“核查正确”。
   出票结束后,该乘客的事务已经完成,系统将进入下一个乘客事务的等待,所以c应该是“出票结束”。
   对于问题3,应该按照已经补充完的转换图和状态迁移图,及过程启动表中的规则进行分析,可以很容易得出解答。d是1001,e是1100。
转载请注明原文地址:https://kaotiyun.com/show/SMDZ777K
0

相关试题推荐
最新回复(0)