This is a more abstract high-level answer about what your GUI represents, not the mechanics of it..
Depending on your task, it may be kind of difficult to make it so your user can conceptually grasp what the GUI is doing. I've done some pretty tricky work involving GUIs, and my most successful approaches have been those that took a complex set of controls and put them into a layout that the user expected.
For instance I wrote a system to manage 2 devices one at either end of a T1 line (kinda like modems). The controls were really hard to comprehend--fields like "create loopback, test far end signal, test near end bit patterns, sending various bit patterns, ..." (this is a huge oversimplification, it was a lot worse than this)
I had to really understand the problem, so I went to a Tech Support rep who helped customers with this problem all the time. He showed me a diagram in the manual and stepped me through what the different controls did on that diagram.
I took the diagram, re-created it using graphics (just a simple line-drawing for the most part, but it showed both ends and the connections between them), then used regions of the graphics to represent controls AND feedback (color changes). You could visually see that a signal was going out. When you turned on a loopback at the far end, you could see that the line looped the signal back to it's outgoing line, then you could see the color change as your near-end started getting the pattern that it was sending out it's other line.
The "Controls" were significantly more convoluted than this, but the GUI reduced it to EXACTLY what the customer needed to understand the problem.
After this we had customers coming back to us telling us that they had never been able to figure this stuff out before, but now they totally get it!
This presentation was infinitely more important than the wiring of the GUI implementation.