[开发过程]<软件设计>关于统一建模语言UML

2023-10-30

目录

1 引言

2 为什么需要UML

3 怎么学UML

4 UML设计工具


1 引言

为了根据需求,设计规划好软件的开发,常常需要用到:统一建模语言(Unified Modeling Language,UML)。


2 为什么需要UML

从某一个需求出发,开发中有4个重点问题:

(1)业务逻辑;

(2)程序逻辑;

(3)各进程之间的关系;

(4)物理实现;

这就是所谓UML“4+1”视图的概念。

<1>需求来源于客户,要把客户的需求以书面的形式表述清楚,可以使用UML;

<2>明确需求后,也只是明确了业务逻辑,但是程序上怎么实现,也需要明确;

<3>系统上的程序大多是多线程,各个线程之间的关系也要明确;

<4>代码明确了,但是整个系统有什么物理上的器件呢?比如是多少台电脑、多少个设备、用什么物理方式通信的.....


3 怎么学UML

网上很多UML的课程资料,比如我之前看的:

(1)CSDN学院上的某一个UML课程,讲的比较细致清晰,质量高:  

UML学以致用-uml 交互概览图,uml学以致用,uml交互概览图-软件设计视频教程-研发管理-CSDN程序员研修院学习UML新版的13种图。 掌握UML的基本用法,能在实际项目的需求分析及软件设计工作中活用UML。 学习在软件设计中应用UML,提升软件设计水平。-uml 交互概览图,uml学以致用,uml交互概览图https://edu.csdn.net/course/detail/1168

(2)CSDN学院上的某一个UML课程,介绍了常用的UML设计工具:

https://download.csdn.net/course/detail/28305https://download.csdn.net/course/detail/28305


4 UML设计工具

网上有人用开源的UML设计工具,虽然我还没用过(下次一定......):

Umbrello UML Modeller download | SourceForge.netDownload Umbrello UML Modeller for free. A program for creating Unified Modelling Language (UML) diagrams of software. This project has moved to KDE https://kde.org/applications/development/org.kde.umbrelloAvailable in every Linux distro and for windows at https://windows.kde.orghttps://umbrello.kde.org/https://sourceforge.net/projects/uml/

也有人用Enterprise Architect、StartUML、Rational Rhapsody、Rational Software Architect。

只能说选择适合自己的工具就好。(最近试了试StartUML,不付费购买也可以一直用,只是有个提示说未注册)


