Como eu crio um diagrama de transição de estado?

5

Eu estou desenhando um diagrama de transição de estado usando o sorteio do LibreOffice no Ubuntu 11.04. Eu sou capaz de obter quase tudo que eu precisava, exceto o estado final. Normalmente, usamos dois círculos incorporados em para mostrar um estado final de um diagrama de transição de estado. Alguém poderia me ajudar a fazer isso? Por favor, deixe-me saber se existem ferramentas melhores para desenhar diagramas de transição de estado no Ubuntu. Eu olhei para Dia, mas também não é útil desenhar o estado final de um diagrama de transição de estado como em isto .

    
por samarasa 08.10.2011 / 18:39

4 respostas

4

Na verdade, o Dia permite adicionar um estado final. Selecione as formas UML e, em seguida, arraste a forma "estado inicial / final" para o diagrama. Quando você clicar duas vezes na forma, verá um botão que diz "É final". Isso permite definir se o estado é inicial ou final.

EDIT: Se você não gosta de como eles são, é muito fácil criar suas próprias formas no Dia. Eles são apenas arquivos SVG.

Salve o seguinte como ~/.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>

Salve o seguinte como ~/.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",
"................",
"....+@#$%#@+....",
"...&*=-.;-=*&...",
"..&>,......,>&..",
".+*,........,*+.",
".@=..........=@.",
".#-..........-#.",
".%;..........;%.",
".%;..........;%.",
".#-..........-#.",
".@=..........=@.",
".+*,........,*+.",
"..&>,......,>&..",
"...&*=-.;-=*&...",
"....+@#$%#@+....",
"................"};

Por fim, salve o seguinte como ~ / .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>

Quando você reinicia Dia, você deve ter uma planilha "Finite State Machine" com uma forma: um estado final de aparência decente!

    
por erturne 09.10.2011 / 02:42
3

Eu sugiro que você use o inkscape para produzir gráficos como esse, leva um pouco de tempo para aprender como usar as ferramentas, mas é bem recompensado com a qualidade gráfica do produto.

    
por Oscar David Arbeláez 09.10.2011 / 04:34
2

Eu sugiro que você use o software Dia para seu diagrama de estados ou qualquer outro diagrama de fluxo ou UML. Ele contém números de formas e facilidade de soltar arrastar. Então vá para dia. Para mais informações, visite este link .

    
por dakshbhatt21 01.05.2013 / 23:28
1

O Lucidchart é uma boa opção. Versão gratuita disponível e funciona em qualquer navegador decente. Eu sei que o time de desenvolvimento está rodando Linux então tem isso também porque eu trabalho lá:)

    
por bradhanks 01.05.2013 / 23:22