某大学拟开发一个用于管理学术出版物(Publication)的数字图书馆系统,用

最全题库2022-08-02  35

问题 某大学拟开发一个用于管理学术出版物(Publication)的数字图书馆系统,用户可以从该系统查询或下载已发表的学术出版物。系统的主要功能如下:1.登录系统。系统的用户(User)仅限于该大学的学生(Student)、教师(Faculty)和其他工作人员(Staff)。在访问系统之前,用户必须使用其校园账户和密码登录系统。2.查询某位作者(Author)的所有出版物。系统中保存了会议文章(Conf Paper)、期刊文章(JournalArticle)和校内技术报告(TechReport)等学术出版物的信息,如题目、作者以及出版年份等。除此之外,系统还存储了不同类型出版物的一些特有信息:(1)对于会议文章,系统还记录了会议名称、召开时间以及召开地点;(2)对于期刊文章,系统还记录了期刊名称、出版月份、期号以及主办单位;(3)对于校内技术报告,系统记录了由学校分配的唯一ID。3.查询指定会议集(Proceedings)或某个期刊特定期(Edition)的所有文章。会议集包含了发表在该会议(在某个特定时间段、特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。4.下载出版物。系统记录每个出版物被下载的次数。5.查询引用了某篇出版物的所有出版物。在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用了该出版物,系统将发送电子邮件通知该用户。现在采用面向对象方法对该系统进行开发,得到系统的初始设计类图如图3-1所示。图3-1初始设计类图【问题1】(9分)根据说明中的描述,给出图3-1中C1~C9所对应的类名。【问题2】(4分)根据说明中的描述,给出图3-1中类C6~C9的属性。【问题3】(2分)图3-1中包含了哪种设计模式?实现的是该系统的哪个功能?

选项

答案

解析 【问题1】
C1:Person
C2:User
C3:Student
C4:Faculty
C5:Staff
C6:Publication
C7:ConfPaper
C8:JournalArticle
C9:TechReport
注:C3/C4/C5可互换。
【问题2】
C6:题目,作者,出版年份
C7:会议名称,召开时间,召开地点
C8:期刊名称,出版月份,期号,主办单位
C9:ID
【问题3】
观察者模式,实现:引用他人学术出版物发送电子邮件通知该用户。
试题解析:
此题,应当属于最简单的类图题了。只是出题者,有一个小小的疏忽,少了个类名,根据下面的子类抽象,可以填写Person或人。
此题,应当属于最简单的类图题了。只是出题者,有一个小小的疏忽,少了个类名,根据下面的子类抽象,可以填写Person或人。
【问题1】
问题1找类名:直接从类图看,C2有三个子类,而C6也同样有三个子类。这个明显的破绽,为我们解题提供了捷径。阅读题干找出有三个从属关系的事物来:系统的用户(User)仅限于该大学的学生(Student)、教师(Faculty)和其他工作人员(Staff);查询某位作者(Author)的所有出版物。系统中保存了会议文章(ConfPaper)、期刊文章(JournalArticle)和校内技术报告(TechReport)等学术出版物的信息。
这个关系找到了,然后结合类图来看。用户(User),出版物(Publication)要判别出是C2和C6。其他后面的空就容易了。
C2和Author(作者)有共同的父类。说明只有用户(User)可以与其在同一个级别上。而Author(作者)和C6之间有一个written by 1对多的关系,说明C6就是出版物(Publication),因为作者可以有多个出版物。所以可以确定C2为User,C6为Publication。
然后要填写C3,C4,C5就是学生(Student)、教师(Faculty)和其他工作人员(Staff),这个次序可以随意。
填写C7,C8,C9就是会议文章(ConfPaper)、期刊文章(JournalArticle)和校内技术报告(TechReport)这个次序也可随意。只是这个位置的次序决定了问题2的内容排列次序。填英文。
唯一的遗憾是从题干中找不出作者(Author)和用户(User)的父类是什么,是人(Person)?只能让人想像了。
【问题2】
问题2的答案,全在题干第2点的陈述中。
此处不作解析。
【问题3】
题干第5查询引用了某篇出版物的所有出版物。在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用了该出版物,系统将发送电子邮件通知该用户。这个说明加上类图中有一个类名为Observer。可以断定为观察者模式,实现的功能即是第5点的陈述。
转载请注明原文地址:https://tihaiku.com/congyezige/2410332.html

最新回复(0)