C# is, like C++ and Java, an object-oriented language. Think about classes (things), methods (how to affect those things), and member variables (bits of the thing). Then, use a modeling language such as UML to model your system - classes, methods, members. A good place to start with that is www.sparx.com's Enterprise Architect. They have a good trial period (full functionality), and very good tutorials. It is a Windows app, but it runs well on Linux under Wine. I have been using it for about 8 years, and it is worth every bit of the $195 cost for a professional license. It also takes your models and turns them into source code (to the language of your preference), or vice-versa! IE, suck up source code and turn it into a visual model! Very neat stuff!