跳转到主要内容

Gaphor是用Python编写的简单建模工具。

项目描述

Gaphor - SysML/UML Modeling

Build Docs build state PyPI PyPI - Downloads Matrix

Maintainability Test Coverage Translation Status Sourcery standard-readme compliant All Contributors.org

Gaphor是用Python编写的UML和SysML建模应用程序。它设计得易于使用,同时仍然功能强大。Gaphor实现了一个完全符合UML 2数据模型,所以它不仅仅是一个绘图工具。您可以使用Gaphor快速可视化系统的不同方面,以及创建完整且高度复杂的模型。

Gaphor Demo

📑 目录

📜 背景

Gaphor 是一个用 Python 编写的 UML 和 SysML 模型应用。我们设计它既易于使用,又具有强大的功能。Gaphor 实现了一个完全符合 UML 2 数据模型,因此它不仅仅是一个绘图工具。您可以使用 Gaphor 快速可视化系统的不同方面,以及创建完整且高度复杂的模型。

Gaphor 的设计遵循以下原则:

  • 简洁性:应用程序应易于使用。只需具备一些基本的 UML 或 SysML 知识即可。
  • 一致性:UML 是一种图形建模语言,因此所有建模都在图中进行。
  • 实用性:应用程序不应在用户进行非 UML 操作时打扰用户。

Gaphor 是一个 GUI 应用程序。它拥有基于现代 GTK 的界面,并使用 Cairo 进行一致的渲染。

Gaphor 是一个库。您可以从 脚本和 Jupyter 笔记本 中使用它,并可通过编程方式与模型进行交互。

非目标

  • 从源代码生成 UML 图表。您可能需要查找 pynsourcepyreverse
  • 从图表生成源代码或创建其他具体可执行工件,包括使用 fUML 或 ALF。

虽然可以实现这些功能,但这些不是本项目的目标。然而,如果您认为这些功能很重要,您可能可以通过创建一个 插件 来扩展 Gaphor。

💾 安装

Download on Flathub

您可以在 gaphor.org 网站 上找到最新版本。Gaphor 为 macOS 和 Windows 提供安装程序。那些可以在那里找到。Python 软件包也在 PyPI 上提供。

所有版本都可在 GitHub 上找到。

如果您想开始开发 Gaphor,请查看我们文档中的 安装部分

🔦 使用

如果您是首次使用 Gaphor,启动时会弹出一个问候对话框,其中您可以从中选择您要工作的 5 个模型之一

  • 通用:(或空白)模板
  • UML: 统一建模语言 模板
  • SysML: 系统建模语言 模板
  • RAAML: 风险分析和评估建模语言 模板
  • C4 模型: 一种用于软件系统架构建模的轻量级图形符号技术 模板

选择模板后,主 Gaphor 窗口将加载,您将准备好开始建模。Gaphor 将根据您选择的模板自动选择正确的配置文件,但您也可以通过点击窗口顶部配置文件下拉菜单旁边的按钮来选择其他建模配置文件(如果需要)。

要选择要放置的元素,例如类,请单击工具箱中的图标,然后在图中再次单击。这将在图中放置一个新的类元素,并将一个新的类添加到模型中(它将在 模型浏览器 中显示)。

工具箱的部分也可能根据您正在建模的图表类型而折叠。如果需要,您可以在需要时展开工具箱的折叠部分。

如果您想了解更多信息,请阅读我们的文档 https://docs.gaphor.org

♥ 贡献

