实验三---面向对象分析与设计——UML用例图与活动图

news2024/10/2 14:22:13

一、实验目的:

    掌握面向对象分析中用例建模的基本思想,学会识别参与者和用例,掌握UML用例图的绘制方法,学会编写用例说明;了解活动图的作用和组成元素,掌握UML活动图的绘制方法,学会使用活动图来描述用例的事件流。

二、实验仪器及实验环境:

计算机,Windows 7,MS Office Visio

三、实验原理:

面向对象分析方法中的用例模型。

四、实验内容及结果:

根据以下题目中的问题描述,使用面向对象分析方法建立系统的用例模型,绘制用例图,编写用例说明,并绘制活动图描述用例的事件流。

题目:某图书管理系统主要涉及图书信息管理、读者信息管理、图书借阅管理等方面。该系统的用户为图书管理员和读者,他们在使用系统时各自拥有不同的权限。

在图书管理系统中,图书管理员要为每个读者建立借阅账号,用于记录读者的基本信息和图书借阅信息;读者的账号建立成功后,图书管理员要给读者发放借阅证,这时读者就可以凭借该借阅证进行图书的借阅,或是通过网络进行图书信息的查询和浏览。

当读者借书时,需要出示借阅证给图书管理员,图书管理员输入读者的借阅账号,以验证借阅证的有效性以及是否达到了最大借阅量。如果无效,则系统给出提示信息,比如,“账号无效”或“已借满,不能再借”等;如果有效,则显示读者的基本信息以及该读者的借阅记录。读者提出借阅申请后,图书管理员对所借阅的图书逐一进行登记。

当读者还书时,也需要对借阅证进行有效性验证。如果无效,则系统给出相应的提示信息,验证通过后,显示读者的基本信息和借阅记录;读者向管理员归还图书,管理员输入图书编号,验证无误后,则删除读者对该书的借阅记录,如果所还图书超期,则读者需要缴纳罚款。

当发生图书信息变更时(例如,有新书入库,或是某图书损坏严重不能再使用),则图书管理员需要进行新增图书信息或是删除图书信息。同理,当有新增的读者,或是有读者要注销时,也要做相应的处理。

根据以上图书管理系统的问题域描述,该图书管理系统中包含的主要功能有:图书信息管理、读者信息管理、图书借阅管理三部分。其中,图书管理员能进行新增图书信息、删除图书信息、修改图书信息、查询图书信息、新增读者信息、删除读者信息、修改读者信息、查询读者信息、登记借书、登记还书等操作。读者可以进行查询浏览图书信息、查询个人的基本信息、查询个人的借阅记录等操作。

1、识别参与者(也称角色):

谁使用系统的主要功能?

图书管理员、读者

谁需要使用系统以完成其日常工作任务?

图书管理员

谁负责维护和管理系统并保持系统正常运行?

运维人员

系统需要处理哪些硬件设备?

图书借书、还书信息录入设备

系统需要与哪些外部的其他系统进行交互?

微信、支付宝等的信息识别认证系统

谁对系统运行产生的结果感兴趣?

图书管理员、读者

2、识别用例:

(1)图书管理员可以进行哪些操作:

新增图书信息、删除图书信息、修改图书信息、查询图书信息、新增读者信息、删除读者信息、修改读者信息、查询读者信息、登记借书、登记还书

(2)读者可以进行哪些操作:

查询浏览图书信息、查询个人的基本信息、查询个人的借阅记录

3、绘制用例图:

 

4、用例说明:对上述用例模型中的以下4个用例进行用例说明。

(1)“登记借书”用例说明:

用例名称:

登记借书

描述:

管理员通过有效的读者借阅账号,判断是否达到最大借阅量,如果没有达到,生成并添加读者的借阅记录

参与者:

图书馆管理员

前置条件:

用例开始前,图书管理员必须在系统登陆成功

事件流:

泳道图1

后置条件:

如果用例执行成功,图书管理员可以看到读者的个人信息和借阅信息,系统中增加一条该读者对图书的借阅记录,否则借阅记录始终保持不变。

(2)“登记还书”用例说明:

用例名称:

登记还书

描述:

管理员通过有效的读者借阅账号和图书编号,删除读者对于该书的借阅记录。如果所还图书超期,则读者需要交纳罚款

参与者:

图书管理员

前置条件:

用例开始前,图书管理员必须在系统登录

事件流:

泳道图2

后置条件:

如果用例执行成功,则图书管理员可以看到读者的个人信息和借阅记录,同时系统删除该读者对该图书的借阅记录,如果用例执行不成功的话,

(3)“新增读者”用例说明:

用例名称:

新增读者

描述:

管理员获取读者的个人信息后建立借阅账号,用于记录读者的基本信息和图书借阅信息,并向读者发放借阅证

参与者:

图书管理员

前置条件:

用例开始前图书管理员必须在系统成功登录

事件流:

见泳道图3

后置条件:

如果用例执行成功,则将新增读者的借阅账号放入到系统中,否则系统中的借阅账号保持不变

(4)“删除读者”用例说明:

用例名称:

删除读者

描述:

管理员获取读者的借阅账号,检查该读者是否有未归还的图书借阅记录之后,删除该借阅账号

参与者:

图书管理员

前置条件:

用例开始前,图书管理员必须在系统中成功登录,判断读者账号中借阅记录是否为空

事件流:

见泳道图4

后置条件:

如果用例执行成功,则在系统中删除该读者的借阅账号,否则系统中的借阅账号保持不变

5、绘制活动图(或者泳道图):分别对以上4个用例的事件流使用活动图或者泳道图来描述。

图1:

图2:

 

图3:

 

图4:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/544575.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

秒懂算法 | KMP算法(Java描述)

Knuth-Morris-Pratt 算法(简称 KMP)是由高德纳(Donald Ervin Knuth)和沃恩普拉特在1974年构思,同年詹姆斯H莫里斯也独立地设计出该算法,最终三人于1977年联合发表。该算法较Brute-Force算法有较大改进&…

门电路OD门

漏极开路输出的门电路(OD门) 为了满足输出电平的变换,输出大负载电流,以及实现“线与”功能,将CMOS门电路的输出级做成漏极开路的形式,称为漏极开路输出的门电路,简称OD(Open&#x…

【JVM】1. JVM与Java体系结构

文章目录 1.1. 前言🍉1.2. 参考书目🍉1.3. Java及JVM简介🍉1.4. Java发展的重大事件🍉1.5. 虚拟机与Java虚拟机🍉1.6. JVM的整体结构🍉1.7. Java代码执行流程🍉1.8. JVM的架构模型🍉…

4. QT中的鼠标键盘事件 --- 鼠标拖拽案例

1. 说明 在QT的控件或者窗口当中,如果对于当前鼠标或者键盘的功能需要自己定义,可以重写父类当中对应虚函数,主要包括以下几个: //键盘按键按下 virtual void keyPressEvent(QKeyEvent *event); //键盘按键抬起 virtual void ke…

为什么C++这么复杂还不被淘汰?

C是一门广泛使用的编程语言,主要用于系统和应用程序的开发。尽管C具有一些复杂的语法和概念,但它仍然是编程界的重量级选手,在编程语言排行榜中一直位居前列。为什么C这么复杂还不被淘汰呢? C有以下优势 1、C具有高性能 C是一门编…

unity进阶学习笔记:photonServer测试

photonServer是由photon发布的一个网络框架,其封装了UDP和TCP通信机制让用户可以直接调用API实现网络游戏通信 1 photonServer下载安装 进入Photon官网的SDK选项,选择下载Server。目前Server版本已经更新到v5,这里我为了和教程保持一致下载…

Unittest接口测试生成报告和日志方法

HTML报告 直接把HTMLTestRunner.py放入工程目录即可报告脚本封装 #HTNL格式报告now datetime.datetime.now().strftime(%Y-%m-%d_%H_%M_%S)htmlreport reportpath "/" now r"result.html"print("测试报告生成地址:%s"% htmlre…

Revit干货 | 系统族、内建族、可载入族一次性搞清楚!

对于使用人数较多的revit软件,其中的许多概念与我们常用的CAD完全不同,以至于让许多工程师觉得revit软件有点高深莫测,不可琢磨,从而有了抗拒心理。 Revit软件中的重要概念: “族”是revit软件中的很重要也很基本的概念…

程序的各种段以及堆栈相关问题

C中一般有三种变量: 局部变量全局变量静态变量 C中一般有五个内存段: 代码段 也叫文本段,包含frequently executed code通常是只读的(未了避免程序被错误改写)代码段是不包含程序变量(如局部变量、全局变…

【数据结构】带头双向链表,真正的六边形战士

文章目录 概要整体架构流程小结 概要 *数据结构中的链表在实际开发中应用非常广泛,但写一个链表并不是一件简单的事情。链表有八种结构,对于刚入门的新手来说,往往会先经历单链表的折磨。 而今天我要讲的带头双向链表非常适合新手学习&#…

C++6.类和对象(下)

1.友元函数,一般现在类的最上面。 2.函数的参数中,如果不改变,尽量加上const修饰。 3.对于自定义类型,使用运算符进行操作基本上都要用运算符重载,但是有些运算符重载会默认自动生成。 4.初始化列表,是成…

【wpf】列表类,用相对源时,如何绑定到子项

前言 在之前的一篇文章 :《【wpf】深度解析,Binding是如何寻找数据源的》https://blog.csdn.net/songhuangong123/article/details/126195727#:~:text%E3%80%90wpf%E3%80%91%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90%EF%BC%8CBinding%E6%98%AF%E5%A6%82%E4…

读书|林曦:她把自己的生活,过成了无用但丰盈的美学

时代在以加速度的方式变化,让人难以从容。而当我们陷于横向的比较系统,权衡着卷、躺、润时,也有人在探寻另一条纵向的路——向古人学习,以传统美学关照和滋养当下生活。      立夏之际,水墨画家林曦的新作《无用之…

33岁跳槽无路,濒临绝望之际受贵人指点,成功上岸阿里(测试岗)

写在前面 马上过34岁生日了,和大家聊聊最近的情况,半年前还在迷茫该学什么,怎样才能走出现在的困境,半年后已经成功上岸阿里,感谢在这期间帮助我的每一个人 开始 30多岁工作的时候总是有种力不从心的感觉&#xff0…

网络安全工程师需要考什么证吗?

目前网络安全行业,国内都有哪些证书可以考。 一、CISP-PTE (国家注册渗透测试工程师) CISP-PTE即注册信息安全渗透测试工程师,该证书由中国信息安全测评中心颁发,证书是国内唯一认可的渗透测试认证,专业性…

AIOps社区低代码项目火热报名中|中科院开源之夏2023,万元现金等你来拿!

活动介绍 开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链…

告别Excel,免费大数据分析与可视化工具,让你的论文图表“高大上”

数据分析工具很多,可以分为表格、数据库、BI工具、编程等四大工具。每个大类又有很多的工具,例如表格包括Excel、WPS、Google Sheets、Airtable等。编程工具包括Python和R。 搞科研几年了,笔者一直都是在使用Excel做数据分析和可视化&#xf…

Go语言中sync.Map、sync.Pool和Context的用法

目录 【sync.Map】 实现线程安全的 map 类型 使用 sync.Map 实现并发读写的map 【sync.Pool】 使用 带缓冲channel 实现对象池 使用 sync.Pool 创建临时对象池 【Context 上下文】 Context应用:实现带超时功能的远程调用 Context应用:监控指令…

电脑找不到MSVCR120.dll怎么办/MSVCR120.dll是什么?

电脑提示找不到MSVCR120.dll怎么办?你是否也遇到这个问题,MSVCR120.dll是什么文件呢?小编今天就把MSVCR120.dll文件丢失的修复方法给大家。msvcr120.dll是Microsoft Visual C 的一部分,它是Windows操作系统中的一个动态链接库文件…

计算卸载-论文05-双层优化(无线充电与卸载)

标题:《A Divide-and-Conquer Bilevel Optimization Algorithm for Jointly Pricing Computing Resources and Energy in Wireless Powered MEC》 期刊:IEEE TRANSACTIONS ON CYBERNETICS,2022 一、理论梳理 问题:相比于移动云…