版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一叶落便知秋意浓,即使江南的绿色褪色之期晚了几许,南飞的大雁也会在天空一会儿排成一字,一会儿排成人字,秋天真的来了,中秋真的来了,国庆真的来了。
秋天,是一个丰硕的季节,它孕育着收获。
节日,是一个相聚的守候,它意味着团圆。
在这个萧瑟的天空下,节日只会提醒游子该回家了,看看久别的故土,看看年迈的父母,看看自己的过往;但是现实的境遇却让我们无法脱身,我们只能思念、感叹,每逢佳节倍思亲。
年年岁岁花相似,岁岁年年人不同。转眼,我们已经长大,离开了父母亲人,离开了学校师生,离开了书生意气的轻狂,开始学会一个人的生活,向大人的方向一步步的跟进。岁月在流逝,阅历随之增长,思乡之情越发疯狂的蔓延,就连睡梦呓语都是方言的味道。看的故事多了,心中对母爱、对父爱、对乡情有了更为独特的情愫,每逢佳节便撩动我多愁善感的心,思亲之情犹如海浪澎湃着我难以平静。
慈母手中线,游子身上衣。多少年过去了,我一直穿着母亲手工制作的鞋垫,从春花到秋实,从寒来至暑往,走完四季的轮回;从儿时母亲手工做的棉鞋到现在自己买的运动鞋,鞋垫陪我走完了懵懂的青春。去年的一天,母亲打电话问我穿多大的鞋,她说再给我做十双。我疑惑的问母亲为什么要做那么多,我穿不完。母亲说她眼睛看不清楚了,这是最后一次给我做鞋垫了,多做几双,多穿几年。听到这里我不禁留下了眼泪,瞬间感觉母亲已经老了,而我却远在千里之外不能尽孝。月有阴晴圆缺,人有悲欢离合,家乡发生了很多的事,电话成了我与亲人的寄托,虽然电话中父母的声音没有太大的变化,但是我脑中总会浮现他们日益憔悴的容颜。
夜深难眠的时候,我就会走上阳台,看看这个霓虹映衬的不夜城。看着高耸的楼房,看着明亮的月,看着静静夜。夜风带来阵阵桂花的余香,我似乎在花香里闻到了家乡桂花酒的味道,听见了家乡河水流淌的声音,各种野鸟的怪叫,还有父亲夜里的咳嗽。家、家乡、亲人都在记忆中,都在心中,平日里他们平静的像湖水,每当在团圆的时候便激起千层浪,不停地叩打着游子的心门。
又是一年月圆时,又是一年团聚日,常回家看看,父母早已在不知不觉中慢慢的老去,他们要求并不高,全家团圆便是福。不要让自己暂时的借口成为不回家的理由,留下子欲养而亲不待的终身遗憾。UML补考练习汇总1、请根据本学期的课程,结合实际软件开发过程,归纳出使用面向对象技术进行项目开发,需要开展哪些活动,你认为最关键的活动是什么?(A卷考过)用例模型:用例文本和用例图(1分)领域模型分析:领域模型(1分)用例顺序图分析:用例顺序图(1分)类图建模:类图(1分)最关键的活动是领域建模。(1分)2、“老师说要迭代开发,真是有道理。我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计….”,这句话正确吗?为什么?不对(2分),每次迭代都是一次软件开发完整的过程,不是按步骤的每次迭代完成不同的任务(3分)。3、假设要构造一个和用户下棋的游戏系统,哪些UML图对设计该游戏有帮助?为什么?(A卷考过)答:用例图、类图、顺序图(交互图)(2分),用例图可以归纳游戏系统需要完成的功能需求,类图分析了系统需要的类,及其承担职责,刻画了系统的静态结构。使用顺序图可以对具体场景的交互进行动态建模。理解系统的内部的交互过程。(3分)。4、在用例模型中,除了需要绘制用例图,最重要的是为每个用例编写用例文本,用例文本当中常有:主要参与者、涉众及其关注点、前置条件、后置条件、主成功场景、扩展场景、特殊需求等部分。阿呆比较笨,老是搞不清。请你告诉他那个部分最重要,解释该部分含义,并说明重要理由。主成功场景场景里面有对话功能,交互过程5、根据下列代码片断,画图说明已经创建的类的数据成员及类间的关系。(要求:如有关联需要标明关联的方向、角色名和多重性)[代码]publicclassCatalogueEntry{privateStringname;privateStringnumber;privateStringcost;···}publicclassPart{privateCatalogueEntryentry;···}▲6、通信图和顺序图都是交互图,阿呆不明白什么时候用通信图,什么时候用顺序图。请你为他解释顺序图和通信图的优点和缺点。顺序图和通信图的优缺点:顺序图对工具的支持更好,并有更多有效的表示法,可以更方便地表示调用流的顺序,并且在文档化方面更胜一筹。而通信图则必须查阅顺序绘制(或窄幅纸张)时不如通信图方便。7、Monopoly游戏中,由谁来创建Square对象比较合适?阿呆发现类图中有两个类都可以承担此职责:MonopolyGame和Board。他有点迷糊不知道该选那个比较好。请你帮他选一个,并解释理由。因为square是被包含关系,被包含于board所以由board来创建▲8、阿呆刚学过GRASP设计原则,觉得很不错,于是准备应用在设计的选课系统中,系统有课程类,课程类的实例包含某门课程的具体信息。阿呆就想,依据信息专家的原则,那么,该由课程对象把课程信息存入到数据库中。但是项目经理告诉他这样做不好。阿呆想不通,请你详细为阿呆解释一下,这样做有什么坏处,应该如何处理。(A卷考过)坏处:高内聚,低耦合,冗余高;应该虚构一个类来帮助解决参考P213将课程信息存入数据库的职责分配给课程类会造成课程类与数据库接口类的耦合,面向数据库的操作与实际的课程类无关,使得课程类非内聚,不利于数据库操作的复用,其它类也存在保存对象的职责。在某些情况下,专家模式建议的方法并不好,这是由于耦合与内聚问题所产生的。专家会建议由课程对象把课程信息存入到数据库中,那么按照这个决定进行逻辑推理,每个类都应当把自身保存到数据库中。但这样会导致内聚,耦合,及冗余方面的问题,例如现在课程类必须包含于数据库处理相关的逻辑,如SQL和JDBC相关的处理逻辑。因此,课程类由于存在其他职责而降低了它的内聚,这个类必须与其他子系统的数据服务进行耦合,会使得耦合度上升。这样会导致大量持久性类中重复出现类似的数据库逻辑,有大量的冗余。所以这样的做法违反了基本架构原则,应将应用逻辑和数据库逻辑放置不同一处,而不是在同一构件中把不同的系统关注混合起来。因此,按照专家模式,该由课程对象把课程信息存入到数据库中是合理的,但由于其他原因,会使得我们最终得出不佳的设计9、请你详细说明一下领域模型与设计类图的相同点及不同点。相同点领域模型是没有方法的类图的集合不同点领域模型只有属性无类型无方法类图包括类名,属性,操作10下图是一个“涉税服务管理效能管理系统”中类模型的一个局部,请根据该图回答以下问题。在描述“税务审批服务申请”时,它主要包含哪几个方面的内容?它有几种不同的类别?(A卷考过)1:三个指向他的“申请”2:4个被它指向的11POS系统中,当顾客以支付货款时,需要计算出支付余额。阿呆发现类图中有两个类都可以承担此职责:Sale和Payment。他有点迷糊不知道该选那个比较好。请你帮他选一个最佳方案,并解释理由。选SALE,因为SALE只需要一条线连接到paymant,而payment却需要两条连接到SALE根据内聚耦合原理,应当选择SALE(A卷考过)▲12搬了新家,阿呆决定去申请安装ADSL,他到营业厅填好单,和证件一起交给营业员。营业员查看阿呆的证件,接过单子开始操作电脑。如果站在营业员身后,会看见营业员打开一个“受理”菜单,选择“ADSL”,弹出一个带有好多个Tab的框框,营业员哔哩叭啦把数据输进去,然后让阿呆设置一个服务密码,又过一阵,营业员递出单子,告诉阿呆回家等,施工人员一天内就到。阿呆高兴的出门。营业员叹了一口气,想“又弄完一个”……考虑营业员的“ADSL业务受理系统”,根据上述信息,分析下面所列对象或事件归属那一类别,并在表中填写。(注意,所列的对象或事件有可能属于多个类别,也有可能都不属于任何一类,多填或少填都不得分,涉众填不全扣一分)对象或事件:阿呆 营业员 设置密码 施工人员 受理ADSL申请 安装ADSL“受理”菜单类别:主参与者辅助参与者 用例 涉众主参与者营业员辅助参与者阿呆用例受理ADSL申请涉众施工人员13状态图是为某个对象的状态和事件以及响应事件的行为的建模。下面的普通电话机的状态图,技术经理已经使用状态图对其详细建模,但阿呆不小心把图弄模糊了,请你帮忙补充完整。(状态及事件名可以中文表示)(1)Active(2)PlayingDialTone(3)Dialing(4)Connecting(5)Talking14请根据下列代码片断,画出设计类图。注意类,类的属性和方法以及类之间关联,关联的导航性、多重性或是角色名。Storestore=newStore();Storestore=newStore();Registerregister=store.getRegister();intt=store.getNo();ProductCatalogcatalog=newProductCatalog();register.setNo(t);register.setCatalog(catalog);ProcessSaleJFrameframe=newProcessSaleJFrame(register);15.下面是航空公司系统的部分类模型,模型里的类都是需要持久存储的对象。请你为阿呆设计一个将该类图映射为关系数据库中的表的方案。即数据库中该有用那些表存储这些类的数据,这些表该有那些列。(表的主键外键要说明)(A卷考过)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函数实现的顺序图。publicclassPayroll{publicclassPayroll{privatePayrollDBitsPayrollDB;privatePayrollDispositionitsDisposition;//....publicvoiddoPayroll(){List<Employee>employeeList=itsPayrollDB.getEmployeeList();foreach(EmployeeeinemployeeList){boolflag=e.isPayDay();if(flag){doublepay=e.calculatePay();doubledeductions=e.calculateDeductions();itsDisposition.sendPayment(pay-deductions);}}}}20我家超级市场是大型的连锁零售商场,销售各类商品,超市的收银员使用POS收银系统处理用户的销售。请问收银员是处于POS收银系统的边界外还是边界内?为什么?21详细解释下列消息。(说明消息名称、参数、返回值等)(1)2:display(x,y)(2)1.3.1:p:=find(specs)(3)[x<0]4:invert(x,color)(4)3.1*:update()(5)1:create(p,4)22请说明领域模型中要展示内容(三个方面),根据下面描述绘制出领域模型。假设一个公司雇佣了若干员工,每个员工的信息包括员工号码、姓名、地址和生日。该公司当前有几个项目,每个项目的信息包括项目名称和开始日期。每个员工可同时被分派到一个或几个项目中,也可以不做任何项目。每个项目至少由一个员工来承担。公司在每个月末给每个员工邮寄一张支票,支票上的数额与项目的性质和工作时间相关。请用一张类图描述上述情况。要求:给出相关的类、属性、方法和关联23下面是Monopoly游戏设计过程中的一张每个轮次实现顺序图,请根据顺序图所示,写出takeTurn方法的基本实现代码。其中dice[i]中i等于2。(包括函数的定义,函数所在类的定义。)24请根据下面描述回答相应问题:学院图书馆需要一个新的图书管理系统管理图书资源。图书由图书馆顾客借出、还入和预定。当图书逾期一周时,会以电子邮件的方式通知顾客。图书每逾期一天,顾客将被罚1元。每本书最多罚款10元。顾客出有不同身份,这些身份能够影响一本书被借出的时间。不同的身份所获得的服务也不同。学生借书可借出四周,教师可借阅两个月,图书馆工作人员可以把书保留三个月。只要没有其他顾客要求借阅,任何可借出的图书馆资源都可以续借。图书管理系统必须联网,顾客可以通过浏览器进行检索和预订。(1)请画出该图书管理系统的主要用例图。(2)建立该图书管理系统的领域模型。25.GRASP是什么的缩写(中文意思也可以),简述“信息专家”(InformationExpert)设计原则的内容。举例说明。简述“控制器(Controller)设计原则的内容。举例说明。答:GRASP:GeneralResponsibilityAssignmentSoftwarePatterns,通用职责分配软件模式。信息专家:对象具有某方面完整的信息,应将操作信息的职责交给这个对象。这个对象就是所谓的信息专家。如销售总额的获得,应当寻找具有确定总额所需信息的那个对象负责。控制器:虚构出一个用来接收和处理系统事件的职责的类。如Pos系统中处理销售用例,外部参与者的发出请求首先提交给Register控制器处理26.请解释和比较用例图中用例间的扩展(<<extend>>)和包含(<<include>>)两种关系。答:扩展关系:扩展用例是基用例的一段相对独立并且可选的动作流 包含关系:使用包含(Inclusion)用例来封装一组跨越多个用例的相似动作(行为片断),以便多个基(Base)用例复用。27在面向对象分析过程中,寻找对象、类、属性、属性值的策略是什么?答:采用名词法,把需求分析中出现的名词全部列举出来,再进筛选。有的名词可能转化为对象,有些名词可能建模为对象的属性。对找出的对象进行数据抽象,提取出类。公司可以雇用多人,人也可以为多个公司工作。每个公司只有一个总经理。下面的经理可以管理多个员工,请在下图中的关联线上加上适当标注(关联名、角色和多重性),使上述含义清楚。(请标注在答题纸上)答:28.请写出类图对应的面向对象代码。ClassPerson{ Companyemployer; Publicvoidassign(Departmentd){…} PublicvoidsetCompensation(Salarys){…}}ClassCompany{ Personemployee[10]; …}29.下面描述飞行公司雇员的类图,请将该类图映射为关系数据库中的表。映射为一个表:EmployeeID,name,taxpayerNumber,employeeType,flightRating,positionEmployeeID为主键。employeeType为新增的字段,类的类型。30.下面给出了预订航班用例的主要成功场景:用例:预订航班的主成功场景1.顾客向系统提交航班预订信息(出发地、目的地、出发日期和人数)2.系统检索满足这些条件的航班3.系统显示满足条件的航班信息4.顾客选择所要的航班5.系统检索该航班剩余的座位信息6.系统显示可预订的座位信息7.顾客选择所要的座位8.系统生成一个临时预订记录9.系统将顾客所选择的座位状态从“未预订”修改为“已预订”……分析员张三认为与该用例相关的对象至少有Reservation(预订)、Seat(座位)和Flight(航班)。请绘制出该用例主成功场景顺序图(请补充必要的对象)31.设计一个电子投票系统。一次电子投票可能涉及到一个或多个职位的竞选,每个职位的竞选涉及到多个候选人。在一个具体的职位竞选时,投票人能看到该职位的名称及相应的候选人(每个职位的候选人不超过5个),投票者只能为该职位选中一个候选人。每个职位的竞选作为一屏独立的信息提交给投票者,投票机由一名监督员启动。每个投票者在投票前必须输入自己的身份证号码,以避免多次投票给同一个候选人。投票者可以查看每个职位的竞选信息并投票,也可以翻屏的方式返回先前的屏幕修改投票决定。当投票结束时,投票者将看到自己给每个职位的投票结果。每个职位的投票结果(职位的名称和每个候选人的得票数)将以独立的一屏信息显示。请根据上述情况,建立该电子投票系统的领域模型。32.下面的代码描述了一个DataSet类,该类提供了对一组数据的基本统计功能,以及一个ExamMarks类,它使用期DataSet存储并计算一组考试分数的平均值。主函数展示了读入两个分数,用ExamMarks保存它们,并打印输出平均值。画一个顺序图,说明主函数执行时发生的交互。(8分)DataSet类classDataSet{ privatefloatdata[]; privateintitems; publicDataSet(){ data=newfloat[256]; items=0;}publicvoidaddDataPoint(floatd){ data[items++]=d;}publicfloatmean(){ floattotal=0; for(inti=0;i<getSize();i++){ total+=data[i]; }returntotal/getSize();}publicintgetSize(){ returnitems;}}ExamMarks类和Average类:ClassExamMarks{ privateDataSetmarks; publicvoidenterMark(floatm){ if(marks=null){ marks=newDataSet(); } Marks.addDataPoint(m); } floataverage(){ returnmarks.mean(); }}publicclassAverage{ publicstaticvoidmain(Stringargs[]){ ExamMarksexam=newExamMarks(); exam.enterMark(56); exam.enterMark(72); System.out.println(exam.average());}}33.通常自动售货机会按用户的要求进行自动售货。供货员会巡查向其内供货,取款员会定时取款。请根据上述描述建立用况图。34假设一个公司雇佣了若干员工,每个员工的信息包括员工号码、姓名、地址和生日。该公司当前有几个项目,每个项目的信息包括项目名称和开始日期。每个员工可同时被分派到一个或几个项目中,也可以不做任何项目。每个项目至少由一个员工来承担。公司在每个月末给每个员工邮寄一张支票,支票上的数额与项目的性质和工作时间相关。请用一张类图描述上述情况。要求:给出相关的类、属性、方法和关联。35某订单管理系统的部分UML类图如图所示。图 订单管理系统的部分UML类图在图中,Product表示产品,ProductList表示所销售产品的列表,Order表示产品订单,OrderItem表示产品订单中的一个条目,OrderList表示订单列表,SalesSystem提供订单管理系统的操作接口。有个用例要求依次统计产品目录中每个产品的订购总量,并打印出每个产品的编号、说明、订购总量和订购金额请依据类图,绘制此统计用例的用例顺序图。36、请根据下列的类图,分析需要持久化这些类所需要的数据库模型,请注明主键和外键。(8分)(如:Student:studentNo,name,major,class,CourseNo主键:studentNo;外键:CourseNo)chairperson:系主任/院长答:School:id,name,address,phone;主键:idStudent:studentID(主键),name,schoolId(外键)Course:CourseID(主键),nameStudentCourse:studentID,courseIDCourseInstructor:courseID,instructorIDInstructor:id,name,departmentId,Department:id,name,schoolId,chairperson37考虑一个实际的超级市场,下面是给出的一张用例图。请为“购买商品”用例编写主场景流程,并给出在“购买商品”主场景中可能出现的异常情况(简要列举)。答:购买商品主场景流程客户带着商品来到柜台收银员扫描客户的每项商品收银员计算商品的总金额、含税收银员询问支付形式客户给了一张信用卡收银员扫描了信用卡校验器报告信用卡付款是可以接受的客户签署信用卡收条例外情况某项商品扫描出错信用卡扫描出错UML试卷一、选择题:(共10题,共20分)1、 在Java程序中,对象之间的相互通信通过(B)A、继承实现B、调用成员函数实现C、封装实现D、函数重载实现2、 为了描述和理解系统中的控制机制,如为了描述一个设备控制器在不同情况下所要完成的动作,下面几个图中哪个图是最有用的?(B)A、交互图 B、活动图 C、状态图 D、类图3、对于用例分析的正确与否,有一些简单的方法,如老板测试,不能通过老板测试的用例是(C)A、处理退货 B、协商合同 C、用户登录 D、处理销售4、GRASP原则一共9种,其中不包括的是(D) A、多态B、高内聚 C、低耦合 D、封装5、 Innovation公司在为Rose开发插入件,使得Rose可以把OOA/OOD模型以各种图形格式导出。如JPEG格式、BMP格式、GIF格式等。在导出时,会根据不同的算法生成相应的图形文件,这些算法很复杂。为了描述这些算法,在下面这些图中,哪个图是最合适的?(A) A、活动图 B、状态图 C、类图 D、用例图6、 依据如下顺序图,选择类Account必须实现哪些方法?(A) A、withdraw,checkBalance B、withdraw,checkBalance,log C、withdraw,checkBalance,acknowledge D、withdraw,checkBalance,log,acknowledge 7、 有如下图关系及根据类创建的对象,编译器允许执行的赋值语句是(C) Shapesh; Triangletr=newTriangle(); Squaresq=newSquare(); A、tr=sq B、sq=sh C、sh=tr D、sq=tr8、 下列是阿呆给一些用例的命名,(C)用例命名最好。 A、进行图像导入 B、导入图像C、处理图像 D、图像处理9、分层结构系统中,消息通常从顶层流向底层。但有些消息却是从底层流向顶层,需要层间的向上协作模式。下面不能实现层间向上协作的方式是() A、观察者模式B、UI外观模式C、控制器模式D、界面轮询模式10、 下面的图1和图2分别说明了Car和Color类之间的关系是(C) A、图1:聚合;图2:组合 B、图1:属性;图2:聚合 C、图1:属性;图2:组合 D、图1:组合;图2:属性 二、简答题(共7题,共32分)1、请根据本学期的课程,结合实际软件开发过程,归纳出使用面向对象技术运行项目开发,需要开展哪些活动,你认为最关键的活动是什么?(6分)需求分析;用例图建模;领域模型建模;系统顺序图和操作契约用例实现交互图建模;设计类图建模;逻辑架构设计建模关键的活动:用例实现交互图建模实验八逻辑架构设计建模2、“老师说要迭代开发,真是有道理,我决定在我们的项目组实施迭代开发,第一迭代先做需求,第二个迭代做分析,第三个迭代做设计……”这句话正确吗?为什么?(4分)错误,迭代不同于传统的瀑布模型,并不按照先做需要,再做分析,设计这样一个阶段接一个阶段进行,迭代是把一个项目分成多个小项目,每个小项目都经历各自的需求分析,设计,实现和测试活动,以循环反馈和调整为核心,每次迭代都对现有系统进行扩展和精化,最后成为适当的系统。3、假设要构造一个和用户下棋的游戏系统,哪些UML图对设计该游戏有帮助?为什么?(4分)用例图领域模型交互图类图4、我家超级市场是大型的连锁零售商场,销售各类商品,超市的收银员使用POS收银系统处理用户的销售。请问收银员是处于POS收银系统的边界外还是边界内?为什么?(4分)在边界外,POS系统是要被设计的系统,任何该系统之外的事物都在系统边界之外,收银员是外部参与者,是使用POS系统完成一系列行为的外部参与者。5、系统的分层实现让阿呆很困惑。因为系统如果分为视图层、业务层、持久层,对于某一模块的实现每一层都写代码,每间层的交互处理增加了麻烦。如果用户点击某个按钮,直接在按钮事件里编写实现的代码,既直接,又方便。请你说明分层模式实现系统的理由,说服阿呆采用分层的方式实现系统。(5分)1•好的分层体系结构使系统易于扩展和维护–做到关系分离、高级服务和低级服务分离、特定于应用的服务与一般性服务分离–对某一特定层进行修改而不会影响到任何其他层–层是模块化的,可以重写某一层,或是整个替换某一层,只要接口不变,系统其他层次不受影响。这样,某些层能够用新的实现替换2•在各层之间限制消息流动,减少层次耦合,增加移植性3•某些层可以分布式实现4•利于在中间层实施安全特性5•通过逻辑划分,有助于团队开发6、阿呆刚学过GRASP设计原则,觉得很不错,于是准备应用在设计的选课系统中,系统有课程类,课程类的实例包含某门课程的具体信息。阿呆就想,依据信息专家的原则,那么,该由课程对象把课程信息存入到数据库中。但是项目经理告诉他这样做不好。阿呆想不通,请你详细为阿呆解释一下。(5分)参考P213将课程信息存入数据库的职责分配给课程类会造成课程类与数据库接口类的耦合,面向数据库的操作与实际的课程类无关,使得课程类非内聚,不利于数据库操作的复用,其它类也存在保存对象的职责。在某些情况下,专家模式建议的方法并不好,这是由于耦合与内聚问题所产生的。专家会建议由课程对象把课程信息存入到数据库中,那么按照这个决定进行逻辑推理,每个类都应当把自身保存到数据库中。但这样会导致内聚,耦合,及冗余方面的问题,例如现在课程类必须包含于数据库处理相关的逻辑,如SQL和JDBC相关的处理逻辑。因此,课程类由于存在其他职责而降低了它的内聚,这个类必须与其他子系统的数据服务进行耦合,会使得耦合度上升。这样会导致大量持久性类中重复出现类似的数据库逻辑,有大量的冗余。所以这样的做法违反了基本架构原则,应将应用逻辑和数据库逻辑放置不同一处,而不是在同一构件中把不同的系统关注混合起来。因此,按照专家模式,该由课程对象把课程信息存入到数据库中是合理的,但由于其他原因,会使得我们最终得出不佳的设计。7、根据下列代码,画图说明已经创建的类的数据成员及类间的关系。(要求:如有关联需要表明关联的方向、角色名和多重性)(4分)[代码]1..*11..*1三、简单分析题(每题5分,共3题,共15分)1、常见的网上商店里的购物车(ShopCart),需要让每种商品(Item)只在购物车内出现一次,购买相同商品只需要更新商品的数量即可。(类图如下)。当往购物车内添加商品时,需要比较是否有相同的商品在购物车内。请问这个比较商品是否相同的职责由那个类实现比较合适?为什么?(5分)利用信息专家原则,这个比较商品的职责属于购物车的,所以由购物车类实现2、搬了新家,阿呆决定去申请安装ADSL,他到营业厅填好单,和证件一起交给营业员。营业员查看阿呆的证件,接过单子开始操作电脑。如果站在营业厅身后,会看见营业员打开一个“受理”菜单,选择“ADSL”,弹出一个带有好多个Tab的框框,营业员哗哩吧啦把数据输进去,然后让阿呆设置一个服务密码,又过一队,营业员递出单子,告诉阿呆回家等,施工人员一天内就到。阿呆高兴的出门。营业员叹了一口气,想“又弄完一个”…….考虑营业员的“ADSL业务受理系统”,根据上述信息,分析下面所列对象或事件的归属那一类别,并在表中类别填写。(有可能属于多个类别,也有可能都不属于任何一类)(5分)对象或事件:阿呆营业员 设置密码施工人员 受理ADSL申请安装ADSL类别:主参与者辅助参与者用例涉众主参与者营业员辅助参与者阿呆用例设置密码受理ADSL申请涉众施工人员3、状态图是为某个对象的状态和事件以及响应事件的行为的建模。下面的普通电话机的状态图,技术经理已经使用状态图对其详细建模,但阿呆不小心把图弄模糊了,请你帮忙补充完整。(5分)(1)Active(2)PlayingDialTone(3)Dialing(4)Connecting(5)Talking四、分析题(共4题,共33分)1、下面的代码描述了一个DataSet类,该类提供了对一组数据的基本统计功能,以及一个ExamMarks类,它使用DataSet存储并计算一组考试分数的平均值。主函数展示了读入两个分数,用ExamMarks保存它们,并打印输出平均值。请画一个顺序图,说明主函数执行时发生的交互。(注意:下面的代码是左右排版)。(8分)DataSet类ExamMarks类和Average类2、请根据下面描述绘制出汽车公司调度管理系统的领域模型。阿呆开设了一家汽车公司专门为学生服务,公司拥有40俩汽车,服务对象是1600个学生。汽车日常行驶的路线有30条,但在节假日等特殊日子里会临时增加新的路线。每条路线上设有许多站牌,学生们可在这些地方上下车。公司雇佣了20个全职的司机和30个兼职的司机。汽车公司设有一个调度员,专门负责司机和路线的安排。该调度员也负责学生和家长们上下车的地点以及时间等方面的特别要求传达给司机。当路线变更或增添新路线时,调度员必须将这些信息传达给司机、学生和家长。公司经常会收到学生和家长们对司机的投诉。如果投诉的情况相当严重,司机有可能会被停职甚至被解雇。另外,公司也可能会招募新员工,以代替被解雇和退休的员工,或配备给新的路线。(9分)3、下面是航空公司系统的部分类模型,模型里的类都是需要持久存储的对象。请你为阿呆设计一个将该类图映射为关系数据库中的表的方案。即数据库中该有用哪些表存储这些类的数据,这些表该有哪些列。(7分)Airline(AlID,name,symbol)Employee(idCard,name,AlID)Pilot(idCard,fightRating)FightAssistant(idCard)Fight(fightNum,date,pilotID,copilotID,AlID)AttendantAssignment(fightNum,idCard)4、下面是收音机系统设计过程中的一张为客户折扣创建定价策略顺序图,请根据顺序图所示,写出addCustomerPricingStrategy方法的基本实现代码。(包括函数的定义,函数所在类的定义。Strategy:策略,Factory:工厂,Composite:组合,Percentage:百分比)(9分)(A卷考过)下午13:00—17:00B.实行不定时工作制的员工,在保证完成甲方工作任务情况下,经公司同意,可自行安排工作和休息时间。3.1.2打卡制度3.1.2.1公司实行上、下班指纹录入打卡制度。全体员工都必须自觉遵守工作时间,实行不定时工作制的员工不必打卡。3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。3.1.2.3打卡时间:打卡时间为上班到岗时间和下班离岗时间;3.1.2.4因公外出不能打卡:因公外出不能打卡应填写《外勤登记表》,注明外出日期、事由、外勤起止时间。因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写《未打卡补签申请表》,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。上述情况考勤由各部门或分公司和项目文员协助人力资源部进行管理。3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。3.1.2.9外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司规定的休息日仍照常工作的情况。A.现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次。部门经理要严格审批员工排班表,保证员工有效工时达到要求。凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应说明理由,报主管副总和人力资源部审批。B.因员工月薪工资中的补贴已包括延时工作补贴,所以延时工作在4小时(不含)以下的,不再另计加班工资。因工作需要,一般员工延时工作4小时至8小时可申报加班半天,超过8小时可申报加班1天。对主管(含)以上管理人员,一般情况下延时工作不计加班,因特殊情况经总经理以上领导批准的延时工作,可按以上标准计加班。3.2.2.2员工加班应提前申请,事先填写《加班申请表》,因无法确定加班工时的,应在本次加班完成后3个工作日内补填《加班申请表》。《加班申请表》经部门经理同意,主管副总经理审核报总经理批准后有效。《加班申请表》必须事前当月内上报有效,如遇特殊情况,也必须在一周内上报至总经理批准。如未履行上述程序,视为乙方自愿加班。3.2.2.3员工加班,也应按规定打卡,没有打卡记录的加班,公司不予承认;有打卡记录但无公司总经理批准的加班,公司不予承认加班。3.2.2.4原则上,参加公司组织的各种培训、集体活动不计加班。3.2.2.5加班工资的补偿:员工在排班休息日的加班,可以以倒休形式安排补休。原则上,员工加班以倒休形式补休的,公司将根据工作需要统一安排在春节前后补休。加班可按1:1的比例冲抵病、事假。3.2.3加班的申请、审批、确认流程3.2.3.1《加班申请表》在各部门文员处领取,加班统计周期为上月26日至本月25日。3.2.3.2员工加班也要按规定打卡,没有打卡记录的加班,公司不予承认。各部门的考勤员(文员)负责《加班申请表》的保管及加班申报。员工加班应提前申请,事先填写《加班申请表》加班前到部门考勤员(文员)处领取《加班申请表》,《加班申请表》经项目管理中心或部门经理同意,主管副总审核,总经理签字批准后有效。填写并履行完审批手续后交由部门考勤员(文员)保管。3.2.3.3部门考勤员(文员)负责检查、复核确认考勤记录的真实有效性并在每月27日汇总交人力资源部,逾期未交的加班记录公司不予承认。下午13:00—17:00度。全体员工都必须自觉遵守工作时间,实行不定时工作制的员工不必打卡。3.1.2.2打卡次数:一日两次,即早上上班打卡一次,下午下班打卡一次。3.1.2.3打卡时间:打卡时间为上班到岗时间和下班离岗时间;3.1.2.4因公外出不能打卡:因公外出不能打卡应填写《外勤登记表》,注明外出日期、事由、外勤起止时间。因公外出需事先申请,如因特殊情况不能事先申请,应在事毕到岗当日完成申请、审批手续,否则按旷工处理。因停电、卡钟(工卡)故障未打卡的员工,上班前、下班后要及时到部门考勤员处填写《未打卡补签申请表》,由直接主管签字证明当日的出勤状况,报部门经理、人力资源部批准后,月底由部门考勤员据此上报考勤。上述情况考勤由各部门或分公司和项目文员协助人力资源部进行管理。3.1.2.5手工考勤制度3.1.2.6手工考勤制申请:由于工作性质,员工无法正常打卡(如外围人员、出差),可由各部门提出人员名单,经主管副总批准后,报人力资源部审批备案。3.1.2.7参与手工考勤的员工,需由其主管部门的部门考勤员(文员)或部门指定人员进行考勤管理,并于每月26日前向人力资源部递交考勤报表。3.1.2.8参与手工考勤的员工如有请假情况发生,应遵守相关请、休假制度,如实填报相关表单。3.1.2.9外派员工在外派工作期间的考勤,需在外派公司打卡记录;如遇中途出差,持出差证明,出差期间的考勤在出差地所在公司打卡记录;3.2加班管理3.2.1定义加班是指员工在节假日或公司规定的休息日仍照常工作的情况。A.现场管理人员和劳务人员的加班应严格控制,各部门应按月工时标准,合理安排工作班次。部门经理要严格审批员工排班表,保证员工有效工时达到要求。凡是达到月工时标准的,应扣减员工本人的存休或工资;对超出月工时标准的,应
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论