Our development methodology includes many ideas that we have taken from the agile programming arena. Developers work together in pairs and produce new code in short iterative bursts with frequent planning and retrospective meetings. Development of any code is preceded by the creation of one or more test cases to thoroughly check that the code to be written meets our requirements. Ideally, core tests are included in our continuous test pack, which is run frequently - every time a check-in is performed. Test result summaries for every revision are automatically published to a web page. Longer tests are divided between the nightly and weekly test packs, depending on how long they take to complete.
All Chaste development work is undertaken within a purpose built development environment that encourages and supports best software engineering practice. This environment is built around open source tools starting with the Eclipse IDE using the C/C++ Development Toolkit. This also interfaces to the 'gdb' debugger and our Subversion source code repository. We use Scons to automate builds and run automated tests through the CxxTest unit testing framework. Different builds can be specified (using respectively valgrind, gprof and gcov) to test for memory leaks, generate performance profiles, and give test coverage results (which should be all lines of code given the test-first methodology). Our environment makes use of Trac to provide an integrated wiki and web interface to the repository, and to manage our list of requests for features, improvements and bug fixes. A test reporting system has been developed and incorporated to the website to keep track of the outcome of our continuous, nightly and weekly tests, and alert us to any change to the behaviour of the code.
- Source released under 3-clause BSD license. (Note that versions 3.0 and earlier used LGPL.)
- Fully tested codebase (~185,000 code lines and ~100,000 test lines as of Oct 2012):
- Immediate detection of newly broken functionality.
- Tests help in obtaining details on available functionality.
- Web-based automatic testing and integration framework.
- Two development strategies:
- To develop functionality that links against Chaste libraries.
- To modify and extend the current implementations.
- Documented examples of use.
- Installation guides for both Chaste and its software dependencies.
These factoids are provided by Ohloh - an independent open-source code analyzer: