1、图书馆信息系统 图书管信息系统 黎丰泽(0843042086)一、设计包的实际划分以及系统构架设计二、系统构架图说明1、UI包(用户接口包)用户接口包显示了所有的在用户接口中的类,以及它们与其它类(即,在业务对象类)之间的关系和协作。用户接口描述了四个类图:1、基本类图:该图显示了StartClass,该类包含了整个应用软件的主操作,并且只有它才可以激活主窗口(MainWindow)。主窗口包含了一个菜单,该菜单被用来访问在应用系统中所有的其它窗口。2、功能类:它显示了所有的用在MenuBar “Functions”中的窗口类。这些窗口包含了对于租借和返还书目以及预定书目和取消预定的主要功能。
2、3、信息类:它显示了所有的用在MenuBar “Information”中的窗口类。这些类都是为了查看有关标题和租借者信息以及浏览所有的标题和所有的租借者的信息。4、维护类:它显示了所有的用在MenuBar “Maintenance”中的窗口类。这些类都是为了系统维护的,如增加、删除和更新标题、书目和租借者信息。UI包同样也包含了对所有在分析中多定义的用例顺序图,它显示了这些用例在设计阶段的实现。用例现在被细化成在设计类图中的实际操作,因此,这些顺序图可以阅读,用来理解实际代码。有些顺序图同样也被转换成协作图。2、BO包(业务对象包)这是业务对象包,包含了从分析阶段的问题域中的类。这些类在设计
3、阶段被详细化,描述了它们精确的操作和确切的信号。这些类同样被变成了永久性的类,这是通过继承来自数据库包中的永久类并实现必要的写操作和读操作。在分析阶段所定义的关联也在设计阶段使用对象识别码变量来实现,在这里,一个对象识别码可以被用做对系统中任何其它永久对象的参考的一个方式,并且在必要时可以很容易地控制这个对象。3、DB包(数据存储包)数据库包支持永久存储业务对象。在当前的版本中,这些仅仅通过Persistent类来控制,它只做简单的对象的连续存储到一个文件中。Persistent类的子类仅仅实现写和读操作,读写操作就是写和读对象的属性到一个文件中。永久对象类具有操作,如通过一个对象识别码来检索
4、一个对象,从一个永久对象中读出对象识别码,当然还可以存储、删除和更新一个对象。同样存在于类的所有对象中的迭代操作,它用来实现查找的方法。4、工具包工具包包含了用于所有的其它包中的通用工具。目前,它仅仅包含了ObjId类,它实现了一个对象识别码,一个对象使用它可以参考其它在系统中的任何永久对象,并且很容易的用来作为参考和检索在文件中的对象。ObjId类被所有的其它类所使用,因此将其存放在这个包中。三、各个包中的类图1、图形用户接口包图形用户接口包包含了5个接口类,分别介绍如下:MainWindow类:MainWindow类操作那些总是出现在应用系统中的窗口,应用系统窗口具菜单条,并且显示一个图象
5、在它的客户端区域。由用户选择(每一个菜单的选择都映射给一个在MainWindow类中的操作)了不同的菜单动作,并且MainWindow类创建并显示其它用户接口类的所有对象。当应用系统退出时,MainWindow对象和窗口将会被删除。LendItemFrame类:LendItemFrame类是租借活动被注册的窗口。它是从Functions-Lend Item菜单中调用,并且让用户通过使用特别的查询窗口(FindTitleDialog and FindBorrowerDialog)来选择书目的标题和租借者。当标题、书目和租借者已经被建立起来时,通过按下“OK”按钮,租借被确认并且一个租借对象已经在
6、系统中被注册。ReturnItemFrame类:ReturnItemFrame是在“Functions-Return Item”菜单选中时创建和显示的,在这时,一本书目被返还给图书馆。标题和书目的ID被输入给该窗口(标题是通过FindTitleDialog查询窗口)并且该书目的归还被确认。而代表这次租借的租借对象将被删除。ReservationFrame类:ReservationFrame类是进行标题书目预定的窗口类。它是由“Functions-Reserve Title”菜单来创建,它允许用户通过使用特殊的查询窗口(FindTitleDialog 和 FindBorrowerDialog)选
7、择图书的标题和租借者。当图书的标题和租借者选定之后,通过按下“OK”按钮来确认预定。CancelReservationFrame类:CancelReservationFrame类用来从系统中删除一个预定。它有一个画面显示,在画面上可以查找图书标题,并且所查到的图书标题做了预定的所有租借者都会显示在一个列表框内。用户可以选择哪一个预定将被删除,然后按下“OK”按钮来确认删除。2、BO包(业务对象包)业务对象包包含了5个类(简化了分析类中的两个类),分别介绍如下:标题类:标题代表了一个书的概念(一本书或杂志),这是一个租借者可以对其书目进行租借的概念。而书目却是在图书馆实际具有的书和杂志。在图书馆
8、中,一个流行的标题可能具有几个书目。标题具有一些信息,例如图书名称,图书作者,以及其它信息如ISBN或杂志编号等。标题具有0或多个预定,这意味着当一个标题的书目被返还时,该书目将被保留给一个特定的租借者。所有的标题类的对象都是永久的,因此,它继承了永久类并实现了读写操作。书目类:书目代表了一个标题的可以被租借的实际书目(物理上真正存在的书目)。该对象可以具有状态“借出”或“未借”两种。书目总是具有一个相应的标题对象,该对象定义了该书目(即书名、作者和ISBN书号)。将书目和它的标题分离的原因是,你或许需要预定一个标题,但是没有特定的书目,图书馆可以对同一个标题存有几本具体的书目(在这里,每一个
9、书目可以被一个租借者租借)。你或许同样能够查找一个标题,但是图书馆却还没有购买任何一本具体的书目。所有的书目类都是永久性的,因此,需要继承Persistent类,并且实现读写操作。租借者信息类:租借者信息是指一个具体的租借者的信息,它可以是一个人或者是另一个图书馆。被存储的信息是姓名,地址,城市,邮政编码,和省份。BorrowerInformation类所有的对象都是永久的,因此它继承了Persistent类并且实现了读写租借类:租借是租借者与图书馆之间的契约。阻截参考了一个租借者和一本书目,一个租借对象的存在代表了一个租借者已经租借了在租借对象中所参考(指向)的一本书。当该书目被返还时,租借
10、对象将被删除。租借类的所有的对象都是永久的,因此,它继承了Persistent类并实现了读写操作。预定类:一个租借者可以进行一个预定。预定是指租借者想预定相关的标题,当该标题的一个书目归还时,租借者可以能够优先于其他租借者之前租借这本书。一个标题可以由不同的租借者预定不止一次。预定类的所有的对象都是永久的,因此它继承了Persistent类并实现了读写操作。3、DB包(数据库包)数据库包中只包含了一个类,那就是Persistent类:永久类只是简单地将对象持续存储到一个文件中。永久类的子类仅仅实现有关本类的对象属性的读和写到一个文件的操作。永久类具有由一个对象识别码来检索一个对象的操作,和为一
11、个永久对象获得识别码,以及存储、删除和更新一个对象的操作。该类可以在性能上进行优化。4、UTIL包(工具包)工具包中只包含了一个类,那就是ObjId类:对象识别码类,代表了对系统中的一个对象的一个参考(关联)。对象识别码是由所参考的类的类名和一个唯一识别码数字来组成。通过向在Persistent类中的 getObject操作传递对象识别码,对象将会被从永久存储(文件)中读取并返回给调用者。因此,对象识别码对实现永久对象的参考是一个容易的机制。getObject操作同样也在Persistent类的子类中实现来返回一个更为类型特定的对象来提高类型的安全性。四、状态图1、Title2、Item五、顺
12、序图1、租借图书2、返还图书3、预定图书4、取消预定六、组件图1、组件图组件视图显示了所有的在逻辑视图中的类的代码实现文件。由于实现的语言使用了Java,则在逻辑视图和组件视图之间只有一个简单的一对一的映射。我们使用了同样的包和名字。StartClass.java组件仅仅包含了用于启动系统的主操作(显示出MainWindow对象的窗口)。2、BO包组件图在组件视图中的BO包包含了在逻辑视图中的业务对象包中的类的实现组件。3、UI包组件图在组件视图中的UI包包含了在逻辑视图中的用户接口包中的类的实现组件。4、DB包组件图在组件视图中的DB包包含了在逻辑视图中的数据库包中的类的实现组件。5、Util包组件图在组件视图中的Util包包含了在逻辑视图中的工具包中的类的实现组件。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1