310 likes | 503 Views
Validation of Guidance Control Software Requirements Specification for Reliability and Fault-Tolerance. Annual Reliability & Maintainability Symposium January 30, 2002 Frederick T. Sheldon and Hye Yeon Kim Software Engineering for Dependable Systems (SEDS) Research Laboratory
E N D
Validation of Guidance Control Software Requirements Specification for Reliability and Fault-Tolerance Annual Reliability & Maintainability Symposium January 30, 2002 Frederick T. Sheldon and Hye Yeon Kim Software Engineering for Dependable Systems (SEDS) Research Laboratory School of Electrical Engineering and Computer Science Washington State University
Overview • Goal:Show the feasibility of this analysis approach using a industrial strength SRS to ensure: • Completeness and Consistency • Fault-tolerance • Specification Under Study • A NASA provided Guidance and Control Software (GCS) development specification for the Viking Mars Lander. • Analysis Approach • Using Zed to specify the data • Using Statecharts : Statemate for dynamical analysis • Summary and Future study
Introduction • Why Requirements Specification? • Cost, Time, and Effort
Reliable Specification • Is Correct • Complete, consistent and robust • Can the specification be trusted while minimizing the risk of costly errors? • How to analyze the specification to prevent the propagation of errors into the downstream activities?
Consistency and Completeness • Completeness: The lack of ambiguity • Incomplete if … • … the system behavior is not specified precisely because the required behavior for some events or conditions is omitted or is subject to more than one interpretation. • Consistency • The Specification is free from conflicting requirements and undesired nondeterminism.
Fault Tolerance • Faults • A fault is a feature of a system that precludes it from operating according to its specification • H. Ammar, B. Cukic, C. Fuhrman, and A. Mili, A comparative Analysis of HW and SW fault tolerance: Impact on software reliability engineering, 1999 • Fault Tolerance • The ability to respond to unexpected system failure (detection and mask/recover)
Guidance and Control Software • Software Requirements – GCS Dev. Spec. • The system was designed to provide software control of the embedded sensors and actuators of the Viking Mars Lander during the terminal decent (landing) phase. • ARSP (Altimeter Radar Sensor Processing) • The ARSP module reads data provided by the altimeter radar sensor to determine the lander’s altitude from the Mars surface.
Zed Overview • Clarifying ambiguities • Identify assumptions • Correctness checking • Mathematical proofs • Giving an in-depth understanding of the SRS
Statecharts • Visual formalism: Diagrammatic in nature • Testability is provided through symbolic simulation • Predevelopment evaluation through • Fault Injection • Statemate consists of … • Activity chart • Statecharts
Natural Language based SRS • Inherently ambiguous risking the possibility of multiple interpretations
From NL to Zed • Discovered Ambiguities • The confusing definition of variable “Rotation”, and direction of the rotation. • The type assigned to the AR_COUNTER variable was unclear. • An undefined 3rd order polynomial. • Where the AR_COUNTER should be modified?
Some Theory … Set of Inputs () Unknowns () Set of Outputs Known Known Safe Unsafe Sources: Normal Operation Hardware Failures Human Intervention Models/Simulators Assumed Safe
Paradigms … • Software Failures: “Software does not fail - it just does not perform as intended” Professor Nancy Leveson, MIT • Design and test for functionality: Also specify what the system should not do. . . . . . then test it!
Fault Injection (added known) Some Theory… lets take a second look Set of Inputs () Unknowns () Set of Outputs Known Known Safe Unsafe Sources: Normal Operation Hardware Failures Human Intervention Models/Simulators Assumed Safe
Testing and Fault Injection • By using symbolic simulation in Statemate • Boundary Testing • Input that is inside of the variable range • Input that is outside of the variable range • Fault Injection • State variable alternation • State transition redirection
Variable Case 1 Case 2 Case 3 Case 4 Case 5 Input FRAME_COUNTER 2 2 1 1 3 AR_STATUS - - [0, 0, 0, 0] - [0, 1, 0, 0] AR_COUNTER -1 19900 -1 20000 -1 Output AR_STATUS KP KP [1, 0, 0, 0] [0, -, -, -] [1, 0, 1, 0] K_ALT KP KP [1, 1, 1, 1] [1, -, -, -] [0, 1, -, 1] AR_ALTITUDE KP KP [*, -, -, -] [2000,-,-,-] KP Testing Results ARSP Specification Test Input and Output
Variable Case 1 Input FRAME_COUNTER 2 AR_STATUS - AR_COUNTER -1 Output AR_STATUS [1, 1, 0, 0] [1, 0, 0, 0] K_ALT [1, 1, 1, 1] [1, 1, 1, 1] AR_ALTITUDE [2000, 2000, -, -] [2000, -, -, -] Detailed Testing Results - Case 1 • Initial values • Final values • Initial variable values are being calculated based on the given equations.
Variable Case 1 Input FRAME_COUNTER 2 AR_STATUS - AR_COUNTER -1 Output AR_STATUS [1/0, 1, 0, 0] [1, 0, 0, 0] K_ALT [1, 1, 1, 1] [1, 1, 1, 1] AR_ALTITUDE [*, 2000, -, -] [2000, -, -, -] Detailed Fault Injection Results • Change FRAME_COUNTER at CURRENT_STATE from 2 to 3
Summary • Interpretation from NL to Zed • Clarifying ambiguities • Interpretation from Zed to Statecharts • Clarifying misinterpreted Zed specification • Iterative process • Boundary Testing, Fault Injection analysis • Reveals weak point(s) in the system • Fault Tolerance validation
Conclusion • Using this combination of FMs we could: • Clarify ambiguities • Validate Correctness, Completeness, and Consistency • Validate Fault tolerance features of the SRS • This approach enabled us to: • Avoid the problems that result when incorrectly specified artifacts force corrective rework. • Minimize the risk of costly errors being propagated into downstream activities
Future Study • Build concrete translation rules between the methods • Find an effective algorithm to automate the process • Validate the algorithm for the different (domain/ application specific) critical software requirements • In depth comparative study with other approaches