《系统分析与设计》期末试题试卷

更新时间:2023-11-28 08:53:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《系统分析与设计》期末试题试卷 (A)

方向:___________ 姓名: ______ 学号: 成绩:____________

注意:答案一定要写在答卷中,写在本试题卷中不给分。本试卷要和答卷一起交回。

一、对错判断题(每题1分,共10分)

基于敏捷的UP迭代、进化的软件开发过程,请用T / F判断以下命题

1.(__)建模人员在白板上建模时,需注意UML符号运用的准确性及对问题细部描述的精准性。 2.(__)UP的核心工作流是业务建模、需求分析、设计、实现、测试与集成。在不同阶段,工作的重点不同。

3.(__)在每个迭代结束开始时,进行风险评估是UP的最佳实践之一。 4.(__)完成UML分析与建模工作需要几个星期。 5.(__)制品词汇表记录了数据库表和主要字段名称。

6.(__)细化阶段(Elaboration)包含需求分析、概要设计、详细设计、编码和测试活动。

7.(__)在瀑布模型中,试图在编程前定义几乎完整的需求,并试图建立“可靠的”计划或时间表,但常常事与愿违。

8.(__)数据模型制品在细化阶段开始设计,在构造阶段精化。因此数据模型在具体数据库上实现工作在构造阶段。

9.(__)UP过程模型比瀑布模型先进。

10.(__)移交阶段(Transition)主要任务是进行beta测试和部署。

二、分类题(每小题2分,共10分)

在统一过程中,需求按照“FURPS+”模型进行分类,帮助你避免遗漏系统的某些重要方面。以下业务场景片断来源于一个电子商务应用(如网上书店等),请识别需求并用“FURPS+”分类。 1.(__)支持用户从目前的1000万到五年后的5000万 2.(__)提供配送状态跟踪服务

3.(__)每天各销售点和网上的销售数据都需在晚上20点前传入SAP业务系统,进行商业分析并生产各种报告

4.(__)网页响应控制的3秒内 5.(__)用户在使用服务前必须注册

三、案例研究:需求分析(30分)

软件学院奖学金发放主要是按学习成绩的班级排名,排名在5%以内获得一等奖学金,在10%以内获得二等奖学金,在15%以内获得三等奖学金。但是很大一部分同学认为,学习成绩有不及格的同学应减档计算,还应该全面考虑学生的综合素质。因此,学院制定了两份新的文件,一份是《课外活动学分计算细则》(以后简称细则A),规定了体育比赛、创新实践大赛、国家省市大赛获奖奖励绩点细则。一份是《学术活动活动学分计算细则》(以后简称细则B),规定了不同级别论文奖励绩点细则。由于计算和操作变得复杂,所以委托“冲天钻”团队开发一个系统,以下是教务员、辅导员对项目的一段描述:

教务员:原来我是每年开学从学校教务管理系统下载各班学生成绩绩点文件到Excel,然后排序打印,计算各班各等级奖励人数,用不同色笔标出各人奖项,然后公示,如果学生有异议,到教务管理系统修改成绩,重复上述流程。唉,现在很麻烦啊!

辅导员:现在我从教务那里得到我管班级的Excel文件,虽说就添加课外活动加分和学术加分,但得到这个加分很麻烦。首先要按细则A整理本学年开展的活动,整理一份今年认可的各项比赛不同名次的加分系数(加分项)的表,然后让班长发给每个同学去打钩,并按打钩项准备证明材料。收集加分表及证明材料,并把论文送学术委员会指定的老师评审,定档次作为加分证明材料。学生填的东西,很多都不规范,需要按证明材料重新调整加分项。然后整理成一张加分表,填写每个学生的加分项(包含加分项、引用条款、证明材料名称、折合绩点、学生活动合计加分、学术合计加分),然后将加分表和成绩表给班长在班上公示。然后处理异议,核实材料,修改,公示(调整需要用红笔标出)。由于流程很长,常被同学误解为暗箱操作。

教务员:我从各位辅导员那里收集公示后的Excel文件,计算累计绩点(=成绩绩点+活动加分+学术加分),按累计绩点排序,按我刚才说的程序计算奖励。我刚才忘了说,公示后的最终表格需要院领导签字。 [问题1] 系统构想(5分)

(1)给项目起一个拉风(吸引人)的名字(1分)

(2)参照7.6-7.7节,从案例中分析出涉众及用户级目标(每个涉众只需要1-2个目标)。(4分) [问题2] 用例分析(10分) (1)请用用例图描述系统(7分) (2)简单陈述发现用例的步骤(3分) [问题3] 领域建模(15分)

(1)从案例中分析出的名词短语,将概念类分类列表,如同9.6节。画出系统领域模型(12分) (2)简述描述类的使用条件,如果本案例有,请举例。(3分)

