Design for Extensibility
Use a model-driven approach for generating generic featuresProject members can add new activities and activity steps by adding new properties to the configuration file. Most of this work can be done by people who are not developers. The tools read the configuration file at startup, so the code base does not need to be recompiled to support these kinds of new features.
Please see Model Driven Aspects of Development for more information on how CST maps configuration properties to properties in these layers.
Synchronise changes in the configuration file with changes in the databaseUsers can press the "Synchronise" button in the Administration Tool to ensure that each activity and activity step is defined in a corresponding MySQL database.
Support a plugin framework for domain-specific featuresProject developers can extend the functionality of CST through its built-in plugin framework. Please see Plugin Framework.
Provide design documentation for extending the code baseWe hope the design documents can provide enough information to developers so they can extend the code base in the way they want. We didn't think it was sufficient to supply the code without providing information about the context in which it is used.
Author: Kevin Garwood