实例:图书管理系统的分析与设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
11.1.3 识别用例 11.1.4 用例的事件流描述
主编:汤文亮
11.1.1 系统需求
系统需求分类
(1) 功能性需求:描述系统的功能,即系统可以做
什么或被期望做什么;
(2) 非功能性需求:描述系统与更好地提供功能需
求相关的方面,如性能、安全性等;
(3) 可用性需求:描述特定用户在特定环境下有效
图书管理系统功能性需求
(7) 图书管理员可以修改借阅者帐号;
(8) 图书管理员可以删除已存在的借阅者帐号;
(9) 图书管理员可以添加新书刊种类;
(10) 图书管理员可以修改书刊种类信息;
(11) 图书管理员可以删除系统中的书刊种类;
11.1.1 系统需求
图书管理系统功能性需求
(12) 图书管理员可以在系统中添加书刊信息(注意
详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(2) Title
描述书刊的种类信息,包括书刊名、作者、 ISBN/ISSN号等信息。 Title可以没有预定记录或有多个预定记录。 Title继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
用户界面类
(3) FindBwrDialog
根据借阅者ID来查找借阅者的对话框。当主窗 口中执行“删除借阅者”和“修改借阅者”时, 该对话框弹出。 (4) TitleDialog
进行操作“添加书种”、 “修改书种” 、 “删 除书种”。调用FindTDialog查询ISBN/ISSN, 以调出此对话框。
GUI包由界面类组成,Library包由实体类组成, DB包由数据库相关类组成。
主编:汤文亮
11.2.3 建立类图
系统包图
系统包图
GUI Library
DB
11.2.3 建立类图—用户界面类的类图
11.2 静态结构模型
11.2.1 11.2.2 11.2.3
定义系统对象 定义用户界面类 建立类图
主编:汤文亮
11.2.1 定义系统对象
识别系统对象
根据系统需求识别出系统中存在的对象。
系统对象的识别可以通过寻找域描述和需求描述 中的名词来进行。
名词(候选对象)
借阅者(Borrower)、物理书刊(Book) 、
地、舒服地达到特定目标的程度。
11.1.1 系统需求
图书馆图书管理系统的域描述
(1) 借阅者帐号:为每个借阅者建立一个帐号,发
送借阅卡,存储借阅相关信息;
(2) 借阅者操作:借阅书刊、返还书刊、查询书刊
信息、预订书刊、取消预订,所有操作与图书管理 员交互进行; (3) 系统简化:不考虑书刊的最长借阅期限,假设 借阅者可以无限期地保存所借阅的书刊。
软件开发实例 图书管理系统的 分析与设计
汤文亮 华东交通大学软件学院 E-mial:twlecjtu@163.com
目录
11.1 系统需求分析
11.2 静态结构模型 11.3 动态行为模型与物理模型
主编:汤文亮
11.1 系统需求分析
11.1.1 系统需求
11.1.2 识别参与者
用户界面类
(9) MessageWindow
显示提示信息的窗口。
(10) LoginDialog
输入用户名和密码的对话框。
详细说明
主编:汤文亮
11.2.3 建立类图
建立类图
识别了系统中的类后,还需识别出类间的关系,
而后即可建立类图。
可将系统中的类大体上分为三类,分别包含在3个 包中,GUI包、Library包、DB包。
11.1.2 识别参与者
识别参与者
系统有两个参与者,BorrowerActor(借阅者)和 Librarian(图书管理员)。
参与者描述
(1) BorrowerActor
描述:借阅者可以借阅、预定、归还物理书刊, 还可取消预定。
示例:持有借阅卡的任何人或组织。
主编:汤文亮
11.1.2 识别参与者
11.1.1 系统需求
图书管理系统功能性需求
(1) 借阅者持有借阅卡;
(2) 图书管理员作为借阅者的代理借书;
(3) 图书管理员作为借阅者的代理预订书刊;
(4) 图书管理员作为借阅者的代理取消预订;
(5) 图书管理员作为借阅者的代理还书;
(6) 图书管理员可以创建新的借阅者帐户;
11.1.1 系统需求
11.2.1 定义系统对象
对象的属性和行为
(7) OID
实现了对象ID。OID的对象可用来引用系统中的 持久对象,使得从数据库中引用和检索对象容易。 由所引用的类的类名和唯一的idNumber组成。 将OID传递给Persistent的方法getObject,可读 取数据库对象返回给调用者。 详细说明(属性
数据库相关类
(1) Persistent
它是以上5个类的父类。它为商业对象的持久存 储提供支持,其子类必须实现从数据库文件中读、 写对象属性的操作。 (2) OID
它实现了对象ID。它的对象可用来引用系统中的 持久对象,使得从数据库文件中引用和检索对象 变得容易。
11.2.1 定义系统对象
对象的属性和行为
供创建、修改、取消借阅者帐号的功能。
(6) Maintain Title Info(维护书刊信息):提供添加、
修改、删除书刊信息的功能。
主编:汤文亮
11.1.3 识别用例
识别用例
(7) Maintain Book Info(维护物理书刊信息):提供
添加、修改、删除物理书刊信息的功能。
(8) Log In(登录):描述用户如何登录进入软件系
(4) Loan
描述借阅者从图书馆借阅物理书刊的借阅记录, 一个Loan对象对应一个物理书刊。 物理书刊被借阅/返还时,Loan对象被创建/删除。 Loan继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(5) Reservation
11.2.1 定义系统对象
系统对象
(4) 借阅记录(Loan)
借阅记录有身份,如同一人借不同的书则记录不 同;借阅记录有相关行为,如可被预定或取消预 定等,所以它是系统中的一个对象。 (5) 预定记录(Reservation)
预定记录有身份,如同一书刊被不同人预定则记 录不同;预定记录有相关行为,如可被创建或删 除等,所以它是系统中的一个对象。
11.2.1 定义系统对象
数据库相关类
以上5个类都是实体类,是持久性的,需要保存 在数据库中。 为便于在数据库中引用和检索对象,建立一个描 述对象id的类(OID);为便于对数据库进行读、 写、存储等操作,在5个持久类的基础上抽象出 一个持久性父类(Persistent)。
11.2.1 定义系统对象
对象的属性和行为
(3) Book
代表可借阅的物理书刊,有两个状态“已借出” 和“未借出”。 Book与Title对应,一种书刊通常有多本物理拷贝, 每个物理书刊使用唯一ID号来区分。 Book继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
主编:汤文亮
11.2.2 定义用户界面类
用户界面类
(5) FindTDialog
根据书刊种类的ISBN/ISSN信息查找书刊种类的 对话框。 (6) BorrowDialog 进行借阅操作时所需的对话框。主窗口中选择 借阅,弹出此对话框。图书管理员输入书刊名、 书刊ISBN/ISSN信息和借阅者信息,执行借阅操 作,系统保存借阅记录。
能。
(2) Return Book(还书):提供返还物理书刊的功
能。
(3) Reserve Book(预定书刊):一般针对种类,而
非某个物理拷贝。
主编:汤文亮
11.1.3 识别用例
识别用例
(4) Cancel Reservation(取消预定):提供取消预
定功能。
(5) Maintain Borrower Info(维护借阅者信息):提
当无物理书刊在馆中,借阅者可以预定书刊,在 物理书刊返还图书馆时预定者可以优先借阅该物 理拷贝。 预定者借阅了书刊物理拷贝后,删除预定记录。 Title继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(6) Persistent
支持对象的持久存储,可以将对象写入数据库和 从数据库中读取对象。 通过OID来检索对象,获得存储、删除、更新对 象的方法。 Persistent的子类继承并实现了对数据库的读/写 操作。 详细说明(属性和行为)
书刊(Book) 、借阅记录(Loan) 、
预定记录(Reservation) 。
11.2.1 定义系统对象
确定系统对象
判断是否有与该对象相关的身份和行为,是则该 候选对象应为系统模型的一个对象。
系统对象
(1) 借阅者(Borrower) 借阅者有身份,如省份证可表征其身份;借阅者 有相关行为,如借阅、返还、预定等,所以它是 系统中的一个对象。
主编:汤文亮
11.2.2 定义用户界面类
用户界面类
(7) ReturnDialog
还书操作对话框。操作步骤与BorrowDialog基 本相同。 (8) RsvDialog 进行操作“预定”、 “取消预定”。操作步骤 与BorrowDialog基本相同。
主编:汤文亮
11.2.2 定义用户界面类
(1) Borrower
描述物理借阅者的信息,包括姓名、地址、邮编区号、 身份证号码和电话号码。
它与BorrowerActor不同,BorrowerActor代表系统外的物 理借阅者,而Borrower代表系统中存储的物理借阅者的 信息。 Borrower继承Persistent并实现数据库读/写操作。
11.2.1 定义系统对象
系统对象
(2) 书刊(Title)
书刊有身份,如ISBN/ISSN可表征其身份;书刊 有相关行为,如可被预定或取消预定等,所以它 是系统中的一个对象。 (3) 物理书刊(Book)
物理书刊有身份,如索引号可表征其身份;物理 书刊有相关行为,如可被借阅或返还等,所以它 是系统中的一个对象。
参与者描述
(2) Librarian
描述:图书管理员维护系统,可以创建、修改、
删除借阅者的信息,可以添加、编辑、删除书刊
信息,即维护目录,还可添加、编辑、删除物理 书刊信息。 示例:图书管理员
主编:汤文亮
11.1.3 识别用例
识别用例
(1) Borrow Book(借书):提供借阅物理书刊的功
Maintain Title Info
Maintain Book Info
主编:汤文亮
11.1.4 用例的事件流描述
用例的事件流描述
描述:事件流描述系统应该做什么,而不是应该
如何做,即用域语言描述,而非实验语言描述。
文档:事件流文档wenku.baidu.com建立主要在细化阶段进行。
细化步骤:常规流—细化流—例外流。
主编:汤文亮
和行为)
11.2.1 定义系统对象
类图与时序图
(1) 绘制时序图 类图与时序图的建立相辅相成,时序图中出现的 消息基本上都将成为类中的方法。因此,在设计 阶段,应在设计类图的同时绘制时序图。 (2) 识别类的方法 绘制时序图时,尽量使用类中已识别出的方法来 描述消息,如无法使用这些方法来描述消息,则 应考虑该消息是否为类的一个待识别的方法。若 是,则加入到类的方法列表中。
11.2.2 定义用户界面类
用户界面类
(1) MainWindow
系统的主界面,包括菜单和菜单项,不同的菜 单项执行不同的操作。程序退出,主界面窗口 关闭。 (2) BorrowerDialog 进行操作“添加借阅者”、 “修改借阅者” 、 “删除借阅者”。
主编:汤文亮
11.2.2 定义用户界面类
区分“书刊种类”与“书刊”);
(13) 图书管理员可以编辑书刊信息;
(14) 图书管理员可以删除书刊信息。
11.1.1 系统需求
需求分析
采用用例驱动的分析方法进行需求分析,主要任务
是识别出系统中的参与者和用例,并建立用例模型。
本系统中,“书刊种类”与“书刊”,对应地用
“书刊”和“物理书刊”来表示。
统。
主编:汤文亮
11.1.3 识别用例—系统用例图
Borrow Book <<uses>>
Cancel Reservation Librarian
Return Book
Reserve Title BorrowerActor
主编:汤文亮
11.1.3 识别用例—系统用例图
Log In
Maintain Borrower Info Librarian
主编:汤文亮
11.1.1 系统需求
系统需求分类
(1) 功能性需求:描述系统的功能,即系统可以做
什么或被期望做什么;
(2) 非功能性需求:描述系统与更好地提供功能需
求相关的方面,如性能、安全性等;
(3) 可用性需求:描述特定用户在特定环境下有效
图书管理系统功能性需求
(7) 图书管理员可以修改借阅者帐号;
(8) 图书管理员可以删除已存在的借阅者帐号;
(9) 图书管理员可以添加新书刊种类;
(10) 图书管理员可以修改书刊种类信息;
(11) 图书管理员可以删除系统中的书刊种类;
11.1.1 系统需求
图书管理系统功能性需求
(12) 图书管理员可以在系统中添加书刊信息(注意
详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(2) Title
描述书刊的种类信息,包括书刊名、作者、 ISBN/ISSN号等信息。 Title可以没有预定记录或有多个预定记录。 Title继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
用户界面类
(3) FindBwrDialog
根据借阅者ID来查找借阅者的对话框。当主窗 口中执行“删除借阅者”和“修改借阅者”时, 该对话框弹出。 (4) TitleDialog
进行操作“添加书种”、 “修改书种” 、 “删 除书种”。调用FindTDialog查询ISBN/ISSN, 以调出此对话框。
GUI包由界面类组成,Library包由实体类组成, DB包由数据库相关类组成。
主编:汤文亮
11.2.3 建立类图
系统包图
系统包图
GUI Library
DB
11.2.3 建立类图—用户界面类的类图
11.2 静态结构模型
11.2.1 11.2.2 11.2.3
定义系统对象 定义用户界面类 建立类图
主编:汤文亮
11.2.1 定义系统对象
识别系统对象
根据系统需求识别出系统中存在的对象。
系统对象的识别可以通过寻找域描述和需求描述 中的名词来进行。
名词(候选对象)
借阅者(Borrower)、物理书刊(Book) 、
地、舒服地达到特定目标的程度。
11.1.1 系统需求
图书馆图书管理系统的域描述
(1) 借阅者帐号:为每个借阅者建立一个帐号,发
送借阅卡,存储借阅相关信息;
(2) 借阅者操作:借阅书刊、返还书刊、查询书刊
信息、预订书刊、取消预订,所有操作与图书管理 员交互进行; (3) 系统简化:不考虑书刊的最长借阅期限,假设 借阅者可以无限期地保存所借阅的书刊。
软件开发实例 图书管理系统的 分析与设计
汤文亮 华东交通大学软件学院 E-mial:twlecjtu@163.com
目录
11.1 系统需求分析
11.2 静态结构模型 11.3 动态行为模型与物理模型
主编:汤文亮
11.1 系统需求分析
11.1.1 系统需求
11.1.2 识别参与者
用户界面类
(9) MessageWindow
显示提示信息的窗口。
(10) LoginDialog
输入用户名和密码的对话框。
详细说明
主编:汤文亮
11.2.3 建立类图
建立类图
识别了系统中的类后,还需识别出类间的关系,
而后即可建立类图。
可将系统中的类大体上分为三类,分别包含在3个 包中,GUI包、Library包、DB包。
11.1.2 识别参与者
识别参与者
系统有两个参与者,BorrowerActor(借阅者)和 Librarian(图书管理员)。
参与者描述
(1) BorrowerActor
描述:借阅者可以借阅、预定、归还物理书刊, 还可取消预定。
示例:持有借阅卡的任何人或组织。
主编:汤文亮
11.1.2 识别参与者
11.1.1 系统需求
图书管理系统功能性需求
(1) 借阅者持有借阅卡;
(2) 图书管理员作为借阅者的代理借书;
(3) 图书管理员作为借阅者的代理预订书刊;
(4) 图书管理员作为借阅者的代理取消预订;
(5) 图书管理员作为借阅者的代理还书;
(6) 图书管理员可以创建新的借阅者帐户;
11.1.1 系统需求
11.2.1 定义系统对象
对象的属性和行为
(7) OID
实现了对象ID。OID的对象可用来引用系统中的 持久对象,使得从数据库中引用和检索对象容易。 由所引用的类的类名和唯一的idNumber组成。 将OID传递给Persistent的方法getObject,可读 取数据库对象返回给调用者。 详细说明(属性
数据库相关类
(1) Persistent
它是以上5个类的父类。它为商业对象的持久存 储提供支持,其子类必须实现从数据库文件中读、 写对象属性的操作。 (2) OID
它实现了对象ID。它的对象可用来引用系统中的 持久对象,使得从数据库文件中引用和检索对象 变得容易。
11.2.1 定义系统对象
对象的属性和行为
供创建、修改、取消借阅者帐号的功能。
(6) Maintain Title Info(维护书刊信息):提供添加、
修改、删除书刊信息的功能。
主编:汤文亮
11.1.3 识别用例
识别用例
(7) Maintain Book Info(维护物理书刊信息):提供
添加、修改、删除物理书刊信息的功能。
(8) Log In(登录):描述用户如何登录进入软件系
(4) Loan
描述借阅者从图书馆借阅物理书刊的借阅记录, 一个Loan对象对应一个物理书刊。 物理书刊被借阅/返还时,Loan对象被创建/删除。 Loan继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(5) Reservation
11.2.1 定义系统对象
系统对象
(4) 借阅记录(Loan)
借阅记录有身份,如同一人借不同的书则记录不 同;借阅记录有相关行为,如可被预定或取消预 定等,所以它是系统中的一个对象。 (5) 预定记录(Reservation)
预定记录有身份,如同一书刊被不同人预定则记 录不同;预定记录有相关行为,如可被创建或删 除等,所以它是系统中的一个对象。
11.2.1 定义系统对象
数据库相关类
以上5个类都是实体类,是持久性的,需要保存 在数据库中。 为便于在数据库中引用和检索对象,建立一个描 述对象id的类(OID);为便于对数据库进行读、 写、存储等操作,在5个持久类的基础上抽象出 一个持久性父类(Persistent)。
11.2.1 定义系统对象
对象的属性和行为
(3) Book
代表可借阅的物理书刊,有两个状态“已借出” 和“未借出”。 Book与Title对应,一种书刊通常有多本物理拷贝, 每个物理书刊使用唯一ID号来区分。 Book继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
主编:汤文亮
11.2.2 定义用户界面类
用户界面类
(5) FindTDialog
根据书刊种类的ISBN/ISSN信息查找书刊种类的 对话框。 (6) BorrowDialog 进行借阅操作时所需的对话框。主窗口中选择 借阅,弹出此对话框。图书管理员输入书刊名、 书刊ISBN/ISSN信息和借阅者信息,执行借阅操 作,系统保存借阅记录。
能。
(2) Return Book(还书):提供返还物理书刊的功
能。
(3) Reserve Book(预定书刊):一般针对种类,而
非某个物理拷贝。
主编:汤文亮
11.1.3 识别用例
识别用例
(4) Cancel Reservation(取消预定):提供取消预
定功能。
(5) Maintain Borrower Info(维护借阅者信息):提
当无物理书刊在馆中,借阅者可以预定书刊,在 物理书刊返还图书馆时预定者可以优先借阅该物 理拷贝。 预定者借阅了书刊物理拷贝后,删除预定记录。 Title继承Persistent并实现数据库读/写操作。 详细说明(属性和行为)
11.2.1 定义系统对象
对象的属性和行为
(6) Persistent
支持对象的持久存储,可以将对象写入数据库和 从数据库中读取对象。 通过OID来检索对象,获得存储、删除、更新对 象的方法。 Persistent的子类继承并实现了对数据库的读/写 操作。 详细说明(属性和行为)
书刊(Book) 、借阅记录(Loan) 、
预定记录(Reservation) 。
11.2.1 定义系统对象
确定系统对象
判断是否有与该对象相关的身份和行为,是则该 候选对象应为系统模型的一个对象。
系统对象
(1) 借阅者(Borrower) 借阅者有身份,如省份证可表征其身份;借阅者 有相关行为,如借阅、返还、预定等,所以它是 系统中的一个对象。
主编:汤文亮
11.2.2 定义用户界面类
用户界面类
(7) ReturnDialog
还书操作对话框。操作步骤与BorrowDialog基 本相同。 (8) RsvDialog 进行操作“预定”、 “取消预定”。操作步骤 与BorrowDialog基本相同。
主编:汤文亮
11.2.2 定义用户界面类
(1) Borrower
描述物理借阅者的信息,包括姓名、地址、邮编区号、 身份证号码和电话号码。
它与BorrowerActor不同,BorrowerActor代表系统外的物 理借阅者,而Borrower代表系统中存储的物理借阅者的 信息。 Borrower继承Persistent并实现数据库读/写操作。
11.2.1 定义系统对象
系统对象
(2) 书刊(Title)
书刊有身份,如ISBN/ISSN可表征其身份;书刊 有相关行为,如可被预定或取消预定等,所以它 是系统中的一个对象。 (3) 物理书刊(Book)
物理书刊有身份,如索引号可表征其身份;物理 书刊有相关行为,如可被借阅或返还等,所以它 是系统中的一个对象。
参与者描述
(2) Librarian
描述:图书管理员维护系统,可以创建、修改、
删除借阅者的信息,可以添加、编辑、删除书刊
信息,即维护目录,还可添加、编辑、删除物理 书刊信息。 示例:图书管理员
主编:汤文亮
11.1.3 识别用例
识别用例
(1) Borrow Book(借书):提供借阅物理书刊的功
Maintain Title Info
Maintain Book Info
主编:汤文亮
11.1.4 用例的事件流描述
用例的事件流描述
描述:事件流描述系统应该做什么,而不是应该
如何做,即用域语言描述,而非实验语言描述。
文档:事件流文档wenku.baidu.com建立主要在细化阶段进行。
细化步骤:常规流—细化流—例外流。
主编:汤文亮
和行为)
11.2.1 定义系统对象
类图与时序图
(1) 绘制时序图 类图与时序图的建立相辅相成,时序图中出现的 消息基本上都将成为类中的方法。因此,在设计 阶段,应在设计类图的同时绘制时序图。 (2) 识别类的方法 绘制时序图时,尽量使用类中已识别出的方法来 描述消息,如无法使用这些方法来描述消息,则 应考虑该消息是否为类的一个待识别的方法。若 是,则加入到类的方法列表中。
11.2.2 定义用户界面类
用户界面类
(1) MainWindow
系统的主界面,包括菜单和菜单项,不同的菜 单项执行不同的操作。程序退出,主界面窗口 关闭。 (2) BorrowerDialog 进行操作“添加借阅者”、 “修改借阅者” 、 “删除借阅者”。
主编:汤文亮
11.2.2 定义用户界面类
区分“书刊种类”与“书刊”);
(13) 图书管理员可以编辑书刊信息;
(14) 图书管理员可以删除书刊信息。
11.1.1 系统需求
需求分析
采用用例驱动的分析方法进行需求分析,主要任务
是识别出系统中的参与者和用例,并建立用例模型。
本系统中,“书刊种类”与“书刊”,对应地用
“书刊”和“物理书刊”来表示。
统。
主编:汤文亮
11.1.3 识别用例—系统用例图
Borrow Book <<uses>>
Cancel Reservation Librarian
Return Book
Reserve Title BorrowerActor
主编:汤文亮
11.1.3 识别用例—系统用例图
Log In
Maintain Borrower Info Librarian