FSAP/NuSMV-SA User Guide

This document is the User Guide of the FSAP/NuSMV-SA platform.
The FSAP/NuSMV-SA platform aims at supporting design and safety engineers in the development and in the safety assessment of complex systems. The FSAP/NuSMV-SA platform has been developed by the Embedded Systems Unit of FBK within the framework of the ESACS project. The FSAP/NuSMV-SA platform is composed of two main tools: FSAP (Formal Safety Analysis Platform), providing a graphical user interface for easier user interaction and NuSMV-SA an extension of the NuSMV2 model checker. Within the framework of the ISAAC European Union project, the platform is being further developed to address the new objectives of the project.
Certain information related to the FSAP/NuSMV-SA platform is not discussed in this document. Please refer to the table below for a list of some the documents describing the platform and their purpose.

For information on ...

Please have a look at:

... what's new:

the release notes document (release_notes.html)

... downloading:

the FSAP/NuSMV home page (http://es.fbk.eu/tools/FSAP)

... installing:

the getting started document (getting_started.html)

... licensing:

get in touch with the FSAP team (contact_us.html).

 

Introduction

The FSAP/NuSMV-SA platform aims at supporting the formal analysis and safety assessment of (complex) systems. The platform is based on a set of tools (including an extension of the NuSMV model checker) and is based on the concept of a repository. The repository contains the information necessary for the design and safety assessment of systems and is shared between the design engineer (the actor responsible for the design of the complex system) and the safety engineer (the actor responsible for performing safety analysis on the complex system).

The platform is designed to support different phases of the development and safety assessment process and to support different development and safety assessment practices. To achieve these goals, FSAP/NuSMV-SA provides a set of basic functions. These basic functions can be combined in different ways to perform complex tasks. The major benefits from the use of FSAP/NuSMV-SA are the following:

The FSAP/NuSMV-SA platform is being developed within the ISAAC Project, a European Union sponsored project in the areas of formal verification and safety analysis. The project builds upon and extends the results of ESACS project. The goals of ESACS were the definition of a methodology that integrates design and safety analysis practices and the development of platform(s) to support the methodology. ISAAC's project goal is to go a step further into the improvement and integration of safety activities of aeronautical complex systems. Potential benefits range from higher confidence in the safety of systems to increased competitiveness of European industries.

The FSAP/NuSMV-SA platform supports the ESACS methodology by automating the steps mentioned above.

A glossary is appended to the end of this manual with a list of terms used throughout. Also, special attention must be paid to the acronym 'SAT' which is used to define a 'Safety Analysis Task' and also the SAT-based verification engine. If no specification is made, the reader should assume SAT to be Safety Analysis Task.

 

Methodology

The FSAP/NuSMV-SA methodology describes how to use the FSAP/NuSMV-SA platform. The methodology derives from the ESACS methodology: we present it in the following list using the concepts of phases (set of activities) and activities (activities are not necessarily elementary steps – they are not, however, further decomposed in this document):

All the activities produce artifacts. The artifacts constitute essential information for the system development and are stored in a repository.

The following activity diagram is an example of how the activities of the FSAP/NuSMV-SA methodology may be interconnected during a single iteration of the development of a system. (Activity diagrams are a UML notation similar to flow charts in which we distinguish activities (rounded rectangles) and artifacts (rectangles)). The activities have colors that code the responsibility (blue for the design engineer, green for the safety engineer). (Notice that the notation is not standard as, usually, swimlanes are used in UML for representing the concept of responsibility.) All the artifacts are marked in magenta. Notice that the activity diagram below is just one of the ways in which the ESACS/ISAAC methodology can be applied.


FSAP/NuSMV-SA Process

The starting point of the activity diagram is a System Requirements Specification document (SRS) that collects the functional and non-functional requirements of the system under development. (The Requirements elicitation activity is outside the scope of the FSAP/NuSMV-SA platform and it will not be detailed in this document.) When the SRS is available, the FSAP/NuSMV-SA process starts:

The process ends with the safety engineer providing feedback on the results of the safety analyses. This activity can be carried out using the standard procedures of the organization where the system is being developed (e.g. a written report) and/or by passing the SAT back to the design engineer. The SAT in fact contains the result of the analyses and it may, e.g., contain modified versions of the system model, that suggest how to deal with some specific issues.

Remark 1. The process described above is just one of the ways in which the FSAP/NuSMV-SA platform can be used for the development and safety assessment of complex systems. Some simple variations to the procedure described above are the following:

Remark 2. The support granted by the FSAP/NuSMV-SA platform to an iterative process mainly relies on the possibility of (partially) reusing safety requirements and failure modes defined at previous steps. A typical scenario may be the following: when a new model is provided by the design engineer, such a model is incorporated into the SAT. The FSAP/NuSMV-SA platform, at the moment, however, does not provide automatic facilities for change management.

Remark 3. No constraint is put on the way in which the functions of FSAP/NuSMV-SA can be invoked (short, of course, of the trivial constraints imposed by the syntax and semantics of the various commands, e.g. a system model must be defined in order to be verified). The hypothesis underlying this approach is that, by selecting and/or combining the above mentioned functions in different ways, the FSAP/NuSMV-SA can be used in different phases of the process and integrated in different processes.

The short-term drawback is that the NuSMV line will not provide mechanisms for enforcing that a particular procedure and/or a particular process is being followed: that is, it will be up to the user to ensure the FSAP/NuSMV-SA is used in compliance with the procedures and the processes followed for the development of a complex system. (For instance, it is up to the user of the platform to ensure that, e.g., at each iteration of the development process, a fault tree is built for each of the defined safety requirements, should the process require doing so).

 

FSAP/NuSMV-SA Platform: Overview

In this section we detail the functionality of the FSAP/NuSMV-SA platform and provide more details on how the FSAP/NuSMV-SA supports the methodology described in the previous section.

The FSAP/NuSMV-SA provides the following facilities:

Repository Management: SAT Manager

The SAT Manager is the central repository of all the information that is defined and produced using the FSAP/NuSMV-SA platform. In particular, the SAT contains the following information:

A SAT is stored using the XML format. The XML format can be converted into a more user-readable form using, e.g., style sheet: in particular, a SAT can be associated to a style sheet (possibly stored at a given URL), which contains directives to visualize the SAT as an html document. In this way, the user can transparently load a SAT using an html browser. User-defined display styles can be realized by changing the style sheet.

Failure Modes Capturing

Failure modes are introduced in the analysis process in order to describe and analyze behaviors related to malfunctions of components (e.g. what happens to the system if a valve remains “stuck open”?). As a general policy the nominal and failure behaviors of components have been clearly separated. In the FSAP/NuSMV-SA, this separation is provided by allowing users to specify the nominal behavior in a system model, and then declaratively specify what failures are to be injected into the System Model, and finally providing an algorithm for automatically injecting those failures into the system model (extended system model). A probability value can also be assigned to a failure mode, which will be added to the extended system model. The probability will be used by NuSMV-SA to calculate the probability of a TLE during fault tree analysis. Failure modes can be defined as 'sporadic' or 'permanent', which is reflected in the extended system model. Sporadic failures can fail and then return to the nominal state, while permanent failures remain failed after having failed once. Failure variables are identified with naming conventions, i.e. the suffix “_FailureMode” and "_SporadicFailureMode" for sporadic failures.

The Failure Modes provided by NuSMV-SA include:

When specifying the failure modes, the user selects from a list of failure modes and decides which of them to inject in a given system model. Some of the failure modes require additional parameters (e.g. value to which a valve is stuck at). Failure mode selection is part of the Safety Analysis Task (SAT) definition.

The grouping of commonly caused failure modes can produce failure sets. A failure set is composed by adding failure mode instances from the data dictionary, which will have been propagated by the extended system model (so failure sets must be added after the model has been extended). Failure sets can be comprised of instances from sporadic failures ("_SporadicFailureMode") and permanent failures ("_FailureMode"). Failure sets can also be defined as 'simultaneous' or 'cascading', which implies that all failures in the set occur simultaneously with the "common cause", or that the failures occur within a range of timesteps after the "common cause", respectively. If the user defines the failure set as cascading, they can then define the first and last timesteps (after the "common cause"), between which the given failure must occur. Failure sets can also be added by importing an XML file of failure sets and the failure modes that they contain. The new failure sets will be injected into the System Model, like the failure modes above, when the Extended System Model is regenerated. It should be noted that, not all Failure Set attributes defined in FSAP are defined in the Failure Set XML format, so by exporting and importing some information might be lost.

The list of failure modes that can be defined by the user is stored in the GFML (Generic Failure Modes Library). The GFML contains a declarative specification of the failures that can be defined by the user: such specification includes both information about the characteristics of the failure (e.g. name, parameters) and information about the behavior of the component when the failure is active. The automatic injection of failure modes into a System Model uses the information stored in the GFML.

Remark. If a failure mode or failure set is changed, the user is responsible for synchronizing the failure mode/set with other instances of the failure mode/set in the SAT. This will usually be the case when changing between 'sporadic' and 'permanent' for failure modes, and between 'simultaneous' and 'cascading' for failure sets. For example, assume a failure mode, FM1, is originally defined as 'permanent'. Then an instance of FM1, instance.FM1_FailureMode, is used in a message. If FM1 is later changed to 'sporadic' (from permanent), the user is responsible for updating the message to instance.FM1_SporadicFailureMode, because FSAP is not currently able to synchronize failure modes with every failure mode instance.

Failure Modes Injection

The Failure Modes defined during the Failure Modes capturing activity are injected into the System Model in order to generate the Extended System Model. This can be achieved by the user, simply by clicking "Generate ESM" in the FSAP "Analysis" menu. FSAP now also takes responsibility for keeping the ESM up-to-date. If the ESM is needed -- in an analysis task or the data dictionary for example -- FSAP checks that the ESM is current and if necessary re-generates the ESM. The model extension is completely automatic and no further interaction with the user is necessary. In the event that the extension process is not accomplished, the user receives notification of the failure. However, when the extension is successful, the Extended System Model will contain all the symbols necessary to deal with possible failure behaviors of the system. It is now possible for the user to set up Analysis Tasks for reasoning about such failure behaviors.

The extension algorithm not only injects the defined failure modes into the System Model in order to engender the Extended System Model. It also enriches the Extended System Model with symbols that track the number of failures during the execution of the model, or the maximum duration of a failure. Users can take advantage of these automatically defined variables for controlling in a finer-grained fashion the failure behaviors of the system during the execution of Analysis Tasks. The variables are:

Such variables can be freely referenced within the formula of Safety Requirements, and used as standard NuSMV variables. Do remember though, that they do not appear within the nominal System Model. Currently no GUI is available for controlling them but it is planned for the next release of the platform. At the moment manual reference inside the Safety Requirements is the only means of exploiting this feature.

Formal Assessment of the Model

Verification, for some analyses, can be done using either the BDD-based or the SAT-based engine in NuSMV-SA. More details on how this is implemented are provided later when describing particular analysis tasks. The analyses which can be performed using NuSMV-SA include:

FSAP/NuSMV-SA Components

This section describes the components of the FSAP/NuSMV-SA platform and describes how to use the platform.

The different components of the FSAP/NuSMV-SA platform can be described by the following architectural diagram, where:

(To simplify the diagram, not all data and control flows are shown.)

FSAP/NuSMV-SA Component Picture

 

Some of the components (i.e. Model Capturing and Fault Injection) are standard components (i.e. a text editor) or are not meant for the user to interact (Fault Injector is a batch program): they will not be described in this document. The remaining components require (or allow) user interaction and they will be described in more detail. In particular:

The "Data Dictionary Browser", fully described in the "Data Dictionary Browser" section, is available across the platform providing the means for retrieving the symbols defined within the models (nominal and extended) of the SAT.

The activities performed during the user interaction with the platform are logged into the "Log Window", a description of which is delivered in section "Log Module".

The platform can be configured using the "Preferences" module, which is described in more details in the "Preferences Module" section.

Finally, expert users may be willing to interact directly with NuSMV-SA, through its textual interface. Section "NuSMV-SA Commands Guide" describes how it is possible to interact using the textual interface.

 

SAT Manager

The SAT manager (see figure) allows users to manage a SAT and to control all the interaction with the FSAP/NuSMV-SA platform.

SAT Manager

Data Displayed. The SAT manager displays the following information of a SAT:

Name

Name of the current SAT. It can be freely set by the user.

Description

Description of the SAT. It can be freely set by the user.

System Model
Information

This group of information displays (and allows to operate) on some basic information concerning the model:

  • Nominal: Location of the System Model (SM);

  • Extended: filename of the file that contains the Extended System Model (ESM)

  • Monotonicity: whether the system is monotonic or not. The impact of monotonicity can be seen in the fault tree. The fault tree displays only failure events (monotonic), or failure events and events specifying that the system does not fail (non-monotonic).

Failure Modes,
Messages,

Safety Reqs, and
Analysis Tasks
Tabs

This group displays (and allows selection of) failure modes, safety requirements, and analysis tasks.

In particular we distinguish the following tabs:

  • Failure Modes/Failure Sets. List of both the failure modes and failure sets currently defined for the SM.

  • Messages and Messages classes. List of the messages and message classes currently defined for the SM.

  • Safety Requirements. List of requirements currently defined for the SAT.

  • Analysis Tasks. Specification of the analyses to be performed on the (extended) system model.



Commands Available. Actions are performed using the menu items or using the buttons.

The SAT manager menus are organized as follows:

File

>

New

Create a new Safety Analysis Task (CTRL+n). It is also possible to create a new Failure Mode, Failure Set, Message, Safety Requirement, or Analysis Task.



Open

Open an existing SAT



Close

Close the currently opened SAT



Save

Save the SAT



Save As

Save the SAT with a different name



Revert to Saved

Revert to the last saved version of the SAT.



Import FS mapping...

Import an XML file with failure set/failure mode mappings.



Export FS mapping...

Export an XML file with failure set/failure mode mappings.



View as HTML

Open XML file containing the SAT with default browser



Exit

Exit. Optionally prompt the user for confirmation. If the SAT has been modified ask whether to save it or not.

Edit

>

Preferences

Set user preferences.

Analysis

>

Generate ESM

Generate the extended system model, from the current system model and failure modes.



Check Property

Verify the property corresponding to the SR currently selected.



Compute Fault Tree

Generates a fault tree from the formula corresponding to the SR currently selected.



Compute Ordering

Provides information about the ordering of failures in a minimal cut set.



Simulate

Generates the trace of a random execution of the current SM or ESM.



TDS Analysis (submenu) >

Fault Isolation. Generates a fault tree from the formula corresponding to the message or class of messages currently selected.
Fault Detection. Generates a text file listing selected messages and their corresponding failure modes.

Tools

>

Data Dictionary

Opens the data dictionary browser.



Result Displayer

Opens the tool for displaying the results of the analyses.



Fault Tree Displayer

Opens the tool for displaying fault trees.



Plotter

Opens the tool for plotting NuSMV traces.



Text Editor

Opens the default text editor.

Actions

>

Read SM from...

Choose the file in which the SM is stored



Write ESM to...

Choose the file in which the ESM will be written



Set ESM preferences...

Set preferences for ESM generation



Edit SM

Edit the System Model with the standard text editor



View ESM

Edit the Extended System Model with the standard text editor

Window

>

Restore initial size

Resize the window to its initial dimensions.



Log

Hide/Show/Iconify log window.

Help

>

Contents

Opens this document



Release Notes

Opens information about what's new.



FSAP on the Web

Opens the home page of the FSAP/NuSMV-SA tool.



About

Shows some information about the FSAP/NuSMV-SA tool.



The operations in the 'Actions' menu as well as some from the 'File' menu can be performed using the buttons in the SAT Manger. The following list describes them in detail:

Read From...

Choose the file in which the SM is stored.

Edit

Edit the System Model with the standard text editor.

Write To...

Choose the file in which the ESM will be written.

View

View the Extended System Model with the standard text editor.

Show items w/, Update

Filter the items in the currently shown tab to view only the elements containing the string displayed in the text box.

Use the button "Update" to update the view.

New

Add a new Failure Mode, Message, Safety Requirement, or Analysis Task.

The action performed depends upon the current active tab.

Edit

Edit the selected Failure Mode, Message, Safety Requirement, or Analysis Task.

The action performed depends upon the current active tab.

Delete

Delete the selected Failure Mode, Message, Safety Requirement, or Analysis Task. Optionally the user is prompted for confirmation. Furthermore SRs that are referenced in one or more AT cannot be removed.

The action performed depends upon the current active tab.


Users can use the four tabs to add, delete, and edit respectively, the failure modes, messages, safety requirements, and analysis tasks. When defining or editing failure modes, the Failure Modes Editor is shown. When defining or editing messages, the Messages Editor is shown. When defining or editing safety requirements, the Safety Requirements Editor is shown. When defining, editing or running analysis tasks, the Analysis Task Manager is shown.

The input box "Show items w/" is a filter; it can be used to control what failure modes, messages, safety requirements, or analysis tasks are shown by the panes. Type a string in the input box and click on the "Update" button, to show the items that contain the string typed in the input box.

 

Failure Modes Editor

The FM editor allows users to define and edit failure modes:

FM Editor

Data Displayed. The FM editor displays the following fields for a given FM:

Commands Available.

OK

Add (or accept the changes to) the FM to the SAT.

Cancel

Cancel the operation.

Data Dictionary

Open the data dictionary browser. If a pair module-variable is chosen within the data dictionary, then it will be automatically copied to the relevant fields of the dialog.

 

Failure Sets Editor

Separate from the Failure Modes Editor, the Failure Sets Editor allows users to define and edit failure sets by adding and removing failure mode instances.

Failure Sets Editor image will go here

Data Displayed. The Failure Sets editor displays the following fields for a given failure set:

Commands Available.

Add Failure Mode...

Opens the data dictionary browser. If an instance is chosen within the data dictionary, then it will be automatically copied to the text formula field. See also here.

Remove Failure
Mode

Removes the failure mode highlighted in the list of failure modes.

Set

Sets the 'start' and 'stop' timesteps (with values that should be entered in the "Start"/"Stop" text boxes respectively), for a selected failure in a cascading failure set. This is only enabled for cascading failure sets and a failure mode instance must be selected for the values to be set.

OK

Add (or accept the changes to) the failure set to the SAT.

Close

Close the failure sets editor and discard changes if any were made.

 

Messages Editor

The Messages editor allows users to define and edit messages. Message classes cannot be edited, but they can however, be added or removed from within the Messages editor.

Messages Editor image will go here

Data Displayed. The Messages editor displays the following fields for a given message:

Commands Available.

Save

Add (or accept the changes to) the message to the SAT.

Cancel

Cancel the operation.

Data Dictionary...

Open the data dictionary browser. If a variable is chosen within the data dictionary, then it will be automatically copied to the text formula field. See also here.

SMV_Keypad

Pop up a window where the user can select the operators commonly used for writing NuSMV properties. See also here.

Add type...

Opens a new window to define a new message type, which is added to the SAT.

Remove type

Removes the type currently shown in the 'Message type' scrollbar from the SAT.

 

 

Safety Requirements Editor

The SR editor allows users to define and edit safety requirements.

SR Editor

Data Displayed. The SR editor visualizes the following fields for a given SR:

Commands Available.

OK

Add (or accept the changes to) the SR to the SAT.

Cancel

Cancel the operation.

Pattern Library...

Open the dialog for instantiating safety patterns from the pattern library. If a safety pattern is chosen and correctly instantiated then it is copied into the formula text field. The user is prompted to replace or append modifications if the text formula already contains text. See also here.

Data Dictionary...

Open the data dictionary browser. If a variable is chosen within the data dictionary, then it will be automatically copied to the text formula field. See also here.

SMV_Keypad

Pop up a window where the user can select the operators commonly used for writing NuSMV properties (including those from the CTL and LTL logic languages). See also here.

 

Pattern Library Editor

The Pattern Library editor allows users:

The Pattern Library Editor

Data Displayed. The Pattern Library editor visualizes the following fields:

Commands Available.

OK

Accept the choice of the current safety pattern and copy it to the formula text field of the SR editor. As a side effect, it recognizes the notation of the chosen pattern and makes changes according to the temporal logic selected with the toggle button of the SR editor.

Cancel

Cancel the operation.

Data Dictionary...

Open the data dictionary browser. If a variable is chosen within the data dictionary, then it will be automatically copied to the relevant parameter field. See also here.

 

Data Dictionary Browser

The Data Dictionary browser allows users to browse through the symbols defined within the System Model and the Extended System Model and possibly to choose and re-use such symbols in the dialog that invoked the browser itself.

Data Dictionary - Types Data Dictionary - Instances

Data Displayed. The DD browser visualizes the following fields:

Commands Available.

OK

Accept current choice. The result depends upon the module of the platform that invoked the DD. (see also the other sections of this document).

Cancel

Cancel the operation.

In particular four different usages of the Data Dictionary can be envisaged:

In the first case users are presented with the Types Tab opened and the System Model selected. Both the Instances Tab and the Extended System Model will not be available at this stage, since they do not make sense in such a context. Users are allowed to switch amongst the different modules in the module browser (the variable browser is updated accordingly at once) and then to switch amongst the different variables (type and values fields are updated accordingly, at once). The OK button copies the module name and the variable name into the relevant field of the FM editor window that invoked the DD.

In the second case, the Types Tab is deactivated whilst the Instances Tab is initially open. If possible the SM/ESM choice is active, SM being the default. Users are allowed to switch among the variables presented within the variable browser (type and values fields are updated accordingly, at once). The OK button copies the name of the chosen variable, and the value if selected, into the relevant field of the dialog that invoked the DD (for instance the SR editor, rather than the Pattern Library editor, and so on).

The third case, a variation of the second case, exists when the DD is invoked with 'Add Failure Mode...' button of the Failure Set Editor. For failure sets the user chooses a variable (in this case a failure mode) and also a value for that variable. This variable/value pair is returned to the Failure Set Editor.

The last case is triggered when the DD is invoked from the main FSAP menu. Contrary to the two previous cases, no filtering is performed by FSAP on the usability of the dialog. If any data is available (the ESM might not have been generated, for instance) it is made available to the users. The OK button will have the same result (void) as the Cancel button.

REMARK: the DD might not be available at all. In this case FSAP emits an alert message and appends the motivation for not being able to open the DD browser to the log window.

 

SMV Keypad

The SMV Keypad is a helpful and fast interface to the standard logical and mathematical operators that are necessary for writing properties in the SMV language. It can be invoked from within the SR editor in order to ease the formulation of the text of the SR.

Symbols are represented by buttons that are highlighted when the mouse hovers over them. When a button is clicked, the corresponding label is copied to the formula text field of the SR dialog which invoked the keypad. Otherwise the 'Close' button is available to exit the keypad with no effect on the SR editor.

Symbols from the CTL and LTL logic languages are activated or deactivated depending on the notation (CTL, LTL, or propositional) currently active within the invoking dialog. Standard first-order logic symbols are always available as well as the usual mathematical operators.

SMV Keypad

 

Analysis Task Manager

The Analysis Task Manager (AT Manager) allows defining and editing (Safety) Analysis Tasks. Safety Analysis Tasks are the interface to simulation, verification, and safety assessment of the system model. Users can choose whether to store Analysis Tasks (in order to reuse them later on) or just to dismiss them, once the analysis has been performed.

Defining Analysis Tasks

There are various ways for defining and using Analysis Tasks:

Defining a new Safety Analysis Task. It can be done in two different ways:

New Analysis Task

Reusing an existing Safety Analysis Task. In this case, it is sufficient to choose the "Analysis Task" tab and either double-click on the analysis task or select an analysis task and click on the "Edit" button.

Managing Analysis Tasks

The properties that characterize an AT are split into five tabs: the "Analysis" tab, the "Engine" tab, the "Task Info" tab, the "Hypotheses" tab, and the "Execution Options" tab. The content of the "Analysis" tab depends upon the kind of analysis to perform; more information is provided in the "Controlling Analysis" section (the next section). The content of the "Engine" tab varies slightly with the kind of analysis to perform, some analysis allows either BDD-based or SAT-based verification; more information is provided in the "Analysis Engine" section. The "Task Info" tab contains information related to storing an Analysis Task and it's common to all types of analysis; more information is provided in the "Storing Analysis" section. The content of the "Hypotheses" tab provides constraints specifications and is common to all types of analysis; more information is provided in the "Analysis Task Hypotheses" section. Finally "Execution Options" tab contains information about the NuSMV execution of the task; more information is provided in the "Executing Analysis" section.

Analysis tasks have buttons that allow the user to perform the following actions:

Run

Run the Analysis.

Show Results

Invoke the Result Extraction and Display tools on the analyses.

Save TASK

Save the analysis so that it can be reused later on.

Close

Close the window.

Some Analysis Tasks are limited by the type of engine (BDD or SAT [see Choosing Analysis Engine below]) and/or the formula notation (CTL, LTL, or propositional) that can be used. For example CTL notation can only be used for CHECK PROPERTY analysis tasks with the BDD engine, or FAULT TREE ANALYSIS requires a propositional formula, or SAT-based analysis requires an LTL formula. The following table summarizes which notation and engine can currently be used with which Analysis Tasks (note: propositional formulas include those written in CTL and LTL. So a Safety Requirement written in LTL implies 'LTL and PROP').


CHECK PROPERTY FTA/FAULT ISOLATION
BDD engine CTL, LTL (PROP implicitly) PROP
SAT engine LTL (PROP implicitly) PROP

Controlling Analysis

The “Analysis” tab collects the information that is used as parameters for the analysis. The fields that appear within the window depend upon the type of the analysis to be performed and are detailed below.

 

CHECK PROPERTY. The check property dialog is used to verify properties on the SM or on the ESM.
The information shown is the following:

Target Model:

The model that will be used by the NuSMV 2 model checker to perform the analysis. The user can choose the SM or the ESM as the Target Model using the radio buttons.

SR:

The name and the formula of the SR that is used to perform the AT. The safety requirements are chosen when defining an analysis task (see "Defining Analysis Tasks") and cannot be changed once chosen.


Check Property

FAULT TREE ANALYSIS and FAULT ISOLATION ANALYSIS. The fault tree analysis and fault isolation analysis dialogs are used to compute fault trees.
The information shown is the following:

Target Model:

The model that will be used by the NuSMV 2 model checker to perform the analysis. The only model on which it is possible to construct fault trees is the Extended System Model; this option cannot be changed by the user.

SR/Message:

The name and the formula of the SR or Message that is used to perform the AT. The safety requirements/messages are chosen when defining an analysis task (see "Defining Analysis Tasks") and cannot be changed once chosen.

Preferences:

Select to disable counter example generation, which should speed up analysis task runtime.

Remark.

It may be useful to remember that this fault tree construction is influenced by the “Model Monotonicity” property that can be set in SAT Manager window.


Fault Tree Analysis

Fault Isolation Analysis

FAULT DETECTION ANALYSIS. The fault detection analysis dialog is used to compute an FMEA table, which is output in a tab-delimited text file.
The information shown is the following:

Target Model:

The model that will be used by the NuSMV 2 model checker to perform the analysis. It is only possible to compute the FMEA table using the Extended System Model; this option cannot be changed by the user.

Message:

The name and the formula of the Message that is used to perform the AT. The messages or message classes are chosen when defining an analysis task (see "Defining Analysis Tasks") and cannot be changed once chosen.

NR_FAILURES:

This option defines the number of failures shown in the FMEA table which lead to a given message (i.e. if NR_FAILURES is set to '3' then the FMEA computation will return all combinations of three failures or less which lead to Message X).


Fault Detection Analysis

FAULTS ORDERING ANALYSIS. The faults ordering analysis dialog is used to verify whether there is any particular temporal ordering on the failures of a given cut set.
Every time NuSMV-SA computes a fault tree, it generates, for any minimal cut set it finds, a model, called "ordering information model". This model can be used to verify whether, in all possible runs in which the cut set causes the TLE of the fault tree, it is the case that some of the failures of the cut sets occur in a particular order. Given a fault tree with cuts sets "Fault_Configuration_1", ..., "Fault_Configuration_N" the NuSMV-SA model checker generates the "ordering information models" called "order_1.smv", ..., "order_N.smv". These files can be given as input to the "Faults Ordering Analysis" task to verify if there is any ordering on the events of a minimal cut sets.
The information shown is the following:

File:

Name of the NuSMV file on which the ordering analysis is to be performed. The file can be chosen by the user with the "Choose" button.


Ordering Analysis

SIMULATION. The simulation dialog is used to perform simulations on the system model or on the extended system model.
The information shown is the following:

Target Model:

The model that will be used by the NuSMV 2 model checker to perform the analysis. The user can choose the Target Model between the SM and the ESM, using the radio buttons.

Steps:

The number of steps that will be performed during the simulation.

Invariant Formula:

A propositional formula that constrains the simulation only to those runs in which the formula is “true” in every single state. A hook to the Data Dictionary browser is provided through a button, in order to ease the stating of the formula.

Simulation

Choosing Analysis Engine

The "Engine" tab contains the radio buttons where the user can choose to use the BDD-based verification engine or the SAT-based verification engine. Both of these are provided by the NuSMV model checker. The SAT-based engine provides model checking using propositional satisfiability. Three different SAT-based engines are available: sim, minisat (the default SAT solver), and zchaff. Zchaff is for non-commercial purposes only. Commercial use of this product is not allowed without permission from the author. For more information on zchaff see http://www.ee.princeton.edu/~chaff/ or contact Sharad Malik (malik @ ee.princeton.edu) for details. For more information on minisat visit the MiniSat webpage or contact Niklas Een or Niklas Sorensson {een,nik} @ cs.chalmers.se.

Not all analysis tasks support both verification engines however. In short, the BDD-based engine can always be used but the SAT-based engine can be used only for CHECK PROPERTY, COMPUTER FAULT TREE, and FAULT ISOLATION analysis tasks; this is detailed below.

Analysis Engine Picture

For all analysis tasks you will be able to select the verification engine. If BDD-based is selected you will see the window above, or a window similar to the one above. For faults ordering, fault detection, and simulation, BDD is the only option available and 'SAT-based' will be grayed-out. For the remaining analysis tasks, BDD is the default option but SAT-based can also be chosen (see below).
The following information can be controlled from the "Engine" tab:

Model Checker Engine

Select the verification engine: BDD or SAT.

When BDD is selected for monotonic analyses that generate a fault tree, the optimizations 'Use Layering' and 'Use Dynamic COI' are available with a checkbox.

BDD-based Model Checking Parameters

  • Use Layering

  • Use Dynamic COI

Analysis Engine Picture (2)

CHECK PROPERTY, FAULT TREE ANALYSIS, and FAULT ISOLATION ANALYSIS. For these three analysis tasks you can choose SAT-based verification in addition to BDD-based. The selection of the SAT engine provides further control on how the SAT engine is run.
The following parameters can be controlled from the "Engine" tab when SAT-based verification is available and has been selected:

SAT-based Model Checking Parameters

Select parameters to further control how the SAT-based engine is run.

  • Select SAT engine to use. If minisat or zchaff have been selected, the solver can also be used incrementally.

  • Indicate a maximum limit for the length of a counterexample length (e.g. do not continue searching for a counter example after length 10)

  • Indicate the maximum number of failures allowed (0 for no limit)

  • Indicate the maximum number of cut sets to be found, i.e. do not continue finding cut sets after 5 (0 for no limit or all cut sets)

Storing Analysis

The "Task Info" tab collects the generic information that is common to all AT and controls how Analysis Tasks are stored.

Analysis Task Manager Picture

The following information can be controlled from the "Task Info" tab:

Name:

Name of the Analysis Task. It is used as a reference for storing the Analysis Task.

Description:

Description of the Analysis Task. It is used as a reference for the user.

Results Directory:

The pathname of the directory where all the results will be stored.

This field can be automatically computed by the system or chosen by the user. The behavior is as follows:

  • If the field is empty when the user chooses the "Run" button, the system creates a brand new directory either in the user's TEMP directory if the underlying operating system is Linux, or in the folder where the SAT lies if the running operating system is Windows.
    All the results of the analyses are stored in that directory. Since results displayer are "context sensitive" and trace the last directory in which analyses have been performed, users do not need to worry about the location in which the analysis has been saved.
    The name of the newly created directory is stored in the "Results Directory" field and will be re-used for subsequent runs.

  • If the field is not empty when the user chooses the "Run" button, the system stores all the results on the analysis in the directory specified in the "Results Directory" field. The specified directory can be either an existing one or a not existing one. In the latter case, be sure that only the last part of the path indicates a not existing folder (that in this case will be created by the tool). Otherwise the platform will not be able to create the directory and perform the analysis.

The user can choose, using the "Choose" button, the content of the "Results Directory" field. Users can choose either an existing or a non-existing directory. Choosing an existing directory is not destructive, as only the files related to the analysis will be deleted and overwritten.

Remark 1.

The choose button changes the directory in which the next analysis will store the results.

As a consequence, for instance, if you run an analysis and then change the result directory, the results of the last run will not be moved into the new directory. You need to choose the "Run" button once again.

Remark 2.

None of the fields mentioned above are necessary to run an analysis. They are however necessary to store analysis tasks.

Analysis Task Hypotheses

Users can specify constraints for each Analysis Task, achieving a finer-grained control over the execution of the AT. Constraints are defined in the "Hypotheses" tab of the AT dialog in the form of NuSMV invariants formulae. Hypotheses are saved into the SAT and their definition can take advantage of the "Data Dictionary" and "SMV Keypad" facilities.

Hypotheses Tab

 

Executing Analysis

The "Execution Options" tab collects all the information that allows a finer-grained interaction with the NuSMV engine that runs the analysis. At present it is only possible to specify a string containing options that are directly passed to the NuSMV command line.

Execution Options Tab

 

Results Extraction and Results Displayer

The Results Extraction and Displayer tools are a set of tools to display the results produced during the analyses.

The main access point for the information generated during the analyses is the "Result Displayer", that can be launched both from the “Tools” menu in the SAT Manager window and from the “Show Results” button in the Analysis Task Manager window.

Result Displayer

The "Result Displayer" scans through a directory (either specified by the user or, by default, the last directory created by an execution of an analysis) and recognizes and shows all the files generated by an analysis. The output from NuSMV – a text file copy of the standard output seen in the terminal window – can also be seen in the Results Displayer for each analysis.

The Results Displayer also shows a summary of the analysis in the top pane. Information in this summary file includes: type of analysis run, the date and time the analysis was run, whether the analysis was successfully completed or not, and possibly other information relevant to the type of analysis run. For 'check property' analyses the summary file specifies if the given property is TRUE or FALSE; for 'fault tree analysis', the probability of the Top Level Event and the number of cut sets are given; for 'fault isolation', the Fault Isolation Index is given; and for 'fault detection', the Fault Coverage Index is given. Because the results of the 'ordering' analysis task are included in the directory of the fault tree to which they are associated, the summary of the ordering task is appended to the existing summary file in that directory. Additionally, separate nusmv_out text files are saved for the NuSMV output of each ordering analysis that is run.

Results Displayer Picture

Clicking an item within the list triggers the (de-)activation of the buttons in the lower part of the application window, that can be used to invoke different viewers or double-clicking will open the files in a default viewer. The one exception to this is the nusmv_out.txt file, which, when highlighted, can be opened with any of the "View as Text" buttons.

In particular, the following table applies:

Color Coding: Red

Color Coding: Green

Color Coding: Blue

Color Coding: Yellow

Result Type:

Traces

Result Type:

Fault Trees

Result Type:

Ordering Info

Result Type:

FMEA Tables

Meaning:

Traces that shows how a minimal cut set causes a TLE

Meaning:

Fault tree related to a TLE.

Meaning:

Ordering information about a minimal cut set.

Meaning:

FMEA table related to a message or TLE.

Actions

Actions

Actions

Actions

View as Text:

View the trace using the default text editor.

View:

View the fault tree using the built-in fault tree viewer.

See "Fault Tree Displayer" section for more details.

View:

View the ordering information using the default text editor.

View as Text:

View the tabbed file using the default text editor.

View as Table:

View the trace in tabular form (either organized by rows or by columns), using the default spreadsheet.





View as Table:

View the tab-delimited file using the default spreadsheet.

Plot w/ Gnuplot:

Plot the trace using Gnuplot and an interface to it called FSAP plotter. See "Plotting Traces" section for more details.








The applications used as default viewers (with the exception of the fault tree displayer), can be set using the Preference module, described in the "Preference Module" section.

The Result Displayer menu is organized as follows:

File

>

Open directory...

Open the directory where results have been previously saved.



Exit

Close the Result Displayer window.

Help

>

Contents

Opens this document



Release Notes

Opens information about what's new.



FSAP on the Web

Opens the home page of the FSAP/NuSMV-SA tool.



About

Shows some information about the FSAP/NuSMV-SA tool.

Plotting Traces

The FSAP platform includes a means for plotting the counterexamples generated within the platform. The module devoted to this functionality has been obtained by integrating an internal tool called Plotter with the well-known Gnuplot plotter.

Plotter

The Plotter shows to the user the list of variables that occur within a particular trace. The Plotter can be launched both from the Tools menu in the SAT Manager window and with the “Plot with Gnuplot” button for traces in the Results Displayer window. In the former case the trace must be chosen from the user by opening the "File" menu and selecting the item "Open", while in the latter case the trace is selected by the user within the Result Displayer browser.

Variables are shown in the fashion of check buttons so that the user can easily declare what are the variables of interest. Users can also check and save certain variables as 'default' variables, which allow users to easily graph different traces with the same variables. This is done by checking the desired variables and selecting "Set default variables" under the "Actions" menu. The "Edit" menu provides the user with shortcuts for selecting variables, by checking all the variables ("Check all" item), checking none of them ("Clear all" item), inverting the current selection ("Invert" item), or checking the variables that have been defined as 'defaults variables' ("Load default variables" item).

The plotting of the trace can then be invoked either by clicking the "Plot" button at the bottom of the window, by choosing the "Plot" item in the "Actions" menu, or even with the shortcut F5. At this point FSAP invokes Gnuplot with the appropriate options and lets the plot appear as it can be seen below. Just close the window with the upper right standard close box to get back to the Plotter dialog.

REMARK: even though non numeric variables can be chosen within the Plotter for the sake of completeness, only numeric variables will be correctly plotted by Gnuplot.

 

GNUPlot Window

 

Fault Tree Displayer

The FT displayer is used to show fault trees generated by the FSAP/NuSMV-SA (in Fault Tree+ compatible format). It can be launched both from the “Tools” menu in the SAT Manager window and from the “View” button for Fault Trees in the Results Displayer window.


Fault Tree Displayer Picture
Fault Tree Import Chooser

Data Displayed. The FTD browser visualizes the following fields:

Commands Available. Actions are performed using the menu items or interacting with the dialog controls.

The Fault Tree Displayer menu is organized as follows:

File

>

Open...

Open a fault tree stored in FT+ exchange format. A dialog is opened in which users must specify the events file and gates file.



Reload

Reload the currently opened fault tree.



Export...

Export the current fault tree in SVG format.



Close

Close/Unload current fault tree leaving the displayer opened.



Exit

Exit the fault tree displayer.

Actions

>

Open Counterexample...

Opens the Result Displayer, highlighting the trace file of the selected node (if it exists).



Compute Ordering...

Opens an ordering analysis task for the selected node (if an ordering file exists).

View

>

Zoom In

Increases 'Zoom Factor' by 20%.



Zoom Out

Decreases 'Zoom Factor' by 20%.



Full Size

Sets 'Zoom Factor' to 100%.



Hide/Show Probability

Makes visible or not the probability of all events in the fault tree.

Interaction with the dialog comprises:

Remarks on FSAP/NuSMV-SA and FaultTree+:

  1. The probability computed by FT+ may differ with respect to the one computed by NuSMV-SA, given that FT+ does not know that some of the events may not be independent, e.g. "valve1 stuck_at_0", "valve1 stuck_at_1" and "valve1 no_failure".
  2. In the events/gates files generated by NuSMV-SA, the probability computed by NuSMV-SA is still visible in FT+ attached to each gate in the 'Notes-->Remarks' field.

Remark on SVG export:
The SVG file export from the Fault Tree Displayer is best viewed with Adobe's SVG viewer plugin with Internet Explorer.

Log Module

The Log module provides a communication channel from the platform to the user both by recording the activities performed and giving feedback on them such as error, warning, and info messages.

Log Window

It is essentially a text display window into which messages are appended. The window is scrolled so to show the last message. Some kind of interaction is available to the user in order to control this feature.

Commands Available. Actions are performed using the menu items.

The Log Window menu is organized as follows:

File

>

Save

Flushes current content of the Log window to the file specified in the preferences

Edit

>

Status

Log information about the status of the log functionality, such as levels, log file...

Window

>

Clear

Clear the window, restarting logging from scratch



Iconify

Iconify the log window.



Hide

Hide the log window. The window is NOT permanently deleted. It can be brought back to the screen using the Window menu of the SAT manager.

Controlling the Log window is possible also through the "Log" menu item in the "Window" menu of the SAT manager.

 

Preferences Module

The Preferences module allows the user to control several different aspects of the application. It is made of four tabs, each addressing a different feature of the platform.

Here is a brief summary of the configurable options grouped by the relevant tab:

ESM Preferences

The ESM Preferences allows the user to control what is included in the Extended System Model. This window is opened from the 'Actions' menu in SAT.

ESM Preferences

The preferences available for customizing the ESM are:

 

Appendix A: NuSMV-SA Command Guide

There is usually no need to access the NuSMV-SA tool from the command line, as FSAP provides an interface to the model checker. However, in certain situations it may be useful to have direct access. This section provides a reference for some NuSMV2 commands used in the NuSMV-SA platform, in particular related to the following activities:

For a complete reference to the commands available with NuSMV-SA, please refer to the NuSMV2 documentation, available from the NuSMV2 home page (http://nusmv.fbk.eu/)

Computing Monotonic Fault Tree

The compute_fault_tree is the command to compute fault trees for monotonic systems, using the standard BDD-based engine.

usage: compute_fault_tree [-h] [-m| -o file] [-g] [-t] [-e] [-p] [-x "prefix_string"]"simple-expr"
   -h           Prints the command usage
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -o file      Writes the generated output to "file"
   -g           Generates extended models with ordering variables
   -t           Generates fault tree
   -e           Prints counterexample traces
   -p           Computes probability
   -x prefix    Prefixes generated file names with "prefix"
   simple-expr  Print min terms of simple-expr

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > compute_fault_tree -e -t "Gb.speed = 0"

The compute_fault_tree_bmc is the command to compute fault trees for monotonic systems, using the SAT-based engine.

usage: compute_fault_tree_bmc [-h] [-m| -o file] [-k length] [-l loopback] [-n mcs] [-N NR_FAIL] [-g] [-t] [-e] [-x "prefix_string"]"simple-expr"
   -h           Prints the command usage
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -o file      Writes the generated output to "file"
   -k length    set problem length to length
   -l loop      set loopback value to loop
   -n mcs       limit number of cut sets to be computed to mcs
   -N NR_FAIL   limit number of possible failures to NR_FAIL
   -g           Generates extended models with ordering variables
   -t           Generates fault tree
   -e           Prints counterexample traces
   -p           Computes probability
   -x prefix    Prefixes generated file names with "prefix"
   simple-expr  print min terms of simple-expr

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go_bmc
NuSMV > compute_fault_tree_bmc -e -t "Gb.speed = 0"

The compute_fault_tree_bmc_inc is the command to compute fault trees for monotonic systems, using the SAT-based engine and incremental verification (requires an incremental SAT solver).

usage: compute_fault_tree_bmc_inc [-h] [-m| -o file] [-k length] [-l loopback] [-n mcs] [-N NR_FAIL] [-g] [-t] [-e] [-x "prefix_string"]"simple-expr"
   -h           Prints the command usage
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -o file      Writes the generated output to "file"
   -k length    set problem length to length
   -l loop      set loopback value to loop
   -n mcs       limit number of cut sets to be computed to mcs
   -N NR_FAIL   limit number of possible failures to NR_FAIL
   -g           Generates extended models with ordering variables
   -t           Generates fault tree
   -e           Prints counterexample traces
   -p           Computes probability
   -x prefix    Prefixes generated file names with "prefix"
   simple-expr  Print min terms of simple-expr

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go_bmc
NuSMV > set sat_solver zchaff
NuSMV > compute_fault_tree_bmc_inc -e -t "Gb.speed = 0"

Computing Non Monotonic Fault Tree

The compute_prime_implicants command is the command to compute fault trees for non monotonic systems, using the standard BDD-based engine.

usage: compute_prime_implicants [-h] [-f] [-m| -o file] [-g] [-t] [-e] [-x "prefix_string"] "simple-expr"
   -h           Prints the command usage
   -f           Existentially quantify over non-failure variables
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -o file      Writes the generated output to "file"
   -g           Generates extended models with ordering variables
   -t           Generates fault tree
   -e           Prints counterexample traces
   -p           Computes probability (requires option -f)
   -x prefix    Prefixes generated file names with "prefix"
   simple-expr  print min terms of simple-expr

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > compute_prime_implicants -f -e -t "Gb.speed = 0"

Computing FMEA Table

The compute_fmea_table command is the command to compute fmea tables, using the standard BDD-based engine.

usage: compute_fmea_table [-h] [-m| -o file] [-N NR_FAIL] [-t] [-x "prefix_string"]
   -h           Prints the command usage
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -N NR_FAIL   set number of failures to NR_FAIL (default: 1)
   -o file      Writes the generated output to "file"
   -t           Generates fmea table
   -x prefix    Prefixes generated file names with "prefix"

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > compute_fmea_table -t

Computing Ordering

The compute_ordering command is the command to verify whether there is any ordering on the failures related to a minimal cut set. It requires having run one of the following commands compute_fault_tree, compute_fault_tree_bmc, compute_fault_tree_bmc_inc, or compute_prime_implicants with the -g option beforehand.

usage: compute_ordering [-h] [-m| -o file] "file_name"
   -h           Prints the command usage
   -m           Pipes output through the program specified by
                the "PAGER" shell variable if defined,
                 else through UNIX "more"
   -o file      Writes the generated output to "file"
   file_name    Analyze ordering for model in file "file_name" 

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > show_vars -s
NuSMV > compute_prime_implicants -f -g -e "SPS_LH.GB.W_gb = 0"
NuSMV > !cpp order_9_sps-ext_cpp.smv > order_9_sps-ext_cpp_cpp.smv
NuSMV > compute_ordering order_9_sps-ext_cpp_cpp.smv

Checking Properties

The check_ctlspec command is the NuSMV command to verify a property expressed in CTL, using the standard BDD-based engine.

usage: check_ctlspec [-h] [-m | -o file] [-n number | -p "ctl-expr"]
   -h               Prints the command usage.
   -m               Pipes output through the program specified
                    by the "PAGER" environment variable if defined,
                    else through the UNIX command "more".
   -o file          Writes the generated output to "file".
   -n number        Checks only the SPEC with the given index number.
   -p "ctl-expr"    Checks only the given CTL formula.

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > check_ctlspec -p "AG(Gb.speed=0 -> Gb.speed_FailureMode != no_failure)"

The check_ltlspec command is the NuSMV command to verify a property expressed in LTL, using the standard BDD-based engine.

usage: check_ltlspec [-h] [-m | -o file] [-n number | -p "ltl_expr"]
   -h                   Prints the command usage.
   -m                   Pipes output through the program specified by
                        the "PAGER" environment variable if any,
                        else through the UNIX command "more".
   -o file              Writes the debugger output to "file".
   -n number            Checks only the LTLSPEC with the given index number.
   -p "ltl-expr"        Checks only the given LTL formula.

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > check_ltlspec -p "G(Gb.speed=0 -> Gb.speed_FailureMode != no_failure)"

The check_ltlspec_bmc command is the NuSMV command to verify a property expressed in LTL, using the SAT-based engine.

Usage: check_ltlspec_bmc [-h | -n idx | -p "formula"] [-k max_length] [-l loopback] [-o <filename>]
  -h            Prints the command usage.
  -n idx        Checks the LTL property specified with <idx>.
  -p "formula"  Checks the specified LTL property.
                If no property is specified, checks all LTL properties.
  -k max_length Checks the property using <max_length> value instead of using the
                variable <bmc_length> value.
  -l loopback   Checks the property using <loopback> value instead of using the
                variable <bmc_loopback> value.
  -o filename   Generates dimacs output file too. <filename> may contain patterns.

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go_bmc
NuSMV > check_ltlspec_bmc -p "G(Gb.speed=0 -> Gb.speed_FailureMode != no_failure)"

The check_ltlspec_bmc_inc command is the NuSMV command to verify a property expressed in LTL, using the SAT-based engine and incremental verification (requires an incremental SAT solver).

Usage: check_ltlspec_bmc_inc [-h | -n idx | -p "formula"] [-k max_length] [-l loopback]
  -h            Prints the command usage.
  -n idx        Checks the LTL property specified with <idx>.
  -p "formula"  Checks the specified LTL property.
                If no property is specified, checks all LTL properties.
  -k max_length Checks the property using <max_length> value instead of using the
                variable <bmc_length> value.
  -l loopback   Checks the property using <loopback> value instead of using the
                variable <bmc_loopback> value.

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go_bmc
NuSMV > set sat_solver zchaff
NuSMV > check_ltlspec_bmc_inc -p "G(Gb.speed=0 -> Gb.speed_FailureMode != no_failure)"

Simulation

The pick_state and simulate commands are the NuSMV commands for simulating a model.

usage: pick_state [-h] [-v] [-r | -i [-a]] [-c "constr"]
  -h            Prints the command usage.
  -v            Verbosely prints picked state.
  -r            Randomly picks a state from the set of the initial states
                (otherwise choice is deterministic).
  -i            Lets the user interactively pick a state from
                the set of initial ones.
  -a            Displays all the state variables (changed and
                unchanged) in an interactive session.
                It works only together with -i option.
  -c "constr"   Sets constraints for the initial set of states.
                Note: must be enclosed between double quotes " ".

usage: simulate [-h] [-p | -v] [-r | -i [-a]] [-c "constr"] steps

  -h            Prints the command usage.
  -p            Prints current generated trace (only changed variables).
  -v            Verbosely prints current generated trace (all variables).
  -r            Sets picking mode to random (default is deterministic).
  -i            Enters simulation's interactive mode.
  -a            Displays all the state variables (changed and unchanged)
                in every step of an interactive session.
                It works only together with -i option.
  -c "constr"   Sets constraint (simple expression) for the next steps.
                Note: must be enclosed between double quotes " ".
  steps         Maximum length of the path.

Example

NuSMV > set input_file sps-ext_cpp.smv
NuSMV > go
NuSMV > pick_state -r -c
       "Me.speed_FailureMode = ramp_down_1_4 &
        Gb.speed_FailureMode = no_failure & Atm.speed_FailureMode = no_failure &
        Prsov.status_FailureMode = no_failure"
NuSMV > simulate -r -c
       "Me.speed_FailureMode = ramp_down_1_4 &
        Gb.speed_FailureMode = no_failure & Atm.speed_FailureMode = no_failure &
        Prsov.status_FailureMode = no_failure" 25
NuSMV > show_traces -v -o engine_flameout.trc 1



Appendix B: Glossary

AT analysis task
BDD binary decision diagram; one of the symbolic model checking techniques offered by NuSMV
CTL computation tree logic; temporal logic used to define safety requirements in FSAP/NuSMV-SA
DD data dictionary; collection of symbols and variables used in the system model and/or extended system model
ESACS Enhanced Safety Assessment for Complex Systems; original European project in which FSAP/NuSMV-SA was developed
ESM extended system model; automatically generated system model with the injected failure modes
FM failure mode; definition of what part of the system model can fail and how
FMEA failure mode and effect analysis
FSAP Formal Safety Analysis Platform
FT fault tree; tree representation of events or combinations of events which violate a top level event/system requirement
FTA fault tree analysis; analysis of system requirement which generates a fault tree
FTD fault tree display; graphical representation of fault tree
GFML generic failure mode library; collection of defined failure modes
GSRL generic safety requirements library; collection of defined safety requirements
ISAAC Improvement of Safety Activities on Aeronautical Complex systems; current European project in which FSAP/NuSMV-SA is being developed
LTL linear temporal logic; temporal logic used to define safety requirements in FSAP/NuSMV-SA
MCS minimal cut set; minimum combination of failures which cause a top level event
NuSMV a symbolic model checker
NuSMV-SA extension of NuSMV2 which is used on safety analysis tasks
SAT

1) Safety Analysis Task

2) SAT(satisfiability)-based; one of symbolic model checking techniques offered by NuSMV

SM system model; a model to define the nominal behavior of a system
SP safety pattern; predefined pattern, used as a building block to define safety requirements
SR safety requirement; definition of required behavior in a degraded situation
SRS system requirements specification; document that collects the functional and non-functional requirements of the system being developed
SVG scalable vector graphics; language for describing two-dimensional graphics in XML
TLE top level event; event, in this case a message or safety requirement, to undergo fault tree analysis

 

Last Update: $Date: 2008/02/14 14:43:47 $