更多“根据说明中的描述,给山图3-1中(1)~(6)处的多重度。 ”相关问题
  • 第1题:

    根据【说明】中的描述,给出图6—5中(1)一(4)处对应的活动名称或图形符号。


    正确答案:

  • 第2题:

    识别关联的多重度是面向对象建模过程中的一个重要步骤。根据[说明]中给出的描述,完成图10-4中的(1)~(6)。


    正确答案:(1)1 (2)0..* (3)1 (4)0..* (5)1 (6)1或者0..1
    (1)1 (2)0..* (3)1 (4)0..* (5)1 (6)1或者0..1 解析:本题主要考查面向对象分析中类图的设计,涉及到类的识别、属性的识别以及多重度的计算。
    [问题1]要求的是将所有的类找出来。由于[说明]中给出了识别类的规则,并给出了所有的候选类和一张不完整的类图,从而为我们提供了大量的提示信息。从类图可以看出,这里有一个继承结构,确实这两个类恰好是这个继承结构的子类。根据[说明]中提供信息,我们发现只有“资源”、“图书”和“唱片”这三者之间存在着继承结构所描述的“一般—特殊”关系。因为“图书”和“唱片”都是图书管理系统中的资源,因此具有共性 (索引号、名称、出版时间、资源状态);而这两者又是两种完全不同的事物,所以有着各自特有的性质。同时,这三者又都在候选类集合中。所以可以断定(b)、(c)处要填的类就是“唱片”和“图书”。这里连这三个类的属性也可以完全确定了。类CatalogItem描述的是共性,所以它的属性是索引号、名称、出版时间、资源状态。由[说明]中第2条可以确定,“图书”的属性是作者和页数;“唱片”的属性是演唱者和介质类型。
    下面需要确定(a)处的类到底是什么?从[说明]中的第1条和表10-5可以看出, CatalogItem表示的是“资源目录保存的每项资源”,这是集合(资源目录)与其中的元素的概念。所以(a)处的类应该是“资源目录”一既然明确这里是集合的概念,(1)和 (2)处的多重度也可以确定了。CatalogItem表示的是部分,所以(1)处应填1,(2)处应填1..*(0..*也可以)。
    类似的,BorrowerDB与Borrower之间也具有相似的关系。因为数据库中可以保存多个读者的信息。因此(3)处填1,(4)处填1..*(0..*也可以)。系统为每个读者都创建了借书记录文件,所以(5)处填1,(6)填1(0..1也可以)。

  • 第3题:

    阅读下列说明和图,回答问题1至问题3.将解答填入答题纸的对应栏内。

    【说明】

    某公司欲开发一个管理选民信息的软件系统。系统的基本需求描述如下:

    (1)每个人(Person)可以是一个合法选民(Eligible)或者无效的选民(Ineligible)。

    (2)每个合法选民必须通过该系统对其投票所在区域(即选区,Riding)进行注册

    (Registration)。每个合法选民仅能注册一个选区。

    (3)选民所属选区由其居住地址(Address)决定。假设每个人只有一个地址,地址

    可以是镇( Town)或者城市(City)。

    (4)某些选区可能包含多个镇,而某些较大的城市也可能包含多个选区。

    现采用面向对象方法对该系统进行分析与设计,得到如图3-1所示的初始类图。

    【问题1】(8分)

    根据说明中的描述,给出图3-1中C1-C4所对应的类名(类名使用说明中给出的

    英文词汇)。

    【问题2】(3分)

    根据说明中的描述,给出图3-1中Ml-M6处的多重度

    【问题3】(4分)

    现对该系统提出了以下新需求:

    (l)某些人拥有在多个选区投票的权利,因此需要注册多个选区:

    (2)对于满足(1)的选民,需要划定其“主要居住地”,以确定他们应该在哪个

    选区进行投票。

    为了满足上述需求,需要对图3-1所示的类图进行哪些修改?请用100字以内

    文字说明。


    正确答案:
    本题属于经典的考题,主要考查面向对象分析方法与设计的基本概念与应用。在建模方面,本题中只涉及到了UML类图。类图上的考点也是比较常规的对类的识别以及多重度的确定,题目难度不大。【问题1】根据【说明】中的“(l)每个人(Person)可以是一个合法选民(Eligible)或者无效的选民(Ineligible)”,可以推断出这里有一个“一般/特殊”关系,应采用继承结构。再对照类图,C3、C4处显而易见应该是Ineligible和Eligible。由于C4和C2之间的关联关系,这里C3和C4的答案是不能互换的。根据【说明】中的“(3)选民所属选区由其居住地址(Address)决定。假设每个人只有一个地址,地址可以是镇(Town)或者城市(City)”,可以推断出Cl、City、Town这3个类描述的是与地址相关的内容,因此C1处应该是Address。对应地,C2处应该是Riding,这个由C2与City.C2与Town之间的联系名称“district”也能推断出来。【问题2】对于联系的多重度的判定,应注意题目中关于不同概念之间关联数量的描述。Ml、M2这一对多重度,刻画的是“Person”和“Address”之间的关系。由【说明】中的“假设每个人只有一个地址”,可以得出Ml和M2处分别为1和*。M3和M4描述的是合法选民与选区之间的关系。由【说明】中的“每个合法选民仅能注册一个选区”,可知M3和M4分别为*和1。M5和M6描述的是选区和地址之间的关系。在【说明】中假设,每个合法选民在选区中只注册一个地址,因为M5和M6处分别为*和1。【问题3】本问题考查当需求发生变化时,对设计模型的修改。这里给出了两个需求变更,分别对初始类图进行修改。需求1:某些人拥有在多个选区投票的权利,因此需要注册多个选区。由于选区由住址确定,能够在多个选区注册,意味着其居住地址不止一个。所以“Person”和“Address”之间的多重度会发生变化。在选区注册时所使用的地址也不唯一了,因此需要增加属性来记录在注册选区时所使用的地址,从而对C2和C4之间的关联类进行修改,增加其属性。需求2:对于满足需求1的选民,需要划定其“主要居住地”,以确定他们应该在哪个选区进行投票。这个需求对选民的地址信息提出了更为详细的需求,按照面向对象方法将“不变部分和可变部分分离”的思想,在类图中增加一个新的类,并采用继承机制继承原有Address类中的共性元素。试题三参考答案【问题1】C1:AddressC2:RidingC3:IneligibleC4:Eligible【问题2】Ml:lM2:*或0...*M3:*M4:1M5:*M6:1【问题3】(1)M1处改为I..*,在Registration类中增加address属性,指明注册时使用的是哪个地址。(2)增加一个类“主要居住地”,作为类Address的子类:类Person与类“主要居住地”之间具有关系联系,且每个人只有一个主要居住地。

  • 第4题:

    识别关联的多重度是面向对象建模过程中的一个重要步骤。请根据说明中给出的描述,将图1-11中 (1)~(8)空缺处的内容填写完整。


    正确答案:由题干描述中给出的关键信息“每台收款机可以处理任何数目的销售事件……”和常识可知每个超市有多台收款机每个销售事件可能与1种或多种商品发生联系商品可以到任何一台收款机付款因此收款机与商品之间存在多对多(m:n)的关系即(1)、(2)空缺处所填写的内容均是“1…*”。 由题干中关键信息“每名供货员可以提供一种或多种商品同一品牌的商品只能由一位供货员来提供”可知商品与供货员之间存在多对一(m:1)的关系因此(3)空缺处所填写的内容是“1…*”(4)空缺处所填写的内容是“1”。 由题干中关键信息“每台收款机可以处理任何数目的销售事件但一个销售事件只能由一台收款机处理”可知收款机与销售事件之间存在一对多(1:n)的关系因此(5)空缺处所填写的内容是“1”(6)空缺处所填写的内容是“1…*”。 由题干中关键信息“每本销售账册可以记录任何数目的销售事件但一个销售事件只能由一本销售账册记录”可知账册与销售事件之间存在一对多(1:n)的关系因此(7)空缺处所填写的内容是“1” (8)空缺处所填写的内容是“1…*”。 较完整的前台销售子系统类图如图1-21所示。
    由题干描述中给出的关键信息“每台收款机可以处理任何数目的销售事件……”和常识可知,每个超市有多台收款机,每个销售事件可能与1种或多种商品发生联系,商品可以到任何一台收款机付款,因此收款机与商品之间存在多对多(m:n)的关系,即(1)、(2)空缺处所填写的内容均是“1…*”。 由题干中关键信息“每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供”可知,商品与供货员之间存在多对一(m:1)的关系,因此(3)空缺处所填写的内容是“1…*”,(4)空缺处所填写的内容是“1”。 由题干中关键信息“每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理”可知,收款机与销售事件之间存在一对多(1:n)的关系,因此(5)空缺处所填写的内容是“1”,(6)空缺处所填写的内容是“1…*”。 由题干中关键信息“每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录”可知,账册与销售事件之间存在一对多(1:n)的关系,因此(7)空缺处所填写的内容是“1”, (8)空缺处所填写的内容是“1…*”。 较完整的前台销售子系统类图如图1-21所示。

  • 第5题:

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

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


    正确答案:
    【问题1】(8分)
    C1:Patron
    C2:Book
    C3:Catalog
    C4:CheckoutSessionController
    【问题2】(4分)
    M1:getForCheckOut
    M2:isFaculty
    M3:circulates
    M4:recordBookLoan
    【问题3】(3分)
    应采用策略模式,策略模式定义了一系列算法,并将每个算法封装起来,而且使它们可以相互替换。策略模式让算法独立于使用它们的客户而变化。适用于需要在不同情况下使用不同的策略(算法),或者策略还可能在未来用其他方式来实现。