Error ontologies and altarica transformation aadl meeting florida jan 24-27

22
A Semantic Web Architecture for Model based Safety Engineering Presentation to the AADL standards meeting Hollywood Florida, Jan 26, 2011

description

 

Transcript of Error ontologies and altarica transformation aadl meeting florida jan 24-27

Page 1: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

A Semantic Web Architecture for Model based Safety Engineering

Presentation to the AADL standards meeting Hollywood Florida,

Jan 26, 2011

Page 2: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

2

Agenda

• The context: Semantic Web architecture for model based safety engineering.

• Component and Error Model Ontology

• TASTE tool ‘Error View’ extensions

• Transformation to Altarica

• Discussion and examples from AOCS case study.

Page 3: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

3

Semantic Web Architecture for Model-based Safety Engineering

Trasform to Altarica model

Component and FM Ontology

FM Ontology Front End (UI)

Ontology Engineering Environment

(Protégé)

TASTE[Interface and

Deployment View]

TA

ST

E U

I ex

ten

sio

ns

for

Err

or

Vie

w Failure Model Ontology Server

ARCModel Checking

Tool

AADL/AAXL components /error models[Web/HTTP Service]

[Web/HTTP Service]

Error View[AADL generated code]

Page 4: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

4

The MBSE Process

Page 5: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

5

Component and Error Model Ontology

Function Hierarchy AADL Hierarchy (Structure) Error Model Hierarchy

belongs

belongs

Component Error Model

belongs

Subcomponents ConnectionsFeatures

Transitions

States Events

has

hashas has has

has

has_transition_code

Error Model ImplementationTransitionCode

has_error_model

Page 6: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

6

Error model hierarchy

Page 7: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

7

Device Error model hierarchy

Page 8: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

8

Error model compositionalityDeviceErrorModel

em_features NominalState

SensorErrorModel

em_features TCAsseptanceFailureStateTCAcceptanceFailureEvent

activate trDeviceTCAcceptanceFailure

SensorDataErrorModel

em_features DataFailureStateDataFailureEvent

activate trDeviceDataFailure

RecoverableErrorModel

recover RecoverTrans

TemperatureErrorModel

em_features TemperatureFailureStateTemperatureEvent

activate trTemperatureFailure

AvionicsSensorErrorModel

CSS

More…

GYRO

More…

IRES

More…

Page 9: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

9

Compositionality rules and assumptions

• Same name/symbol implies same feature – Unique Name Assumption.– Multiple instances of same symbol are merged.

• Each model contains complete transitions.• Events are independent from each other.

– One event triggered at a time

• Merging results in the union of transactions.• Deterministic transitions.• More structure in Error models possible:

– E.g. Organise Events and States into • Event Activation, Event Detection, Event Perceptions.• Permanent and Temporary Faults.

Page 10: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

10

Ontology Server

Implements the Ontology API

Use of external OWL reasoner ( Pellet).Java Owl API (Jena)

Contains also a parser and a serialiser between OWL axioms and components and error model frames to AADL and AAXL.

Repository / Storage

Ontology Server

Clients

Get / Post Custom layer

Ont

olog

y A

PI

Pel

let +

Jen

a

Page 11: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

11

TASTE tool Error View Extensions - IV

Page 12: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

12

Front-End: Components to Error Model association

Get applicable error model list

• Use the getApplicableErrorModels (Comp)

Select an error model

• from the list of applicable error models

Enter the error model

association

• for the component, i.e. the way in which a component ‘implements’ the specific error model.

Page 13: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

13

TASTE tool Error View Extensions - IV

Page 14: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

14

TASTE tool Error View Extensions - DV

Page 15: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

15

Transformation: AADL Error View to Altarica

• AADL Error View– Combined IV + DV AADL code for a system. – Augmented with Error model information (Error

Annex).– Behavior coded used Behavior Annex.

Page 16: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

16

Transformation processAADL

Component

Implementations

to Altarica Nodes

•Components to Nodes•Data Features to Flows•Event Features to boolean type flows•For each subprogram a data structure is defined containing the subprogram parameters.•The subprogram itself is defined as a node with a flow of this data structure. •Connections as Assertions•Boolean and Enumerated types only•Possibility to define enumerations for complex data type abstractions.

Error Models and

BA•Events, State and Transitions from the Error model •BA state variables used within a call are dereferenced.•Implicit error_model_state variable enumerates all EA states.•EA transitions to error_model_state variable conditions and assignments•BA Transition codes to Assertions guarded by the error_model_state.•Implicit OK OK transition generates unguarded assertion.

Error Propagations

•Standard AADL Error Propagation and Inheritance rules apply.•Implemented through Altarica synchronizations. •Weak synchronizations also supported (Altarica extensions).•Guard_In /Out properties partially supported. (Full Semantics not supported by Altarica)

Page 17: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

17

