From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Actor Framework Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

What is your preferred UML diagram tool?

If it is a project view/analysis you search for I would start from Jack Dunaways Links:

https://github.com/wirebirdlabs/links

He has got some really good stuff in the rest of his repositories yet I guess this is the one you need.

One day you could see your code working with a 3D visor tracking actors shooting at each other some messages yet till then I doubt UML diagrams will do the trick for actors.

Maybe the guys using Akka have a better idea.

0 Kudos
Message 11 of 16
(3,639 Views)

GoofyWires wrote:

One day you could see your code working with a 3D visor tracking actors shooting at each other some messages yet till then I doubt UML diagrams will do the trick for actors.

Maybe the guys using Akka have a better idea.

You know, they do OK.  The class diagram is still just as useful, though I tend to suppress my message classes, as I veiw them as "glue code".  Actors get marked with an <<actor>> stereotype.  You can use an association arrow with a "Launches" label to show a nesting relationship between actors.  (Personally, I think a composition arrow is more appropriate, but AristosQueue vigorously objects to that notation, on the grounds that the calling actor holds an enqueuer in its attributes, not the nested actor.)

Sequence diagrams are obviously a lot more important.

If your actor has state, state diagrams are appropriate.

Give me those three things, and I can fairly completely describe an actor system.

0 Kudos
Message 12 of 16
(3,639 Views)

I use SysML instead of UML, because it has some features that fit the actor framework better that the UML.

It has the notion of a block, that can be stereotyped to anything. I have a stereotype for Actor.

I use the:

1. Block Definition Diagram (BDD): for actor hierarchy description that reflects the callee - caller actor (I actually use my own modified actor called extor) relations

_Operating_Software.jpg

2. Class diagram: as in UML, to show class hierarchy, data, methods...

3. Internal Block Diagram (IBD): it can include all the nested actors of a caller actor. I use this diagram to indicate the receive/send messages and data flow. I use the interface stereotype to define the datatype my messages use, and put ports on the edge of the parts in my IBD to indicate messages. I connect the ports that I actually connect in the program (a receive - send message pair)

Operating_Software_IBD.jpg

4. The ports on these parts are of the interface type defined in the BDD I use for interface definition:

TimeCriticalData_Inteface.jpg

5. I use activity diagram to indicate how the actors operate, how do the different states depend on each other, how to init, deinit, etc.

6. Sequence diagrams could also be nice and useful, however the activity diagram fits my view of actors better (as actors are asynchronous, if no intentional synchronization is built in into a system)

(note: When I write "send message" I mean the abstract parent message of a "zero coupled message construct")

And the program I use is the Eclipse. It has the Papyrus module, that handles SysML diagrams.

To be exact I use the Polarsys version of Eclipse, it has all I need for SysML.

Message 13 of 16
(3,639 Views)

There is not a tool that shows the actor diagram that I really want to see when I'm working on these systems. Check out my post here. It shows a picture that is a diagram I really wish we could autogenerate from a running set of actors into a picture. I further wish that any of those items that are marked with an asterisk were clickable to open the panel/diagram of the Actor Core override reentrant clone for that particular actor at that particular inheritance level. In theory, if all goes according to plan, the LV 2015 version of AF should be able to produce enough information for the Desktop Execution Trace Toolkit that *someone* (volunteers?) should be able to take that data and generate just such an image and put clickable regions into the resulting picture control.

I've actually been sloppy with my red arrows in the image... it would be nice if the source of the red arrows was the *particular* Actor Core that did the launching. So, for example, I have my arrow starting at "Simulated Evaporative Cooler", but it is actually "Evaporative Cooler" that actually calls Launch Nested Actor.

Typing that last part seemed like I was being lazy... so I went and edited my image. Now it shows exactly what I want the diagram to draw like. The arrows originate at the actual level of inheritance that calls Launch Nested Actor.

0 Kudos
Message 14 of 16
(3,639 Views)

I have had a lot of trouble with the Symbio->NI GOOP tool. In particular I wasted a lot of time with unhandled exceptions that would shut down the tool. Further, it was not very good at keeping synchronized with the labview class - it would for example overwrite stuff I had created or replace a filled cluster with an empty cluster. So it was just about OK to create, but terrible to maintain. Further, the class hierarchy tool was the only thing that really offered integration with code - the state diagram for example would not be able to create a state transition table or even an enum or anything like that.

The key test for me was being able to go back and forth between code and diagram, without interruption, and I still dream that somebody will generate such a tool for labview. In this sense there is a wide gap between modern web based developers and labview.

I have found solace in MS Visio, given that I'm not aware of any tool that will translate your diagram into labview code. It offers the hierarchy and navigation you want and provided you can pretend you're using a text language, seems quite complete as a tool.

0 Kudos
Message 15 of 16
(3,639 Views)

It always better to choose a UML diagram tool with latest updates. For an example, some tools doesn't have updated information about the diagrams or even latest diagram types. UML ver 2.5.1 is the latest and not many tools supports it. Creately UML Diagram Tool offers all uml diagram types including class, use case, component, communication, etc.. There are many diagram templates and examples to get started on diagramming as well. 

 

Disclaimer: I'm a active user of the software  

 

template-1-large

0 Kudos
Message 16 of 16
(2,726 Views)