首页 > 编程语言 >面向对象分析与设计Python版 用例与用例图

面向对象分析与设计Python版 用例与用例图

时间:2025-01-07 21:58:27浏览次数:3  
标签:账户 Python 系统 用户 系统管理员 例图 用例 面向对象分析 参与者

文章目录


一、用例

参与者 Actor

  • 代表位于系统之外并和系统进行交互的一类事物(人、物、其他软件子系统等)
  • 通过它,可以对软件系统与外界发生的交互进行分析和描述,了解客户希望软件系统提供哪些功能
  • 参与者的图形表示:

在这里插入图片描述

根据问题识别参与者

  • 谁使用系统?谁安装系统、维护系统?谁启动系统、关闭系统?

  • 谁从系统中获取信息?谁提供信息给系统?在系统交互中,谁扮演了什么角色?

  • 系统会与哪些其他系统相关联?内/外部定时器有哪些?

  • 示例:学院管理系统的参与者有

    • 用户/学生/教师/系统管理员

    • 数据库

    • 其它子系统

用例 Use Case

  • 系统为响应参与者引发的一个事件而执行的一系列的处理/动作,而这些处理应该为参与者产生一种有价值的结果
  • 这些动作不但应包含正常情况的各种动作序列,而且应包含对非正常情况(Exception)时软件系统的动作序列的描述
  • 用例命名:每个用例都有一个名称,使用短小精悍的动名词。例如ATM系统的经典用例有“取钱” “存钱”“修改密码”等
  • 用例是一种需求捕捉工具,训练使用该工具,能比较准确和完善地收集需求。

根据问题识别用例

  • 从参与者开始,确定参与者希望系统提供什么功能
  • 系统是否存储和检索信息?当系统改变状态时,是否通知参与者?
  • 是否存在影响系统的外部事件?是哪个参与者通知系统这些外部事件?哪个参与者触发了活动?

二、用例图

用例图 Use Case Diagram

  • 用例图组成包括:参与者,系统边界,用例,关系

在这里插入图片描述

用例图中的关系

  • 参与者与用例之间:关联关系,用实线表示
  • 参与者之间的关系:泛化关系,用实线+空心箭头
  • 用例之间的关系:
    • 泛化关系(Generalization): 表示子用例是父用例的一种特殊形式。用一条带有空心箭头的直线表示,箭头指向父用例。例如:“下订单”可以是一个泛化关系中的父用例,而“网上下订单”。子用例继承了父用例的行为,并添加了额外的步骤或约束。
    • 包含关系(Include): 包含关系表示一个用例在执行过程中会自然地包含另一个用例的行为。用一条带有箭头的虚线表示,箭头指向被包含的用例。例如:“网上下订单”可能包含“登录账户”、“选择商品”、“支付”和“确认订单”等步骤。这里的每一个步骤都可以是一个单独的用例,它们被“网上下订单”用例所包含。
    • 扩展关系(Extend): 扩展关系表示一个用例在特定条件下会扩展另一个用例的行为。它与包含关系类似,但扩展关系是在特定情况下才会发生的,而不是每次都会发生。用一条带有箭头的虚线表示,箭头指向被扩展的用例。例如:“处理退货”用例可能会扩展“网上下订单”用例。

在这里插入图片描述

用例描述 Use Case description

  • 用例描述是指对用例的详尽文字描述。

  • 用例描述内容包括

    • 描述主事件流:一切正常时的动作序列。

    • 描述异常事件或者可选事件流:主事件流的每一步都有可能出现异常以及异常情况的处理。

用例描述示例

用户账户管理是运维管理系统中用于维护和管理用户账户及其相关权限的功能模块。以下是用户账户管理的用例描述:
**用例名称**:用户账户管理
**目标用户**:系统管理员、安全管理员
**用例目的**:确保系统的用户账户信息准确、安全,并且用户能够根据其角色和职责访问相应的系统资源。
**前置条件**:
- 系统管理员或安全管理员已登录到运维管理系统。
- 系统管理员或安全管理员具备管理用户账户的权限。
**基本流程**:
1. **查询用户账户**:
   - 系统管理员输入查询条件(如用户名、姓名、部门等)。
   - 系统显示符合条件的用户账户列表。
2. **创建新用户账户**:
   - 系统管理员填写新用户的基本信息(如用户名、密码、姓名、联系方式、部门等)。
   - 系统管理员为新用户分配角色和权限。
   - 系统管理员提交新用户账户信息。
   - 系统验证信息无误后,创建新用户账户,并存储相关信息。
3. **修改用户账户信息**:
   - 系统管理员选择要修改的用户账户。
   - 系统管理员更新用户的基本信息或权限设置。
   - 系统保存修改后的用户账户信息。
4. **重置用户密码**:
   - 系统管理员选择需要重置密码的用户账户。
   - 系统生成新密码,并提供给系统管理员。
   - 系统管理员通知用户使用新密码登录。
5. **激活/禁用用户账户**:
   - 系统管理员选择需要激活或禁用的用户账户。
   - 系统管理员执行激活或禁用操作。
   - 系统更新用户账户状态,并记录操作日志。
