The Class Diagram features of Microsoft Visual Studio provide the facility to show graphically any area of an Apm program. This is an ideal way for new users to understand how ArduPilot and ArduCopter code is designed.
Microsoft Visual Studio provides a 100% compatible development environment for Arduino and Apm. It is also used to create the diydrones GCS. The Arduino plugin for Visual Studio is free and available from here, Visual Studio can be downloaded for free via here