Transformation example - DeviceSYSTEM CSS_taste FEATURES CSS_PI_obj86 : PROVIDES SUBPROGRAM ACCESS interfaceview::FV::CSS_PI_obj86.othersSensor_TC_obj98 : PROVIDES SUBPROGRAM ACCESS interfaceview::FV::Sensor_TC_obj98.othersEND CSS_taste;

SYSTEM IMPLEMENTATION CSS_taste.impl SUBCOMPONENTS CSS_PI_obj86_impl : SUBPROGRAM interfaceview::FV::CSS_PI_obj86.others Sensor_TC_obj98_impl : SUBPROGRAM interfaceview::FV::Sensor_TC_obj98.othersCONNECTIONS SUBPROGRAM ACCESS CSS_PI_obj86_impl -> CSS_PI_obj86; SUBPROGRAM ACCESS Sensor_TC_obj98_impl -> Sensor_TC_obj98; ANNEX ERROR_MODEL {** MODEL => error_models::IV::CSS_error.impl; **}; ANNEX BEHAVIOR_SPECIFICATION {** STATES TCAcceptanceFailureState , TemperatureFailureState , DataFailureState : FINAL STATE; NominalState : INITIAL STATE; TRANSITIONS normal : NominalState -[ ]-> NominalState { CSS_PI.dataCSS_out:=DataType_dataCSS_T; Sensor_TC.TC_SW:=DataType_TC_T; Sensor_TC.TC_Acceptance:=DataType_TM_Status }; out_TCAcceptanceFailureEvent : TCAcceptanceFailureState -[ ]-> TCAcceptanceFailureState { Sensor_TC.TC_Acceptance:=NO_DATA }; out_TemperatureFailureEvent : TemperatureFailureState -[ ]-> TemperatureFailureState { CSS_PI.dataCSS_out:=BAD_DATA }; out_DataFailureEvent : DataFailureState -[ ]-> DataFailureState { CSS_PI.dataCSS_out:=NO_DATA }; **}; END CSS_taste.impl;

DOMAIN interfaceview_FV_CSS_PI_domain = STRUCT dataCSS_out : { DataType_dataCSS_T , NO_DATA , BAD_DATA , OUT_OF_RANGE } ; TCURTS; DOMAIN interfaceview_FV_Sensor_TC_domain = STRUCT TC_Acceptance : { DataType_TM_Status , NO_DATA , BAD_DATA , OUT_OF_RANGE } ; TC_SW : { DataType_TC_T , NO_DATA , BAD_DATA , OUT_OF_RANGE } ; TCURTS;

node interfaceview_IV_AOCS_CSS_taste_impl FLOW CSS_PI : interfaceview_FV_CSS_PI_domain ; Sensor_TC : interfaceview_FV_Sensor_TC_domain ; STATE error_model_state : { TCAcceptanceFailureState , TemperatureFailureState ,

DataFailureState , NominalState } ; INIT error_model_state := NominalState; EVENT TCAcceptanceRecoverEvent , TemperatureRecoverEvent , DataRecoverEvent ,

TCAcceptanceFailureEvent , TemperatureFailureEvent , DataFailureEvent ; TRANS error_model_state = TCAcceptanceFailureState |- TCAcceptanceFailureEvent ->

error_model_state := TCAcceptanceFailureState ; error_model_state = NominalState |- TCAcceptanceFailureEvent -> error_model_state :=

TCAcceptanceFailureState ;……. SUB CSS_PI_impl : interfaceview_FV_CSS_PI_others ; Sensor_TC_impl : interfaceview_FV_Sensor_TC_others ; ASSERT CSS_PI_impl.self = CSS_PI ; Sensor_TC_impl.self = Sensor_TC ; error_model_state = NominalState & ( CSS_PI.dataCSS_out = DataType_dataCSS_T &

Sensor_TC.TC_SW = DataType_TC_T & Sensor_TC.TC_Acceptance = DataType_TM_Status ) | error_model_state = TCAcceptanceFailureState & ( Sensor_TC.TC_Acceptance = NO_DATA ) | error_model_state = TemperatureFailureState & ( CSS_PI.dataCSS_out = BAD_DATA ) | error_model_state = DataFailureState & ( CSS_PI.dataCSS_out = NO_DATA ) ;

edon

11

2

2

2

3 3

3

3

4

4

5

5

6

6

Page 18: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

18

