Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am looking for a standardize way to visualize the following hierarchical logic:

The state of the thread is represented by the answers to the hierarchical set of question

You can read this listing like a flowchart, you iterate over the questions decide, go one step deeper and so on. Therefore I thought the best way to visualize it, using a flowchart. The problem is, in this hierarchical set it is possible to end in more than one state and its totally valid.

I have never seen a flowchart where you can enter more than one state. Is it still possible and I am missing the right symbol to present this logic or are flowchart not fitting anyway?

What other graphical representation could I use, is there something fitting in UML? A non-deterministic state machine seems not to be intuitive enough, transfering it into a deterministic state machine would result in to many states, and so on.

share|improve this question
add comment

2 Answers

up vote 1 down vote accepted

I am not entirely sure, if you want to describe the process of determining state in which the thread is in, or if you want to describe the lifecycle of the thread. Other thing is, I am not entirely sure what do you mean by multiple states and where do you see nondeterminism there. As far as I understand it, if I keep answering the questions, I get to the one state the thread is in - that is easily described using deterministic state machines/statecharts/UML statemachine diagrams.

Flowcharts are in a way orthogonal to statecharts - they focus on activities you have to do to get to particular state (it is like having boxes for transitions in statecharts). It is natural to end an activity (flowcharts in UML are called Activity diagrams) in one node - it is the end of activity, it represents you have already decided what state it is (observe, we don't care which state). If you are very inclined to use flowcharts, you can model every question as a junction with branches for each answer and an activity for each answer and at the end connect all the answer nodes together in end node.

I would personally choose statecharts, because you are not really interested in questions, but in answers (I guess).

share|improve this answer
add comment

I'm not entirely sure that it's what you want, but you could take a look at the notation used in the UML Activity Diagram (also: the Wikipedia article on Activity diagrams) to get some ideas of representing concurrent actions and paths of flow. This diagram type has notations for decisions, splits and joins in concurrent activities, and ending states.

I'm not sure that you can call what you are doing an Activity diagram, but it sounds like that is the kind of notation you are looking for. Even if it's not a standard UML diagram, it should be easily understandable by people who are familiar with UML.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.