(持续更新中......)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[开发过程]<软件设计>关于统一建模语言UML 的相关文章

  • 如何使用 NetBeans 6.8 UML 模块创建类图?

    在我看来 NetBeans 的 UML 模块隐藏得有点太多了 在 NetBeans 6 5 中 创建 UML 图非常容易 无需安装插件或其他东西 喜欢 读my post http karussell wordpress com 2010 0
  • 使用基于关联数组的 UML 建模类型

    假设有一个 PHP 子系统 它仅使用关联数组来存储某种结构化数据 因此 实际上在语言级别上没有机制来约束这些结构 但您希望在设计中使用 UML 来定义它们 E g 在 PHP 中 联系人可能是这样的关联数组 name gt John Doe
  • 如何使用用例关系 - uml

    嘿伙计们 我一直在研究 UML 并且正在尝试设计问题的用例图 假设我的应用程序包含以下内容 两个要求 创建团队 创建玩家 这是这笔交易 用户可以创建一个球队 创建球队后可以为该球队创建球员 非必需 但在这个应用程序中有多个用户 一个用户可以
  • 如何在重写方法中表示调用基类方法?

    我有一个子类想要向基类函数添加更多功能 我如何表示它也执行基类函数而不仅仅是新添加的功能 有趣的问题 我用 Enterprise Architect 尝试过 它确实让我选择了父级的操作 但图中的显示没有改变 看来您需要为此使用注释 如你看到
  • 类图转换为关系模型;继承和匹配表

    对于一个学校项目 我应该设计上学期项目的系统 我们使用 UML 创建一个极其简单的用例图 没有 lt
  • 如何快速理解任何产品的设计和代码流程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 传统的基于代码的工程和模型驱动的工程方法有什么区别?

    我在文献中找到了这段话 但我不明白它的含义 设计实践正在从传统的基于代码的工程转向 在整个开发生命周期中进行严格的分工 模型驱动的工程方法 其中所有人员都参与设计 流程可以对模型有发言权 任何帮助将不胜感激 基于代码的工程意味着大部分工作是
  • 如何在 UML 中建模协变关联类?

    In short 我想对两个类之间的协变关联进行建模 每个类都可以专门化 我需要展示相关关联类的专业化 但我想避免我的模型可能意味着存在冗余关联 即泛化之间的关联和专业化之间的关联 问题的逐步解释 我在 UML 类图中有一个多对多关联Per
  • 用例可以没有参与者吗?

    我正在研究全自动系统的用例图 外部系统只会触发该系统的一个用例 大多数其他用例都是计划任务并由计时器调用 我有一个由计时器调用的用例 它包含并扩展了其他两个用例 当我编写用例描述时 谁将成为 UC 2 和 UC 3 的参与者 用例可以在没有
  • 多个参与者,相同的用例 [用例]

    我试图描述一个用例 其中系统内的多个参与者可以执行相同的活动 例如 假设 作为示例 我想要使用 更新客户端 用例 但几个已确定的参与者可以执行此操作 Manager Chief Executive Customer Service Repr
  • 如何用序列图来展示一个类与另一个类之间的关系,以该类的实例的实例作为输入?

    我将使用之前的相同示例question https stackoverflow com questions 66934927 how to represent the relationship between an instance of
  • 将 StarUML 图转换为 Visio 绘图

    我有一个使用 Star Uml 创建的类图 但现在的要求是将其移植到 MS Visio 是否可以将 uml 移植到具有可用 xml 信息的 vsd 提前致谢 导出为 Windows 图元文件 WMF 和增强型 Windows 图元文件 EM
  • Dia:图表编辑器:盒子对象的限制?

    如标题所示 我尝试为 hte 3d 图形引擎 ogre3d 开发尽可能少的方案 问题是大图方案 Ogre Root 类需要相当多的从它下降的箭头 用关系箭头连接框的模型是它们只能通过边界周围的特定点 称为 关节 或其他东西 进入 退出 但现
  • 如何*真正*编写 UML 基数?

    我想一劳永逸地知道如何编写 UML 基数 因为我经常不得不争论它们 所以非常欢迎证明和来源 如果我想解释一下a Mother可以有几个Children but a Child有且仅有一个Mother 我应该写 Mother 1 Child
  • 如何在 UML 中正式记录 C# 属性?

    在 UML 类图中记录类的 C 属性的正确方法是什么 我还没有决定这是否是我的答案 但我想我会把它扔在那里以便讨论 这看起来可以接受吗 它是属性类型的实例 其中元数据值放入下面的标记值中 我刚刚弄清楚如何添加自定义立体类型 该箭头只是一个标
  • 用例 - 帮助 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我是编写用例的新手 我听说用例是非技术表达 我有以下任务 我必须为其编写用例 我降低了对你理解的要求 ABC公司的注册客户使用凭据登录系统以检索
  • 不同保护条件下的状态转换

    在状态模式中这是如何建模的 当当前状态为 A 时 在触发器 X 和条件 C1 上状态 A 到状态 B 当当前状态为 A 时 在触发器 X 和条件 C2 上状态 A 到状态 C 这通常是如何实现的 我有很多可能需要实施的守卫条件 这是相当标准
  • UML 中的 IsRoot、IsAbstract 和 IsLeaf 何时使用?

    我遇到了以下描述IsRoot IsAbstract IsLeaf但不明白你什么时候会使用它们 摘自http www2 sys con com itsg virtualcd dotnet archives 0108 clark index h
  • [GoF]-ConcreteSubject 可以覆盖通知方法吗?

    我正在模拟一种情况 其中存在 通知框 观察者 list1 list2 list3 这个科目 现在我会制作一张图表 其中使用观察者模式描述每个列表实现不同类型的notify 这一事实 例如 列表状态的某些变化只需要按照某些标准通知给某些观察者
  • Visual Basic 6.0 UML 图生成器

    有没有免费的 UML 图生成器可以将 VB6 源代码转换为 UML 图 您是否见过 Deanna 提到的内置 Visual Modelerhere https stackoverflow com questions 16912161 use

随机推荐

  • python机器学习手写算法系列——线性回归

    本系列另一篇文章 决策树 https blog csdn net juwikuang article details 89333344 本文源代码 https github com juwikuang machine learning st
  • html5和Css3 的参考手册(中文chm版)

    html5的其实就是利用w3c的在线版做成的chm 只是希望对没网络的朋友一点帮助 哈哈 我就是那样有时不能上网的 包含了HTML 5 中的一些新特性 嵌入音频 视频 图片的函数 客户端数据存储 以及交互式文档 其他特性包括新的页面元素 比
  • Maven的安装以及环境变量的配置

    一 Maven的下载 官网下载地址 官网下载地址 历史版本下载地址 历史版本下载地址 点击archives 找到3 6 3版本 找到存放二进制文件的文件夹 下载 二 环境变量配置 1 设置MAVEN HOME 变量名 MAVEN HOME
  • javassist动态生成class

    什么是javassist Javassist是一个开源的分析 编辑和创建Java字节码的类库 是由东京工业大学的数学和计算机科学系的 Shigeru Chiba 千叶 滋 所创建的 它已加入了开放源代码JBoss应用服务器项目 通过使用Ja
  • MySQL中的外键是什么、有什么作用

    近期自学数据库MySQL 然后有个疑问 一直不得其解 查询了相关资料 最后还是没有解决 我的疑问是 使用外键约束 然后我对 外键 这个词不是非常理解 查询相关资料都是讲一些术语 说外键的主要作用是 保持数据的一致性 完整性 听得我是一头雾水
  • 本原多项式/PRBS编码

    Pseudo Random Binary Sequence伪随机二进制序列 前言 PRBS N 其中N代表阶数 伪随机序列以2 N 1数据长度为周期 其他基础原理见百度或其他博主 在此不赘述 一 常用的本原多项式 PRBS3 X3 X2 1
  • python中的常见运算符

    文章目录 算数运算符 赋值运算 关系运算符 逻辑运算符 非布尔值的与或非运算 条件运算符 也叫三元运算符 运算符的优先级 算数运算符 加法运算符 如果两个字符串之间进行加法运算 则会进行拼串操作 减法运算符 乘法运算符 如果将字符串和数字相
  • Java 父类 与子类之间的转换

    一 子类的实列化通过父类实现 代码正常 二 基于子类的实列化是通过父类实现 强制转换父类 代码正常 三 父类的实列化不能强制转换为子类 代码错误 提示 java lang ClassCastException 针对第三种情况 建议采用方案
  • 爬取竞技游戏排行榜 - 从游戏网站获取游戏排行榜信息

    在这篇博客中 我们将探讨如何使用Python编写一个爬虫程序 从游戏网站 例如Steam 获取竞技游戏排行榜信息 我们将依次完成以下步骤 选择目标游戏网站 分析网站结构 准备工具和库 编写爬虫程序 保存获取的数据 在开始编写爬虫程序之前 请
  • angular 1.7.5_了解Angular 1.5生命周期挂钩

    angular 1 7 5 The release of Angular 1 5 has introduced some powerful features that have made Angular 1 x fun and easy t
  • Gym的Spaces.Discrete和Spaces.box

    原文 https www jianshu com p cb0839a4d1d3 1 OpenAI Gym安装 安装 本人环境是Ubuntu16 04 anaconda Python3 6 2 git clone https github c
  • 【微信小程序系列:四】前端利用wx.setStorageSync缓存设置有效时间

    先言 简单来说 就是利用缓存 进行有效期的保存 以此前端加以判断 在如登录状态过期 操作过期等场景使用 扩展性还蛮多的 官方文档 实现 原理 就是先设置一个缓存 这个缓存值为当前时间加上有效期的时间 缓存会一直存在在本地 当到有效期后 执行
  • Reactor Cooling【ZOJ 2314】【无源汇有上下界可行流】

    题目链接 无源汇上下界可行流 没有源点 S 汇点 T 在网络中求可行流或者指出不存在 对于这个问题 不好处理 但是如果我们去掉流量下界限制 B 那么就是最大流的模型了 问题就可以解决了 但是 我们不能直接去掉 因为有可能存在入 出的情况 也
  • 利用信号量解决线程同步与互斥——以生产者消费者模型为例

    线程同步和互斥的概念 线程同步就是把同一进程环境下的一组并发线程 因直接制约而互相发送消息而进行互相合作 互相等待 使得各线程按一定的速度执行的过程 互斥是指不允许两个以上的共享该资源的并发线程同时进入临界区 其中直接制约是指同一进程环境下
  • 仙境传说RO:npc汉化方法

    仙境传说RO npc汉化方法 大家好我是艾西 在我们说了那么多期的教程中大家应该有发现游戏内很多都还是英文的 如果对于国内的玩家开展这个游戏可能有些不熟悉的小伙伴玩起来会有点难受 今天艾西跟大家分享下怎么汉化NPC等 我们的仙境传说RO是基
  • 【注解】ajax+@RequestBody前端向后台传值

    直接上代码 function getLocation var result ajax url BaseManage SysInfo GetLocation type post contentType application json dat
  • 谷粒商城-整合elasticSearch

    SpringBoot整合ElasticSearch 初识ElasticSearch 入门ES 掌握了基本语法 导入一些数据进行实际学习 SpringBoot整合high level client SearchRequest的构建 检索 Se
  • 母猪产仔早知道,这次南农用上了英伟达边缘 AI Jetson

    内容一览 对养猪业而言 母猪产仔是其中关键的一环 因此 提高猪仔成活率 确保母猪分娩过程安全 成为重要课题 现有的 AI 监测方式 存在着高设备成本与信息传输不稳定的问题 南京农业大学研究人员 利用一种轻量级深度学习方式 对母猪分娩这一过程
  • 云原生Kubernetes:阿里云托管k8s集群ACK创建和使用

    目录 一 理论 1 容器服务Kubernetes版 2 ACK Pro版集群概述 3 ACK版本说明 二 实验 1 创建专有版Kubernetes集群 三 问题 1 依赖检查未通过 一 理论 1 容器服务Kubernetes版 1 概念 阿
  • [开发过程]<软件设计>关于统一建模语言UML

    目录 1 引言 2 为什么需要UML 3 怎么学UML 4 UML设计工具 1 引言 为了根据需求 设计规划好软件的开发 常常需要用到 统一建模语言 Unified Modeling Language UML 2 为什么需要UML 从某一个