图书馆信息系统面向对象分析实例
- 格式:doc
- 大小:1.02 MB
- 文档页数:12
图书馆信息系统面向对象分析实例总体问题的陈述:本项目的目的是创建一个用于对图书馆的图书进行管理的图书管理系统。
该项目的用户:该项目的用户是一个某大学的图书馆,它负责对其顾客提供图书借阅服务。
该项目的目标:总体上来说,项目的目标是提高图书管理的自动化水平,为图书业务过程提供更快捷的、更好的和更准确的服务。
具体来讲,系统的目标包括:为借书者提供快速借书的服务;进行快速准确的图书和借书者的信息维护;图书管理和查询的自动化。
该系统的功能:系统功能是系统应该做的事情,例如系统提供的预定功能。
应该识别出这些功能并把它们列入到逻辑相关联的功能组中。
注意:要验证某一个描述是否真是一个系统的功能,如下的判断语句应该成立:系统应该做某一个描述例如,系统应该做图书的预定。
然而,系统的属性是系统的非功能性的特性,这些非功能性特性和系统功能经常被混淆。
例如,“易于使用”就是一个非功能性的特性。
它是不符合我们上述的验证语句:“系统应该做易于使用”。
系统属性不应该是功能规格说明书中的一部分,而应该是一个单独的系统属性规格说明文档。
对于系统的功能,我们应该对其分类,以便区分开各类功能的优先次序和识别出哪些是理所当然应该具备的系统功能。
功能的分类包括:明显的:应该履行的功能,并且用户应该知道这个功能是否已经被履行。
隐藏的:应该履行的功能,但功能的履行对用户不可见。
很多使用底层技术的服务确实符合这种情况,例如,将数据保存到一个持久化存储机构中。
隐藏的功能经常在采集需求的过程中被遗漏。
修饰性的:可选的,增加这些功能不会对成本和其它系统造成重要影响。
为此,我们给出该系统的借书基本功能如下:F1.1记录借出的图书----借阅事件明显的F1.2 查找书库中是否存在这种图书明显的F1.3 从借书卡中读取借书者信息,并校验该信息明显的F1.4 查找书库中这本书是否还有副本隐藏的F1.5 当一次借阅完成后,削减该书的副本存书数量隐藏的F1.6 管理员要使用系统,必须输入ID号和密码才行明显的F1.7 查询显示借书信息明显的F1.8 提供一个持久化存储机制隐藏的F1.9 提供过程间的和系统间的通信机制隐藏的系统属性:系统属性是系统的特性,它们并不是系统的功能,例如:易用、容错、响应时间、界面形式、平台等。
案例“图书管理系统”面向对象分析与设计例如,“图书管理系统”面向对象分析与设计大致过程如下:1.需求调查分析需求调查分析的结果一般用文字描述,必要时也可用业务流程图辅助描述。
“图书管理系统”需求陈述如下:在图书管理系统中,管理员要为每个读者建立借阅账户,并給读者发放不同类别的借阅卡(借阅卡可提供卡号、读者姓名),账户内存储读者的个人信息和借阅记录信息。
持有借阅卡的读者可以通过管理员(作为读者的代理人与系统交互)借阅、归还图书,不同类别的读者可借阅图书的范围、数量和期限不同,可通过互联网或图书馆内查询终端查询图书信息和个人借阅情况,以及续借图书(系统审核符合续借条件)。
借阅图书时,先输入读者的借阅卡号,系统验证借阅卡的有效性和读者是否可继续借阅图书,无效则提示其原因,有效则显示读者的基本信息(包括照片),供管理员人工核对。
然后输入要借阅的书号,系统查阅图书信息数据库,显示图书的基本信息,供管理员人工核对。
最后提交借阅请求,若被系统接受则存储借阅纪录,并修改可借阅图书的数量。
归还图书时,输入读者借阅卡号和图书号(或丢失标记号),系统验证是否有此借阅纪录以及是否超期借阅,无则提示,有则显示读者和图书的基本信息供管理员人工审核。
如果有超期借阅或丢失情况,先转入过期罚款或图书丢失处理。
然后提交还书请求,系统接受后删除借阅纪录,并登记并修改可借阅图书的数量。
图书管理员定期或不定期对图书信息进行入库、修改、删除等图书信息管理以及注销(不外借),包括图书类别和出版社管理。
2. 用况健模(1)确定执行者通过对系统需求陈述的分析,可以确定系统有两个执行者:管理员和读者。
简要描述如下:1)管理员:管理员按系统授权维护和使用系统不同功能,可以创建、修改、删除读者信息和图书信息即读者管理和图书管理,借阅、归还图书以及罚款等即借阅管理。
2)读者:通过互联网或图书馆查询终端,查询图书信息和个人借阅信息,还可以在符合续借的条件下自己办理续借图书。
面向对象程序设计实践案例分享近年来,面向对象程序设计模式在软件开发中得到了越来越广泛的应用,尤其是在Web开发、移动端开发以及人工智能等领域。
面向对象程序设计是一种以对象为中心的编程模式,能够大大提高代码的可重用性、可维护性和可扩展性,帮助开发人员更好地管理软件复杂性。
本文将分享一些面向对象程序设计实践案例,以帮助读者更好地了解和应用该模式。
实践案例一:图书馆管理系统我们来看一个简单的图书馆管理系统。
该系统可以在借书、还书和查询书籍等方面具有很好的应用价值。
在该系统中,我们需要设计三个类:Book、Borrower和Library(图书、借阅者和图书馆)。
下面是对每个类的属性和方法的简单介绍:Book类:属性(Property):isbn(图书ISBN号)、title(图书题目)、author(图书作者)、checkedOut(图书是否被借出)和borrower (借阅者)。
方法(Method):checkIn(将书返回给图书馆)、checkOut(将书借给借阅者)、借到日期、所借时间等。
Borrower类:属性:name(借阅者姓名)、email(借阅者电子邮件地址)和borrowedBooks(所借图书)。
方法:借书(可以从图书馆中借书)、还书(将书还给图书馆)、查询所借图书等。
Library类:属性:books(书架上存放书籍)、borrowers(借阅人列表)和currentDate(当前日期)。
方法:addBook(将书籍添加到书架上)、removeBook(从书架上删除某本书)、addBorrower(向借阅人列表添加新借阅人)、removeBorrower(从借阅人列表中删除某个借阅人)等等。
在这个图书馆管理系统中,我们用面向对象程序设计的方式设计了三个类,每个类都有自己的属性和方法。
这样设计的好处是,我们可以通过调用每个类的方法来完成它们的任务,而不需要担心具体的实现方式。
同时,由于类同一时间只允许执行一个操作,相互之间不会产生干扰,因此程序的可维护性和可扩展性也能得到很好的保障。
实验报告面向对象的分析设计实现—图书管理系统一.需求分析1.1系统需求描述一般图书馆管理系统主要用于对图书馆日常工作的管理,主要任务是用计算机对读者、图书等各种信息进行日常管理,如查询、修改、增加、删除、图书借阅和归还的管理等。
本系统实现了图书馆的信息化管理,完成了图书馆管理系统的基本功能。
一般图书馆管理系统主要包括用户登录子系统、用户管理子系统、图书管理子系统、图书借阅与归还、图书和用户信息查询子系统四个部分,各部分主要功能如下:用户登录子系统:用于数据库的连接,主界面的设计和不同身份用户的登录管理。
用户管理子系统:用于用户信息的管理,如用户添加、用户信息修改、用户删除。
图书管理子系统:用于图书信息的管理,如新书入库、图书信息修改、图书信息删除。
图书借阅与归还子系统:用于用户借阅和归还图书。
图书和用户信息查询:图书和用户信息的查询。
1.2系统功能结构图图 1.1 图书管理系统分析系统流程图1.3 系统解决方案以上述一般的图书管理系统分析为构思原型。
为简化系统,忽略掉其他复杂琐碎的功能需求,仅保留图书信息的录入、修改和读者借、续借、还的功能。
读者与管理员通过界面对象调用控制类对象,控制对象进行各种操作并把信息写入数据库。
二.系统设计2.1 系统E-R图图 1.2 用户实体图图1.3 书籍实体图图 1.4 实体属性图2.2数据库表结构表2.1 图书信息表表2.2 用户借阅表表2.3用户信息表2.3用例文档本系统共设置四个活动者。
分别是TT_People、TT_Registrar、TT_Reader 和TT_Database。
其中TT_People泛指与系统发生关系的人;TT_Registrar为系统管理员,负责添加、修改图书信息;TT_Reader为所有读者,读者可能发生借书、续借、还书的行为;TT_Database为存储各种信息的数据库对象。
另:考虑到现实图书馆中还存在“图书馆管理员”这一角色,但其所起的作用仅为代替读者完成各种系统操作,故没有设置此活动者。
图书馆信息系统面向对象分析实例。
总体问题的陈述:本项目的目的是创建一个用于对图书馆的图书进行管理的图书管理系统。
该项目的用户:该项目的用户是一个某大学的图书馆,它负责对其顾客提供图书借阅服务。
该项目的目标:总体上来说,项目的目标是提高图书管理的自动化水平,为图书业务过程提供更快捷的、更好的和更准确的服务。
具体来讲,系统的目标包括:为借书者提供快速借书的服务;进行快速准确的图书和借书者的信息维护;图书管理和查询的自动化。
该系统的功能:系统功能是系统应该做的事情,例如系统提供的预定功能。
应该识别出这些功能并把它们列入到逻辑相关联的功能组中。
注意:要验证某一个描述是否真是一个系统的功能,如下的判断语句应该成立:系统应该做某一个描述例如,系统应该做图书的预定。
然而,系统的属性是系统的非功能性的特性,这些非功能性特性和系统功能经常被混淆。
例如,“易于使用”就是一个非功能性的特性。
它是不符合我们上述的验证语句:“系统应该做易于使用”。
系统属性不应该是功能规格说明书中的一部分,而应该是一个单独的系统属性规格说明文档。
对于系统的功能,我们应该对其分类,以便区分开各类功能的优先次序和识别出哪些是理所当然应该具备的系统功能。
功能的分类包括:明显的:应该履行的功能,并且用户应该知道这个功能是否已经被履行。
隐藏的:应该履行的功能,但功能的履行对用户不可见。
很多使用底层技术的服务确实符合这种情况,例如,将数据保存到一个持久化存储机构中。
隐藏的功能经常在采集需求的过程中被遗漏。
修饰性的:可选的,增加这些功能不会对成本和其它系统造成重要影响。
为此,我们给出该系统的借书基本功能如下:F1.1记录借出的图书----借阅事件明显的F1.2 查找书库中是否存在这种图书明显的F1.3 从借书卡中读取借书者信息,并校验该信息明显的F1.4 查找书库中这本书是否还有副本隐藏的F1.5 当一次借阅完成后,削减该书的副本存书数量隐藏的F1.6 管理员要使用系统,必须输入ID号和密码才行明显的F1.7 查询显示借书信息明显的F1.8 提供一个持久化存储机制隐藏的F1.9 提供过程间的和系统间的通信机制隐藏的系统属性:系统属性是系统的特性,它们并不是系统的功能,例如:易用、容错、响应时间、界面形式、平台等。
图书管理系统的面向对象软件分析由于本图书管理系统用例过多,本文用面向对象软件分析只分别对预订图书、借阅图书、归还图书、处理借书、维护图书这五个用例进行用例分析,并建立静态模型和动态模型。
一、预订图书1、确定分析类如图1所示为预订图书用例的分析类。
边界类:本用例使用“预订表单”来抽象读者与系统交互的图形界面。
控制类:本用例控制类为“预订控制者”,负责接收边界类“预订表单”的消息,将其发给实体类。
实体类:本用例涉及读者预订的图书信息,所以实体类为“图书”。
预订图书读者图12、静态模型各个类之间都是单向关联,控制类“预订控制者”接收来自边界类“预订表单”的消息,并发给实体类图书。
“预订表单”与“预订控制者”是一对一关联,因为读者预订的界面只有一个;“预订控制者”的0个或1个对象与图书的0个或1个对象关联,一个预订控制者每次处理一本图书。
预订控制者图书预定表单110..10..1图23、动态模型: 读者预定表单预订控制者图书1 : 输入预定图书信息()2 : 录入读者预订图书信息()3 : 验证图书是否能被预订()4 : 添加该读者预订图书信息()图3二、借阅图书 1、确定分析类如图3所示为借阅图书用例的分析类。
边界类:本用例使用“借阅表单”来抽象读者与系统交互的图形界面。
控制类:本用例控制类为“借阅控制者”,负责接收边界类“借阅表单”的消息,将其发给实体类。
实体类:本用例涉及读者借阅的图书信息,所以实体类为“图书”。
读者借阅图书图42、静态模型各个类之间都是单向关联,控制类“借阅控制者”接收来自边界类“借阅表单”的消息,并发给实体类图书。
“借阅表单”与“借阅控制者”是一对一关联,因为读者借阅的界面只有一个;“借阅控制者”的0个或1个对象与图书的0个或1个对象关联,一个借阅控制者每次处理一本图书。
借阅控制者图书借阅表单110..10..1图53、动态模型借阅表单借阅控制者图书 : 读者1 : 输入借阅图书信息()2 : 录入借阅图书信息()3 : 验证图书能否被借阅()4 : 添加该读者借阅图书信息()图6三、归还图书1、确定分析类如图5所示为归还图书用例的分析类。
图书馆信息系统面向对象分析实例。
总体问题的陈述:本项目的目的是创建一个用于对图书馆的图书进行管理的图书管理系统。
该项目的用户:该项目的用户是一个某大学的图书馆,它负责对其顾客提供图书借阅服务。
该项目的目标:总体上来说,项目的目标是提高图书管理的自动化水平,为图书业务过程提供更快捷的、更好的和更准确的服务。
具体来讲,系统的目标包括:为借书者提供快速借书的服务;进行快速准确的图书和借书者的信息维护;图书管理和查询的自动化。
该系统的功能:系统功能是系统应该做的事情,例如系统提供的预定功能。
应该识别出这些功能并把它们列入到逻辑相关联的功能组中。
注意:要验证某一个描述是否真是一个系统的功能,如下的判断语句应该成立:系统应该做某一个描述例如,系统应该做图书的预定。
然而,系统的属性是系统的非功能性的特性,这些非功能性特性和系统功能经常被混淆。
例如,“易于使用”就是一个非功能性的特性。
它是不符合我们上述的验证语句:“系统应该做易于使用”。
系统属性不应该是功能规格说明书中的一部分,而应该是一个单独的系统属性规格说明文档。
对于系统的功能,我们应该对其分类,以便区分开各类功能的优先次序和识别出哪些是理所当然应该具备的系统功能。
功能的分类包括:明显的:应该履行的功能,并且用户应该知道这个功能是否已经被履行。
隐藏的:应该履行的功能,但功能的履行对用户不可见。
很多使用底层技术的服务确实符合这种情况,例如,将数据保存到一个持久化存储机构中。
隐藏的功能经常在采集需求的过程中被遗漏。
修饰性的:可选的,增加这些功能不会对成本和其它系统造成重要影响。
为此,我们给出该系统的借书基本功能如下:F1.1记录借出的图书----借阅事件明显的F1.2 查找书库中是否存在这种图书明显的F1.3 从借书卡中读取借书者信息,并校验该信息明显的F1.4 查找书库中这本书是否还有副本隐藏的F1.5 当一次借阅完成后,削减该书的副本存书数量隐藏的F1.6 管理员要使用系统,必须输入ID号和密码才行明显的F1.7 查询显示借书信息明显的F1.8 提供一个持久化存储机制隐藏的F1.9 提供过程间的和系统间的通信机制隐藏的系统属性:系统属性是系统的特性,它们并不是系统的功能,例如:易用、容错、响应时间、界面形式、平台等。
系统属性具有一组可能的属性细节,这些属性细节往往是属性的一些离散的、表达模糊的符号值,例如:响应时间=(生理上能够接受的时间段)界面形式=(图形化的,基于表的,彩色比较平淡的)在我们的案例中,要求借书查找时间小于1秒。
我们结合上面的图书馆管理系统的案例,来给出图书管理系统的问题域模型。
我们首先看问题域中的图书、借阅、书目和借书者这四个类。
系统将通过计算机来处理图书、副本、借书者和借阅。
借书者要求借书,给出要借图书的名称,出示借书证。
系统查找所借的图书是否存在,若存在,同时还要查看该图书是否还有副本,如果有,再查询该借书者提供的借书证是否合法的注册用户,如果是,则办理借阅手续(登记借阅信息)。
图书是存放在图书馆中的一个书的名称,副本是一个图书的具体实例。
一个图书可能有多个副本,一个副本一定会对应一个图书。
为简化起见,我们假定一次借阅(登记)只能借一本图书,同时会对应着一个借书证信息。
一个借书者可以进行多次借阅。
首先找出业务对象:图书、副本、借书证。
系统需要处理的现实世界中的对象和概念:借阅、预定。
将要发生或已经发生的事件:已经预定。
下面给出其UML表示的问题域的类图。
图-2-1 图书管理系统中的问题域主要概念类图问题域类图中的关系说明如下:1、一个图书名称可以有多个同样图书的副本。
2、每一个副本一定要对应一个图书名称。
3、一次借阅必须记录一个图书的副本和一个借书证信息。
4、一个副本可以被借阅,也可以不被借阅。
5、一个借书证可以借多本书,也可以不借一本书。
6、一个借书证可以进行多个图书名称的预定,也可以不进行预定。
7、一次预定必须记录一个图书名称信息和一个借书证信息。
8、一个图书名称可以被多次预定,也可以不被预定。
术语表也是一个重要的内容,下面我们给出图书管理系统的术语表:图书:图书是图书馆内最重要的对象,它是系统处理主要对象,图书是本书的信息描述,它包含了图书的名称,图书的作者以及图书的ISBN统一出版编号等内容。
副本:副本是图书的一个实例,一个图书信息可以有多个副本,也可以没有副本。
副本是借书时的真正对象。
只有一个图书有可以供借阅的副本时,借书者才可以对其借阅。
借书证:业务中的借书证记录了借书者的信息,从计算机应用软件开发的角度来看,如果组织对象,应该叫“借书者信息”更确切。
借阅:借阅是图书管理中的一个最重要的业务活动,它需要进行一系列的操作才能完成一个借阅业务,包括查找图书、查找副本、核对借书证(借书者信息)等步骤。
预定:预定是图书管理中的一个业务活动,它也需要一系列的操作才能完成。
书籍:书籍是图书的一种形式。
杂志:杂志也是图书的一种形式。
图书管理员:图书馆的工作人员,直接为借书者提供服务的人,也是系统的直接使用者。
借书者:到图书馆借书的人,属于图书馆的用户(服务对象)。
借书者信息:一个记录了借书者完整信息的卡片,包括借书者的姓名、居住地址,所在城市和电话号码等内容。
有关的术语可能还有很多,这里就不再一一列出。
对于图书管理系统的业务模型,我们可以采用逐步描述的方式来建立:一、确定业务系统的参与者系统的参与者:借书者业务系统:图书馆二、确定业务系统的参与者的目标对于借书者的目标我们可以描述如下:1 借书use csae 12 还书use case 33 预定use case 34 取消预定use case 4三、绘制图书馆业务系统的Use case 模型图四、在以上四个use case中挑选一个作为首先实现的目标。
选择:use case 1,借书作为我们首先分析和实现的目标。
五、了解业务系统的参与者的期望,导出系统责任。
写出use case 描述的事件流。
Business use case 描述:借书借书者到图书馆里选择了喜欢的图书之后,要求图书馆办理借书手续,图书馆登记所借图书的借阅资料,查找所借的图书是否存在以及所借图书是否还有副本,请借书者提供借书证。
借书者请图书馆登记借书证上的借书者信息,图书馆登记完成后,将借书者所要借的图书交给借书者,借书者拿着图书离开图书馆。
六、绘制业务系统的顺序图(Sequence diagram)根据事件流的描述,绘出业务系统的顺序图,见图2-2。
通过该图我们可以看到,图书馆这个业务系统需要向借书者提供以下的服务:1、受借书请求。
2、提示借书者提供所要借的图书名称3、接受借书者提供的图书名称4、查找书名5、查找副本6、提示借书者给出借书者信息7、接受借书者给出的借书者信息8、核对借书者信息并记录借阅信息9、将图书送出,提示借书者拿走图书: 借书者图2-2 业务系统级的顺序图七、打开业务系统,找出业务系统内部的业务对象模型元素根据前面的需求说明,我们知道图书馆内部情况如下:作为图书馆工作人员的图书管理员,他们负责为借书者服务,并操作各种业务实体来完成图书馆的各种业务流程。
作为图书馆内部的业务实体有:图书借阅登记、图书预定登记、图书信息卡、图书副本、借书人信息等。
每登记一次图书借阅,需要登记图书名称、借书者名称以及图书副本号等信息。
每登记一次图书预定,需要登记图书名称和借书者信息。
具体的系统内部结构图见图2-3。
图2-3 图书馆业务系统内部业务对象模型元素八、写出详细的事件处理流描述事件流描述:借书借书者到图书馆里选择了喜欢的图书之后,要求图书管理员办理借书手续,图书管理员使用图书管理系统登记所借图书的借阅资料。
首先,图书管理员向图书借阅登记输入图书名称,图书借阅登记请图书信息卡查找所借的图书是否存在,如果该图书存在,则图书信息卡请图书副本检查该图书是否还有副本,如果有,进行下面的工作;图书管理员请借书者提供借书者信息。
借书者请图书管理员登记借书者信息,图书管理员向图书借阅登记输入借书者信息,图书借阅登记请借书者信息核对该信息是否有效;如果有效,图书借阅登记将登记相应的借书者信息、图书信息卡和图书副本。
处理完成后,提示图书管理员登记完毕,图书管理员将借书者所要借的图书交给借书者,借书者拿着图书离开图书馆。
九、绘制业务系统详细顺序图(Sequence diagram)根据上面的借书事件流描述,我们可以给出借书业务的顺序图,如图2-4。
通过顺序图我们可以看到每一个对象的责任:借书者:通过请求借书,启动借书流程;向图书管理员提供图书名称和借书者信息;拿走图书。
图书管理员:接受借书请求,启动系统的借书流程;接受借书者提供的图书名称、借书者信息;向图书借阅登记对象提供图书名称和借书人名称;提示借书人拿走图书。
图书借阅登记:接受并执行借书登记;接受并执行查找图书;接受并执行核对借书人信息。
图书信息卡:负责查找图书。
图书副本:负责查找核实空闲的副本。
借书人信息:负责查找核实借书人,确认其为合法的借书人。
应当注意的是,借书事件流的描述并非只有以上的一种描述方式,它将随着业务处理方式的不同而改变。
比如,我们也可以这样描述:借书者到图书馆里选择了喜欢的图书之后,将选定的图书名称和借书者信息交给图书管理员,要求图书管理员办理借书手续,图书管理员使用图书管理系统登记所借图书的借阅资料。
首先,图书管理员向图书借阅登记输入图书名称和借书者信息,请图书借阅登记处理借书登记业务,图书借阅登记请图书信息卡查找所借的图书是否存在,如果该图书存在,则请图书副本检查该图书是否还有副本,如果有,进行下面的工作;图书借阅登记请借书者信息核对该信息是否有效,如果有效,图书借阅登记将登记相应的借书者信息、图书信息卡和图书副本。
处理完成后,提示图书管理员登记完毕,图书管理员将借书者所要借的图书交给借书者,借书者拿着图书离开图书馆。
这样的操作过程必然产生不同的顺序图。
它明显地减少了图书管理员与借书者之间的交互次数。
这种方式所产生的顺序图见图2-5。
: 借书人: 图书管理员: 图书借阅登记: 图书信息卡: 图书副本 : 借书人信息图2-4 业务系统打开后的顺序图在建立业务模型时,术语表也是一个重要的内容,它是在前面已经建立的问题域模型的基础上进行增补而形成的。
下面我们给出图书管理系统业务模型的术语表:图书信息卡:图书信息卡是图书馆内最重要的对象,它是系统处理主要对象,图书信息卡是某一本图书的信息描述,它包含了图书的名称,图书的作者以及图书的ISBN统一出版编号等内容。
图书副本:图书副本是图书的一个实例,一个图书信息卡可以有多个图书副本,也可以没有图书副本。
图书副本是借书时的真正对象。
只有一个图书信息卡有可以供借阅的图书副本时,借书者才可以对其借阅。