您好,欢迎访问三七文档
UML补考练习汇总1、请根据本学期的课程,结合实际软件开发过程,归纳出使用面向对象技术进行项目开发,需要开展哪些活动,你认为最关键的活动是什么?(A卷考过)用例模型:用例文本和用例图(1分)领域模型分析:领域模型(1分)用例顺序图分析:用例顺序图(1分)类图建模:类图(1分)最关键的活动是领域建模。(1分)2、“老师说要迭代开发,真是有道理。我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计….”,这句话正确吗?为什么?不对(2分),每次迭代都是一次软件开发完整的过程,不是按步骤的每次迭代完成不同的任务(3分)。3、假设要构造一个和用户下棋的游戏系统,哪些UML图对设计该游戏有帮助?为什么?(A卷考过)答:用例图、类图、顺序图(交互图)(2分),用例图可以归纳游戏系统需要完成的功能需求,类图分析了系统需要的类,及其承担职责,刻画了系统的静态结构。使用顺序图可以对具体场景的交互进行动态建模。理解系统的内部的交互过程。(3分)。4、在用例模型中,除了需要绘制用例图,最重要的是为每个用例编写用例文本,用例文本当中常有:主要参与者、涉众及其关注点、前置条件、后置条件、主成功场景、扩展场景、特殊需求等部分。阿呆比较笨,老是搞不清。请你告诉他那个部分最重要,解释该部分含义,并说明重要理由。主成功场景场景里面有对话功能,交互过程5、根据下列代码片断,画图说明已经创建的类的数据成员及类间的关系。(要求:如有关联需要标明关联的方向、角色名和多重性)[代码]publicclassCatalogueEntry{privateStringname;privateStringnumber;privateStringcost;···}publicclassPart{privateCatalogueEntryentry;···}Part-name:string-number:string-cost:stringCatalogueEntryentry1classUseCaseModelCatalogueEntry-cost:String-name:String-number:StringPart-entry:CatalogueEntryentry▲6、通信图和顺序图都是交互图,阿呆不明白什么时候用通信图,什么时候用顺序图。请你为他解释顺序图和通信图的优点和缺点。顺序图和通信图的优缺点:顺序图对工具的支持更好,并有更多有效的表示法,可以更方便地表示调用流的顺序,并且在文档化方面更胜一筹。而通信图则必须查阅顺序编号,在墙上绘制“UML草图”时利用通信图易于修改更具空间效用,而顺序图在墙上绘制(或窄幅纸张)时不如通信图方便。7、Monopoly游戏中,由谁来创建Square对象比较合适?阿呆发现类图中有两个类都可以承担此职责:MonopolyGame和Board。他有点迷糊不知道该选那个比较好。请你帮他选一个,并解释理由。因为square是被包含关系,被包含于board所以由board来创建▲8、阿呆刚学过GRASP设计原则,觉得很不错,于是准备应用在设计的选课系统中,系统有课程类,课程类的实例包含某门课程的具体信息。阿呆就想,依据信息专家的原则,那么,该由课程对象把课程信息存入到数据库中。但是项目经理告诉他这样做不好。阿呆想不通,请你详细为阿呆解释一下,这样做有什么坏处,应该如何处理。(A卷考过)坏处:高内聚,低耦合,冗余高;应该虚构一个类来帮助解决参考P213将课程信息存入数据库的职责分配给课程类会造成课程类与数据库接口类的耦合,面向数据库的操作与实际的课程类无关,使得课程类非内聚,不利于数据库操作的复用,其它类也存在保存对象的职责。在某些情况下,专家模式建议的方法并不好,这是由于耦合与内聚问题所产生的。专家会建议由课程对象把课程信息存入到数据库中,那么按照这个决定进行逻辑推理,每个类都应当把自身保存到数据库中。但这样会导致内聚,耦合,及冗余方面的问题,例如现在课程类必须包含于数据库处理相关的逻辑,如SQL和JDBC相关的处理逻辑。因此,课程类由于存在其他职责而降低了它的内聚,这个类必须与其他子系统的数据服务进行耦合,会使得耦合度上升。这样会导致大量持久性类中重复出现类似的数据库逻辑,有大量的冗余。所以这样的做法违反了基本架构原则,应将应用逻辑和数据库逻辑放置不同一处,而不是在同一构件中把不同的系统关注混合起来。因此,按照专家模式,该由课程对象把课程信息存入到数据库中是合理的,但由于其他原因,会使得我们最终得出不佳的设计9、请你详细说明一下领域模型与设计类图的相同点及不同点。相同点领域模型是没有方法的类图的集合不同点领域模型只有属性无类型无方法类图包括类名,属性,操作10下图是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?(A卷考过)1:三个指向他的“申请”2:4个被它指向的行政许可类申请行政审批类申请涉税服务类申请流转记录处理人1111窗口人员核查人员审批人员受理资料受理提示受理告知纳税人税务审批服务申请0..n10..n10..n0..n10..n10..n10..n10..n10..n110..n11POS系统中,当顾客以支付货款时,需要计算出支付余额。阿呆发现类图中有两个类都可以承担此职责:Sale和Payment。他有点迷糊不知道该选那个比较好。请你帮他选一个最佳方案,并解释理由。SalesLineItemquantity:IntegergetSubtotal()Paymentamount:Money...1..*SaleisComplete:Booleantime:DateTimebecomeComplete()makeLineItem(...)makePayment(...)getTotal()111*lineItems{ordered}paymentdescription选SALE,因为SALE只需要一条线连接到paymant,而payment却需要两条连接到SALE根据内聚耦合原理,应当选择SALE(A卷考过)▲12搬了新家,阿呆决定去申请安装ADSL,他到营业厅填好单,和证件一起交给营业员。营业员查看阿呆的证件,接过单子开始操作电脑。如果站在营业员身后,会看见营业员打开一个“受理”菜单,选择“ADSL”,弹出一个带有好多个Tab的框框,营业员哔哩叭啦把数据输进去,然后让阿呆设置一个服务密码,又过一阵,营业员递出单子,告诉阿呆回家等,施工人员一天内就到。阿呆高兴的出门。营业员叹了一口气,想“又弄完一个”……考虑营业员的“ADSL业务受理系统”,根据上述信息,分析下面所列对象或事件归属那一类别,并在表中填写。(注意,所列的对象或事件有可能属于多个类别,也有可能都不属于任何一类,多填或少填都不得分,涉众填不全扣一分)对象或事件:阿呆营业员设置密码施工人员受理ADSL申请安装ADSL“受理”菜单类别:主参与者辅助参与者用例涉众主参与者营业员辅助参与者阿呆用例受理ADSL申请涉众施工人员13状态图是为某个对象的状态和事件以及响应事件的行为的建模。下面的普通电话机的状态图,技术经理已经使用状态图对其详细建模,但阿呆不小心把图弄模糊了,请你帮忙补充完整。(状态及事件名可以中文表示)Idleoffhook/playdialtone⑥①[validsubscriber]②③④digitdigitcomplete⑤connected(1)Active(2)PlayingDialTone(3)Dialing(4)Connecting(5)Talking14请根据下列代码片断,画出设计类图。注意类,类的属性和方法以及类之间关联,关联的导航性、多重性或是角色名。Storestore=newStore();Registerregister=store.getRegister();intt=store.getNo();ProductCatalogcatalog=newProductCatalog();register.setNo(t);register.setCatalog(catalog);ProcessSaleJFrameframe=newProcessSaleJFrame(register);15.下面是航空公司系统的部分类模型,模型里的类都是需要持久存储的对象。请你为阿呆设计一个将该类图映射为关系数据库中的表的方案。即数据库中该有用那些表存储这些类的数据,这些表该有那些列。(表的主键外键要说明)(A卷考过)classDataAirline-name-symbolEmployee-name-idCardFlight-flightNum-datePilot-flightRatingFlightAttendant0..*11Schedule0..*+copilot10..*+pilot10..*0..*AttendantAssignment0..*Airline(Alid,name,symbol)Employee(idcard,name,ALID)Pilot(idcard,fightRating)FightAssistant(idcard)Flight(fightNum,data,PilotID,copiloted,AlID)AttendantAssignment(fightNum,idcard)16请说明领域模型中要展示内容(三个方面),并根据下面描述绘制出汽车公司调度管理系统的领域模型。(A卷考过无答案)阿呆开设了一家汽车公司专门为学生服务,公司拥有40辆汽车,服务对象是1600个学生。汽车日常行驶的路线有30条。每条路线上设有许多站牌,学生们可在这些地方上下车。公司雇佣了20个全职的司机和30个兼职的司机。汽车公司设有一个调度员,专门负责司机和路线的安排。公司经常会收到学生或家长们对司机的投诉。如果投诉的情况相当严重,司机有可能会被停职甚至被解雇17根据以下Java源程序片断绘制出doPayroll函数实现的顺序图。20我家超级市场是大型的连锁零售商场,销售各类商品,超市的收银员使用POS收银系统处理用户的销售。请问收银员是处于POS收银系统的边界外还是边界内?为什么?21详细解释下列消息。(说明消息名称、参数、返回值等)(1)2:display(x,y)(2)1.3.1:p:=find(specs)(3)[x0]4:invert(x,color)(4)3.1*:update()(5)1:create(p,4)22请说明领域模型中要展示内容(三个方面),根据下面描述绘制出领域模型。假设一个公司雇佣了若干员工,每个员工的信息包括员工号码、姓名、地址和生日。该公司当前有几个项目,每个项目的信息包括项目名称和开始日期。每个员工可同时被分派到一个或几个项目中,也可以不做任何项目。每个项目至少由一个员工来承担。公司在每个月末给每个员工邮寄一张支票,支票上的数额与项目的性质和工作时间相关。请用一张类图描述上述情况。要求:给出相关的类、属性、方法和关联publicclassPayroll{privatePayrollDBitsPayrollDB;privatePayrollDispositionitsDisposition;//....publicvoiddoPayroll(){ListEmployeeemployeeList=itsPayrollDB.getEmployeeList();foreach(EmployeeeinemployeeList){boolflag=e.isPayDay();if(flag){doublepay=e.calculatePay();doubledeductions=e.calculateDeductions();itsDisposition.sendPayment(pay-deductions);}}}}23下面是Monopoly游戏设计过程中的一张每个轮次实现顺序图,请根
本文标题:UML补考练习汇总
链接地址:https://www.777doc.com/doc-2488624 .html