Changes between Version 2 and Version 3 of Coding_Standards_and_Software_Procedures


Ignore:
Timestamp:
01/19/12 21:43:20 (8 years ago)
Author:
branden
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Coding_Standards_and_Software_Procedures

    v2 v3  
    1010The Earthworm effort has several objectives: first, it is to provide a rapid response system suitable for critical monitoring applications; second, it is to operate as a vehicle to integrate the products of various seismic installations into a common software package available to all. The first objective implies that the system be robust and reliable, which, in turn requires a closely knit organization to provide rigorous standards, testing, and rapid bug-fixing. It further requires that the system be maintainable, and be suitable for use at a variety of installations, including those with modest levels of resources. The second objective leads toward a policy of open inclusion of various offerings, produced for a variety of purposes and operating environments, and therefore engineered to varying degrees of robustness and reliability. 
    1111 
    12 In response to these needs, an Earthworm Central has evolved, which maintains the Earthworm software, accepts contributions, develops code, produces documentation, and releases Earthworm versions. This group is also responsible for quality assurance and bug fixes. There are currently three rough categories of software within the Earthworm effort: [wiki:core core], [wiki:contributed], [wiki:encapsulated]. 
     12In response to these needs, an Earthworm Central has evolved, which maintains the Earthworm software, accepts contributions, develops code, produces documentation, and releases Earthworm versions. This group is also responsible for quality assurance and bug fixes. There are currently three rough categories of software within the Earthworm effort: core, contributed, encapsulated. 
    1313 
    14 === 1. [wiki:core Core] Software === 
     14=== 1. Core Software === 
    1515 
    16 The [wiki:core core] software is intended to meet the requirements of the mission-critical objectives. The focus here is to maintain the quality of the [wiki:core core] software in terms of reliability, maintainability, robustness, and longevity. This, in turn, comes down to issues like portability, failure modes, and error-detection, -processing, and -recovery. [wiki:core core] software is modified as needed under the control of Earthworm Central to fix errors and provide enhancements. The distribution system consists mainly of numbered releases and patches of various degrees of formality, depending on the urgency of the fix. 
     16The core software is intended to meet the requirements of the mission-critical objectives. The focus here is to maintain the quality of the core software in terms of reliability, maintainability, robustness, and longevity. This, in turn, comes down to issues like portability, failure modes, and error-detection, -processing, and -recovery. core software is modified as needed under the control of Earthworm Central to fix errors and provide enhancements. The distribution system consists mainly of numbered releases and patches of various degrees of formality, depending on the urgency of the fix. 
    1717 
    1818=== 2. Contributed Software === 
    1919 
    20 The Contributed software consists of ancillary programs submitted for inclusion with the Earthworm distribution, but which, for whatever reason, don't fit into the [wiki:core core] category. These are distributed '''as is'''. An index and descriptions of these programs will be maintained. 
     20The Contributed software consists of ancillary programs submitted for inclusion with the Earthworm distribution, but which, for whatever reason, don't fit into the core category. These are distributed '''as is'''. An index and descriptions of these programs will be maintained. 
    2121 
    2222=== 3. Encapsulated Software === 
    2323 
    24 A few exotic codes belong to the encapsulated category. These are part of the [wiki:core core] offering, but are maintained by the original authors rather than Earthworm Central, either due to the complexity of the algorithm, or because they interface to other systems which may be changing. Examples include hypo-inverse and the 'coupler' package to the NOAA tsunami warning system. The approach is that the author, or the author's institution is responsible for the quality and maintenance of the code. 
     24A few exotic codes belong to the encapsulated category. These are part of the core offering, but are maintained by the original authors rather than Earthworm Central, either due to the complexity of the algorithm, or because they interface to other systems which may be changing. Examples include hypo-inverse and the 'coupler' package to the NOAA tsunami warning system. The approach is that the author, or the author's institution is responsible for the quality and maintenance of the code. 
    2525 
    2626=== 4. Contributing New Software === 
    2727 
    28 Anyone is welcome to create and contribute software. As mentioned above, most any relevant software will be accepted into the distribution as contributed. It is only requested that source code, some documentation, and a link to the author be provided. [wiki:core Core] software is usually created or solicited in response to user needs. The objective in such cases is to offer the highest-quality code, in terms of the above requirements, in the most timely manner possible. After it is acquired it is normally reviewed and released to selected sites for testing. Any required changes as a result of testing and review will be communicated to the author. Such changes may then be implemented either by the author or by others as dictated by schedule and available resources. 
     28Anyone is welcome to create and contribute software. As mentioned above, most any relevant software will be accepted into the distribution as contributed. It is only requested that source code, some documentation, and a link to the author be provided. Core software is usually created or solicited in response to user needs. The objective in such cases is to offer the highest-quality code, in terms of the above requirements, in the most timely manner possible. After it is acquired it is normally reviewed and released to selected sites for testing. Any required changes as a result of testing and review will be communicated to the author. Such changes may then be implemented either by the author or by others as dictated by schedule and available resources. 
    2929 
    3030=== 5. Modifying existing modules === 
     
    3434New versions of encapsulated software are generally accepted as they are produced, and released by various methods as required by the urgency of the situation. Any observed malfunctions are reported to the author. 
    3535 
    36 Since the performance of [wiki:core core] software is the responsibility of Earthworm Central, changes to [wiki:core core] are made under its control. Reported bugs and deficiencies are discussed, and implementation of the fix is assigned, reviewed, and incorporated by Earthworm Central as required. Enhancements produced by others will similarly be evaluated and inserted by Earthworm Central. 
     36Since the performance of core software is the responsibility of Earthworm Central, changes to core are made under its control. Reported bugs and deficiencies are discussed, and implementation of the fix is assigned, reviewed, and incorporated by Earthworm Central as required. Enhancements produced by others will similarly be evaluated and inserted by Earthworm Central. 
    3737 
    3838== Earthworm Coding Standards ==