[说明]
某图书管理系统的主要功能如下。
1.图书管理系统的资源目录中记录着所有可供读者借阅的资源,每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态(可借阅或已借出)。
2.资源可以分为两类:图书和唱片。对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带)。
3.读者信息保存在图书管理系统的读者信息数据库中,记录的信息包括:读者的识别码和读者姓名。系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息。
现采用面向对象方法开发该图书管理系统。识别类是面向对象分析的第一步。比较常用的识别类的方法是寻找问题描述中的名词,再根据相关规则从这些名词中删除不可能成为类的名词,最终得到构成该系统的类。表3-1给出了说明中出现的所有名词。
通过对表3-1中的名词进行分析,最终得到了图3-1所示的UML表类图(类的说明见表3-21。
识别关联的多重度是面向对象建模过程中的一个重要步骤。根据说明中给出的描述,完成图3-1中的(1)~(6)。
[*]
参考答案:
(1) 1, (2) 0..*, (3) 1, (4) 0..*, (5) 1, (6) 1或者0..1
解析:
本题主要考查UML中的类图设计,题目3个问题都是对类图的元素进行补充。类图的设计是根据系统的功能需求而来的,所以解题的关键在于对“系统功能说明”的理解。下面我们将通过对“系统功能说明”的分析,来解答试题:
从系统功能说明中的“图书管理系统的资源目录中记录着所有可供读者阅读的资源”和“资源可分为两类:图书和唱片”,可以得知1个资源目录中对应着多个可供读者借阅的资源,这些资源分为图书类与唱片类,所以(a)为资源目录,(b)和(c)分别为图书和唱片,同时(1)应填:1,(2)应填:0..*。(所有的可供读者借阅资源数有可能为0,即还未录入任何资源的状态)。
从“每项资源都有一个唯一的索引号。系统需登记每项资源的名称、出版时间和资源状态”。可以得知,资源目录中的每项资源,即类图中的CatalogItern,有索引号、名称、出版时间和资源状态这4个关键属性。
从“对于图书,系统还需登记作者和页数;对于唱片,还需登记演唱者和介质类型(CD或者磁带)”,可以得知图书有作者和页数2个关键属性,唱片有演唱者和介质类型2个关键属性。
Borrower代表读者,而BorrowerItems为借书记录文件,同时系统功能说明中有“系统为每个读者创建了一个借书记录文件,用来保存读者所借资源的相关信息”,所以它们之间的关系应为1对1,即第(5)空和第(6)空均填1。