软件工程:用例图相关知识和多实例分析

目录

一、用例图相关知识

1. 基本介绍

2. 常用符号

二、用例图实例分析

1. 新闻管理系统

2. 医院病房监护系统

3. 实验上机安排系统

4. 远程网络教学系统


一、用例图相关知识

1. 基本介绍

用例图(use case diagram)是用户与系统交互的最简表示形式,展现了用户和与他相关的用例之间的关系。用例图描述人们如何使用一个系统,是外部参与者所能观察到的系统功能的模型图。

用例图呈现了一些参与者和一些用例,以及它们之间的关系,主要用于对系统、子系统或类的功能行为进行建模。

此外,用例图须辅以外部的文档描述,详细说明每个用例的前置条件,事件流,后置条件。用例的文档描述须严谨细致。

2. 常用符号

符号说明图例

参与者

(Actor)

指系统以外的、需要使用系统或与系统交互的事物。包括:人、设备、外部系统等。参与者是系统外部的一个实体,参与者只可能存在于边界之外,边界之内的所有人和事物都不是参与者。  

系统边界

(System Scope)

虚拟系统边界。表明我们要实现的软件系统,内含多个用例。

用例

(Use Case)

用例,代表系统提供的功能,是用例图中最重要的元素。一般情况下,须配合详细的用例描述,严谨细致地说明该用例的相关角色、前置条件、主时间流、后置条件、特殊处理情况等。
关系

关联关系

(Association)

用例和参与者之间是关联关系。每个用例都有参与者启动,每个用例必须和一个参与者关联,有一个参与者来参与(包含和扩展的用例除外)。

包含关系

(Include)

包含是一种依赖关系。两个以上用例有共同功能,可分解到单独用例,形成包含依赖。箭头方向由基本用例指向被包含用例,执行基本用例时,每次都必须调用被包含的用例。一个用例功能过多,可分解成小用例,构成包含依赖。

扩展关系

(Extend)

扩展是一种依赖关系,扩展用例为基用例添加新的行为,相当于为基础用例提供一个附加功能;箭头方向由扩展用例指向被扩展用例(即基本用例),扩展用例依赖于被扩展用例(基本用例),不是完整的独立用例,无法单独执行。不会有参与者指向扩展用例。

泛化关系

(Generalization)

代表一般与特殊的关系,与继承类似。由于Actor实际上是一个类,因此它们之间可以存在泛化关系。在泛化关系中,子用例继承了父用例的行为和含义,子用例也可以增加新的行为和含义或覆盖父用例中的行为和含义。

二、用例图实例分析

1. 新闻管理系统

某一新闻管理系统主要用来发布新闻,管理员只需要一个,登录后可以在后台发布新闻。任何人可以浏览新闻,浏览者可以注册成为系统会员,注册后可对新闻进行评论。管理员在后台可以对新闻、评论、注册会员进行管理,如修改、删除等。

2. 医院病房监护系统

现在有一个医院病房监护系统,用户提出的系统功能要求如下:
在医院病房监护系统中,病症监视器安置在每个病房,将病人的病症信号实时传送到中央监视系统进行分析处理。

在中心值班室里,值班护士使用中央监视系统对病员的情况进行监控,根据医生的要求随时打印病人的病情报告,系统会定期自动更新病历。
当病症出现异常时,系统会立即自动报警, 通知值班医生及时处理, 同时立即打印病人的病情报告,立即更新病历。

3. 实验上机安排系统

学校拟开发一套实验上机安排系统,可以帮助教师的安排上机。系统的主要功能有以下几个方面:
教师可提交课程实验项目,安排实验机房,查询实验安排结果,打印实验安排报表等。

学生可查询实验项目,查询课程实验安排等。

管理员可管理教师、学生、课程等基本信息,同时还能管理新闻公告、查询实验安排等。

所有用户均有修改密码,查看新闻公告等功能。

4. 远程网络教学系统

网络的普及带给了人们更多的学习途径,随之而来的管理远程网络教学的“远程网络教学系统”诞生了。“远程网络教学系统”的功能需求如下:
学生登录网站后,可以浏览课件、查找课件、下载课件、观看教学视频。
教师登录网站后,可以上传课件、上传教学视频、发布教学心得、查看教学心得、修改教学心得。
需要登录“远程网络教学系统”后才能正常使用该系统的所有功能。如果忘记密码,可与通过“找回密码”功能恢复密码。

 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS 组件通用属性之位置设置

