Version 1 (modified by mathieu, 10 years ago) (diff)

Code Refactoring

We have identified a major refactoring of the SasView code as a priority for the next major release. The refactoring effort has the following goals:

  • Improve the maintainability of the code.
  • Cleanly separate the computation and the UI components to allow remote submission.

The following approach was found to be the most practical given the level of effort involved and the resources available.

Medium-Term Goals

  • We will follow a progressive refactoring approach rather than a complete re-write.
  • We will keep the UI in wx for this first phase.
  • We will proceed by identifying use-cases that are known to involve code that need refactoring. For each of those use-cases, we will identify the API needed to perform the calculations by script.
  • We will go through our use-cases and refactor the computation code to follow the new API. We will also refactor the UI to use the newly refactored code.
  • We will release a version of SasView? once this work is completed.

Long-Term Goals

  • Building on the work described above, we will consider moving to PyQt? and/or building a web application version of SasView.
  • The following version of SasView should be able to submit remote jobs to compute resources to be determined. Those will likely be located at labs, but could alternatively use services like Amazon AWS.