-
Notifications
You must be signed in to change notification settings - Fork 6
RACK Predefined Queries
Below are tables of sample queries along with their descriptions. Structural Queries, Test Case Queries, and Test Result Queries are pre-loaded in RACK's Nodegroup store. Also below is a list of queries not pre-loaded in RACK but are supported by the current fidelity of the ontology. (RACK users can create these queries on their own.) The last section is a list of queries that are not supported by the fidelity of the current ontology but are ideas for inclusion in future releases.
ID | comments | creator | jsonFile | itemType |
---|---|---|---|---|
query Files of a Given Format | Find files of specified format | langston | query Files of a Given Format.json | PrefabNodeGroup |
query Requirements without Tests | Find requirements without a verifying test case | 200001934 | query Requirements without Tests.json | PrefabNodeGroup |
query Testcase without requirement | Find any test case that doesn't verify a requirement | 200001934 | query Testcase without requirement.json | PrefabNodeGroup |
query Requirements with failed test result | Find requirements with test failures | 200001934 | query Requirements with failed test result.json | PrefabNodeGroup |
query Requirements decomposition | Recursively show all requirements satisfied by an original | 200001934 | query Requirements decomposition.json | PrefabNodeGroup |
query Interface structure | Find system source and destination for interface | 200001934 | query Interface structure.json | PrefabNodeGroup |
query Requirements with Tests | Find requirements verified by testcase | 200001934 | query Requirements with Tests.json | PrefabNodeGroup |
query Trace Hazards to Tests | Trace hazard down to test case | 200001934 | query Trace Hazards to Tests.json | PrefabNodeGroup |
query Trace Requirements to Tests | Recursively show all requirements which satisfy and verify a testcase | 200001934 | query Trace Requirements to Tests.json | PrefabNodeGroup |
query Hazard structure | Find system component associated with the hazards traced to tests | 200001934 | query Hazard structure.json | PrefabNodeGroup |
query Terms consumedBy Requirement | Find data dictionary terms consumed by requirement(s) | 200001934 | query Terms consumedBy Requirement.json | PrefabNodeGroup |
query Compilation Inputs | Find inputs used in compilation of executables | langston | query Compilation Inputs.json | PrefabNodeGroup |
query System Structure | Extract system subcomponent structure contained under a given top-level anchor system | eric | query System Structure.json | PrefabNodeGroup |
query Requirements without passed test | No Test, or no test result, or failure | 200001934 | query Requirements without passed test.json | PrefabNodeGroup |
query Requirements without passed test v2 | No Test, or no test result, or failure: Reworked | 200001934 | query Requirements without passed test v2.json | PrefabNodeGroup |
query Models for Thing | Query that finds all the models and their types given a target THING identifier | em | query Models for Thing.json | PrefabNodeGroup |
query Get DataInsertedBy From Guid | Query that finds all all dataInsertedBy infromation for a THING selected by guid | dr | GetDataInsertedByFromGuid.json | PrefabNodeGroup |
query dataVer INTERFACE without destination SYSTEM | number of INTERFACE w/o -destination-> SYSTEM should be 0 | rack | query dataVer INTERFACE without destination SYSTEM.json | PrefabNodeGroup |
query dataVer INTERFACE without source SYSTEM | number of INTERFACE w/o -source-> SYSTEM should be 0 | rack | query dataVer INTERFACE without source SYSTEM.json | PrefabNodeGroup |
query dataVer only REQUIREMENT subclasses | number of REQUIREMENT != {SRS_Req or SubDD or CSID or PIDS} should be 0 | rack | query dataVer only REQUIREMENT subclasses.json | PrefabNodeGroup |
query dataVer SBVT_Result without confirms_SBVT_Test | number of SBVT_Result w/o -confirms->SBVT_Test should be 0 | rack | query dataVer SBVT_Result without confirms_SBVT_Test.json | PrefabNodeGroup |
query dataVer SBVT_Test without REQUIREMENT | number of SBVT_Test w/o -verifies->REQUIREMENT should be 0 | rack | query dataVer SBVT_Test without REQUIREMENT.json | PrefabNodeGroup |
query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion | number of SRS_Req w/o -dataInsertedBy-> SRS Data Ingestion should be 0 | rack | query dataVer SRS_Req dataInsertedBy other than SRS Data Ingestion.json | PrefabNodeGroup |
query dataVer SRS_Req without CSID or PIDS | number of SRS_Req w/o -satisfies-> {CSID or PIDS} should be 0 | rack | query dataVer SRS_Req without CSID or PIDS.json | PrefabNodeGroup |
query dataVer SRS_Req without description | number of SRS_Req w/o descriptions should be 0 | rack | query dataVer SRS_Req without description.json | PrefabNodeGroup |
query dataVer SRS_Req without verifies SBVT_Test | number of SRS_Req w/o <-verifies- SBVT_Test should be 0 | rack | query dataVer SRS_Req without verifies SBVT_Test.json | PrefabNodeGroup |
query dataVer SubDD_Req without satisfies SRS_Req | number of SubDD w/o -satisfies-> SRS_Req should be 0 | rack | query dataVer SubDD_Req without satisfies SRS_Req.json | PrefabNodeGroup |
query dataVer SYSTEM without partOf SYSTEM | number of SYSTEM w/o -partOf-> SYSTEM should be 1 | rack | query dataVer SYSTEM without partOf SYSTEM.json | PrefabNodeGroup |
query dataVer unlinked SWCOMPONENT | Find SWCOMPONENT w/o -wasImpactedBy-> REQUIREMENT or w/o -subcomponentOf -> SWCOMPONENT | rack | query dataVer unlinked SWCOMPONENT.json | PrefabNodeGroup |
report data verification | Run the dataVer nodegroups | rack | report data verification.json | Report |
setup ARCOS Apache Phase 2 | doesn't return anything; used to setup the connections with Apache datagraphs | rack | setup-arcos-ApachePhase2.json | PrefabNodeGroup |
query Requirement Review same Agent | Demonstration of a nodegroup that isn't a tree structure | rack | query Requirement Review same Agent.json | PrefabNodeGroup |
query Claim declares Property | Query for Claim that declares a Property demonstrated by a Test Execution | rack | query_Claim_declares_addresses.json | PrefabNodeGroup |
query Claim declares Property with scopeOf Control | Query for Claim that declares a Property with the scopeOf a Control | rack | query_Claim_declares_scopeOf.json | PrefabNodeGroup |
query Claim Property PropertyResult Activity | Query for Claim that declares a Property demonstrated by a Property Result generated by an Activity | rack | query_Claim_Property_PropertyResult_Activity.json | PrefabNodeGroup |
query Claim Property PropertyResult Review | Query for Claim that declares a Property demonstrated by a Property Result generated by a Review w/Results | rack | query_Claim_Property_PropertyResult_Review.json | PrefabNodeGroup |
Find all Hazards that do not have any mitigation.
HAZARD <-mitigates- ENTITY
For each (or selected Hazard) find all Mitigating Entities
HAZARD <-mitigates- ENTITY
For each (or selected Hazard) find all Mitigating Entities, for each mitigating entity find decomposed entities (recursive)
HAZARD <-mitigates- ENTITY[<-satisfies- ENTITY(0..*)]
For each (or selected Requirement) find all consumed Data Dictionary Terms, for each Data Dictionary Term then find all producing Requirements.
REQUIREMENT <-consumedBy- DATA_DICTIONARY_TERM -providedBy-> REQUIREMENT
For each (or selected Requirement) find all code files that implement the requirement
REQUIREMENT <-satisfies- CODE_FILE
For each (or selected Code File) find all code files that implement the requirement, then for each requirement find the verifying TestCases, and for each TestCase get the TestResults.
CODE_FILE <-satisfies- REQUIREMENT <-verifies- TEST_CASE <-confirms- TEST_RESULT
For each system (or selected System) find all Hazards associated with the System.
SYSTEM <-governs- REQUIREMENT [<-satisfies- ENTITY (0..*)] -mitigates-> HAZARD
These are some ideas for queries that may be useful to have available. Some of these queries idea may not be able to be created with the fidelity of the current ontology, but that may change as RACK matures.
Queries that identify entities that were create/modified after source Entity. While these might not all be mistakes but they could be information someone would want to audit and a large number of these may provide indication of the quality of the development process.
- Requirements that have changed after being tested
- Requirements that changed after files that changed
- Files changed after test reports generated
Queries that show the same person fulfilled multiple roles during the development that should have been performed with independence
- Source files that were written by the same person as the test that verifies the requirements
Queries that identify the changes by a person.
- Show changes made to the system by a particular user in a particular time window
- Show changes made by users working for a particular organization
- Show changes made outside of working hours
- Find libraries used in the system that are affected by known CVEs
- Find sources files written in C that don't have a Valgrind test report
- Verify that a subset of source files are built with a specific set of compiler flags
- Show all libraries used by the system
Queries that identify entities that were or were not developed to a version of a source
- Show all requirements associated with a particular certification standard
- Show subset of source files affected by a particular standard
- Show all software that was developed to a prior version of a standard.
Copyright (c) 2021-2024, General Electric Company, Galois, Inc.
All Rights Reserved
This material is based upon work supported by the Defense Advanced Research Projects Agency (DARPA) under Contract No. FA8750-20-C-0203.
Any opinions, findings and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the Defense Advanced Research Projects Agency (DARPA).
Distribution Statement "A" (Approved for Public Release, Distribution Unlimited)