SPIS developers course at ESTEC

In order to promote contributions from the community, ESA/ESTEC has commissioned this course on the 20th and 21st of May 2014 with the specific aim of expanding knowledge on how to extend the core SPIS capabilities. It was always intended that SPIS would be a toolkit that could be readily modified and expanded and its the modular architecture was adopted for this reason. However, our experience has been that the knowledge on how to modify the code has not expanded far from the original developers and few other users have had the confidence to make modifications to the code.

There are a few spaces available on this course and you are invited to apply to attend until all spaces are filled. There is no charge. The registration dealine has been extended.

Indicative course content

1) Overview
  • Introduction to Keridwen, the Integrating Modelling Environment on which SPIS is based.
  • Introduction to the underlying technologies: Java, OSGi, Continuous integration, etc…
  • Review of SPIS architecture
    • SPIS-UI
    • SPIS-NUM
    • Third party libraries
  • Intellectual property rights and licenses schemes
  • Packaging rules and release policy
  • Validation process and integration test robot
2) Setting up the development environment
  • Installing the development environment: Java, Eclipse, MAven, Subversion
  • How to retrieve the source code
  • Integration of the source code in Eclipse
  • Compiling native components
  • Manually deploying and running SPIS on Apache Felix
  • Running SPIS on debug mode
  • Coding rules and qulity controls
3) Developing new features in SPIS
  • Key concepts
    • Modularity
    • Keridwen messaging
    • SPIS-UI data model
    • Modelling chain and state machine engine
    • Local parameters and properties
    • Global parameters
    • The UI to NUM data conversion
  • Features validation in integration test robot
  • SPIS packaging
  • Submitting your contribution to the community
4) Hands-on training
  • New feature development example showing in particular:
    • How to pass a new global parameter from UI to NUM
    • How to pass a new local parameters from UI to NUM
5) Open discussions and questions / End of the training