本节和大家学习一下UML建模案例分析,以图书管理系统向大家介绍,为了便于大家理解采用图示讲解,希望通过本节的学习你对UML建模案例分析有一定的认识。
UML建模案例分析
UML(TheUnifiedModelingLanguage,即统一建模语言)是一种编制系统蓝图的标准化语言,可以对复杂的系统建立可视化的系统模型,目前已经被工业标准化组织OMG(ObjectManagementGroup)接受,一经推出便得到许多著名的计算机厂商如Microsoft、HP、IBM、Oracle等的支持,也在逐步开始应用到需求分析过程中。
许多读者对图书馆图书管理工作比较熟悉,主要是围绕读者、图书和工作人员的借还书展开工作。我们先看看图书馆工作人员和部分读者的需求。
读者来图书馆借书,可能先查询书库的图书记录。查询可以按书名、作者、图书编号、关键字查询。查询有两种结果,如果查到则记下书号,交给工作人员,然后等候办理借书手续。如果该书已经被全部借出,则可做借书登记,等待有书时被通知。如果图书馆没有该书的记录,则做缺书登记。
办理借书手续时先要出示图书证,没有图书证则去申请图书证。如果借书数量超出规定,则提示“借书数量超限,不能继续借阅”。工作人员登记借阅人信息、借阅的图书信息、借出时间和应还书时间。系统自动修改书库的图书记录、读者库信息。
UML建模案例分析时要了解系统需求。当一位读者还书时,工作人员根据图书证编号,找到读者的借书信息,查看是否超期,如果已经超期,则进行超期处罚。
如果图书有破损、丢失,则进行破损处罚。清除借阅记录,同时系统自动查看是否有等待借阅登记,如果有则发出通知,修改书库记录,该书设置为已预订状态,否则设置为可借状态。
图书采购人员进行图书采购时,要参考各类图书的库存数和借阅率,注意合理采购。如果有缺书登记则随时进行采购。正在采购的图书组成一个采购中书库。
采购到货后,进行验收,编号,同时加入图书库,修改采购中书库,并且查看订阅库,发出到书通知,并且已经修改书库的图书记录为已预订状态。
借书登记是当欲借的书被借空后,读者自愿选择的一种操作,它应该记录读者名和联系方式,一旦有这本书后可通知读者。
到书通知,当读者预订的书来到之后,按照读者给出的联系方式发出通知。
缺书登记是当读者需要的书库内查询没有记录时,将此信息转入缺货库,通知采购员采购。
图书注销,如果图书丢失或旧书淘汰,则将该书从书库中清除。
根据需求描述整理一张需求表:
UML建模案例分析时首先要识别出系统的参与者,在简单的图书馆管理系统中,可以划分出两种参与者:读者和管理员。当然,根据业务的复杂程度,参与者也可以进行细分,比如读者可以再分为学生读者、教师读者、校外读者,管理员根据业务和权限的不同可以再细分为库房管理员、借还书操作员、系统维护人员、图书馆管理人员等不同角色。在这里,为了简化处理,我们只列出了读者和管理员。对参与者描述如下:
(1)读者
描述:读者可以借阅、预定、归还物理书刊,可以对书籍和个人信息进行查询,可以取消预定,可以提出办卡申请。
示例:持有借阅卡的任何人和组织。
(2)管理员
描述:图书管理员对系统进行维护,包括读者信息的创建、修改、删除,书刊信息的维护,条目信息的维护,还有系统信息的维护。
示例:图书管理员。
通过识别的参与者,对需求进一步分析,将业务需求进行分解,获得每个参与者的使用用例。在本例中,我们可以得到以下用例:
1.书籍借出:提供借阅物理书刊的功能。
2.书籍归还:提供归还物理书刊的功能。
3.读者办卡:提供为读者办理借阅卡的功能。
4.预定书刊:提供对某一个种类的书刊的预约功能。
5.取消预定:提供对预定进行取消的功能。
6.书籍查询:为读者提供网上的书籍查询功能。
7.信息查询:为读者提供信息查询的功能。
8.读者信息维护:提供读者信息的录入、修改、查询、删除的功能。
9.书刊信息维护:提供物理书刊的录入、修改、查询、删除的功能。
10.条目信息维护:提供书刊条目的录入、修改、查询、删除的功能。
11.系统信息维护:提供对系统的参数的设置。
12.登录:管理员需要先登录才能进入系统。
并且,可以画出如下系统用例图:
通过用例图,可以对系统功能有一个大概的了解,对于复杂系统,我们可以结合IDEF方法,通过分层分解,逐步细化的方法来描述系统的功能。对于用例图,建议不要画的过于复杂,特别是用例之间的关系,因为复杂的用例图不仅不能让需求分析人员与客户之间更好的沟通,反而是制造了一种沟通障碍。
下一步就是编制每一个用例的详细说明,对用例说明的主要信息包括有:用例名称、编号、用例的简短描述、用例的参与者、与其他用例的管理、用例启动的前提条件、用例结束后的事后条件、用例的输入、输出、用例的执行事件流等。在实际项目中,我们并不一定要面面俱到,而是根据实际情况对用例描述进行裁减。其中有几点重要信息是不能裁减的:用例名称、描述、输入、输出、执行事件流、参与者。另外,如果实际情况需要,还可以使用MSVisio等工具画出界面的示意图来。
如上例所述,我们对每一个用例都进行详细的描述,建立当前系统的功能用例模型。需求沟通与分析是一个迭代的过程,通过与用户的不断沟通,最终达成对目标系统的一致理解。如果用户确认了需求分析的成果,一般是需求规格说明书之后,项目开始进入系统分析设计阶段,也就是开始构造目标系统的逻辑模型。
为了让系统设计能够以结构、组织方式和代码重用的形式表现出来,要对系统进行设计规划,设计阶段应该与分析阶段交迭。需求是不断地发展,而设计本身也会推动需求的发展(反之亦然)。在图书馆管理系统的建模设计中,以下3个方面的问题是要关注的:业务对象的表示、业务服务的实现、用户界面的组织。
业务对象的表示
在图书馆管理系统系统中,业务对象主要是数据库和数据实体类的表示方式。UML建模案例分析时,可以构造出系统的静态模型,也就是系统类图来表示。如下图则描述了借书这一用例的静态结构图。为了体现类之间的关系,在下图中没有显示出每一个类的属性和基本操作。
业务服务的实现
业务服务的实现需要完成的功能是各种业务规则和逻辑的实现,如借书处理的业务逻辑。每个模块的信息录入、修改、删除、查询等。业务规则和逻辑的实现基本相似,没有太多的规律可循。采用UML来进行业务服务的建模,可以使用UML的序列图、状态图、活动图。这个部分的工作,通常通过一系列的类之间的交互来完成。为了在更动态的层面上描述系统,UML提供了许多其他类型的图。
对于B/S系统设计而言,情节图(ScenarioDiagram)特别有用。情节图分成两种:协作图(CollaborationDiagram),序列图(SequenceDiagram)。UML建模工具RationalRose能够从协作图生成序列图也可以从序列图生成协作图。例如,借阅书刊的业务过程可以采用如下序列图来描述:
借阅书刊过程主要包括:管理员选择“借阅书刊”菜单,弹出对话框,管理员输入书刊信息和用户信息,系统查找数据库,是否存在该种物理书刊,如果不存在,显示提示信息,用例结束;是否存在借阅者信息,如果不存在,显示提示信息,用例结束;否则,管理员单击确认按钮后,该图书借阅给该借阅者,系统存储借阅信息到数据库。
【编辑推荐】