标签 UML 下的文章

Gaphor 是一个自由开源的建模应用,支持各种建模语言,如 UML、SysML、RAAML 和 C4。

不知道“ 建模语言 modeling language ”这个词?基本上,它是一组可以用来创建设计和构造结构的指令。它可以是文字的,也可以是图形的。

图形化的更容易看,也更容易弄清楚项目的各个组成部分是如何相互关联的。

你见过流程图或顺序图吗?那些也是一种最简单形式的图形建模。

Sequence diagram example

有各种建模语言,它们被用于软件开发、系统工程、物理学、项目管理等方面。

用于 UML、SysML 等的 Gaphor

Gaphor 使用 UML、SysML 和 RAAML OMG 标准。它还包括对 C4 模型的支持,用于软件架构的可视化。

它不仅仅是一个 绘图工具。它实现了一个完全兼容的 UML 2 数据模型。你可以用 Gaphor 创建高度复杂的模型。

用 Python 编写的 Gaphor 在 Apache 2 许可证下是完全开源的。你可以在 其 GitHub 仓库 找到它的所有源代码。它是一个跨平台的工具,可以安装在 Linux、Windows 和 macOS 上。

你可以以 PDF、PNG、SVG 和 XML 格式导出你的图表。你还可以插入一个代码生成器。

Gaphor 网站提到它有深色模式,但我在下载的 AppImage 版本中没有看到任何选项可以启用它。

在 Linux 上安装 Gaphor

Gaphor user interface

Arch 用户可以在 AUR 中找到 Gaphor。对于其他发行版,你可以选择 AppImage 和 Flatpak。

你可以从其 下载页面 下载 AppImage。

如果你想使用 Flatpak 版本,请先添加 Flathub 仓库:

flatpak remote-add --user --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

然后再安装它:

flatpak install --user flathub org.gaphor.Gaphor

由于 Gaphor 本质上是一个 Python 应用,你也可以 使用 Pip 安装它。

pip install gaphor

当我还是一名软件工程师工作时,我使用 UML 和序列图。在过去的几年里,我没有使用它。看看 Gaphor,我认为如果你必须为你的项目创建 UML 和其他图表,它是一个相当不错的应用。

欢迎试一试,并在评论中分享你的经验。


via: https://itsfoss.com/gaphor-modeling-tool/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

OAuth 2.0 abstract protocol flow

看起来 OAuth 2.0 框架 已经越来越广泛地应用于 web (和 移动) 应用。太棒了!

虽然协议本身并不复杂,但有很多的使用场景、流程和实现可供选择。正如生活中的大多数事物一样,魔鬼在于细节之中。

在审查 OAuth 2.0 实现或编写渗透测试报告时我习惯画出 UML 图。这方便让人理解发生了什么事情,并发现潜在的问题。毕竟,一图抵千言。

使用基于 GPL 开源协议 Emacs 编辑器来实现,再加上基于 GPL 开源协议的工具 PlantUML (也可以选择基于 Eclipse Public 协议的 Graphviz) 很容易做到这一点。

Emacs 是世界上最万能的编辑器。在这种场景中,我们用它来编辑文本,并自动将文本转换成图片。PlantUML 是一个允许你用人类可读的文本来写 UML 并完成该转换的工具。Graphviz 是一个可视化的软件,这里我们可以用它来显示图片。

下载 预先编译好了的 PlantUML jar 文件Emacs 还可以选择下载并安装 Graphviz

安装并启动 Emacs,然后将下面 Lisp 代码(实际上是配置)写入你的启动文件中(~/.emacs.d/init.d),这段代码将会:

  • 配置 org 模式(一种用来组织并编辑文本文件的模式)来使用 PlantUML
  • plantuml 添加到可识别的 “org-babel” 语言中(这让你可以在文本文件中执行源代码)
  • 将 PlantUML 代码标注为安全的,从而允许执行
  • 自动显示生成的结果图片
;; tell org-mode where to find the plantuml JAR file (specify the JAR file)
(setq org-plantuml-jar-path (expand-file-name "~/plantuml.jar"))

;; use plantuml as org-babel language
(org-babel-do-load-languages 'org-babel-load-languages '((plantuml . t)))

;; helper function
(defun my-org-confirm-babel-evaluate (lang body)
"Do not ask for confirmation to evaluate code for specified languages."
(member lang '("plantuml")))

;; trust certain code as being safe
(setq org-confirm-babel-evaluate 'my-org-confirm-babel-evaluate)

;; automatically show the resulting image
(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)

如果你还没有启动文件,那么将该代码加入到 ~/.emacs.d/init.el 文件中然后重启 Emacs。

提示:Control-c Control-f 可以让你创建/打开(新)文件。Control-x Control-s 保存文件,而 Control-x Control-c 退出 Emacs。

这就结了!

要测试该配置,可以创建/打开(Control-c Control-f)后缀为 .org 的文件,例如 test.org。这会让 Emacs 切换到 org 模式并识别 “org-babel” 语法。

输入下面代码,然后在代码中输入 Control-c Control-c 来测试是否安装正常:

#+BEGIN_SRC plantuml :file test.png
@startuml
version
@enduml
#+END_SRC

一切顺利的话,你会在 Emacs 中看到文本下面显示了一张图片。

注意:

要快速插入类似 #+BEGIN_SRC#+END_SRC 这样的代码片段,你可以使用内置的 Easy Templates 系统:输入 <s 然后按下 TAB,它就会自动为你插入模板。

还有更复杂的例子,下面是生成上面图片的 UML 源代码:

#+BEGIN_SRC plantuml :file t:/oauth2-abstract-protocol-flow.png
@startuml
hide footbox
title Oauth 2.0 Abstract protocol flow
autonumber
actor user as "resource owner (user)"
box "token stays secure" #FAFAFA
participant client as "client (application)"
participant authorization as "authorization server"
database resource as "resource server"
end box

group user authorizes client
client -> user : request authorization
note left
**grant types**:
# authorization code
# implicit
# password
# client_credentials
end note
user --> client : authorization grant
end

group token is generated
client -> authorization : request token\npresent authorization grant
authorization --> client :var: access token
note left
**response types**:
# code
# token
end note
end group

group resource can be accessed
client -> resource : request resource\npresent token
resource --> client : resource
end group
@enduml
#+END_SRC

你难道会不喜欢 Emacs 和开源工具的多功能性吗?


via: https://www.onwebsecurity.com/configuration/use-emacs-to-create-oauth-2-0-uml-sequence-diagrams.html

作者:Peter Mosmans 选题:lujun9972 译者:lujun9972 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出