[JGAP Home]
A complex subject such as one lying behind Evolutionary Algorithms allows to create a huge software package containing everything and the world. To keep things practical, we setup some leading records for the development of JGAP. These are:
Deliver stable and easy to maintain code by extensively providing unit tests for each class. Currently, there are nearly 1000 unit tests!
Optimize for performance and probably neglect logical correspondence to biological archetypes.
Make JGAP easy-to-use by providing examples (how-tos), easy-to-understand class names and architecture.
Allow for easy extensibility by carefully building up the architecture
Document the more important things, like upgrading to newer JGAP versions.
Make JGAP worth using by steering towards distributed computing and showing how to solve real-world examples. For the latter, Genetic Programming will be introduced, especially, which is very time-consuming and forces distributed computing.
Currently, JGAP undergoes heavy enhancement. Just have a look at the feature requests. Astonishingly few bugs are reported, although JGAP is used by many people. The current visions for JGAP are:
Introduce Distributed Computing.
Enhance monitoring capabilities.
Evolve a great Robocode robot with RobocodeJGAP
Add more graphical support (e.g. statistics, configurability).
Make JGAP more popular by providing adapters to significant systems, steering towards symbiosis.
As it is impossible avoiding logical and conceptual errors, we rely on several effective means to keep JGAP's quality still high:
JGAP's documentation is extensive. You can find how-tos and tutorials on the homepage, many comments in the source code and a self-documentation by the unit tests provided. Please compare JGAP's code documentation with that of other projects. Tell us if you find a better documented project!
JGAP is improved constantly and since a long time.
Detect code changes and program errors by unit tests. There are far over 1000 JUnit tests packaged with JGAP. They are part of our code basis and with every release new tests are added. In case a bug is reported, we add a test to reveal it.
Before we publish a release, all unit tests are run. Additional reference implementations and the examples are also run to see that JGAP behaves as we expect it. Furthermore we use code coverage analysis (see homepage for a Clover report) to verify the test coverage of the productive classes delivered.
Feedback from users (i.e. from you) is taken very seriously. We try to find a solution for you. In case of a bug by fixing it, in case of a feature request by working on it, and in case of a question by answering it. Try it out!
Nothing is constant except change. Thus we try to react very fact to new requirements, try to release new versions as soon as the code basis is stable enough to do so. Additionally we keep JGAP's architecture up-to-date and don't take the paradigms and concepts of the current version as the final solution.
JGAP's homepage is updated whenever necessary (please allow some delays sometimes, as we are talking about an Open Source project the whole time!).
And lastly, we want you to contribute to JGAP. Either by asking questions, sending feedback, trying out the package. Or by becoming a developer who wants to add value to the project (see our homepage for contact)!
Copyright © 2005-2012 Klaus Meffert. All rights reserved.
[JGAP Home]