Last modified 10 years ago Last modified on 04/02/2009 05:21:07 PM

From: Technical Control Team

CCB Meeting 1 April 2009


Robyn Allsman
Tim Axelrod
Jacek Becla
Roc Cutri

Proposals Discussed

Meeting Discussion

Proposal for Standardizing Names

Jacek reviewed the overall proposal concept. All participants agreed:

  • we should develop a standard to uniformly name corresponding database columns and C++ objects whenever it makes sense;
  • we should standardize units so that corresponding database columms and C++ objects use the same units.

Jacek then went over the proposed naming conventions for database columns. Only the rules which were not currently supported by the C++ Coding Standard are discussed below. Also, presentation rules such as where a column would occur in a table were deemed outside of the scope of the discussion.

DB Rule: Avoid using short, common names

C++ Rule 3-13 partially supports this by preferring descriptive names for persistent objects and short names for transient storage. Action Item: enhance discussion of Rule 3-13 to include DB needs.

DB Rule: If a column is specific to a filter, put the filter name first

C++ Rule 3-21 (the prefix 'i' should be used for variables representing and entity number) conflicts with the proposed DB Rule since 'i' is an LSST filter designation. However the rationale behind the DB naming rule (efficiency of simpler sort rule) outweighed maintaining the C++ rule unchanged. Action Item: discuss change with Application Working Group; propose the C++ prefix to be 'iter'; update to consensus prefix.

DB Rule: Append 'Err' at end of column keeping error data

Tim and Roc felt that 'Err' was too general and that the intent was good but suffixes should be 'Var' for variance, 'Cov' for covariance, 'Sigma', Rms', etc. depending on the type of uncertainty. Action Item: add new rule to C++ Coding Standards.

DB Rule: Use 'ra' and 'decl' for right ascension and declination

Since many databases use 'dec' as a reserved word, in order to maintain maximum flexibility it should not be used as a column name. Action Item: add new rule to C++ Coding Standards.

Consistency of units across DB and C++ Code

The discussion on using consistent units across C++ and DB columns expanded to the desirability of maintaining a complete object description (name, definition, units, etc) which was easily accessible to developers and remained consistent with the EA model (both DB Schema and Domain).The Schema Browser provides a good starting point for the presentation targeted to both C++ developers and DB users. Action Item: Someone needs to work on this.

Capturing valid NULL data

Roc brought up an associated concern: how to capture and expose NULL values. Currently the DB enforces a NotNULL requirement on some columns which might not always have valid data. This may lead developers to install magic numbers so that missing data can be determined on DB retrieval. Action Item: Jacek discussed a solution which he will bring to the Data Access and Applications Working Groups.

A Complete Specification for an Entity

Dick Shaw's email suggestions concerning the proposal were all reviewed. Jacek said contents of a complete specification were generally currently defined for the DB columns. The 'default value or enumeration, and range of validity, if any' was considered. Jacek wondered if we expected the middleware interface to perform validation prior to data insertion. He suggested using a simple post-insertion 'Out-of-Range' query on a column as a more efficient method of validation. Additional discussion on this issue was deferred since it's currently less urgent than getting the naming correct.

Naming Best Practices

Dick's points discussing best-practice in naming were mostly accepted as highly desirable; some are already codified in the C++ Standards (3.8, 3-26). Only the constraint "name should not include the underscore character' was rejected as contradicting existing C++ Standard 3-10. Action Item: Include the best-practice naming rules as 'Highly Desirable' in the C++ Coding Standards.

Status of Past Action Items

See: TCT Action Items for the complete list.

Not discussed due to lack of time.

New Action Items

  • Jacek Becla
  • Robyn Allsman will take the changes suggested for the C++ Coding Standards to the Systems Engineering TCT
    • enhance discussion of Rule 3-13 to include DB needs
    • include the best-practice naming rules as 'Highly Desirable' in the C++ Coding Standards.
    • don't use 'dec'
    • add new rule for naming of uncertainty values.
    • discuss 3-21 change with Application Working Group; propose the C++ prefix to be 'iter'; update to consensus.