Как мне создать диаграмму перехода состояний?
Я рисую диаграмму перехода между состояниями, используя LibreOffice в Ubuntu 11.04. Я могу получить почти все, что мне нужно, кроме конечного состояния. Обычно мы используем две окружности для отображения конечного состояния диаграммы перехода состояний. Может ли кто-нибудь помочь мне сделать это? Пожалуйста, дайте мне знать, есть ли в Ubuntu более эффективные инструменты для рисования диаграмм перехода между состояниями. Я посмотрел на Dia, но также бесполезно рисовать окончательное состояние диаграммы перехода состояний, как в этом.
4 ответа
На самом деле 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/sheet /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 у вас должен быть лист "Finite State Machine" одной формы: приличное конечное состояние!
Я предлагаю вам использовать Inkscape чтобы создавать такую графику, требуется немного времени, чтобы научиться использовать инструменты, но это хорошо вознаграждено качеством графики продукта.
Я предлагаю вам использовать программное обеспечение Dia для вашей диаграммы состояний или любых других UML или блок-схем. Он содержит множество форм и удобные возможности перетаскивания. Так что иди на диам. Для получения дополнительной информации посетите эту ссылку.
Lucidchart - хороший вариант. Бесплатная версия доступна и работает в любом приличном браузере. Я знаю, что все команды разработчиков работают под Linux, так что это тоже так, потому что я там работаю:)