The Subaru Adaptive Optics instrument development requires reliable software that can be quickly modified to facilitate testing and changing demands. A software tool kit was created to allow rapid inclusion of diverse hardware, to isolate specific hardware, to allow expert users to write programs that interface hardware, and to allow multiple access points for control and status. The flexibility of this system allows the software to not only control the Subaru Adaptive Optics Instrument, but also a wide variety of instruments. Also, once a low level interface is written for the hardware, the hardware controls can be combined into any configuration without any programming. This analysis explains the overall software architecture of the system, the methods used to promote hardware testing, the process for adding hardware, and the flexibility inherent in the software's architecture.