本文 我们来说 通用属性中的位置设置 主要是针对组件的对齐方式 布局方向 显示位置 做过WEB开发的 对流式布局应该都不陌生 就是 一行放内容 不够放就换行 我们可以先这样写 Entry Component struct Index {build() {Row() {Column() {Stack(){Text("你好")Text(&…

Springboot整合MQ学习记录

Mq介绍 RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。支持Windows、Linux/Unix、MA…

<HarmonyOS主题课>1~3课后习题汇总

<HarmonyOS第一课>1~10课后习题汇总 1使用DevEco Studio高效开发 单选题 用哪一种装饰器修饰的组件可作为页面入口组件?(B) A. ComponentB. EntryC. PreviewD. Builder ArkTS Stage模型支持API Version 9&#xf…

智能座舱的下一个价值“爆点”——让“光”更智能

汽车智能化快速升级,智能座舱作为人机交互的主要窗口,交互模态、用户体验也呈现多维度升级。 例如,今年下半年上市的多款高端智能车型纷纷基于高性能座舱硬件平台,集成了AR-HUD、DMS/OMS等高阶功能,同时结合超大屏/多…

简单介绍Java 的内存泄漏

java最明显的一个优势就是它的内存管理机制。你只需简单创建对象,java的垃圾回收机制负责分配和释放内存。然而情况并不像想像的那么简单,因为在Java应用中经常发生内存泄漏。 本教程演示了什么是内存泄漏,为什么会发生内存泄漏以及如何预防…

SpringMVC通用后台管理系统源码

整体的SSM后台管理框架功能已经初具雏形,前端界面风格采用了结构简单、 性能优良、页面美观大的Layui页面展示框架 数据库支持了SQLserver,只需修改配置文件即可实现数据库之间的转换。 系统工具中加入了定时任务管理和cron生成器,轻松实现系统调度问…

Glide加载不出图片与请求浏览器资源时中文转码问题

报错代码如图:Image load failed: Failed to load resourse 首先确保你的图片 URL 地址是正确的,可以通过在浏览器中直接访问这个 URL 来测试。另外,确保 URL 地址不包含特殊字符或空格,以免影响加载。 然后确定依赖库没有问题&am…

地平面--高速布线

https://baijiahao.baidu.com/s?id1764139038516816855&wfrspider&forpc 概念 回顾传输线,由任意两条有一定长度的导线组成,一条为信号路径,一条为返回路径。基本电路理论告诉我们,信号是由电流传播的,明确的…

目标检测-One Stage-YOLOv2

文章目录 前言一、YOLOv2的网络结构和流程二、YOLOv2的创新点预处理网络结构训练 总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是: 和Fast-CNN相比,速度快,但精度下降。(边框回归不加限制)…

高并发如何保证接口的幂等性?

前言 接口幂等性问题,对于开发人员来说,是一个跟语言无关的公共问题。本文分享了一些解决这类问题非常实用的办法,绝大部分内容我在项目中实践过的,给有需要的小伙伴一个参考。 不知道你有没有遇到过这些场景: 有时我…

Docker(八)Python+旧版本chrome+selenium+oss2+fastapi镜像制作

目录 一、背景二、能力三、核心流程图四、制作镜像1.资源清单2.Dockerfile3.制作镜像 五、启动测试 一、背景 近几年我们线下的创业团队已从零到一开发过好几个小程序项目,都是和体育相关。其中生成海报分享图片好像都是不可或缺的功能。之前的项目老板给的时间都比…

如何让CHAT使用python绘制概率密度图像?

问CHAT:用python绘制概率密度图像 CHAT回复:你可以使用Python的matplotlib库和numpy库进行概率密度的绘制。 以下是一个简单的例子: python import numpy as np import matplotlib.pyplot as plt #随机生成1000个正态分布的数 data np.rand…

《微机原理与应用》期末考试题库(附答案解析)

第1章 微型计算机概述 1.微型计算机的硬件系统包括___A _____。 A.控制器、运算器、存储器和输入输出设备 B.控制器、主机、键盘和显示器 C.主机、电源、CPU和输入输出 D.CPU、键盘、显示器和打印机 2.微处…

安装Keras用于影像分割

conda create -n tfkeras2024 python3.9.18 activate tfkeras2024 pip install tensorflow-gpu2.9.0 pip install keras pip install scipy pip install ipykernel ipython python -m ipykernel install --name tfkeras2024 删除环境conda remove -n tfkeras2024 --all

构建高效秒杀系统的设计原理及注意事项

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~ 🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Mi…

G4周:CGAN,手势生成

本文为🔗365天深度学习训练营 中的学习记录博客 原作者:K同学啊|接辅导、项目定制 我的环境: 1.语言:python3.7 2.编译器:pycharm 3.深度学习框架Pytorch 1.8.0cu111 一、CGAN介绍 条件生成对抗网络(…

transforms图像增强(一)

一、数据增强 数据增强(Data Augmentation)是一种常用的数据预处理技术,通过对训练集进行各种变换和扩增操作,可以增加训练数据的多样性和丰富性,从而提高模型的泛化能力。 数据增强的目的是通过对训练集中的图像进行…

安装PyTorch及环境配置(应用于Python上的YOLO)

这个基本都是Bilibili网站里面叫“小手丫子”up的视频教程,此前自己需要装了好几次又卸载了好几次,现在根据视频教学整理出来自己所理解的文档。 注意事项 1.安装的pycharm版本和anaconda版本无要求。 2.运行pycharm尽量以管理员身份运行。 3.Cuda是独…

使用CentOS 7.6搭建HTTP隧道代理服务器

在现代网络环境中,HTTP隧道代理服务器因其灵活性和安全性而受到广泛关注。CentOS 7.6,作为一个稳定且功能强大的Linux发行版,为搭建此类服务器提供了坚实的基础。 首先,我们需要明确HTTP隧道代理的基本原理。HTTP隧道代理允许客户…

Mac解决node-sass: Command failed 问题

1.以为Command failed 错误是因为缺少依赖项或者版本不兼容导致的(不适用我) 此项目的package版本,node版本14.21.3为版本对应正确 "node-sass": "^4.13.0","sass": "^1.24.2","sass-loader&q…