当前位置: 首页 > article >正文

面向对象分析与设计Python版 建模工具UML

文章目录

  • 一、建模与模型
  • 二、统一建模语言


一、建模与模型

建模与模型

  • 建模 modeling:
    • 把不太理解的东西和一些已经较为理解、且十分类似的东西做比较,可以对这些不太理解的东西产生更深刻的理解,叫做建模
    • 重要的研发成果常常产自类比
  • 模型 model:
    • 建模产生的结果就是模型,模型是对现实的简化、对事物的一种抽象
    • 模型可以帮助人们更好地了解事物的本质,抓住问题的要害
    • 在模型中,人们总是剔除那些与问题无关的、非本质的东西,从而使模型与真实的实体相比更加简单、易于把握

建模的目的

  • 因为不能完整地理解一个复杂的系统,所以要对它建模。建模是为了能够更好地理解正在开发的系统。
  • 帮助我们按照需要对系统进行可视化;允许我们详细说明系统的结构和行为
  • 给出了一个指导我们构造系统的模板;对我们所做出的决策进行文档化

建模的基本方法

  • 选择要创建什么模型
  • 每一种模型可以在不同的精度级别上表示
  • 最好的模型是与现实相关联的。模型都是对现实的简化和抽象,但是简化不能掩盖掉任何重要的细节
  • 单个模型是不充分的, 对每一个重要的系统最好用一组几乎独立的模型去处理

二、统一建模语言

统一建模语言

  • 统一建模语言(UML,Unified Modeling Language)类似一个工具包。软件分析师、设计师的工具包,用于创建各种模型
  • UML是一种图形化的建模工具,常用符号如下

在这里插入图片描述

在这里插入图片描述

UML主要组成部分

  • 模型元素(Model Elements)

    • 类(Class):表示系统中具有相同属性、操作、关系和语义的对象集合。
    • 接口(Interface):定义了一组操作,这些操作指定了一个类或组件的一个合同。
    • 对象(Object):类的实例。
    • 关系(Relationship):类、对象、接口等之间的关系,如继承、关联、依赖和实现。
    • 包(Package):用于组织模型元素,可以包含类、接口、组件等。
  • 图(Diagrams)

    • 类图(Class Diagram):展示了一组类、接口、协作以及它们之间的关系。
    • 对象图(Object Diagram):展示了类的实例以及它们之间的关系。
    • 用例图(Use Case Diagram):展示了系统的功能和用例以及参与者与用例之间的关系。
    • 序列图(Sequence Diagram):展示了对象之间交互的时间顺序。
    • 协作图(Collaboration Diagram):展示了对象之间的动态协作关系。
    • 状态图(State Diagram):展示了对象可能的状态变化。
    • 活动图(Activity Diagram):展示了从活动到活动的流转。
    • 构件图(Component Diagram):展示了实现视图中的物理组件以及它们之间的关系。
    • 部署图(Deployment Diagram):展示了运行时的处理节点以及在其中生存的构件的配置。
  • 视图(Views)

    • 逻辑视图(Logical View):表示设计模型中的静态结构,包括类、接口、协作和它们之间的关系。

    • 实现视图(Implementation View):表示系统中的类和对象如何被模块化,以及它们在物理层的分布。

    • 进程视图(Process View):描述了系统的并发和同步特征,以及控制流程。

    • 部署视图(Deployment View):描述了在硬件上部署软件时的配置。

    • 用例视图(Use Case View):描述了系统的功能需求,从用户的角度来看系统应该做什么。

参考资料:开源画图工具drawio


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


http://www.kler.cn/a/473353.html

相关文章:

  • Matplotlib 直方图:数据可视化基础
  • Apache Traffic存在SQL注入漏洞(CVE-2024-45387)
  • OpenAI CEO 奥特曼发长文《反思》
  • Python创建GitHub标签的Django管理命令
  • 在K8S上部署OceanBase的最佳实践
  • 计算机网络--UDP和TCP课后习题
  • k8s集群监控系统部署方案
  • 回归预测 | MATLAB实GRU多输入单输出回归预测
  • Spring boot接入xxl-job
  • 【传统枪机现代枪机的功能需求】
  • 【HarmonyOS NEXT】鸿蒙应用使用后台任务之长时任务,解决屏幕录制音乐播放等操作不被挂起
  • C/C++中头文件time
  • DAX实现K近邻(KNN)分类算法
  • 课题推荐——基于GPS的无人机自主着陆系统设计
  • 【Python3】异步操作 redis
  • 69.基于SpringBoot + Vue实现的前后端分离-家乡特色推荐系统(项目 + 论文PPT)
  • 通过可穿戴外骨骼,以更灵活的方式操作你的机器人。
  • 分布式主键ID生成方式-snowflake雪花算法
  • 迅为RK3568开发板篇OpenHarmony配置HDF驱动控制LED-修改HCS硬件配置
  • 电脑硬盘系统迁移及问题处理
  • linux相关conda操作
  • 深度学习中的卷积和反卷积(二)——反卷积的介绍
  • 智能化API接口:重塑电商数据交互的未来
  • 软件工程期末总结
  • 互联网全景消息(9)之Kafka深度剖析(上)
  • Agent | Dify中的两种可选模式