6. **删除用户账户**:
   - 系统管理员选择要删除的用户账户。
   - 系统提示系统管理员确认删除操作。
   - 系统管理员确认后,系统删除用户账户及相关信息。
**扩展流程**:
- 在创建或修改用户账户时,如果输入的信息不符合要求(如密码强度不足),系统应提示错误,并要求重新输入。
- 在删除用户账户前,系统应检查用户是否有未完成的任务或关联的数据,并提供相应的处理建议。
**后置条件**:
- 用户账户信息已更新并存储在系统中。
- 相关的操作日志已记录。
**异常流程**:
- 如果系统管理员尝试执行未经授权的操作,系统应拒绝并记录事件。
- 如果系统在处理用户账户信息时发生错误,应提供错误信息,并允许系统管理员重试或撤销操作。

用例图和用例描述共同组成用例模型 (Usecase Model),其作用:

  • 系统分析的结果,是系统设计的输入;是面向对象分析的结果,是面向对象设计的输入
  • 是软件开发人员分析客户业务流程的结果;是开发部门领导、非直接开发人员,了解系统的主要信息来源
  • 是开发部门与顾客之间的合同;是软件设计部门与软件工程师之间的合同

您正在阅读的是《面向对象分析与设计Python版》专栏!关注不迷路~

标签:账户,Python,系统,用户,系统管理员,例图,用例,面向对象分析,参与者
From: https://blog.csdn.net/zljgzw/article/details/144968369

相关文章

  • python中的列表
    在刷算法题时,Python的列表(list)是非常常用的数据结构。列表的操作灵活且功能丰富,非常适合用来处理数组、队列、堆栈等问题。以下总结了常用的列表语法和在算法题中会用到的场景:1.列表的创建直接创建lst=[1,2,3,4]列表推导式squares=[x**2forxinrange(5)]......
  • Python应用指南:高德交通态势数据(二)
    本篇文章是对上篇内容的一个深化探讨,通过生成多个矩形来实现一定范围的道路交通态势查询,在上一篇文章中,我们详细介绍了如何利用单个矩形区域查询功能来获取特定区域内的实时交通状况。然而,在实际应用中,城市交通网络复杂多变,单一矩形往往难以覆盖广泛的地理范围或满足更精细的......
  • python中的队列
    在Python中,队列(Queue)通常使用collections.deque来实现,因其提供了高效的从两端添加和删除元素的操作。队列通常遵循先进先出(FIFO)的原则,也就是最先插入的元素最先被移除。队列的基本操作:append(x):将元素x加入队列的尾部。popleft():移除并返回队列的头部元素。appen......
  • Python3 学习指南与资料分享
    Python3学习资料https://pan.quark.cn/s/4f79eee15bf9Python3学习资料https://pan.quark.cn/s/4f79eee15bf9Python3学习资料https://pan.quark.cn/s/4f79eee15bf9在如今这个科技飞速发展的时代,掌握Python3编程技能无疑为你打开了一扇通往无限可能的大门。无论你是想......
  • 基于Python的大语言模型词嵌入技术
    文章目录一、词嵌入技术概述1.1词嵌入的基本概念1.2词嵌入的主要方法二、使用Python实现词嵌入2.1使用Gensim实现Word2Vec2.2使用GloVe进行词嵌入2.3使用FastText进行词嵌入三、词嵌入在大语言模型中的应用3.1使用Transformers库实现BERT嵌入3.2在大语言模型训......
  • 如何通过Python优化大语言模型的参数效率
    文章目录一、大语言模型参数效率优化的必要性1.1参数效率的重要性1.2优化技术的概述二、Python实现参数优化技术2.1模型压缩2.2模型剪枝2.3知识蒸馏2.4模型量化三、优化技术的技术细节3.1模型压缩技术3.2模型剪枝技术3.3知识蒸馏技术3.4模型量化技术四、参......
  • 2025毕设python游泳馆管理系统程序+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容一、选题背景关于游泳馆管理系统的研究,现有研究主要集中在传统管理模式或者单一功能模块的优化上,专门针对使用Python构建综合多功能游泳馆管理系统......
  • 开启 Python3 学习之旅
    Python3学习资料Python3学习资料Python3学习资料在当今数字化的时代,编程技能愈发成为个人竞争力的关键组成部分,而Python3作为一门备受青睐的编程语言,以其简洁优雅、功能强大的特性,吸引着无数初学者与专业人士投身其中。一、轻松入门:环境搭建与基础了解开启Python3学......
  • Python 模块,包(详解)
    一.引用变量        引用变量:值的传递通常可以分为两种方式,一种是值的传递,一种是引用地址传递,在Python中一般都是用引用地址传递        变量名和对象:变量名(如a)和它指向的对象(如整数5)是分开的。变量名本身没有存储任何数据,它只是指向数据的一个标签(或者......
  • Python数据结构与常用操作方法汇总
     在Python中,数据结构是程序中用来存储、组织和操作数据的基本方式。常见的数据结构有列表(list)、元组(tuple)、字典(dict)、集合(set),每种数据结构有自己特定的操作方法。目录一:列表(list)二: 元组(tuple) 三:字典(dict) 四:集合(set)一:列表(list)  列表是......