Verification and Validation
Verification is the process of ensuring software is performing
its actions correctly.
If the software was designed to perform "Task A", say, verification
is the process of ensuring the software is, in fact, performing "Task A"
correctly.
Validation is the process of ensuring that "Task A" is the correct task
to be performed in pursuit of the software's goals.
To help with this distinction, consider a scientific application that solves
multiple complex equations intended to model physics.
In this case, verification ensures
the software is solving the equations correctly while validation ensures
those equations are the correct ones to solve.
In fact, scientific software is typically built on models, and the models
must be validated, often with experimental data, to be used with confidence. Validation cannot occur
without verification, for if the software is not solving the equations
correctly, it is impossible to do anything useful with the software.
There are multiple methods of performing verification and validation,
which are together often referred to as "V&V".
Dr. Scott Runnels, owner of Southern Rockies Consulting, LLC, is experienced
in developing customized
verification approaches for scientific software and integrating those
approaches into the software development process.
He is experienced in multiple forms of validation, including
calibration of scientific software with experimental data.
Training and Education
Southern Rockies Consulting is committed to excellence in education.
Dr. Scott Runnels (owner) teaches two courses focused on multi-physics software development at the
University of Colorado Boulder, training
the next generation in techniques for delivering cost-effective,
high quality software products.
These are distance learning courses available to your staff
under a no-credit option.
Syllabi for these courses are found here:
Dr. Runnels would be pleased to deliver customized
training sessions for your staff on any of the following topics:
- MPI and MPI-IO for scientific applications
- Introduction to Open-MP for multi-threading
- Introduction to Open-ACC for GPU programming
- Python, C/C++, Fortran
- Using Git to manage software development and large simulations
- How to Integrate Software Testing in an Established Team
Custom Applications
Southern Rockies Consulting provides three customized scientific software
computing packages:
Mesa, the
Sinbad GUI, and
CarTherm, which
are all examples of light-weight,
highly efficient packages developed for specific industry needs.
Southern Rockies Consulting also serves as custodian for the
custom scientific software package
AFFTAC, which is used widely
in the railroad industry.
Through decades of designing, deploying, and maintaining custom
software applications, Dr. Scott Runnels has gained significant
experience that can be applied to your specific industry needs.
He is also well equipped to develop and apply more
general-purpose scientific software solvers, such as
finite element/volume or finite difference codes to meet your company's requirements.
High-Performance Computing
With decades of experience working in
high-performance scientific software, Dr. Scott Runnels can assist in
improving your scientific software's deployment to a high-performance
computing ("HPC") environment.
Speeding up your current scientific applications, either by better
harnessing your desktop resources or porting your software to a supercomputer,
is within the experience base and types of services Southern Rockies Consulting
offers.
Software Renovation
The process of renovating legacy software requires careful, tedious
research of source code in order to gain full understanding its data structures, flow, and
the mathematics behind it. Essential tools and methods for software renovation
are gained with decades of experience in legacy code development work.
Southern Rockies Consulting can apply these tools and methods to your legacy
software to bring it up to modern software quality standards of theory, user, and programmer
documentation, testing, and version control.