TOC PREV NEXT INDEX

Put your logo here!


3 THE VLT SOFTWARE DEVELOPMENT PROCESS

3.1 WHAT AND WHEN

The VLT Software Management Plan [3] (SMP) provides a model for developing software: the major phases the project should undergo, which outputs every phase should provide, the methodologies to be used for each activity.

Actually, the SMP has been written considering the whole VLT Software, and it may be difficult to understand, from the current wording, what shall be done in the case of a specific subsystem or for an instrument. As a simple rule, take the model described in the SMP and apply it to the specific development: requirement, design (analysis and low-level design), implementation, etc. According to the complexity of the part you are dealing with, decide to which extent each rule in the SMP can be applied. Ask yourself the following questions:

· is a software requirement document needed or do I have already a requirement specification?
· is it possible to review the design only in one FDR or shall it be split into several?
· ......

Following the SMP, build the specific project plan, identifying all the outputs (documents and code) that must be provided. Using the SMP recommendations, define how each output shall be done. Check your plan against what is required in the Statement of Work, and review it with ESO to be sure that there are no misunderstandings.

The final products of the process are:

code
target software:
implementing function needed at the target installation for both normal and maintenance operations
test software:
used to test the above functions.

a set of documents
design documents:
software requirements, functional specifications, detailed design.
test documents:
module, integration, acceptance test procedure (including the planning) and report
user documents:
user manual and maintenance manual
managerial documents:
project plan, quality assurance plan, configuration control plan.

Additional information can be found also in:

VLT-TRE-ESO-00000-0280 --- Definition of Preliminary Design Phase, PDR Data Package, Preliminary Design Review
VLT-TRE-ESO-00000-0397 --- Definition of Detailed Design Phase, FDR Data Package, Final Design Review

3.2 STANDARDS

The VLT Software Programming Standards [6] (PS) provides a set of rules to be used in the design and development of the VLT Software. It contains instructions for the organization of a software module, naming conventions, C language, script files, make, UNIX, VxWorks, etc.

The current applicable version [6] shall be integrated by the Makefile(5), vltDirectorStructure(5), getTemplate(7) manpages, distributed as part of the common software.

A new version is planned before the end-95 and other updates may follow in the future. One of the key aspects of the new version is the coverage of C++.

3.3 KEEPING CONTROL

The SMP requires that the software development is done using a configuration control system as described in the VLT Software Configuration Control Plan [4].

At present, for external developments, there is the possibility to use any system that implements the philosophy described in [4]. Such a system shall be described at the beginning of the project and proposed to ESO for approval.

ESO is currently working to improve the Configuration Control system in use, and it may be externally available in the future.

3.4 TESTING

The SMP requires that the software undergoes a test process based on three levels: module, integration and acceptance. Although still in a draft form, the basic test requirements are in the VLT Software Test Plan [5].

At present, ESO is developing a set of tools to support and document the test activity. The main idea is to standardize the way of preparing and invoking a test in order to allow automatic testing and to reduce test documentation. Some of the test tools may be externally available within end-95.

3.5 THE SOFTWARE MODULE

As defined in the Programming Standards[6], the software module is the basic item for the detailed design, development and integration of software.

The software module should not be confused with the VLT Module, as defined in the VLT Software Management Plan ([3]), that corresponds to a more functional organization of functions and is used during analysis. Normally, several software modules are needed to build a VLT Module.

How many software modules are needed, the scope of each one, its name, etc. are preliminarily defined in the functional specifications and refined in the detailed design. As a rule of thumb, each module should be rather small (10-20 functions) and be independently testable. High cohesion and completeness of the functions belonging to the module, and low, ideally null, coupling with other modules are basic requirements for every module.

A correct partition of the software of a project can help quite a lot especially during test and integration activity and is a basic requirement for future maintenance.

In the rest of this section, the term "module" and "software module" are equivalent.

3.5.1 Create a Software Module

Each software module is identified by a name and implemented as a directory structure. Decide a name (it must be unique in the VLT Software, in the example "xyz" will be used), and create the module:

REMARK for external people: before starting to use any module name, please check with the ESO software contact person that the name is a valid one, e.g., not already in use.
1. set the current directory to where you intend to develop the software. For instance, your HOME directory:
$ cd

2. create the directory structure:
$ getTemplate
... type of template you need ...: directoryStructure
... type the function name to execute...: createModuleArea
... type module name ....: xyz
the module structure is created. Press <Enter> several times to quit.

3.5.2 Populate a Software Module

1. create a source file.
a. Any source file shall be in the src/ subdirectory.
$ cd xyz/src
b. get an empty template for the file:
$ getTemplate
... type of template you need ...: code
... type of template you need ...: c-main
... output file name (without extention).....: xyzHelloWorld
a file xyzHelloWorld.c is created. If the environment variable EDITOR is defined to a valid editor, a window with such an editor should pop-up.
c. edit the file to remove what you do not need and insert the code, e.g., printf("Hello word\n")

2. create the Makefile.
a. the Makefile SHALL be located in the src/ subdirectory.
$ cd xyz/src
b. get an empty template for the Makefile:
$ getTemplate
... type of template you need ...: code
... type of template you need ....: Makefile
a file Makefile is created. If the environment variable EDITOR is defined to a valid editor, a window with such an editor should pop-up.
c. edit the Makefile to compile xyzHelloWorld.c (see Makefile(5) for more)

3. generate the code:
$ make
the file ../bin/xyzHelloWorld is created

Now you can try to create other mains, functions, group them in libraries, scripts, tcl scripts and libraries, etc.

3.5.3 Some Examples

Have a look at the LCU and WS applications, used in the verification procedure (as described in the VLT Common Software Installation Manual). Each application is implemented as a VLT software module and provides also an example of use of the VLT Programming Standards. Please notice:

· the standard subdirectory structure,
· the use of naming conventions,
· the standard Makefile,
· the documentation in form of man-page,
· the command definition table,
· the error files,
· the database definition using the dbl-format.



Quadralay Corporation
http://www.webworks.com
Voice: (512) 719-3399
Fax: (512) 719-3606
sales@webworks.com
TOC PREV NEXT INDEX