图书馆信息系统UML实例

上传人:wan****21 文档编号:252985778 上传时间:2024-11-27 格式:PPT 页数:49 大小:389KB
返回 下载 相关 举报
图书馆信息系统UML实例_第1页
第1页 / 共49页
图书馆信息系统UML实例_第2页
第2页 / 共49页
图书馆信息系统UML实例_第3页
第3页 / 共49页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,*,国防科技大学计算机学院,*,图书馆信息系统,UML,实例,2024/11/27,1,国防科技大学计算机学院,图书馆信息系统,UML,实例,本章将通过一个实例来说明在一个应用中如何使用UML通过前面的讨论首先在,分析模型中用用例和域分析来描述应用然后将分析模型扩展成设计模型描述技术上,的解决方案最后用Java语言编程具体实现可以运行的应用有一点需要说明的,是本章中讨论的例子并不包括所有的模型和图,本章讨论的案例是一个图书馆信息系统主要处理书和杂志的借阅和保存虽然它算不上是一个大的应用但可以对它作许多扩展.,2024/11/27,2,国防科技大学计算机学院,1.,理解需求场景描述,下面是一份典型的文本需求说明它是图书馆应用程序的需求说明是为系统的终端用户或客户而写的,它是图书馆的支持系统,图书馆将书和杂志借给读者,读者和书杂志一样必须在系统中注册,图书馆负责购买图书,对于流行的书一般要多买几本,如果旧书或杂志过期了或很破烂则可以从图书馆中删除,图书馆管理员是图书馆的雇员,负责与客户,(,借书者,),打交道,他们的工作要得到系统的支持。,2024/11/27,3,国防科技大学计算机学院,1.1,理解需求一场景描述,借书者可以预订目前借不到的书或杂志,一旦预订的书被返还给图书馆或图书馆新购买书到达,就立即通知预订者,图书馆可以方便地产生更新和删除系统中与书目借书者借书,(loan),和预订的有关信息,系统能够在所有流行的技术环境下运行,(UNIX,Windows,OS/2,等等,),,还应该有一,个非常好的图形用户界面,(GUI),系统应该具有很好的可扩展性,2024/11/27,4,国防科技大学计算机学院,2.,分析,分析就是描述系统的需求通过定义系统中的关键域类来建立模型分析的,根本目的是在开发者和提出需求的人(用户/客户)之间建立一种理解和沟通的机制,因此典型情下分析是开发人员同用户或客户一起来完成的。,分析不受技术方案或细节的限制,在分析阶段,开发人员不应该考虑代码或程序的问题,它是迈向真正理解需求和所要设计的系统的第一步。,2024/11/27,5,国防科技大学计算机学院,1.,用例视图描述图书馆系统的功能,分析的第一步是定义用例,即描述图书馆系统的功能,确定系统的功能需求。用例分析主要涉及阅读和分析规格说明和系统的潜在用户讨论,图书馆中的角色为图书管理员和借书者,图书管理员是系统的用户,而借书者是客户,虽然偶尔图书馆管理员或另一个图书馆也可能是一个借书者。借书者的目的不是直接同系统交互,借书者的功能由图书管理员来实现。,2024/11/27,6,国防科技大学计算机学院,图书馆信息系统中的用例如下所示,借出书目,(Lend Item),返回书目,(Return Item),预订,(Make Reservation),删除预订,(Remove Reservation),增加标题,(Add Title),更新或删除标题,(Update or Remove Title),增加书目,(Add Item),删除书目,(Remove Item),增加借书者,(Add Borrower),更新或删除借者书,(Update or Remove Borrower),2024/11/27,7,国防科技大学计算机学院,标题,(Title),和书目,(Item),上述用例中出现的两个概念标题(Title)和书目(Item),因为在一个图书馆中一个流行的标题可能有好几本,因此系统必须将标题(可能是书名或书的作者)同其它的书目(代表一个指定标题的物理副本)区分开来,从图书馆借的是书目在图书馆拥有一本书的副本(书目)之前加一个标题到系统中是可能的,这样做的目的是让借书者可以预,订。,2024/11/27,8,国防科技大学计算机学院,图书馆信息系统的分析可以用UML的用例图来描述如图所示,每个用例以文本的方式(可称为用例场景)来描述,描述的内容包括用例以及用例与角色交互的更详细的信息文本的内容,是通过与用户/客户讨论后确定的。,2024/11/27,9,国防科技大学计算机学院,用例借出书目的描述如下,2024/11/27,10,国防科技大学计算机学院,用例“借出书目”的场景描述,-,事件流,1如果借书者没有预订,a.标记标题,b.标记可用的该标题下的书目,c.标记借书者,d.图书馆借出标记的书目,e.增加一条新的借书记录,2024/11/27,11,国防科技大学计算机学院,用例“借出书目”的场景描述,-,事件流,2如果借书者已经预订,a.标记借书者,b.标记标题,c.标记可用的该标题下的书目,d.图书馆借出标记的书目,e.增加一条新的借书记录,f.删除预订记录,2024/11/27,12,国防科技大学计算机学院,读者可以照此法描述其它的用例。在整个系统开发过程中,用例描述系统的功能需求,在分析阶段利用它们来检查某一域类是否已定义,在设计阶段可以用来证实技术方案是否能够处理要求的功能,可以在序列图中可视化用例。,2024/11/27,13,国防科技大学计算机学院,2.,领域分析,-,类图的建立,分析是将系统中的领域和关键类条理化,为了进行领域分析,需要阅读规格说明和用例,了解系统要处理的概念(类),或将用户领域专家组织在一起开一个讨论会,设法确定所有必须处理的概念以及概念间的关系。,图书馆信息系统中的域类主要有读者,标题,书的标题,杂志标题,书目,预订和借书。,2024/11/27,14,国防科技大学计算机学院,2.,领域分析,-,类图的建立,有一点要强调的是在本阶段域类还是处于草图状态,定义的操作和属性不是最后的版本,只是在现阶段看来这些操作和属性是比较合适的,一些操作是在序列图的草图中而不是在用例中定义的。,2024/11/27,15,国防科技大学计算机学院,Item,(书目)类的定义,2024/11/27,16,国防科技大学计算机学院,Title,(主题)类的定义,2024/11/27,17,国防科技大学计算机学院,Item与Title的关系,2024/11/27,18,国防科技大学计算机学院,Title(主题)的继承类,2024/11/27,19,国防科技大学计算机学院,2024/11/27,20,国防科技大学计算机学院,设计阶段和最后的UML模型是将设计阶段的模型进行扩展和细化,主要考虑所有的技术问题和限制。设计的目的是产生一个可用的解决方案,并且能够比较容易地将方案转换成程序代码。在分析阶段定义的类被进一步细化,定义新的类来处理技术方面的问题,如数据库用户接口通信设备等等。,2024/11/27,21,国防科技大学计算机学院,描述域类的动态行为,为了描述域类的动态行为,任何动态UML图都可以使用序列图、协作图或活动图。例如,序列图的基础是用例,在序列图中说明域类如何协作来操作系统中的用例,很自然地,当建立这些序列图时将会发现新的操作,并将它们加到类中。,2024/11/27,22,国防科技大学计算机学院,用例借出书目的序列图,(,没有预订的情况,),2024/11/27,23,国防科技大学计算机学院,用户接口的设计,当用序列图建模时很显然需要窗口或对话窗,作为到角色的接口。在下图中借出书目的窗口是存在的,在分析时意识到需要窗口来标识基本的接口就可以了,借出、预订和返还书目都需要窗口。维护窗口也是必要的。,详细的用户接口是设计阶段的一部分,在分析阶段为了将域类同窗口类分开,将窗口类组装成一个GUI包(称为GUI包)将域类组装成业务包(Business Package)。,2024/11/27,24,国防科技大学计算机学院,Loan的新增操作,2024/11/27,25,国防科技大学计算机学院,某些类用UML状态图来显示类的对象的不同的状态以及改变状态的事件,有状态图的类有书目和标题,标题类的状态图如图所示。,2024/11/27,26,国防科技大学计算机学院,标题类的状态图,2024/11/27,27,国防科技大学计算机学院,3.架构设计,一个设计良好的架构是系统可扩展和可改变的基础。包关心的是某一指定功能域或技术域的处理。将应用逻辑,(,域类,),和技术逻辑分开是很关键的,从而使得任何一个改变不至于对其它部分有太多的影响。在定义架构时需要描述的关键事情是标识和建立包间相关性规则,使得包间不存在双方相关性,(,避免包紧耦合在一起,),。,2024/11/27,28,国防科技大学计算机学院,包或子系统的设计,本例中的包或子系统或层有如下几个:,用户接口包(User Interface Package),通过用户接口类用户可以浏览系统中的数据,输入新的数据这些用户接口类都是基于Java的AWT包。Java的AWT包是Java中用来写用户接口应用的标准库。该包同包含存储数据的类的业务包协作来完成任务用户接口包调用业务包中的操作来检索和插入数据。,2024/11/27,29,国防科技大学计算机学院,业务对象包,业务对象包(Business Object Package),业务对象包包含分析模型中的域类如,Borrower Information,Title,Item,Loan,等等,这些类的所有细节都已有明确定义,所以类中的操作都已定义好了并支持加入持续性属性。业务对象包同数据包协作完成任务,因为所有的业务对象类必须从数据包中的持续性类(Persistent class)中继承下来。,2024/11/27,30,国防科技大学计算机学院,数据库包,数据库包(Database Package):数据库包提供服务给业务对象包中的类,所以可以永久地保存它们在当前版本中,持续性类将它的子类的对象存放在文件系统中的文件。,2024/11/27,31,国防科技大学计算机学院,应用包,应用包(Utility Package):应用包提供服务给系统中其它种类的包。,2024/11/27,32,国防科技大学计算机学院,包及包间相关性的类图,2024/11/27,33,国防科技大学计算机学院,用户接口设计,在设计阶段进行的一项特殊活动是产生用户接口,定义用户接口的“外观和感觉”,这项活动是在分析阶段初始化且与其它活动分开来做,但同其它的工作同步进行。,2024/11/27,34,国防科技大学计算机学院,用户接口设计,基于用例的图书馆应用中的用户接口被分成四部分,每一部分在主窗口菜单中有一个独立的菜单包,如下所示:,功能(Functions):系统中的基本功能窗口,也就是说借书、还书和预订。,信息(Information):浏览系统中的信息窗口有关标题和借阅者的信息,维护(Maintenance):维护系统的窗口也就是说增加、更新、删除标题、借阅者和书目。,2024/11/27,35,国防科技大学计算机学院,增加标题(Add Title)用例的序列图,2024/11/27,36,国防科技大学计算机学院,4.,构造或实现阶段,构造或实现阶段是指编程实现类.在系统需求中,要求系统可以运行在许多不同的处理器和操作系统上,所以选择Java来实现系统.Java很容易将逻辑类映射到代码组件,因为这种映射是类和,Java代码文件之间的一对一的映射(和一对一地映射到一个可执行的.class文件)Java也要求文件名应该同它包含的类的类名一样.,2024/11/27,37,国防科技大学计算机学院,组件图,下图说明设计模型中的组件图包含(在本例中)一个从逻辑的类到组件的简单映射。每个组件包含一条到逻辑类的描述的链接使得可以方便地在逻辑视图与组件视图间切换(即使在本例中使用的仅仅是文件名)。组件间相关性不在组件图中表示(除了业务对象包)因为相关性可以从逻辑类图中得到。,2024/11/27,38,国防科技大学计算机学院,2024/11/27,39,国防科技大学计算机学院,对于编码从下列设计模型中的图获得规格说明,类说明,(Class Specifications),每一个类的规格说明详细显示必须有的属性和操作,类图,(C
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!