开发者

Need advice for development of a graph based simulation engine

Here in my university they have developed a java based application for visualizing graphs and manipulating them, something similar to GUESS but somehow with different capabilities. the website hosting the project is graphlab.sharif.edu but the server is down at the moment. anyway, we have now decided to split the program into pieces and make them publicly available so that they can be used in other applictions. more precisely, we want to make use of these parts in developing a general purpose simulation software, or at least use them in different simulation programs.

The application has a powerful core which is based on the blackboard design pattern. this is the first part to be extracted. other parts include an xml-based ui platform, a basic shell console (using beanshell), and other plugins which enhance its functionalities in different ways like integration with MATLAB and animating algorithms.

What I'm looking for is some suggestions and comments before we start applying the necessary modifications and extraction of the core. since the development of this application goes back to around 5 or 6 years ago, they haven't used some well-kn开发者_如何学Cown technologies which are widely used today like JSON for example. also there's been no unit testing. so, if you have experience in the development of such an application, what do you suggest we should do? what technologies we'd better use and what for? is blackboard really a good solution for such an application platform? how do you think we should use JSON to enable developers from different languages extend the capabilities of our program?

If there's any further info you wish to know about the project please let me know,

thanks in advance


The problem you are facing seems pretty complex, so I only can give suggestions regarding some aspects of your question.

The first thing I would do is to actually divide the whole project into sub-modules (assuming this has not been done yet). Most likely, you will have some unpleasant surprises during this process (ie., things being dependent from each other that shouldn't, auxiliary code placed into the wrong submodule, etc.). I would also suggest you use a build tool to document these dependencies.

In case of missing unit tests, in my experience it is quite hard to write sensible unit tests after much of the project has been under development for such a long time. They likely won't be as valuable as the ones you write during development, but some may still be useful for regression testing, ie. to make sure you do not mess up refactoring or clean-up in preparation of the release: the best way to go seems to be to create new tests step-by-step, so that these check the parts of the project you are currently preparing for a release.

Finally, I suggest you make a release with minimal functionality as fast as possible. This allows others to give you honest and practical feedback (bug reports, feature requests, etc.), which may then guide your development w.r.t. releasing the other modules and follow-up versions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