1、作者:冀振燕 UML系统分析与设计教程,1,第13章 图书管理系统的分析与设计,作者:冀振燕 UML系统分析与设计教程,2,需求分析,图书馆图书管理系统的域描述如下:在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预订信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预订书刊并取消预订,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊名、书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者
2、名,完成后提交所填表格,系统验证借阅者是否有效(在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借的书刊已被借出,借阅者还可预订该书刊,一旦借阅者预订的书刊可以获得,就将书刊直接寄给预订人(为了简化系统,预订书刊可获得时就不通知借阅者了)。另外,为了简化系统,也不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。,作者:冀振燕 UML系统分析与设计教程,3,需求分析,功能性需求: (1)借阅者持有借阅卡(借阅者名和借阅卡号)。
3、 (2)图书管理员作为借阅者的代理借书。 (3)图书管理员作为借阅者的代理预订书刊。 (4)图书管理员作为借阅者的代理取消预订。 (5)图书管理员作为借阅者的代理还书。 (6)图书管理员可以创建新的借阅者账户。 (7)图书管理员可以修改借阅者的账户信息。 (8)图书管理员可以删除已存在的借阅者账户。 (9)图书管理员可以添加新书刊种类。 (10)图书管理员可以修改书刊种类信息。 (11)图书管理员可以删除系统中的书刊种类。 (12)图书管理员可以在系统中添加书刊信息(注意区分“书刊种类”与“书刊”)。 (13)图书管理员可以编辑书刊信息。 (14)图书管理员可以删除书刊信息。,作者:冀振燕 U
4、ML系统分析与设计教程,4,需求分析,作者:冀振燕 UML系统分析与设计教程,5,用例的事件流描述:例,1借阅物理书刊(Borrow Book) 1.1前置条件(Pre-Conditions) 在这个用例开始前,Librarian必须登录到系统中。 1.2后置条件(Post-Conditions) 如果这个用例成功,在系统中建立并存储借阅记录,如果必要还要删除预订记录。反之,系统的状态没有变化。 1.3扩充点(Extension Points) 没有。 1.4事件流 1.4.1基流(Basic Flow) 当借阅者从图书馆借阅物理书刊时,用例启动。 如果Librarian选择“借书”,则执行分
5、支流S-1:借阅物理书刊。 如果所借的物理书刊是经过预订的,则执行分支流S-2:通过预订借阅物理书刊。 1.4.2分支流(Subflows) S-1:借阅物理书刊 (1)提供书刊种类、借阅者信息。 (2)检索书刊种类(Title)(E-1)。 (3)确定所借阅的物理书刊是否可以获得(E-2),也即物理书刊是否都已借出。,作者:冀振燕 UML系统分析与设计教程,6,用例的事件流描述:例,(4)检索借阅者(E-3)。 (5)图书馆将物理书刊借给借阅者。 (6)创建借阅记录。 (7)存储借阅记录。 S-2:通过预订借阅物理书刊 (1)提供书刊种类、借阅者信息。 (2)检索书刊种类(Title)(E-
6、1)。 (3)检索借阅者(E-3)。 (4)确定该种类书刊的物理拷贝是否可以获得(E-2)。 (5)将物理书刊发给借阅者。 (6)创建借阅记录。 (7)存储借阅记录。 (8)删除预订记录。 1.4.3替代流(Alternative Flow) E-1:该种书刊不存在,系统显示提示信息,用例终止。 E-2:物理书刊都已借出,系统显示提示信息,用例终止。 E-3:系统中不存在该借阅者,系统显示提示信息,用例终止。,作者:冀振燕 UML系统分析与设计教程,7,用例的事件流描述:例,5维护借阅者信息(Maintain Borrower Info) 5.1前置条件(Pre-Conditions) 在这个
7、用例开始前,Librarian必须登录到系统中。 5.2后置条件(Post-Conditions) 如果这个用例成功,系统添加、修改或删除借阅者信息。反之,系统的状态没有变化。 5.3扩充点(Extension Points) 没有。 5.4事件流 5.4.1基流(Basic Flow) 当Librarian想维护借阅者信息时,用例启动, 系统要求Librarian选择所想执行的活动(添加借阅者、删除借阅者、或修改借阅者) 如果所选的活动是“添加借阅者”,则执行分支流S-1:添加借阅者。 如果所选的活动是“删除借阅者”,则执行分支流S-2:删除借阅者。 如果所选的活动是“修改借阅者”,则执行分
8、支流S-3:修改借阅者。 5.4.2分支流(Subflows) S-1:添加借阅者 (1)提供借阅者的信息,如姓名、地址、邮政编码和身份证号码等。 (2)系统存储借阅者信息(E-1)。,作者:冀振燕 UML系统分析与设计教程,8,用例的事件流描述:例,S-2:删除借阅者 (1)提供借阅者的信息。 (2)查询借阅者(E-2)。 (3)查询借阅者的借阅记录(E-3)。 (4)从系统中删除借阅者的信息,以及借阅者的预订记录。 S-3:更改借阅者 (1)提供借阅者的信息。 (2)查询并显示借阅者的信息(E-2),修改相应的信息。 (3)更新系统中借阅者的信息。 5.4.3替代流(Alternative
9、 Flow) E-1:若借阅者已存在,系统显示提示信息,用例终止。 E-2:若查询不到借阅者,系统显示提示信息,用例终止。 E-3:若存在借阅记录,系统显示提示信息,用例终止。,作者:冀振燕 UML系统分析与设计教程,9,静态结构模型:系统包图,作者:冀振燕 UML系统分析与设计教程,10,静态结构模型:用户界面类的类图,作者:冀振燕 UML系统分析与设计教程,11,静态结构模型:实体类的类图,作者:冀振燕 UML系统分析与设计教程,12,动态行为模型:交互作用图 ,添加借阅者,作者:冀振燕 UML系统分析与设计教程,13,动态行为模型:交互作用图 ,还书,作者:冀振燕 UML系统分析与设计教程,14,动态行为模型:状态机图,Book对象的状态机图,作者:冀振燕 UML系统分析与设计教程,15,动态行为模型:状态机图,Title对象的状态机图,作者:冀振燕 UML系统分析与设计教程,16,物理模型,