当前位置:文档之家› 软件开发生命周期与建模-实验报告(面向对象系统分析与设计)图书管理系统

软件开发生命周期与建模-实验报告(面向对象系统分析与设计)图书管理系统

信息与管理科学学院计算机科学系

实验报告

课程名称:软件开发生命周期与建模

实验名称:【实验5】基于UML和OOAD的系统分析与设计

姓名:杨现阳,张泽浩,张金庚,张俊超,杨波,王秋波

组号: 3 班级:2014级计应4班指导教师:张浩实验室:兰亭机房2 日期: 2016年06月01日

一、实验目的

通过常用的基于UML和OOAD的系统分析与设计实例实验,理解OOAD 分析过程,熟悉UML9大视图,掌握基于OOAD的软件系统分析与设计方法,达到举一反三解决实际问题的目的。

二、实验环境

一台PC机,所需软件Win7/10、UML工具(Rose/Visio/EclipseUML/ StartUML/)、Eclipse/MyEclipse、JDK6.0等。

三、实验内容

基于UML和OOAD的系统分析与设计【任选一题】,建立用例模型、类图、对象图、时序图、活动图等。

●图书信息管理系统:角色用户包括系统管理员、采编录入管理员、借书管理员、

还书管理员、学生用户、教师用户。系统主要功能包含:角色权限管理、用户信

息管理(增删改查)、图书信息采编入库、基础信息管理(增删改查)、基础信息

统计、借书管理与统计、还书管理与统计等。

●大学生选课管理系统:角色用户包括系统管理员、基础信息管理员(教师信息

管理员、学生信息管理员、教室信息管理员、实验室信息管理员、课表信息管理、

课程信息管理员、教学任务信息管理员)、教师、学生、教室管理者、实验室管

理者等。系统主要功能包含:角色权限管理、用户信息管理、基础信息管理、教

师选报教学任务、教学管理者排课、学生选课(必修课、选修课)、学生补选课、

周课表查看与打印、课程信息查询与打印、选课信息统计等。

四、实验操作过程

1.对系统进行需求分析,形成准确、完整的用户需求描述文档。

?系统的功能需求主要包括以下几个方面:

①借阅者可以通过网络查询书籍信息和预定书籍。

②借阅者能够借阅书籍和还书。

③图书管理员能够处理借阅者的借阅和还书请求。

④系统管理员可以对系统的数据进行维护,如增加、删除和更新

书目,增加、删除和更新借阅者帐户,增加和删除书籍。

?用户提出的需求包括下列内容:

1. 这是一个图书馆支持系统;

2. 图书馆将图书和杂志借给借书者。借书者已经预先注册,图书和杂志也预

先注册;

3. 图书馆负责新书的购买。每一本图书都购进多本书。当旧书超期或破旧不

堪时,从图书馆中去掉。

4. 图书管理员是图书馆的员工。他们的工作就是和读者打交道并在软件系统

的支持下工作。

5. 借阅人可以预定当前没有的图书和杂志。这样,当他所预定的图书和杂志

归还回来或购进时,就通知预定人。当预定了某书的借书者借阅了该书后,预

定就取消。或者通过显式的取消过程强行取消预定。

6. 图书馆能够容易地建立、修改和删除标题、借书者、借阅信息和预定信息。

7. 系统能够运行在所有流行的技术环境中,包括Unix, Windows和Linux,并

应有一个良好的人机交互图形用户界面(GUI)。

8. 系统容易扩展新功能。系统可以不必考虑预定的图书到达后通知预定人的

功能。

9.如果读者还书超过期限(本科生1个月,研究生2个月,教师3个月),需

扣款。

2.正常事件流与异常事件流描述。

书管理系统的用例事件流描述: 1.借阅物理书刊(Borrow Book) 1.1 前置条件(Pro-Conditions)在这个用例开始前,Librarian 必须登录到系统中 1.2 后置条件(Post-Conditions)

如果这个用例成功,在系统中建立并存储借阅记录,如果必要还要删除预定记录。否则,系统的状态没有变化。

1.3 扩充点(Extension Points)没有

1.4 事件流

1.4.1 基流(Basic Flow)

当借阅者从图书馆借阅物理书刊时,用例启动。如果Librarian 选择“借书”,则执行分支流S-1:借阅物理书刊。

如果所借的物理书刊是经过预定的,则执行分支流S-2:通过预定借阅物理书刊。 1.4.2 分支流(Subflows) S-1:借阅物理书刊

(1)提供书刊种类、借阅者信息(2)检索书刊种类(Title)(E-1)

(3)确定所借阅的物理书刊是否可以获得(E-2),即物理书刊是否都已借出(4)检索借阅者(E-3)(5)图书馆将物理书刊借给借阅者(6)创建借阅记录(7)存储借阅记录

S-2:通过预定借阅物理书刊

(1)提供书刊种类、借阅者信息(2)检索书刊种类(Title)(E-1)(3)检索借阅者(E-3)

