CATfood (Code Authoring Tool) addresses the problem of testing code examples embedded in programming language documentation. Our code base is created in a development version of Visual Studio .NET, which may change daily, and small sections of the code base are published in Word documents. The challenge is to keep the Word documents synchronized with the code base while constantly updating the code base to match the development environment. Our solution to these problems is CATfood, a code-authoring tool that automates checking the code against the development environment, and checking and updating the sections of code in the documents. The demonstration will include the development environment tools used to check the code and select sections of code, the Word tools used to check and update the code in the Word documents, and the auditing tools.
Architecturally, the CATfood system consists of three user interface modules and a library module, each of which has an object-oriented design. Beyond the basic use of classes, the design includes inheritance and the Singleton and Façade patterns. The design is unique in using the new object-oriented language, C#, and bringing together several different applications and technologies (the .NET Framework, ASP .NET, Microsoft Word, COM, Microsoft Visual SourceSafe) into a single solution. Since the initial release of CATfood, we have built several smaller tools by recombining the library classes, thus demonstrating the flexibility of the original object-oriented design.