
Scientific Annotation Middleware
Software Engineering Plan
General
SAM will follow an interative development model, making software available to collaborating projects and the public during the project to obtain feedback concerning requirements and to identify and resolve bugs. The layers an components of SAM will be designed and developed in the general order:
- Metadata Management Services
- Semantic Services
- Notebook Services
- Notebook Interface
Client side components will be developed in parallel with the services with which they interact. An additional task, to develop an interim/transitional 'SAM-compatible' notebook interface based on an existing DOE2000 notebook, will occur early in the project. (The primary purpose of this task is to enable users of current notebook systems to have a path to data forward compatibility with the SAM notebook interface.)
Configuration Management
The project will start with a private CVS repository maintained at PNNL. The repository will be directly accessible from ORNL using ssh port forwarding. Details for connecting:
- ssh -L 2401:escher.emsl.pnl.gov:2401
- set CVSROOT :pserver:@localhost:/msrc/proj/collab/cvs/cvsroot
- Project name: SAM
SAM will investigate means for adding additional capabilities, such as bug tracking. One specific direction that will be pursued is investigating the possibilities for a SciDAC/National Collaboratories shared service based on software from SourceForge.
Release management
The SAM team will establish a download area on the website to allow public access to SAM software. Major releases are expected every 6-12 months (see detailed Milestones). A mailing list will be established and used to announce new releases. The releases themselves will be packaged with installation scripts. The use of automated update mechanisms will be investigated for non-web-based client and/or server components.
Development Standards
- Software will be checked in at least weekly
- Java software will conform to the the project's coding standards. The overall aim is code readability and reuse rather than strict 100% compliance with the standards. To meet this goal, the project policy will be: software that doesn't conform may be 'corrected' by other project developers when discovered. Coding standards and recommendations are described in the following documents:
- PNNL Collab Coding Conventions and and Guidelines
-
Java language Specification Naming Conventions
- Draft Java Coding Standard by Doug Lea (now public domain).
- All software files will contain a standard project header (TBD) that includes copyright information.
- All software modules will include 'unit test' software that can be used to verify its core functionality independent of the rest of SAM.
Last updated: 7/30/01