Configuration of Assurance Plans and Instances

The Alisa notation lets users specify assurance cases that consist of one or more assurance plans. Each assurance case is kept in a separate file with the extension alisa.

An assurance plan configures how a system is to be assured. It identifies the AADL model that represents an implementation to be verified against the requirements. It also indicates whether subsystems can be assumed to have been verified separately or whether their verification is part of this plan.

An assurance task allows users to focus on a subset of the requirements and verification activities at a time by specifying a set of filter criteria in terms of category labels.

Assurance cases get automatically instantiated as assurance case result instances. Assurance case result instances are then executed to verify AADL instance models for the root system implementation specified in each assurance plan and the results are recorded. Assurance case result instances are represented by the Assure notation in files with the extension assure.

Assurance Case and Assurance Plan

Users will define at least one assurance case for a system. It specifies the complete set of verification activities to be performed for the system. Users can then specify filtered subsets of verification activities as assurance tasks.

The assurance case may involve multiple AADL model instances, each with a different level of fidelity, i.e., expanded out to different levels of detail and properties. They are represented by separate assurance plans.

Users may define separate assurance cases and plans for subsystems of the system. Such an assurance case specification allows the subsystem to be verified separately. Users can then configure the assurance plans of the system to include the verification of the subsystem, or assume that the subsystem has been verified separately.

For each assurance plan the following verification plans will be included to generate the assurance case result instance:

Assurance case and assurance plan declarations have the following syntax:

AssuranceCase ::=
assurance case qualifiedname ( : "descriptive title" )? 
for <component type reference>
[
 ( description Description )? 

 AssurancePlan+
 AssuranceTask* 
]

AssurancePlan ::=
assurance plan name ( : "descriptive title" )?
for <component implementation reference>
[
 ( description Description )? 

 ( assure <verification plan reference>* )?
 ( assure global <global verification plan reference>* )?
 ( assure subsystem <assure subsystem reference>+ | all )?
 ( assume subsystem <assumed subsystem reference>+ | all )?
 ( issues "issue text"+ )?      
]

The assurance case consists of:

The assurance plan consists of:

Assurance Task

Assurance tasks specify a set of filter criteria for a focused verification of a subset of requirements, verification activities, and methods according to specified category labels. The assurance tasks apply to the assurance case they are contained in.

Assurance task declarations have the following syntax:

AssuranceTask ::=
assurance task name ( : "descriptive title" )?
[
 ( description Description )? 

 ( category categorylabels | any )?
 ( issues "issue text"+ )?      
]

The assurance task consists of:

Assurance Case Result Instance

The Assure notation is used to represent assurance case results for an instance of an assurance case associated with a set of AADL model instances. Assurance results files are automatically generated from an assurance case specified in an Alisa file. The generated file has the extension assure and is placed in the assure folder.

The assurance case result instance representation maintains the state of verification activities, preconditions, and validations as well as the cumulative state for individual claims as well as all claims for a specific system instance model as specified by assurance plans, and for the whole assurance case. The following AssureResult objects are maintained:

A verification activity, precondition, and validation has execution state and result state.

The execution state has the following values:

The result state has the following values:

Each of the Assure Result objects maintains cumulative metrics. Currently we track various result counts. In the future we will also track requirement coverage counts. The counts are:

Viewing and Executing the Assurance Case

Users execute assurance cases through the Alisa View (see Figure 1). It shows assurance cases in the workspace and allows users to select an appropriate filter to be applied. Verify All executes all verification activities present in the filter independent if whether they have been previously verified. Verify TBD execute only those verification activities that have not been verified yet (are in the state TBD).

As the verification is running in the background the Assurance Progress view shows the verification activities being executed (the state of execution, the result, execution time).




Figure 1: Execution of an Assurance Case



The result of verification activity execution are presented as follows:

The assurance case results are shown on the right in the Alisa View.

On the left users see the assurance case hierarchy with the assurance case and its assurance plan, which contains claims and their verification activities as well as any subsystems that are verified as part of the case. The second column shows the counts as percentage based bars. Green shows Success, red shows Fail, light blue shows Error, and dark blue shows TBD. The results are aggregated in counts shown on the right (Success (S), Fail (F), Timeout (T), fail to complete, i.e., error (E), TBD, backup verifications, i.e., execution of the right hand sice of else (EL), and aborted sequences, i.e., skipping the right hand side of a then (TS).