In short, DCC is Digital Command Control, a system for operating model railroads in a more prototypical manner. Each locomotive contains a tiny, specialized controller. These controllers (decoders) accept digital commands over a network (the rails) addressed to them and interprets them to control the locomotive's speed, direction, lighting effects, sound, and other functions. Each decoder responds only to those commands addressed to it. Not every decoder will have functions beyond basic throttle commands available. Although there are NMRA® standards for the format of communication (allowing the decoders from different manufacturers to work on the same railroad), beyond that there is considerable variety in the functions supported and the implementation of those functions.
Just like any other controller, decoders must be programmed by the user to reach their full potential. While they come with basic "default" programs, most users will want to customize the decoder address, motor control, lights, sound, and other functions to meet their specific needs. You do so by editing CVs, or Configuration Variables, in the decoder. Some CVs use values ranging from 0 to 255, others use their space in the decoder's memory as a bank of 8 on/off switches. While this lets you do a lot with very little memory, it can get very complex for those of us that are not on speaking terms with binary code.
Decoder Pro attempts to help overcome the inevitable complexity of this system by providing a clear, usable, user friendly open source software solution for programming these on-board decoders. Programming panel designs are written in XML, (a close relative of HTML) and can be modified or even created from scratch by users with even a passing familiarity with the format without previous XML experience.