A background project that I return to occasionally is that of designing a really useful operations manual (OM) and its extension, a really useful process support application (PSA). A process support application adds integrated computer support for the activities described in the operations manual.
I experimented with automatic generation of www-based operations manuals and process support applications from a formal description back in 1994 having just learned about this “web thing”. I worked for a company designing special purpose computer languages (like languages for programming phone switches) and compilers back then so we quickly designed a language for describing processes and a compiler that generated HTML from these formal descriptions. We used a simple database for storing process (instance) data such as time spent and document status. My ultimate vision was thus not only to create an operations manual from the formal description but also to create various process support applications (such as a bug tracking tool or a time reporting tool) from the same integrated model. We ran some industrial pilot projects using the technology and I did some part time research on the topic as a PhD student. Then the company entered “interesting times” and I changed employer.
Later, as the chief quality officer of a medical device company I revived some the basic ideas and created a UML meta-model for organization and process modeling. We used that meta-model to describe the entire operations manual of that company. I also created a simple “compiler” that generated an operations manual in HTML from the UML model. The generated operations manual was the basis for our FDA approval, CE mark and other regulatory approvals. At that time I had lowered my ambition level one notch and I settled with a plain operations manual, no automatic generation of process support applications.
I have lately returned to this project. I’m slowly learning Eclipse and the many possibilities it offers to create graphical editors and code generators. It’s on a little too low level for my immediate goal but I also look at it as an opportunity to learn a lot of other stuff such as Java, the Eclipse too in general, and a whole bunch of design patterns. And programming beats sudoku as an intellectual pastime – anytime.
Note: The ideas and tools described here are my own intellectual property by agreement and are not in any way connected to my employment except in cases when I have given permission to my employer to use them. The UML meta-model that is at the core of this project was presented at the Swedish Rational User Conference, October 10, 2001.