(4)确定该类书刊的物理拷贝是否可以获得(E-2)(5)将物理书刊发给借阅者(6)创建借阅记录(7)存储借阅记录(8)删除预定记录

1.4.3 替代流(Alternative Flow)

E-1:该种书刊不存在,系统显示提示信息,用例终止 E-2:物理书刊都已借出,系统显示提示信息,用例终止 E-3:系统中不存在该借阅者,系统显示提示信息,用例终止 2.返回物理书刊(Return Book) 2.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 2.2后置条件(Post-Conditions)

如果这个用例成功,系统删除借阅记录。否则,系统的状态没有变化。 2.3 扩充点(Extension Points)没有书管理系统的用例事件流描述: 1.借阅物理书刊(Borrow Book) 1.1 前置条件(Pro-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 1.2 后置条件(Post-Conditions)

如果这个用例成功,在系统中建立并存储借阅记录,如果必要还要删除预定记录。否则,系统的状态没有变化。

1.3 扩充点(Extension Points)没有

1.4 事件流

1.4.1 基流(Basic Flow)

当借阅者从图书馆借阅物理书刊时,用例启动。如果Librarian 选择“借书”,则执行分支流S-1:借阅物理书刊。

如果所借的物理书刊是经过预定的,则执行分支流S-2:通过预定借阅物理书刊。 1.4.2 分支流(Subflows) S-1:借阅物理书刊

(1)提供书刊种类、借阅者信息(2)检索书刊种类(Title)(E-1)

(3)确定所借阅的物理书刊是否可以获得(E-2),即物理书刊是否都已借出(4)检索借阅者(E-3)(5)图书馆将物理书刊借给借阅者(6)创建借阅记录(7)存储借阅记录

S-2:通过预定借阅物理书刊

(1)提供书刊种类、借阅者信息(2)检索书刊种类(Title)(E-1)(3)检索借阅者(E-3)(4)确定该类书刊的物理拷贝是否可以获得(E-2)(5)将物理书刊发给借阅者(6)创建借阅记录(7)存储借阅记录(8)删除预定记录

1.4.3 替代流(Alternative Flow)

E-1:该种书刊不存在,系统显示提示信息,用例终止 E-2:物理书刊都已借出,系统显示提示信息,用例终止 E-3:系统中不存在该借阅者,系统显示提示信息,用例终止 2.返回物理书刊(Return Book) 2.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 2.2后置条件(Post-Conditions)

如果这个用例成功,系统删除借阅记录。否则,系统的状态没有变化。 2.3 扩充点(Extension Points)没有 2.4 事件流

2.4.1 基流(Basic Flow)

当借阅者返回所借阅物理书刊时,用例启动。(1)提供所还物理书刊信息(2)检索物理书刊(E-1)(3)查询物理书刊的借阅记录(E-2)(4)删除借阅记录

2.4.2 替代事件流(Alternative Flow)

E-1:物理书刊不存在,系统显示提示信息,用例终止 E-2:若借阅记录不存在,系统显示提示信息,用例终止 3.预定书刊(Reserve Title) 3.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 3.2后置条件(Post-Conditions)

如果这个用例成功,系统建立预定记录。否则,系统的状态没有变化。 3.3 扩充点(Extension Points)没有

3.4 事件流

3.4.1 基流(Basic Flow)

当Librarian为借阅者预定物理书刊时,用例启动。(1)提供书刊种类、借阅者信息(2)检索书刊种类(E-1)(3)检索借阅者(E-2)

(4)系统接受预定,创建预定记录(5)将预定记录存储在系统中

3.4.2 替代事件流(Alternative Flow)

E-1:该种书刊不存在,系统显示提示信息,用例终止 E-2:系统不存在该借阅者,系统显示提示信息,用例终止 4.取消预订(Cancel Reservation) 4.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 4.2后置条件(Post-Conditions)

如果这个用例成功,系统删除预定记录。否则,系统的状态没有变化。 4.3 扩充点(Extension Points)没有

4.4 事件流

4.4.1 基流(Basic Flow)

(1)提供所预定的书刊种类、借阅者信息(2)检索所预定书刊种类(E-1)(3)检索借阅者(E-2)(4)从系统删除预定记录(E-3) 4.4.2 替代事件流(Alternative Flow)

E-1:该种书刊不存在,系统显示提示信息,用例终止 E-2:系统不存在该借阅者,系统显示提示信息,用例终止 E-3:预定信息不存在,系统显示提示信息,用例终止

5.维护借阅者信息(Maintain Borrower Info) 5.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 5.2后置条件(Post-Conditions)

如果这个用例成功,系统添加、修改、删除借阅者信息。否则,系统的状态没有变化。 5.3 扩充点(Extension Points)没有

5.4 事件流

5.4.1 基流(Basic Flow)

系统要求Librarian选择所要执行的活动(添加、修改、删除借阅者信息)如果所选择的活动是“添加借阅者”,则执行分支流S-1:添加借阅者如果所选择的活动是“删除借阅者”,则执行分支流S-2:删

除借阅者如果所选择的活动是“修改借阅者”,则执行分支流S-3:修改借阅者 5.4.2 分支流(Subflows) S-1:添加借阅者

(1)提供借阅者的信息,如姓名、地址、邮政编码和身份证号码等。(2)系统存储借阅者信息(E-1)。 S-2:删除借阅者

(1)提供借阅者的信息(2)查询借阅者(E-2)

(3)查询借阅者的借阅记录(E-3)

(4)从系统中删除借阅者的信息,以及借阅者的预定记录 S-3:更改借阅者

(1)提供借阅者的信息

(2)查询并显示借阅者信息(E-2),修改相应的信息(3)更新系统中借阅者的信息 5.4.3替代流(Alternative Flow)

E-1:若借阅者已存在,系统显示提示信息,用例终止 E-2:若查询不到借阅者,系统显示提示信息,用例终止 E-3:若存在借阅记录,系统显示提示信息,用例终止

6.维护书刊信息(Maintain Title Info) 6.1 前置条件(Pre-Conditions)

在这个用例开始前,Librarian 必须登录到系统中 6.2后置条件(Post-Conditions)

如果这个用例成功,系统添加、修改、删除书刊种类信息。否则,系统的状态没有变化。 6.3 扩充点(Extension Points)没有

3.识别参与者及关系。

系统的参与者主要有三类:

①读者(也可称为借阅者)

②图书馆管理员

③图书馆管理系统维护者

4.识别用例及关系。

1. 借阅者请求服务的用例图

2. 图书馆管理员处理借书、还书等的用例图

3. 系统管理员进行系统维护的用例图

5.画出综合用例图,并进行用例描述【参考用例描述模板】。

6.识别所有类(含类名、属性、方法)和对象,进行类抽象,建立类之间的关系、对象之间的关系。

(1)参与者相关的类

(2)系统中用到的其他类

3 各个类之间的关系

7.分别就用户注册、用户登录、角色及用户管理、【图书信息采编入库、借书管理与统计、还书管理与统计】/【教学管理者排课、学生选课(必修课、选修课)、课程信息查询与打印】,完成对应的时序图。

1. 系统管理员添加书籍的时序图

:

2. 系统管理员添加借阅者帐户的时序图

:

: Borrower

3. 系统管理员删除书目的时序图

4.

:

图书管

理员处理书籍借阅的时序图

5. 图书管理员处理书籍归还的时序图

6.借阅者查询书籍信息的时序图

: Borrower

7. 借阅者预留书籍的时序图

: Borrower

8.给出3个关键模块的活动图。

1. 借阅者的活动图

2. 图书管理员的活动图

3系统管理员维护借阅者帐户的活动图

4系统管理员进行书目信息维护的活动图

5系统管理员维护书籍信息的活动图

9.给出对应3个关键模块的代码。public class User {

private int id;

private String username;

private String password;

private String phone;

private String email;

private int type;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUsername() {

return username;

}

public void setUsername(String username) { https://www.doczj.com/doc/424673297.html,ername = username;

}

public String getPassword() {

return password;

}

public void setPassword(String password) { this.password = password;

}

public String getPhone() {

return phone;

}

public void setPhone(String phone) {

this.phone = phone;

}

public String getEmail() {

return email;

}

public void setEmail(String email) {

this.email = email;

}

public int getType() {

return type;

}

public void setType(int type) {

this.type = type;

}

}

public class Title {

private int id;

private String name;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) { https://www.doczj.com/doc/424673297.html, = name;

}

}

public class Book {

private int id;

private int title_id;

private String name;

private String status;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public int getTitle_id() {

return title_id;

}

public void setTitle_id(int title_id) { this.title_id = title_id;

}

public String getName() {

return name;

}

public void setName(String name) { https://www.doczj.com/doc/424673297.html, = name;

}

public String getStatus() {

return status;

}

public void setStatus(String status) { this.status = status;

}

}

六、心得体会

本实验报告以一个图书馆图书管理系统开发为背景,针对图书馆对图书资源进行有效利用和管理的功能需求,采用统一建模语言(UML)对图书资源进行面向对象的描述,通过利用统一建模语言UML中的各种图形,分析和设计图书管理系统,建起了图书管理的面向对象模型,探讨了基于UML的体系结构建模及其实现问题。由建模过程可以看出UML在体系结构建模方面存在很好的优势,不但从整体上正确描述了该图书管理系统的体系结构,并且可以充分利用UML面向对象的优势,从而实现整个软件系统面向对象的分析、设计与开发,大大缩短开发周期,最终使得项目成功完成,此管理系统节省了管理人员和读者的大量时间,有利于信息处理效率的提高。鉴于篇幅和水平有限,本实验报告只对主要部分和主要过程做了介绍,限于水平,希望老师对本实验报告的缺点、错误提出批评,指正。

七、组内打分

八、指导教师评分

成绩:(百分制)

指导教师:张浩

注:纸质版实验报告编辑后打印,以组为单位交给学习委员,以班为单位交给老师

相关主题
文本预览
相关文档 最新文档