使用 UML进行系统建模实验报告[图书管理系统]
一.实验目的
针对指定软件系统的需求进行分析和设计; 使用Microsoft Visio软件,绘制 UML 图。
二.实验设备
计算机、Microsoft Visio软件。
三.实验内容及步骤
1、介绍
这篇文档提供了对图书馆图书管理系统的系统架构的总揽,从不同的视角描述了该系统。同时介绍了图书馆图书管理系统的功能性需求, 通过用例说明书、物理模型、静态结构模型和动态行为模型来进行全面的展示介绍。
2、实验要求
图书馆图书管理系统的域描述如下:
在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可 以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预定信息。持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。在借阅书刊时,需要输入所借阅的书刊名,书刊的ISBN/ISSN 号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效 (在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。借阅者还书后,删除关于所还书刊的借阅记录。如果借阅者所借的书刊已被借出,借阅者还可预定该 书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人(为了简化系统,预定书 刊可获得时就不通知借阅者了)。另外,为了简化系统,也不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。
对上述图书管理系统的域描述进行分析,可以获得如下功能性需求:
(1)借阅者持有借阅卡(借阅者名和借阅卡号);
(2)图书管理员作为借阅者的代理借书;
(3)图书管理员作为借阅者的代理预定书刊;
(4)图书管理员作为借阅者的代理取消预定;
(5)图书管理员作为借阅者的代理还书;
(6)图书管理员可以创建新的借阅者账户;
(7)图书管理员可以修改借阅者的账户信息;
(8)图书管理员可以删除已存在的借阅者账户;
(9)图书管理员可以添加新书刊种类;
(10)图书管理员可以修改书刊种类信息;
(11)图书管理员可以删除系统中的书刊种类;
(12)图书管理员可以在系统中添加书刊信息;
(13)图书管理员可以编辑书刊信息;
(14)图书管理员可以删除书刊信息;
对上述系统进行建模,按照下列要求完成实验报告。
(a)进行需求分析:识别参与者,识别用例,画出用例图;使用“用例说明书”对每个用例进行描述。
(b)构建静态结构模型:定义系统对象,定义用户界面类,建立类图。
(c)构建动态行为模型:建立序列图。
(d)构建物理模型:画出实现视图和部署视图。
3、参考文献
《软件工程导论第五版》
4、内容概览
借阅者拥有借阅卡,借阅卡的属性有借阅卡号和借阅者名;
图书管理员负责与系统交互借阅者所有的请求(借书、预定、还书等),也包括自主向系统提出修改书目、删除等需求;
系统接收图书管理员传递来的请求,并不直接接受借阅者的消息,但在借阅书籍时,可直接将书寄给借阅者。
5、体系结构表示方法
这篇文档使用一系列视图反映系统架构的某个方面:
※用例视图:概括了架构上最为重要的用例和它们的非功能性需求;
·活动图(activity diagram)。活动图将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
·状态图(state diagram)。状态图描述一个状态机,它由状态、转移、事件和活动组成。状态图给出了对象的动态视图。它对于接口、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
·类图(class diagram)。类图描述一组类、接口、协作和它们之间的关系。在OO系统的建模中,最常见的图就是类图。类图给出了系统的静态设计视图,活动类的类图给出了系统的静态进程视图。
※逻辑视图:展示了描述系统关键方面的重要用例实现场景(使用交互图);
※实现视图:它主要侧重于软件模块的组织和管理。要充分考虑由于具体开发工具的不同而带来的局限性。开发视图通过系统I/O关系的模型图和子系统图来描述。
※部署视图:展示构建在处理节点上的物理部署以及节点之间的网络配置(使用部署图);
四、实验过程
1、系统用例图
2、需求分析
1、提供借阅者信息用例
用例简述:由借阅者向图书管理员提供自己的身份信息。
基本事件流:
操作方 事件
1 借阅者 提供借阅卡信息
2 图书管理员 接收借阅者的身份信息
3 用例结束
2、存储借阅者信息用例
用例简述:用户管理员将用户信息存储到账户。
基本事件流:
操作方 事件
1 图书管理员 将借阅者卡号及借阅者身份信息发送至系统数据库
2 系统数据库 根据借阅者卡号为顺序储存借阅者信息。
3 用例结束
3、储存书刊种类和书刊信息用例
用例简述:用户管理员将储存所有书刊种类和书刊信息(书刊名,书刊的 ISBN/ISSN 号)到数据系统库。
基本事件流:
操作方 事件
1 图书管理员 将书刊按种类分类,并对书刊进行编号。
2 系统数据库 将书刊按照种类进行存储,每个种类下根据序号进行储存。储存内容包括,书刊的 ISBN/ISSN 号,书名,书刊总量,书刊借出量,书刊剩余量。
3 用例结束
4、图书管理员作为借阅者的代理执行借书
用例简述:在借阅书刊时,需要输入所借阅的书刊名,书刊的 ISBN/ISSN 号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效(在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。
基本事件流:
操作方 事件
1 借阅者 发出借阅需求,提交借阅信息到图书管理员处
2 图书管理员 接受申请,填写借书信息(书刊名,书刊的 ISBN/ISSN 号,借阅者的图书卡号和借阅者名)。
3 图书管理系统 进行身份验证 无效返回失败
有效返回请求被接受
4 图书管理员 若收到无效信息,返回借阅者信息有误
收到有效信息,等待系统查询书籍
5 系统数据库 查询所借阅的书刊是否存在 若存在,借阅
若不存在,进行预定
6 系统数据库 更新借阅者账户借阅记录
7 用例结束
5、为借阅者的代理预定书刊用例
用例简述:如果借阅者所借的书刊已被借出,借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人。
基本事件流:
操作方 事件
1 系统数据库 查询所借阅的书刊是否存在 若存在,借阅
若不存在,进行预定
2 图书管理系统 标记书名已被某借阅者预订
3 图书管理系统 该书可借阅时,将书刊直接寄给预定人
4 图书管理系统 更新该借阅者账户借书记录
5 用例结束。
6、为借阅者的代理取消预定用例
用例简述:如果借阅人在所要预订的书未入库前均可取消预订,图书管理员将读者预订状态清除。
基本事件流:
操作方 事件
1 借阅者 发送取消预定请求
2 图书管理员 接收请求,向系统提出取消预定
3 图书管理系统 验证借阅者信息。
4 图书管理系统 取消预定且返回消息
5 图书管理员 收到取消预定消息
6 图书管理系统 更新该借阅者账户预定记录
7 用例结束。
7、为借阅者的代理还书用例
用例简述:借阅者还书后,图书管理员删除关于所还书刊的借阅记录。
基本事件流:
操作方 事件
1 借阅者 还书操作
2 图书管理员 向系统发送借阅者还书需求
3 图书管理系统 验证借阅者信息,验证成功回馈
4 图书管理系统 更新数据。
5 用例结束。
8、创建新的借阅者账户用例
用例简述:用户管理员将借阅者提供的信息整理并创建新的账户。创建好后交至账户库保存。
基本事件流:
操作方 事件
1 图书管理员 将中借阅者提供的身份信息上传至系统
2 图书管理系统 创建新的账户。
3 图书管理系统 返回账户信息
4 用例结束。
9、修改借阅者的账户信息用例
用例简述:用户管理员将需修改的借阅者数据从账户库中取出,进行修改,再重新存入账户库中,账户库将新更新的数据显示到用户页面。
基本事件流:
操作方 事件
1 图书管理员 根据借阅者需求修改信息
2 图书管理系统 检验借阅者身份信息
3 图书管理系统 修改信息,并返回给图书管理员
4 用例结束。
10、删除已存在的借阅者账户用例
用例简述:用户管理员将需删除的借阅者数据从账户库中取出,进行删除,账户库对数据进行更新。
基本事件流:
操作方 事件
1 图书管理员 根据借阅者需求删除信息
2 图书管理系统 检验借阅者身份信息
3 图书管理系统 删除信息,并返回给图书管理员
4 用例结束。
11、添加新书刊种类用例
用例简述:用户管理员将新书刊种类信息整理并创建新的书刊种类。创建好后交至数据系统库保存。
基本事件流:
操作方 事件
1 图书管理员 申请添加新书刊种类
2 图书管理系统 允许申请,获取书刊种类信息
3 图书管理系统 添加书刊种类。更新系统
4 用例结束。
12、修改书刊种类信息用例
用例简述:用户管理员将需修改的书刊种类数据从数据系统库中取出,进行修改,再重新存入数据系统库中,数据系统库将新更新的数据显示到用户页面。
基本事件流:
操作方 事件
1 图书管理员 申请修改书刊种类
2 图书管理系统 允许申请,获取需修改书刊种类信息
3 图书管理系统 修改书刊种类。更新系统
4 用例结束。
13、删除系统中的书刊种类用例
用例简述:用户管理员将需删除的书刊种类数据从数据系统库中取出,进行删除,数据系统库对数据进行更新。
基本事件流:
操作方 事件
1 图书管理员 申请删除书刊种类
2 图书管理系统 允许申请,获取需删除书刊种类信息
3 图书管理系统 删除书刊种类。更新系统
4 用例结束。
14、在系统中添加书刊信息用例
用例简述:用户管理员将新书刊信息整理并在数据库查找书刊种类,将新书刊信息加入新书所处的书刊种类中。之后交至数据系统库保存。
基本事件流:
操作方 事件
1 图书管理员 申请添加新书刊
2 图书管理系统 允许申请,获取书刊信息
3 图书管理系统 根据书刊信息寻找书刊所属种类,添加书刊至书刊所属种类,更新系统。
4 用例结束。
15、编辑书刊信息用例
用例简述:用户管理员将需编辑的书刊种类数据从数据系统库中取出,进行信息编辑,再重新存入数据系统库中,数据系统库将新更新的数据显示到用户页面。
基本事件流:
操作方 事件
1 图书管理员 申请编辑书刊信息
2 图书管理系统 允许申请,获取需编辑书刊信息
3 图书管理系统 根据书刊信息寻找书刊所属种类,编辑书刊信息至书刊所属种类,更新系统
4 用例结束。
16、删除书刊信息用例
用例简述:用户管理员根据需删除的书刊数据找到书刊种类,在书刊种类中找到所需删除书刊,从数据系统库中取出,进行删除,数据系统库对数据进行更新。
基本事件流:
操作方 事件
1 图书管理员 申请删除书刊信息
2 图书管理系统 允许申请,获取需删除书刊信息
3 图书管理系统 根据书刊信息寻找书刊所属种类,删除书刊在书刊所属种类中,更新系统。
4 用例结束。
3、静态结构模型
1、类图
4、构建动态行为模型
1、借阅者持有借阅卡(借阅者名和借阅卡号);
2、图书管理员作为借阅者的代理执行借书;
3、图书管理员作为借阅者的代理预定书刊;
4、图书管理员作为借阅者的代理取消预定;
5、图书管理员作为借阅者的代理还书;
6、图书管理员可以创建新的借阅者账户;
7、图书管理员可以修改借阅者的账户信息;
8、图书管理员可以删除已存在的借阅者账户;
9、图书管理员可以添加新书刊种类;
10、图书管理员可以修改书刊种类信息;
11、图书管理员可以删除系统中的书刊种类;
12、图书管理员可以在系统中添加书刊信息;
13、图书管理员可以编辑书刊信息;
14、图书管理员可以删除书刊信息;
5、构建物理模型
1、部署视图
2、实现视图
五、实验总结与感悟
1、Visio提供了日常使用中的绝大多数框图的绘画功能同时提供了部分信息领域的实物图, Visio 不仅仅是一个功能强大、简单易用的绘图工具,它还是一个绝佳的 UML 建模工具。软件工程实验正是利用 Visio 的这项功能来对给定的系统进行建模的。
2、软件工程可以分为三个大阶段:需求、设计、测试与维护:需求:开发目标、可行性分析、需求分析;设计:概要设计、详细设计、编码与单元测试;测试与维护:综合测试、维护。
3、实验过程中先整体构思框架,当心里有了初步构想时在下笔进行实验,能保证整体逻辑性和可读性更高,更加熟悉了visio的使用,对以后的学习更有帮助。
有问题请评论留言。
使用 UML进行系统建模实验报告[图书管理系统]相关推荐
- 管理c语言程序设计报告,c语言程序设计报告图书管理系统
<c语言程序设计报告图书管理系统>由会员分享,可在线阅读,更多相关<c语言程序设计报告图书管理系统(11页珍藏版)>请在人人文库网上搜索. 1.中国地质大学本科生课程论文封面课 ...
- jsp实验报告批阅管理系统
传统的教学方式表现出在老师和学生不能同步:例如:实验报告必须由人上交.提问只能在课堂上提出:这样既浪费了各自的时间又使教学效率变得较低.而本系统的设计,实现了电子教学的教学方式:它可以随时随地让学生和 ...
- jspjava毕业设计实验报告批阅管理系统
本课题设计研发了一套基于Web技术的实验报告批阅管理系统.本系统的用户主要包括系统管理员.学生用户和教师用户,管理员模块的功能主要包括修改登录密码.老师信息管理.学生信息管理,学生用户模块的功能主要包 ...
- c语言机房管理系统答辩,C语言综合实验报告机房管理系统
<C语言综合实验报告机房管理系统>由会员分享,可在线阅读,更多相关<C语言综合实验报告机房管理系统(19页珍藏版)>请在人人文库网上搜索. 1.机房管理系统(c语言)在vc+ ...
- java上机实验报告_javaweb上机实验报告(学生管理系统)
jsp学生管理系统实验报告 一 实验题目 在线学生管理系统 二 开发背景简介 随着网络技术的发展和普及许多以前基于 CS的应用都开始向 BS方向发展,而Java在这方面的应用有着许多其他技术不具备的优 ...
- 医药计算机实验报告,医药管理系统实验报告.doc
医药管理系统实验报告 成 绩 评 定 表 学生姓名班级学号专 业计算机科学与技术课程设计题目医药管理系统 评 语 组长签字: 成绩 日期 2015 年 月 日 课程设计任务书 学 院信息科学与工程学院 ...
- 【JavaWeb实验】图书管理系统
第一次写文,做一次小尝试.把一年前学校里面的小作业放上来,供参考 代码将于文末以百度网盘的形式分享出来 一.实验背景: 熟悉并掌握如何编写编写各个页面的参数传递以及jsp基本知识. 1.实验目的 通过 ...
- python实验练习-图书管理系统(使用文件来实现)
题目 功能描述: 图书管理系统项目功能描述: (1)创建txt文本文档,包含如下: ① books.txt:保存有一些书籍名称: ② users.txt:用于保存用户相关的信息: ③ users_bo ...
- C++程序设计_图书管理系统的控制台实现
求打赏求收藏求转发! 提供PDF资源 https://download.csdn.net/download/weixin_43781565/12429074 (审核后可供下载) Peace and l ...
最新文章
- 2018 区块链技术及应用峰会(BTA)·中国全日程新鲜出炉,更多精彩议题看不停
- python使用正则表达式验证用户输入密码的有效性
- python3 解析html_Python3.x网页抓取HTMLParser
- which 命令
- PHP 隐藏真实下载地址
- java web购物车_java web开发——购物车功能实现
- 键盘按钮keyCode大全
- java2实用教程 第6版(课后习题总结)
- 第五章 编码/加密——《跟我学Shiro》[张开涛]
- 虚幻引擎4学习途径汇总
- 关于hive on spark的distribute by和group by使用以及小文件合并问题
- Mac外接显示器调色方法
- drill down roll up
- sql string转为日期_SQL之变身Excel(二)
- 技术面试(上):面试官篇
- IOS微信下问题1 底部导航栏导致标签位置偏移
- 如何运用好ABBYY PDF Transformer+破解版中关键词搜索
- Google翻译(谷歌翻译) Chrome插件
- 新手机怎么保养电池?手机锂电池保养及正确使用介绍
- 计算机的地址栏清理,清理win7资源管理器地址栏中的历史记录