The mission of the development tools group is to provide a state of the art suite of software development tools that assist software developers to write, test, maintain, and document code for inclusion in the codebase at a velocity and volume not previously attainable. These tools are designed to ensure that code improvements are “Safe, Compliant, and Functional”, and include:
The Code and database structure will be placed into an internal master code repository built with the open source “Git” distributed version control tool. Initially this Git repository will incorporate all code provided by VA in a directory structure, and provide history of modification to individual routines and globals, allowing developers to use open source tools to obtain copies of the code, and to inspect its history. OSEHRA will push copies of this repository to a variety of mirror sites, where the general public may download and inspect the source code with Git capable tools. Our first two public mirrors will be on Gitorious and on Github, a “social coding” site that allows anyone to make, share, and discuss proposed changes with the community.
These tools will include Automated Regression Testing, Stress Testing, Architectural Verification, Interoperability Testing, Section 508 Validation, Standards and Conventions (SAC) compliance, Privacy and Systems Security, Functionality Mapping, Performance Testing, and Customer Satisfaction Measurement.
Instructions for Installing and Testing the OSEHRA Code Base
Web Based Code Review
OSEHR - Software Quality Certification Dashboard
Eventually, OSEHRA's toolset will include CTest and CDash to provide automated checking of proposed changes, and “Gerrit” to provide web-based code review. This will facilitate distributed review of proposed changes by domain experts, coupled with some automated testing using CDash to aggregate test results. Branches of development will be able to be supported at sites using distributed development processes, and later merged if appropriate.
OSEHRA Development Tools Group End State Objectives
These development tools will be augmented to simplify the cloning of the codebase, and inspection of history. The critical aspect of this work will be augmenting the KIDS subsystem to allow two-way conversion of procedures and globals from the M[UMPS] representation to a canonical on disk format and back again. This will allow for development to continue much as it has for many years and provide an easy path into and out of version control for developers. Once this functionality is present then changes can be uploaded for review, tested in pristine VistA installations and integrated once ready.