Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reach-Down subcomponent hierarchy does not set property EMV2::OccurrenceDistribution #2112

Closed
brlarson opened this issue Dec 15, 2019 · 3 comments
Assignees
Milestone

Comments

@brlarson
Copy link

@brlarson brlarson commented Dec 15, 2019

Summary

I wanted to set all EMV2::OccurrenceDistribution properties in extensions of my top-level system implementation, so I could easily compare analyses of designs with different reliability devices.

However, reaching down to set EMV2::OccurrenceDistribution properties, does not assign values when used for FTA.

Expected and Current Behavior

	EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureToDetectRate
	  applies to ^func.safety_subsystem.error_detect@post_not_detect_failure;

does not assign the probability to error event post_not_detect_failure.

while
EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureToDetectRate
applies to post_not_detect_failure;
does.

Steps to Reproduce

Try to set EMV2::OccurrenceDistribution property in an EMV2 annex subclause of a top-level system implementation by reaching down through subcomponent to desired error event. (Comment-out properties in iPCA_Error_Detector.i below.)

--extend the main system implementation with assignments for probabilities
system implementation PCA_Pump_System.i2 extends iPCA_Medical_Device::PCA_Pump_System.i
	annex EMV2 {**
	properties
	--patient button failure
		EMV2::OccurrenceDistribution => iPCA_Properties::PatientButtonFailureRate 
		  applies to ^func.sensors_actuators.button@fail;
	--power-on self-test detected failure
		EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureRate 
		  applies to ^func.safety_subsystem.error_detect@post_detected_failure;
	--power-on self-test did not detect failure when it should have
		EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureToDetectRate
		  applies to ^func.safety_subsystem.error_detect@post_not_detect_failure;
	**};
end PCA_Pump_System.i2;

device implementation iPCA_Error_Detector.i
  annex EMV2
  {** 
  use types ErrorLibrary, iPCA_Error_Model;
  use behavior iPCA_Error_Model::ErrorDetector; 	
  error propagations
    --no sound, wrong/false alarm, wrong sound
    hw_error_detections.post_fail: out propagation {UndetectedFault}; 
  end propagations;
  component error behavior
    events
      post_detected_failure : error event;
      post_not_detect_failure : error event;
	  transitions
	    working -[post_detected_failure]-> failed_detected;   
	    working -[post_not_detect_failure]-> failed_undetected;   
  end component;
  properties
	--power-on self-test detected failure
		EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureRate 
		  applies to post_detected_failure;
	--power-on self-test did not detect failure when it should have
		EMV2::OccurrenceDistribution => iPCA_Properties::POSTfailureToDetectRate 
		  applies to post_not_detect_failure;
  **};  --end of EMV2	
end iPCA_Error_Detector.i;

Environment

  • OSATE Version: 2.6.1
  • Operating System: macOS 10.14.6
@reteprelief
Copy link
Contributor

@reteprelief reteprelief commented Dec 18, 2019

Hi Brian,

your model fragment does not give me a chance to test out your assertion that values do not get assigned for FTA.
The example is similar to one of our test cases (link below).
Instantiate TMR_Archetype.impl2 and run FTA and you will see that it picks up the assigned probabilities.
Peter

https://github.com/osate/osate2/blob/master/emv2/org.osate.aadl2.errormodel.faulttree.tests/models/FTATests/Issue1837.aadl

@brlarson
Copy link
Author

@brlarson brlarson commented Dec 19, 2019

@reteprelief
Copy link
Contributor

@reteprelief reteprelief commented Dec 24, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants