Hello everyone,
As promised, I've gone through the list and developed some definitions which I think are appropriate. In addition, I noticed that a lot of the rules seem to be sub components of some higher level rules. So I started developing subcategories that I think should be included as part of the higher level rule. So this is what I came up with. But please note that they are not prioritized in any way.
- Use version control – it is important to ensure that we know exactly what version of the model or simulation was used to run a specific analysis
- Use appropriate data (input, validation, verification)
[list]
- Define your evaluation metrics in advance – your evaluation criteria should define what data you need to appropriately develop, verify and validate a model or simulation
- Use traceable data that can be traced back to the origin – one of the proofs presented to show that the data used to develop, verify and validate a model or simulation can be traced to a source that is considered reliable and appropriate to the context or intended use of the model or simulation
[*]
Attempt validation within context – if the model was validated for a specific analysis criteria for an application of interest that is vastly different from the specific condition under consideration, then the model or simulation would be deemed not appropriately applicable for that application. Therefore the model or simulation needs to be validated for the context or within application domain that is under consideration.[/*]
- Attempt uncertainty (error) estimation – when performing validation, it is typically necessary to qualitatively or quantitatively assess the uncertainty of the predictions made by M&S. However, this is always dependent on the context of use. Some application scenarios, such as general analyses for trends and non-clinical applications, may not need uncertainty analysis. However, this context needs to be explicitly stated throughout the onset of model development and application.
- Conform to discipline-specific standards – when performing validation, it should also be in the context of the discipline specific needs, standards and guidelines.
- Follow discipline-specific guidelines – See previous for bullet. This bullet and previous bullet should probably be combined.
[*]
Attempt verification within context – the description provided for validation are applicable to verification as well. This includes for the following sub-bullets.[/*]
- Attempt uncertainty (error) estimation
- Conform to discipline-specific standards
- Follow discipline-specific guidelines
[*]
Perform appropriate level of sensitivity analysis within context of use – this is self-explanatory.[/*]
[*]
Report appropriately – the M&S needs to be documented appropriately for the context of use to include the following so that the M&S can be applied appropriately for the intended use, or expanded upon appropriately without compromising or violating the underlying stability, assumptions and V&V criteria.[/*]
- Define the context the model is intended to be used for
- Explicitly list your limitations
- Provide user instructions whenever possible and applicable
- Make sure your results are reproducible
- Provide examples of use
- Conform to discipline-specific standards
- Follow discipline-specific guidelines
[*]
Use consistent terminology or define your terminology – it is important that others understand the M&S and application intent so that the M&S can be leveraged appropriately.[/*]
[*]
Get it reviewed by independent users/developers/members – this is important to ensure that the M&S is not evaluated a biased manner. In order to get independent review, it is also important to make the M&S available to the fullest extent possible to allow the greater community or the independent reviewers can sufficiently evaluate the M&S.[/*]
- Disseminate whenever possible (source code, test suite, data, etc)
[*]
Document your code – this differs from “Report Appropriately” in that it refers to documentation of the source code. This allows other users or developers to appropriately navigate the code to make augmentations and/or re-adaptation of the code and reproduce the results of the original model.[/*]
- Make sure your results are reproducible – this is to ensure that others can take your M&S methods and build upon it or re-adapt reliably.
[*]
Develop with the end user in mind – this relates to defining the context or intended use of the model from the beginning. This will then determine the V&V criteria, and other sub-elements that are related to V&V, sensitivity analysis, etc.[/*]
[/list]
The following points did not seem as high priorities to me since they are typically done automatically, or they did not quite make sense to me, or they did not seem as high a priority for standards and guidelines development.
- Use credible solvers
- Practice what you preach
- Use competition of multiple implementations to check and balance each other
- Learn from discipline-independent examples
- Be a discipline-independent/specific example
These are just my views and I'm very open to alternative ways of looking at this problem. So please feel free to provide feedback on what I've written, or present your own definitions or organization of the rules. I look forward to everyone's contribution to this effort.
Lealem