阅读下列说明和图,回答【问题1】至【问题3】,将解答填入答题纸的对应栏内。 【说明】 某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析阶段的工作,功能需求均使用用例进行描述,其中用例“借书(Check Out 800ks)”的详

admin2015-12-01  27

问题 阅读下列说明和图,回答【问题1】至【问题3】,将解答填入答题纸的对应栏内。
    【说明】
    某高校图书馆欲建设一个图书馆管理系统,目前已经完成了需求分析阶段的工作,功能需求均使用用例进行描述,其中用例“借书(Check Out 800ks)”的详细描述如下。
    参与者:读者
    典型事件流:
    1.输入读者ID:
    2.确认该读者能够借阅图书,并记录读者ID;
    3.输入所要借阅的图书ID;
    4.根据图书目录中的图书ID确认该书可以借阅,计算归还时间,生成借阅记录;
    5.通知读者图书归还时间;
    重复步骤3~5,直到读者结束借阅图书。
    备选事件流:
    2a.若读者不能借阅图书,说明读者违反了图书馆的借书制度(例如,没有支付借书费用等)。
    ①告知读者不能借阅,并说明拒绝借阅的原因;
  ②本用例结束。
  4a.读者要借阅的书无法外借。
  ①告知读者本书无法借阅;
  ②回到步骤3。
  说明:图书的归还时间与读者身份有关。如果读者是教师,图书可以借阅一年:如果是学生,则只能借阅3个月,读者ID中包含读者身份信息,现采用面向对象方法开发该系统,得到如图3—1所示的系统类模型(部分);以及如图3—2所示的系统操作。“Checkout(bookID).(借书)“通信图”(或协作图)。

【问题1】
    根据说明中的描述,以及图3—1和图3—2,给出图3—1中C1一C4处所对应的类名(类名使用图3—1和图3—2中给出的英文词汇)。
【问题2】
    根据说明中的描述,以及图3—1和图3—2,给出图3—2中M1一M4处所对应的方法名(方法名使用图3一l和图3—2中给出的英文词汇)。
【问题3】
    用例“借书”的备选事件流4a中,根据借书制度来判定读者能否借阅图书,随着图书馆的借书制度会不断地扩充,并需要根据图书馆的实际运行情况来调整具体使用哪些制度,为满足这一要求,在原有类设计的基础上,可以采用何种设计模式?简要说明原因。

选项

答案【问题1】 C1:Patron C2:Book C3:Catalog C4:CheckoutSessioncontrolIer 【问题2】 M1():getforcheck(b00kID)M2():isFacultyo M3():circulateso M4():recordBookLoan 【问题3】 应采用策略模式,策略模式的优势在于可以灵活的添加对同一问题的不同处理方案,这与题目要求非常吻合。

解析 【问题1】
    根据系统类模型,我们可以各个类之间的关联关系。
    首先从类Acoonts中的canCheckOut(patronID:string)方法,可以看出Accouts关联Patron,因此图中C1为Patron。
    C1为Patron,则CI必会与书关联,从C1中的recordBookLoad(b,C2),可以看出C1关联C2。因此C2为Book。
    C2为Book,根据系统操作checkOut的通信图,可以看出与Book关联的是Catalog,因此C3为Catalog。
    结合两图,则可以得出C4为CheckoutSessioncontroller.
    【问题2】
    结合典型事件流:
    1.输入读者ID;
    2.确认该读者能够借阅图书,并记录读者ID;
    以上两步实际上就是判断读者是不是老师,也就是isFaculty(),因此M2为isFaculty();
    3.输入所要借阅的图书ID;对应的操作就是M1:getforcheck(bookID);
    4.根据图书目录中的图书ID确认该书可以借阅,计算归还时间,生成借阅记录;对应的操作就是M3:circulates(  );
    5.通知者图书归还时间,对应的操作就是M4:recordBookLoan()。
转载请注明原文地址:https://kaotiyun.com/show/RdDZ777K
0

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