[Kstars-devel] GSoC 1: The KStars code-restructuring project

Akarsh Simha akarshsimha at gmail.com
Sun Feb 13 09:21:09 CET 2011


Here's a copy-paste of the current description on the Wiki, so we can
inline.

====================================================================
*** KStars: Decouple computational code from the UI and Database ***

Brief explanation: KStars has its computational code tightly bound to
the rest of the application. The aim of this project is to:

1. Investigate possible replacements for KStars' in-house computation,
   like libnova. It is important to keep KStars cross-platform. Hence
   we should look at cross-platform replacements.

2. Decouple KStars' interface and database from its computational code

3. Create a KStars computational engine library which contains all the
   computational code

4. Write test cases to ensure that

5. Get KStars to use this library

6. If time permits, write an interactive command-line client / python
   module / D-Bus interface to use this library.

More details will be fleshed out after a week or so.

Expected results: Clean, restructured code for KStars, which now uses
	 a library that can be re-used in user-written scripts etc.

Knowledge Prerequisite: A good grasp over C++ and object-oriented
	  programming, and Qt; writing test cases with Qt; should
	  quickly learn how to write libraries; have a lot of
	  patience; ability to solve software design problems
====================================================================

This project, IMO, requires the utmost detailed analysis. We need to
decide how we are going to move things around.

Here are my TODOs for this project:
1. Learn how to write libraries
2. Investigate if libnova is a good choice [Is it even cross platform?
   Can it be made cross-platform?]
3. See which parts of KStars are the easiest to fork away
4. See what other project ideas this will impact
5. Figure out how to write test cases
6. Decide the library's interface methods. How far should the library
   go? Should it include "routines" like conjunctions, starhop path
   etc?
7. Decide (maybe using UML diagrams) what classes will be implemented
   and how they will talk to each other.

Regards
Akarsh
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
Url : http://mail.kde.org/pipermail/kstars-devel/attachments/20110213/78c4dde0/attachment.sig 


More information about the Kstars-devel mailing list