This article the process that should be followed in order to write a contribution. It then uses this as a basis to explain the various types of contribution in detail.

The following describes the complete process that should be followed in order to develop in the library from the drawing board to a downloadable, usable Opus package. Note that this section presents the standard process that should be followed in order to create a contribution, but it does not focus on quality or the level of contribution, which we will define from the points developed here and explain in detail in the following articles. Note also that this guide focuses on the software aspects of the contribution, not the mathematical conception.

Functional identification : following a need emerging from the case studies, the method to be implemented is identified.

Complete mathematical description of the method : for this part, the references are found. Among all the sources, the most obvious are scientific articles and books. The references should cover the whole algorithms and concepts involved in the development of the function.

Structured mathematical description : this document describes the mathematical process followed by the method. This description is self sufficient, homogeneous in terms of notations and as structured as possible to make the emergence of concepts as easy as possible. The software conception is based on this document.

Software conception : from the structured mathematical description, it is then easier to choose the objects that are implemented. It highlights the services attached to the objects, the dependencies with other objects and/or the possibility to use existing objects.

Development : when the conception is done, the development starts. It consists in the implementation of the objects and algorithms. Opus has a set of development rules that should be followed in all cases, but must be followed if the contribution is to be integrated at the Opus-Lib level. See the Programming Rules guide and following articles for more detail.

Test cases and unitary validation
: this step is required in order to demonstrate that the development is correct. Each object and methods should be tested and validated with comparisons with analytical methods or reference methods.

Documentation of the development : a documentation of the development is required in order to secure the development and its maintainability. There are several types of documentation:

• Reference documentation: it contains the mathematical basis of the method developed. It is based on the structured mathematical description;
• Architecture documentation: it describes the architecture of the different objects developed and their link with the existing version of the library;
• User manual: it contains the description of the objects, the inputs and outputs of their methods;
• Use case guide: it contains a simple use case of the method.

There are three levels of contribution in Opus, detailed in the following articles :

Opus-Lib : Basically, contributing to the Opus-lib means contributing to the core of the software. Details.

Opus-Contrib : the set of all packages added to Opus that are not a part of Opus-Lib. Details.

Opus-Forum : this website provides, among other things, a forum available to the community for the purpose of discussing, planning or proposing. Details.

Test cases : while not a contribution level per se, industrial test cases are important additions to the project. Details.

 

 

 

Last Updated (Tuesday, 05 January 2010 01:45)