SinelaboreRT Header Logo

SinelaboreRT

As simple as possible, but not any simpler!

User Tools

Site Tools


wiki:news:1jan2016

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revisionBoth sides next revision
wiki:news:1jan2016 [2016/01/02 14:48] – created pmuellerwiki:news:1jan2016 [2016/01/02 14:51] pmueller
Line 16: Line 16:
  
 The key benefits of UML regions are: The key benefits of UML regions are:
-- concurrent regions allow to model parallelism. +  * Unordered List Itemconcurrent regions allow to model parallelism. 
-everything is shown on one page+  everything is shown on one page
  
 The drawbacks are: The drawbacks are:
-The diagrams can become quite large. Our diagram just shows some states. Reality might be much more complex. + The diagrams can become quite large. Our diagram just shows some states. Reality might be much more complex. 
-As a direct consequence one has to scroll back and forth all the time when working on different parts of the model + As a direct consequence one has to scroll back and forth all the time when working on different parts of the model 
-Refining behavior in concurrent regions makes the parent state containing the regions bigger and bigger. Depending on the modeling tool features’ this often has the consequence that a lot of work is going into moving states around to make space for new ones instead on focussing on the design work itself.+ Refining behavior in concurrent regions makes the parent state containing the regions bigger and bigger. Depending on the modeling tool features’ this often has the consequence that a lot of work is going into moving states around to make space for new ones instead on focussing on the design work itself. 
 + 
 +===== Alternative solution =====
  
-Alternative solution 
 To reduce the complexity good practice in engineering is to break down the problem into smaller pieces. In software this good approach means to put the subsystem state machines into their own state diagrams. To reduce the complexity good practice in engineering is to break down the problem into smaller pieces. In software this good approach means to put the subsystem state machines into their own state diagrams.
  
Line 44: Line 45:
 {{:wiki:news:jan012016:radiator_subsys.png?nolink|}} {{:wiki:news:jan012016:radiator_subsys.png?nolink|}}
  
-Connecting state machines+===== Connecting state machines ===== 
 For communication between state machines different solutions are available. For communication between state machines different solutions are available.
-What is actually used depends a lot on the overall system needs and system features e.g. with/without RTOS etc. On smaller systems binary flags might be possible. But usually a good solution is to use fifo buffers (queues)They decouple the state machines and offer a clear interface to send and receive events. Event queues often have the feature to push events in front so high importance events can be processed first. A subsystem also might defer an event and put it into the queue again if it should be processed later. The subsystems might run in a separate thread (if an OS is present) or can be called from the main loop.+What is actually used depends a lot on the overall system needs and system features e.g. with/without RTOS etc. On smaller systems binary flags might be sufficient. But usually a good solution is to use queues. Queues decouple the state machines and offer a clear interface to send and receive events. Event queues often have the feature to push events in front so high importance events can be processed first. A subsystem also might defer an event and put it into the queue again if it should be processed later. The subsystems might run in a separate thread (if an OS is present) or can be called from main loop
 + 
 + 
 +===== Conclusion ===== 
 + 
 +Separating a system into different subsystems running their own state machines is a well know design practice and helps to better keep complex developments under control.
  
 +Hope you enjoyed this article. Let me know your feedback!
 +Peter
  
-Conclusion +{(rater>id=01012016|name=How do you like this article?|type=rate)} 
-Separating a system into different subsystems running their own state machines is a well know design practice and helps to better keep complex developments under control. +~~DISCUSSION|Leave your comments~~
wiki/news/1jan2016.txt · Last modified: 2022/04/06 12:01 by pmueller

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki