web-dev-qa-db-ja.com

状態遷移図を作成するにはどうすればよいですか?

Ubuntu 11.04でLibreOffice描画を使用して状態遷移図を描画しています。最終状態を除き、必要なほぼすべてのものを取得できます。通常、状態遷移図の最終状態を表示するには、2つの円 埋め込み を使用します。誰かが私を助けることができますか? Ubuntuに状態遷移図を描画するためのより良いツールがあるかどうかも教えてください。 Diaを見てきましたが、 this のような状態遷移図の最終状態を描くことも役に立ちません。

5
samarasa

実際、Diaでは、終了状態を追加できます。 UML形状を選択し、「初期/終了状態」形状をダイアグラムにドラッグします。シェイプをダブルクリックすると、「最終です」というボタンが表示されます。これにより、状態が初期か最終かを定義できます。

編集:外観が気に入らない場合は、Diaで独自のシェイプを作成するのは非常に簡単です。それらは単なるSVGファイルです。

以下を~/.dia/shapes/fsm_final_state.shapeとして保存します。

<?xml version="1.0"?>

<shape xmlns="http://www.daa.com.au/~james/dia-shape-ns"
       xmlns:svg="http://www.w3.org/2000/svg">
  <name>Finite State Machine - Final State</name>
  <icon>fsm_final_state_icon.xpm</icon>
  <connections>
    <point x="0.0" y="2.5" />
    <point x="2.5" y="5.0" />
    <point x="5.0" y="2.5" />
    <point x="2.5" y="0.0" />
  </connections>
  <textbox x1="0.0" y1="0.0" x2="5.0" y2="5.0" />
  <svg:svg width="5.0" height="5.0">
    <svg:circle style="fill: default;" cx="2.5" cy="2.5" r="2.5" />
  </svg:svg>
  <svg:svg width="4.0" height="4.0">
    <svg:circle style="fill: default;" cx="2.5" cy="2.5" r="2.0" />
  </svg:svg>
</shape>

以下を~/.dia/shapes/fsm_final_state_icon.xpmとして保存します。

/* XPM */
static char * fsm_final_state_icon_xpm[] = {
"16 16 14 1",
"   c None",
".  c #FFFFFF",
"+  c #FCFCFC",
"@  c #B6B6B6",
"#  c #545454",
"$  c #000000",
"%  c #101010",
"&  c #D8D8D8",
"*  c #121212",
"=  c #353535",
"-  c #A0A0A0",
";  c #EBEBEB",
">  c #040404",
",  c #9E9E9E",
"................",
"....+@#$%#@+....",
"...&*=-.;-=*&...",
"..&>,......,>&..",
".+*,........,*+.",
".@=..........=@.",
".#-..........-#.",
".%;..........;%.",
".%;..........;%.",
".#-..........-#.",
".@=..........=@.",
".+*,........,*+.",
"..&>,......,>&..",
"...&*=-.;-=*&...",
"....+@#$%#@+....",
"................"};

最後に、以下を〜/ .dia/sheets/Finite_State_Machine.sheetとして保存します。

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<sheet xmlns="http://www.lysator.liu.se/~alla/dia/dia-sheet-ns">
<!--File: ~/.dia/sheets/Finite_State_Machine.sheet-->

<name>Finite State Machine</name>
<description>Finite state machine diagrams</description>
<contents>
<!--add shapes here-->
<object name="Finite State Machine - Final State">
<description>Final</description></object>

</contents></sheet>

Diaを再起動すると、1つの形状の「Finite State Machine」シートが表示されます。これはまともな最終状態です。

4
erturne

inkscapeInstall inkscape そのようなグラフィックを作成するには、ツールの使用方法を学ぶのに少し時間がかかりますが、製品のグラフィック品質は十分に報われます。

状態図またはその他のUMLまたはフロー図にDiaソフトウェアを使用することをお勧めします。多数の形状と簡単なドラッグドロップ機能が含まれています。だからdiaに行きます。詳細については、 このリンク をご覧ください。

2
dakshbhatt21

Lucidchartは良い選択肢です。無料版が利用可能で、適切なブラウザで動作します。私はそこに開発チームがすべてLinuxを実行していることを知っているので、そこで働いているのでそれもあります:)

1
bradhanks