四、UML设计图与编程(10分)

该顺序图表达了Sale对象计算总价并根据打折策略计算应收款的过程:

s : Salet = getTotalloopst = getSubtotalt = getTotal( s )pdt = getPreDiscountTotalnote that the Sale s is passed to the Strategy so that it has parameter visibility to it for further collaboration{ t = pdt * percentage } lineItems[ i ] :SalesLineItem:PercentDiscountPricingStrategy 按图描述,用面向对象的语言编写Sale类。

五、案例研究:系统设计(40分)

网络对战飞行棋是在传统飞行棋(FlightGame)加以改进,并加入灵活的在线对战元素,支持2~4个玩家对战。玩家(Player)通过独立作战或与对家配合,通过掷骰子(Die)数(valueOfDie),决定自己棋子在棋盘上的行进步数,以全部棋子最先到达终点的游戏者为最后胜利者。

主要规则:(根据中国游戏中心规则改编) 1) 开局

系统随机判定一个玩家第一个掷骰子,然后以他为基准按顺时针方向轮流(Turn)掷(roll)骰。 2) 起飞

起始时,四个棋子(Piece)都在停机坪(Station)。只有在掷得6点方可起飞,6点就可以将飞机送入起飞平台(StartPlatform)。掷得6点可以再掷骰子一次,确定棋子的前进步数; 3) 连投奖励

在游戏进行过程中,掷得6点的游戏者可以连续投掷骰子,直至显示点数不是6点或游戏结束。 4) 迭子(Doubled Piece)

己方的棋子走至同一格(Square)内,可迭在一起,这类情况称为“迭子”。敌方的棋子不能在迭子上面飞过;

当敌方的棋子正好停留在“迭子”上方时,敌方棋子与2架迭子棋子同时返回停机坪。若其它游戏者所掷点数大于他的棋子与迭子的相差步数,则多余格数为由迭子处返回的格数;

当其它游戏者所掷点数是6而且大于他得棋子与迭子的相差步数时,那么其它游戏者的棋子可以停于迭子上面,但是当该游戏者依照规则自动再掷点的时候,服务器自动走刚才停于迭子上面的棋子。 如果棋子在准备通过虚线时有其他棋子停留在虚线和通往终点线路的交叉点时:A、如果对方是一个棋子,则将该棋子逐回基地,本方棋子继续行进到对岸;B、如果对方是两个棋子重叠则该棋子不能穿越虚线、必须绕行。 5) 撞子

棋子在行进过程中走至一格时,若已有敌方棋子停留,可将敌方的棋子逐回基地。 6) 跳子

棋子在地图行走时,如果停留在和自己颜色相同格子,可以向前一个相同颜色(color)格子作跳跃。 7) 飞棋

棋子若行进到颜色相同而有虚线连接的一格,可照虚线箭头指示的路线,通过虚线到前方颜色相同的的一格后,再跳至下一个与棋子颜色相同的格内;若棋子是由上一个颜色相同的格子跳至颜色相同而有虚线连接的一格内,则棋子照虚线箭头指示的路线,通过虚线到前方颜色相同的的一格后,棋子就不再移动。 8) 终点(EndSquare)

“终点”就是游戏棋子的目的地。当玩家有棋子到达本格时候,表示到达终点,不能再控制该棋子。 玩家要刚好走到终点处才能算“到达”,如果玩家扔出的骰子点数无法刚好走到终点,棋子将往回退多出来的点数。

[问题1] 用例实现分析(8分)

上述规则描述了“玩飞行棋游戏(PlayGame)”用例的基本场景,没有描述网络断线、中途认输、逃跑等可选场景。请参考书18.5节及用例实现的方法与步骤,分析出案例中的边界类(boundary)、控制器类(controller)、实体类(entity)。 [问题2] 动态建模(12分)

(1)设计者发现,这个场景中尽管规则比较复杂,但玩家takeTurn之后,与系统控制器只有很少交互操作,如roll()、move(Piece selected,int valueOfDie)等。假设这时玩家所有棋子都在停机坪(Station),请画出玩家takeTurn之后操作顺序图。(9分)

(2)当掷骰子数valueOfDie=6时,描述操作move(Piece selected,int valueOfDie)的后置条件。(3分) [问题3] DCD建模(10分)

按上述动态模型建立设计类图(DCD) [问题4] 设计模式应用(10分)

设计者发现,允许规则变化对游戏一个非常重要。例如:为了提高游戏的激烈程度,增加掷得5点就可以将飞机送入起飞平台。

(1)请简单叙说你选择的GOF设计模式及理由。(5分) (2)画出该模式的类图(5分)

本文来源:https://www.bwwdw.com/article/l91t.html

Top