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

目录

一、用例图相关知识

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.hqwc.cn/news/333827.html

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

相关文章

Python 安卓开发:Kivy、BeeWare、Flet、

kivy:https://github.com/kivy python-for-android :https://python-for-android.readthedocs.io/en/latest/ BeeWare:https://docs.beeware.org/en/latest/ Flet:https://github.com/flet-dev/flet 把 PySide6 移植到安卓上去&a…

【Python机器学习】决策树——树的特征重要性

利用一些有用的属性来总结树的工作原理,其中最常用的事特征重要性,它为每个特征树的决策的重要性进行排序。对于每个特征来说,它都是介于0到1之间的数字,其中0代表“根本没有用到”,1代表“完美预测目标值”。特征重要…

猫头虎分享:Linux 如何安装最新版的Docker和Docker-Compose 教程 ‍

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通Golang》…

【SkyWant.[2304]】路由器操作系统,移动【Netkeeper】使用教程校园网

目录 步骤一:正确连接网线,插电开机正确连接网线: 认识系统灯: 插电开机: 步骤二:开机之后,系统的基本设置 1.进入设置界面: 2.设置辅助热点wifi: 3.设置日常…

现代 C++ 及 C++ 的演变

C 活跃在程序设计领域。该语言写入了许多新项目,而且据 TIOBE 排行榜数据显示,C 的受欢迎度和使用率位居第 4,仅次于 Python、Java 和 C。 尽管 C 在过去二十年里的 TIOBE 排名都位居前列(2008 年 2 月排在第 5 名,到…

React Native集成到现有原生应用

本篇文章以MacOS环境开发iOS平台为例,记录一下在原生APP基础上集成React Native React Native中文网 详细介绍了搭建环境和集成RN的步骤。 环境搭建 必须安装的依赖有:Node、Watchman、Xcode 和 CocoaPods。 安装Homebrew Homebrew是一款Mac OS平台下…

二叉树题目:好叶子结点对的数量

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法代码复杂度分析 题目 标题和出处 标题:好叶子结点对的数量 出处:1530. 好叶子结点对的数量 难度 6 级 题目描述 要求 给定二叉树的根结点 root \texttt{root} root 和整数 …

基于Github官方教程的快速入门学习

GitHub 是一个用于版本控制和协作的代码托管平台。 它允许您和其他人随时随地协同处理项目。 创建仓库 在任何页面的右上角,使用 下拉菜单选择“新建存储库”。 之后会进入创建仓库的界面,需要我们进行如下操作: 写仓库的名字写对于本仓库…

Mate X5对应用进行专门适配,刷视频和文章的体验比直板机强太多

虽然说折叠机是否适合当主力机使用一直是一个有争议的问题,但折叠机在阅读浏览方面的体验真的是要比直板机强太多。 比如办公时,各种表格报单、海报PPT都是更大更清晰,一览无遗,体验过基本就回不去了。 而华为的最新折叠屏&…

文件共享不泄露:安全可靠的企业网盘推荐

在商业合作中,文件共享的安全性一直是人们关注的焦点。为了防止文件泄露或意外传播,我们需要采取措施来确保文件的安全性。Zoho WorkDrive企业网盘提供了使文件共享更安全、更可靠的解决方案。 最近,我们采访了两位设计师老张和小李&#xff…

C++学习笔记(二十九):c++ 创建与使用库

c自己创建库并使用库。当项目较大时,创建库有助于帮助代码模块化,同时提高代码重用。同时使用库允许程序中混合使用编程语言。首先创建一个空项目名为Game,接着在visiualstudio的解决方案上右击->添加->新建项目,添加一个空…

【漏洞复现】锐捷EG易网关login.php命令注入漏洞

Nx01 产品简介 锐捷EG易网关是一款综合网关,由锐捷网络完全自主研发。它集成了先进的软硬件体系架构,配备了DPI深入分析引擎、行为分析/管理引擎,可以在保证网络出口高效转发的条件下,提供专业的流控功能、出色的URL过滤以及本地化…