VCC has been used extensively by everyone involved in the SLIP project, and without it the project would not have been possible. Here are a few comments about how useful I have found VCC.

The first thing I noticed about VCC was its graphical nature. Systems are designed using a number of connected blocks, which communicate by passing messages between each other. Each block contains C code to handle the arrival of messages from other blocks.

This high level graphical representation is ideal for the modules that I have written as it breaks down each module into simple parts and clearly shows the flow of data between each block. The same representation is also great for showing the overall design of the system and where each module fits in.

Unfortunately the block structure did cause some problems. Firstly, functions in one block can't be called from a different block - messages must be passed between the blocks instead. This meant that I had to re-write the code from the input module, which was originally written for standard C, running on linux.

Also, the VCC block structure is a very different way of programming to anything I have used before. I produced UML class diagrams for my modules, but found that these didn't fit into the VCC way of thinking. Instead I just used the VCC behaviour diagrams when working on the high level design of my modules.

VCC allows a high level of reuse, which was very useful when creating the simulated wireless network, of several game machines. Instead of having to create a different game machine symbol for each game, it was possible to connect together several copies of the same symbol, and use a parameter to give each machine a unique name. See the integration section for more details.

In conclusion, I have found VCC a very useful tool. However, both the block structure method of programming and the appalling user interface have been difficult to learn. This has to be the only program I have ever used where double right-clicking does something useful! Finally, the error message generated by VCC are often meaningless, which has caused me many hours of frustration.


Copyright © 2002 Andrew Bates
Last Updated 15/04/02