以下人员做出了贡献(emoji key

2old4it
2old4it

🐛
2old4this
2old4this

🐛
3fla1416
3fla1416

🐛
Adam Bjurstrom
Adam Bjurstrom

🐛
Adam Boduch
Adam Boduch

💻 ⚠️ 🐛
Alen Šiljak
Alen Šiljak

🐛
Alexander Wilms
Alexander Wilms

🐛
Alexis Howells
Alexis Howells

📖
Amor Ali
Amor Ali

🐛
Amy Y
Amy Y

🌍
Andrei
Andrei

🐛
Andrew
Andrew

🐛
Antonio Mejia
Antonio Mejia

🌍
Arjan Molenaar
Arjan Molenaar

💻 🐛 📖 👀 💬 🐛 🔌 ⚠️
Aurélien Joga
Aurélien Joga

📖
Bill ZHANG
Bill ZHANG

🌍
Björn Strömberg
Björn Strömberg

🐛
Blippost
Blippost

🤔
Brage Fuglseth
Brage Fuglseth

🎨
Brandan Glendenning
Brandan Glendenning

📖
Brock Tibert
Brock Tibert

🐛
Can Lehmann
Can Lehmann

💻
Christian Hoff
Christian Hoff

💻
DKX47
DKX47

🐛
Dan Yeaw
Dan Yeaw

💻 ⚠️ 📖 📦 🚇 🐛 💬
Daniel Bergløv
Daniel Bergløv

🤔
Daniel Hulse
Daniel Hulse

📖
Daniel Nylander
Daniel Nylander

🌍
DimShadoWWW
DimShadoWWW

🐛
Douglas B
Douglas B

📖
Encolpe DEGOUTE
Encolpe DEGOUTE

🌍
Enno Gröper
Enno Gröper

💻
Enno Zickler
Enno Zickler

🐛
Ercalvez
Ercalvez

🌍
Erwan Bousse
Erwan Bousse

🤔 🐛
Eryk Michalak
Eryk Michalak

🌍
Felipe Nogueira
Felipe Nogueira

🌍
Fell-x27
Fell-x27

🐛
Fran Diéguez
Fran Diéguez

🌍
Francisco Gouveia
Francisco Gouveia

💻
Gabriel Gian
Gabriel Gian

🌍
Gleb Smirnov
Gleb Smirnov

🐛
Greg Stewart
Greg Stewart

🐛
Gytree
Gytree

🐛
Günther Wagner
Günther Wagner

🐛
Hamish Mcintyre-Bhatty
Hamish Mcintyre-Bhatty

🐛
HighKingofMelons
HighKingofMelons

🐛
Igor Lerinc
Igor Lerinc

🐛
Ikko Ashimine
Ikko Ashimine

💻
JACKADUX
JACKADUX

🐛
Jacob Crabill
Jacob Crabill

🐛
Jacobo Aragunde Pérez
Jacobo Aragunde Pérez

🐛
Jan
Jan

🐛
Jean-Luc Tibaux
Jean-Luc Tibaux

🌍
JensPfeifle
JensPfeifle

📖
Jonathan
Jonathan

🤔 🐛 🌍 💻
Jonathan E. Magen
Jonathan E. Magen

🤔
JonnathanRiquelmo
JonnathanRiquelmo

🌍
Jordi Mallach
Jordi Mallach

🌍
Jorge DLG
Jorge DLG

🐛
João Correia
João Correia

💻
Juha-Matti Kokkonen
Juha-Matti Kokkonen

🐛
Julius Rüberg
Julius Rüberg

🐛
JuliusBrueggemann
JuliusBrueggemann

🐛
K.B.Dharun Krishna
K.B.Dharun Krishna

🌍
Kapil Thangavelu
Kapil Thangavelu

🐛
KhazAkar
KhazAkar

🐛
Kian-Meng Ang
Kian-Meng Ang

📖
Lazerbeak12345
Lazerbeak12345

🐛
Lordy
Lordy

🐛
Mark Kennedy
Mark Kennedy

🤔 💻 🐛
Mark-Daniel Lüthje
Mark-Daniel Lüthje

🌍
Mat
Mat

💻
Matthew Maclaine
Matthew Maclaine

🐛
Maxim
Maxim

🐛
Mek101
Mek101

🐛
Michael J. Vinca
Michael J. Vinca

🐛
Michael Patrick Tkacik
Michael Patrick Tkacik

🐛
Mikhail Bessonov
Mikhail Bessonov

🐛
Mikkel Aunsbjerg Jakobsen
Mikkel Aunsbjerg Jakobsen

🐛
Nathan Hadley
Nathan Hadley

🌍
Nedko Arnaudov
Nedko Arnaudov

🐛
Patrik
Patrik

🤔
Paul Menzel
Paul Menzel

📖
Paweł Pająk
Paweł Pająk

🐛
Petal
Petal

📖 🌍
Phil_Smurf
Phil_Smurf

🤔
Philip Goto
Philip Goto

🌍
Rafael Fontenelle
Rafael Fontenelle

🌍 🤔
Rafael Muñoz Cárdenas
Rafael Muñoz Cárdenas

🐛
RenStone83
RenStone83

🐛
Richard Bamford
Richard Bamford

🐛
Rui Maciel
Rui Maciel

🤔
Sabri Ünal
Sabri Ünal

🌍 💻
Sascha Holzhauer
Sascha Holzhauer

🐛 📖
SebCanet
SebCanet

🤔
Sebi
Sebi

🐛
Seong-ho Cho
Seong-ho Cho

🌍
Sergej A.
Sergej A.

🌍
Sophie Herold
Sophie Herold

💻 ️️️️♿️
Steve Kossouho
Steve Kossouho

🐛 💻
Steven Liu
Steven Liu

🐛
Sycophantic-Witty
Sycophantic-Witty

🐛
Teun Hoevenaars
Teun Hoevenaars

📖
Thomas
Thomas

🐛
Thomas Firchau
Thomas Firchau

📖
Tiemen Schuijbroek
Tiemen Schuijbroek

🐛 💻
Tobias Bernard
Tobias Bernard

🎨 🤔
TomBous
TomBous

🐛
Tomasz Drożdż
Tomasz Drożdż

🤔
Tony
Tony

🚧
Viicos
Viicos

🐛
Xander982
Xander982

🖋 🐛
YantaoZhao
YantaoZhao

🐛 🤔
Yauhen Kirylau
Yauhen Kirylau

📖 📦 🤔 🐛
Zsolt Sandor
Zsolt Sandor

🤔 🐛 💻 📖
\s\m
\s\m

📖
albanobattistella
albanobattistella

🌍
alkis05
alkis05

🤔
bayerl
bayerl

📖
cloud-erik
cloud-erik

🤔
deifemu
deifemu

🐛
freddii
freddii

🤔 📖
freezed-or-frozen
freezed-or-frozen

🐛
fu7mu4
fu7mu4

🌍
gavr123456789
gavr123456789

🤔
ghillebrand
ghillebrand

🤔
greedyj4ck
greedyj4ck

🐛
johnvon
johnvon

🌍
jposada202020
jposada202020

🌍
kellenmoura
kellenmoura

🐛
lightonflux
lightonflux

🐛
lukman83
lukman83

🐛
madiharvey
madiharvey

🤔 🐛
matgaj
matgaj

🐛
mcdigregorio
mcdigregorio

🐛
melisdogan
melisdogan

📖
mikekidner
mikekidner

🐛 💻 📖
milotype
milotype

🌍 📖
mskorkowski
mskorkowski

🐛
noblevirk
noblevirk

🤔
nomisge
nomisge

🐛 🤔
ovari
ovari

🤔 🌍 🐛
perovsek
perovsek

🌍 🐛
peter88213
peter88213

🐛
qsodev
qsodev

🐛
samirodj
samirodj

🐛
seryafarma
seryafarma

📖
shobeira
shobeira

🐛 🤔
sib@c
sib@c

🐛 🤔
tompkins-ct
tompkins-ct

🐛 🤔
tronta
tronta

🐛
vikdevelop
vikdevelop

🌍
wrobell
wrobell

💻 ⚠️ 🐛 🎨
zhangxinqiang
zhangxinqiang

🌍
Óscar Fernández Díaz
Óscar Fernández Díaz

🌍 💻
Евгений Лежнин
尤根尼·列日宁

🌍
Пётр Сабанов
彼得·萨巴诺夫

🌍
品雪
品雪

🐛

本项目遵循all-contributors规范。欢迎任何形式的贡献!

  1. 查找开放的问题或创建新的问题以开始关于功能想法或错误的讨论。存在一个仅适用于初学者的标签,这些问题对于代码库不太熟悉的人来说应该很理想。
  2. 在GitHub上fork仓库,以开始对主分支(或从它分支)进行更改。
  3. 编写一个测试,以显示错误已被修复或功能按预期工作。
  4. 发送一个pull请求,并不断打扰维护者,直到它被合并和发布。:smile

查看贡献指南

🌍 翻译

主要使用Weblate进行Gaphor的翻译。

对于Linux Flatpak,桌面条目注释字符串可以在我们的Flatpak仓库中翻译。

非常感谢您为帮助我们将其翻译成多种语言所做的努力!

Translation status

♿️ 行为准则

我们重视您的参与,并希望每个人都能够有一个愉快和充实的体验。作为一个GNOME Circle项目,所有参与者都应遵循GNOME的行为准则,并相互尊重、理解和关心。感谢您帮助使这个社区对所有人都友好。

©️ 许可协议

版权 © Gaphor 开发团队

许可协议为Apache License v2

摘要:您可以使用Gaphor做您喜欢的事情,只要包含所需的说明。此许可协议包含来自代码贡献者的专利许可。

项目详情


发布历史 发布通知 | RSS源

下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

gaphor-2.26.0.tar.gz (646.4 kB 查看哈希值)

上传时间 源代码

构建分发

gaphor-2.26.0-py3-none-any.whl (887.4 kB 查看哈希值)

上传时间 Python 3

由以下机构支持