Transformation example - ThreadSYSTEM SMU FEATURES SensorAcquisition : PROVIDES SUBPROGRAM ACCESS SensorAcquisition.others ControlLoop : PROVIDES SUBPROGRAM ACCESS …ControlLoop.others ActuatorMgt : PROVIDES SUBPROGRAM ACCESS …ActuatorMgt.others cmdRW1 : REQUIRES SUBPROGRAM ACCESS default::FV::cmdRW_PI_obj578 …. cmdTHR8 : REQUIRES SUBPROGRAM ACCESS default::FV::THR_PI_obj875 SMU_IO_Mgt_RI : REQUIRES SUBPROGRAM ACCESS …SMU_IO_Mgt_PI_obj234 tcCSS_RI : REQUIRES SUBPROGRAM ACCESS default::FV::CSS_TC_obj102 ….END SMU; SYSTEM IMPLEMENTATION SMU.others SUBCOMPONENTS SensorAcquisition_impl : SUBPROGRAM default::FV::SensorAcquisition.others ControlLoop_impl : SUBPROGRAM default::FV::ControlLoop.others ActuatorMgt_impl : SUBPROGRAM default::FV::ActuatorMgt.others CONNECTIONS …ANNEX ERROR_MODEL {** Model =>

AOCS_error_models::AOCSThread_error.impl; **}; ANNEX BEHAVIOR_SPECIFICATION {** … TRANSITIONS normal : s -[ ]-> s { SMU_IO_Mgt_RI!(di,ds,dg,dc,frw1,frw2,frw3,frw4) ;

SensorAcquisition_impl!( dg, di, dc, ds, d);

ControlLoop_impl!(d,c); ActuatorMgt_impl!(c, crw1, crw2, … , cthr6, cthr7, cthr8); … ;

memoryaccess : stMemoryAccessError -[ ]-> stMemoryAccessError {SMU_IO_Mgt_RI.dataIRES := BAD_DATA }; **};

END SMU.others;

node default_IV_AOCS_SMU_others FLOW SensorAcquisition : default_FV_SensorAcquisition_domain ; … SMU_IO_Mgt_RI : default_FV_SMU_IO_Mgt_PI_domain ; STATE error_model_state : { stErrorFree , stMemoryAccessError , …INIT error_model_state := stErrorFree; EVENT evMemoryAccessError , evSubCallError , evReset , HWError ,

HWRepair , MemoryAccessError , SubCallError ; TRANS error_model_state = stErrorFree |- evMemoryAccessError ->

error_model_state := stMemoryAccessError ; … SUB SensorAcquisition_impl : default_FV_SensorAcquisition_others ; ControlLoop_impl : default_FV_ControlLoop_others ; ASSERT SensorAcquisition_impl.self = SensorAcquisition ; ControlLoop_impl.self = ControlLoop ; ActuatorMgt_impl.self = ActuatorMgt ; error_model_state = stMemoryAccessError &

( SMU_IO_Mgt_RI.dataIRES = BAD_DATA ) | error_model_state = stErrorFree | error_model_state = stSubCallError | error_model_state = stHWError ;

ControlLoop_impl.self.dataAOCS = SensorAcquisition_impl.self.dataAOCS ; ActuatorMgt_impl.self.commandAOCS =

ControlLoop_impl.self.commandAOCS ; edon

1

1

Page 19: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

19

Error propagations• Observe AADL EA Propagation and Inheritance rules

– From HW components to SW bound to that HW– Through component connections.– Via shared access.– Via subprogram calls.– Errors of a component are propagated to its subcomponents and vice versa.

• Transformed as Altarica (Weak) Event Synchronizations• Restricted support for Guard_In and Guard_Out (event mapping):

Guard_in => MappedEvent when OriginalEvent {, [MappedEvent when Original Event]}*

 Guard_out => MappedEvent when OriginalEvent

{, [MappedEvent when Original Event]}*

Source Component Destination Component

Source Event

Guard_OutMapping

Mapped Out Event

Guard_InMapping

Destination Event

Page 20: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

20

Full AOCS propagations

Page 21: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

21

Propagations exampleSource Component / Feature

Out Propagations Destination Component / Feature

In Propagations & Guards Final In Propagation

SMU MemoryAccess (a1)HWError(b1)

Guard_Out => BadData(b2) WHEN HWErrorMemError(a2) WHEN MemoryAccess ;

SensorAcquisition NoData, BadData, evOverUnderFlow, evDivideByZero, evInsufficientPrecision, Disconnected, Crash, PowerOutage, HWError, Reset, RepairGuard_InBadData(b3) WHEN BadData,BadData(a3) WHEN MemError

BadData(a3,b3)

SensorAcquisition PowerOutage, HWError, Crash, Reset

NO Guard_Out

SMU PowerOutage, HWError, Crash, Reset

NO Guard_In

< Crash ? , SensorAcquisition_impl.Crash > ; < MemoryAccess ? , SensorAcquisition_impl.BadData > ; < PowerOutage ? , SensorAcquisition_impl.PowerOutage > ; < HWError ? , SensorAcquisition_impl.BadData > ; < Reset ? , SensorAcquisition_impl.Reset > ;

< SensorAcquisition_impl.PowerOutage ? , PowerOutage > ; < SensorAcquisition_impl.HWError ? , HWError > ; < SensorAcquisition_impl.Crash ? , Crash > ; < SensorAcquisition_impl.Reset ? , Reset > ;

Page 22: Error ontologies and altarica transformation   aadl meeting florida jan 24-27

Thank you.