Software Verification for Space Applications Part 2. Autonomous Systems. G. Brat USRA/RIACS



Similar documents
Goal-Driven Adaptable Software Architecture for UAVs

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Rotorcraft Health Management System (RHMS)

School of Computer Science

Specification and Analysis of Contracts Lecture 1 Introduction

SOFTWARE TESTING TRAINING COURSES CONTENTS

Chapter 13: Program Development and Programming Languages

Architecture Design & Sequence Diagram. Week 7

Introducing Formal Methods. Software Engineering and Formal Methods

TECH. Requirements. Why are requirements important? The Requirements Process REQUIREMENTS ELICITATION AND ANALYSIS. Requirements vs.

The Data Grid: Towards an Architecture for Distributed Management and Analysis of Large Scientific Datasets

Runtime Verification - Monitor-oriented Programming - Monitor-based Runtime Reflection

Software Engineering. Software Processes. Based on Software Engineering, 7 th Edition by Ian Sommerville

Federated, Generic Configuration Management for Engineering Data

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Open EMS Suite. O&M Agent. Functional Overview Version 1.2. Nokia Siemens Networks 1 (18)

IBM RATIONAL PERFORMANCE TESTER

Systems Engineering Interfaces: A Model Based Approach

Chapter 13: Program Development and Programming Languages

Space Flight Project Work Breakdown Structure

Software Modeling and Verification

USE OF PYTHON AS A SATELLITE OPERATIONS AND TESTING AUTOMATION LANGUAGE

Development of AUTOSAR Software Components within Model-Based Design

A Characterization Taxonomy for Integrated Management of Modeling and Simulation Tools

Base One's Rich Client Architecture

Real Time Developer Studio. Emmanuel Gaudin

Kirsten Sinclair SyntheSys Systems Engineers

Analysis of the Specifics for a Business Rules Engine Based Projects

UML-based Test Generation and Execution

The Service Revolution software engineering without programming languages

the Reactive Model-based Programming Language for Robotic Space Explorers

The Model Checker SPIN

Open source business rules management system

Introduction to Automated Testing

Best practices for developing DO-178 compliant software using Model-Based Design

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Secure Semantic Web Service Using SAML

FIPA agent based network distributed control system

Towards a Framework for Generating Tests to Satisfy Complex Code Coverage in Java Pathfinder

APPLICATION DEVELOPMENT FOR THE IOT ERA. Embedded Application Development Moves to the Cloud

Summer Internship 2013 Group No.4-Enhancement of JMeter Week 1-Report-1 27/5/2013 Naman Choudhary

Certification of a Scade 6 compiler

FioranoMQ 9. High Availability Guide

System modeling. Budapest University of Technology and Economics Department of Measurement and Information Systems

Verification and Validation of Software Components and Component Based Software Systems

ESA s Data Management System for the Russian Segment of the International Space Station

SCADE Suite in Space Applications

Telepresence for Deep Space Missions Project

Introduction to Basics of Communication Protocol

Software Development Workflow in Robotics

Application Architectures

Temperature Control Loop Analyzer (TeCLA) Software

Tool Support for Model Checking of Web application designs *

Open Source Business Rules Management System Enables Active Decisions

How To Test Automatically

Revision History Revision Date Changes Initial version published to

Model-based Testing of Automotive Systems

Integrated Open-Source Geophysical Processing and Visualization

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

Model-Based Testing of Spacecraft Flight Software

Generating Aspect Code from UML Models

1 File Processing Systems

Assessing Quality Processes with ODC COQUALMO

MEng, BSc Applied Computer Science

ESB Features Comparison

REDUCING THE COST OF GROUND SYSTEM DEVELOPMENT AND MISSION OPERATIONS USING AUTOMATED XML TECHNOLOGIES. Jesse Wright Jet Propulsion Laboratory,

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

U.S. Navy Automated Software Testing

Developing a Service Oriented Process Management System for University Quality Assurance

Challenges and Opportunities for formal specifications in Service Oriented Architectures

Overview Motivating Examples Interleaving Model Semantics of Correctness Testing, Debugging, and Verification

Visual Programming of Logic, Motion, and Robotics

A MODERN DISTRIBUTION MANAGEMENT SYSTEM FOR REGIONAL ELECTRICITY COMPANIES

Model Checking based Software Verification

Designing a Semantic Repository

To introduce software process models To describe three generic process models and when they may be used

Datavetenskapligt Program (kandidat) Computer Science Programme (master)

Model Driven Testing AGEDIS Architecture Interfaces and Tools

Getting Things Done: Practical Web/e-Commerce Application Stress Testing

CMSC 435: Software Engineering Course overview. Topics covered today

Organization of DSLE part. Overview of DSLE. Model driven software engineering. Engineering. Tooling. Topics:

Model Checking of Software

ATV Data Link Simulator: A Development based on a CCSDS Layers Framework

MEng, BSc Computer Science with Artificial Intelligence

An Object Model for Business Applications

Software testing. Objectives

ARINC 653. An Avionics Standard for Safe, Partitioned Systems

SERENITY Pattern-based Software Development Life-Cycle

Demonstration of an Automated Integrated Test Environment for Web-based Applications

Translation Protégé Knowledge for Executing Clinical Guidelines. Jeong Ah Kim, BinGu Shim, SunTae Kim, JaeHoon Lee, InSook Cho, Yoon Kim

Workflow Requirements (Dec. 12, 2006)

Transcription:

Software Verification for Space Applications Part 2. Autonomous Systems G. Brat USRA/RIACS

Main Objectives Implement a sustained and affordable human and robotic program to explore the solar system and beyond; Extend human presence across the solar system, starting with a return to the Moon by the year 2020, in preparation of the exploration of Mars and other destination; Develop the innovative technologies, knowledge, and infrastructures, both to explore and to support decisions about the destinations for human exploration; Promote international and commercial participation in exploration to further U.S. scientific, security, and economic interests.

Many Robotic Missions Moon Mars Outer Moons Extrasolar Planets 2000 2010 2020

Mission: Mars Science Laboratory Long range traverses (< 6km) Collect samples Analyze samples on-board

NASA Software Challenges Need to develop three systems for each mission: Flight software Ground software Simulation software Flight software Rovers will require more adaptable software to do long traverses for example Ground software Need planning software for planning operations Need autonomous execution for uploading and executing commands on ISS or on-orbit V&V of a different type of software systems

Autonomous systems: 2005 Interface to users/operations Generates plans of activities given highlevel goals and activity constraints Transform plans into scheduled low-level control actions EUROPA II (Planner) Interface PLEXIL Model Formal execution language that issue low-level commands Controlled Hardware

V&V Strategy Interface to users/operations Graph manipulation errors: static analysis, symbolic execution and advanced testing Meta-rule errors: model checking, static analysis Run time errors: static analysis Safety properties: model checking and compositional verification Other properties of interest: Real-time Convergence/divergence EUROPA II (Planner) Interface PLEXIL Model Ambuigity, inconsistency, completeness: symbolic model checking Functional reqs: symbolic model checking Controlled Hardware

Cancel at the end of 2005 Interface to users/operations EUROPA II (Planner) Model Interface CANCELLED! PLEXIL Controlled Hardware

Autonomy for Operations Project: 2006 Autonomy for Operations PIs: Jeremy Frank & Ari Jonsson PM: Robert Brummett Project goal: Develop and mature needed automation software capabilities for Constellation mission operations, onboard control, crew assistance and robotics. Core capabilities Human in-the-loop automation Monitored execution Decision support Operation requirement studies Simulation and testbeds Application and prototypes Verification

Background Mission Operations Operating procedure generation Space flight operations planning Remote system operations (nominal and off-nominal) Support of crew control (nominal and off-nominal) Crewed Spacecraft Operations Spacecraft systems operations (nominal and off-nominal) Robotic Operations Explorers and scouts on the lunar surface Assistants and tools for human explorers Lunar Infrastructure Operations Control of habitats, communications and power equipment, etc. Unmanned Spacecraft Operations Remote system operations (nominal and off-nominal)

Operation challenges Mission Operations State of art : Many tools, lack of interoperability Need: Flexible, evolvable and sustainable mission operations paradigm Crewed Spacecraft Operations State of art : Crew relies on ground to support and control operations Need: Crews able to operate systems and own tasks more independently Robotics Operations State of art: Requires multiple operators for command and monitoring Need: Effective sustainable robot operations with less human oversight Lunar Surface Operations State of art : Ground-based operation of most surface assets Need: Effective sustainable robot operations with less human oversight Unmanned Spacecraft Operations State of art: Requires direct human command and monitoring Need: Effective and reliable operations with less human oversight

Approach: A4O Key elements of technology Re-usable, interoperable and adaptable architecture Data-driven general and re-usable modules Common data specifications support adaptability, evolvability and interoperability of tools based on standards developed by CSI Automation capabilities Monitoring and analysis of telemetry and system states Decision Support: From help for users to on-board decision-making Execution: Carry out decisions and plans, from humans and automation Human interaction support Adjustable automation allows humans to handle more or less as needed Assistance provides summary of information, options, evaluations, warnings Complementary capabilities based on computational power Flexible and reusable - on ground and on board Enable transition from initial manual flights to sustainable operations Same core capabilities used on ground, in flight and on lunar surface

Executive Executive Lightweight engine for executing PLEXIL plans Small memory and processor footprint General and reusable Same engine for many applications Compiles on VxWorks, Linux, Solaris, OSX Simple, well defined interface to low level control Commanding interface Sensing interface Provides tools for users Verifying, validating, simulating, and debugging Applications Drives procedure execution automation Executes plans for on-board operations Runs K10 rover activity plans on board Interfaces PLEXIL Universal Executive Interface to systems

Procedure representation Procedures Notion generalizes a number of existing concepts: Command sequences, plans, checklists, diagnosis procedures, etc. Procedures for both humans and automation PRL: Human-understandable; e.g., operations procedures PLEXIL: Machine-understandable; e.g., plans and command sequences Need a combination to enable adjustable automation Procedure Representation Language (PRL) Combines ISS procedure schema with PLEXIL schema XML-based language Elements of PRL Meta data provides names, context, version, etc. for procedure Control data provides logical control and safety conditions Steps and nodes structure procedure for human readability Instructions specify instructions, commands, etc.

Executive validation Main focus: how to validate procedures? We have five major efforts under way Definition of formal semantics of PLEXIL language Model-based generation of test plans for PLEXIL Model checking of PLEXIL procedures Simulation of PRL procedures Model checking of PRL procedures

Procedure representation PLEXIL Plan Execution Interchange Language For describing plans, sequences, procedures, scripts, etc. Simple syntax that is very powerful Timed command sequences, event driven sequences, monitors Concurrent execution, repeating sequences, etc. Contingencies, conditionals, etc. Designed to facilitate validation and certification Guarantees unambiguous execution Provides guarantees against deadlocks Simple syntax facilitates validation and checking General and reusable PLEXIL is logical automation core of PRL Control logic and safety conditions in PRL map to PLEXIL Execution semantics and properties of PLEXIL extend to PRL

Model checking of procedures We investigate two ways of applying model checking to procedures Compositional model checking using LTSA: Build Labelled Transition System Analyser (LTSA) models for underlying physical system (e.g., using FSM models for simulation) procedures Define safety properties of interest for the procedures Model check the LTSA models using compositional techniques to alleviate the state explosion problems SMART model checking: Build SMART models of PLEXIL macros Check for deadlock and behavioral correctness properties Investigate scalability of the approach by defining appropriate abstractions

Formal semantics of execution language The definition of formal semantics of PLEXIL language is necessary for the development of formal verification tools Our approach: Described behavioral formal semantics of PLEXIL in LTSA models Detection of subtle execution errors in PLEXIL models Automatic translation of PLEXIL procedures into LTSA models Described formal semantics of PLEXIL in PVS Prove determinism and behavioral determinism for the PLEXIL language

Behavioral models for PLEXIL Behavioral model for the state waiting of a PLEXIL node Start Cond ition T Pre condition true EXECU TING WAITIN G 3 1 2 Ancestor End T false, unknown SKIPPE D FAILURE FINISH ED Repeat Until Condition T? true false FINISH ED WAITIN G Ancestor Invariant F SKIPPE D FINISH ED

Composition of node models PLEXIL Plan PLEXIL node PLEXIL node PLEXIL node PLEXIL node Composed LTSA Model for PLEXIL Plan

Translation of System Models XML Model For System Interface Translator LTSA Model for System Interface

Example of safety property in LTSA enterrpcopen enterrpccinhibited enterrpcopen FireProof1 fire enterrpccinhibited enterrpcopen enterrpcopen enterrpccenabled 0 1 2 3 4 5 6 7 {enterrpccenabled, {enterrpccenabled, enterrpcclosed, {enterrpccinhibited, enterrpcclosed, {enterrpccenabled, fire} enterrpcclosed, {enterrpccenabled, fire} {enterrpccinhibited, fire} enterrpcopen, {enterrpccinhibited, enterrpcclosed, fire} {enterrpccenabled, enterrpcopen, fire} enterrpcopen, fire} fire} enterrpccenabled enterrpccinhibited enterrpcclosed enterrpccinhibited enterrpcclosed fire fire enterrpccenabled enterrpcclosed

Compositional Verification System Model PLEXIL Plan Model Compositional Verification Full LTSA Model Safety Property

Compositional V&V Component A Component B Component C Design-level: decompose (architecture) establish contracts (assume-guarantee pairs) between components to guarantee key system-level properties Code-level: verify and test verify or test each component against its individual contracts Reconfiguration Reconfiguration verify new components against contracts of substituted ones

Compositional Verification satisfies P? M 1 A M 2 Decompose properties of system (M 1 M 2 ) in properties of its components Does M 1 satisfy P? typically a component is designed to satisfy its requirements in specific contexts / environments Assume-guarantee reasoning: introduces assumption A representing M 1 s context Simplest assume-guarantee rule 1. A M 1 P 2. true M 2 A 3. true M 1 M 2 P discharge the assumption

Model-based Plexil testing Test Plan Generation PLEXIL Grammar (XML Schema) Castor Tool Java representati on Test Plan Generator (Java PathFinder Model checking tool) PLEXIL Test plans (XML Files) The goal is to automatically generate procedures for testing PLEXIL based on the PLEXIL grammar The Castor-based translation is done The test plan generation is inherited from previous research

PRL Example Original procedure Encoding in PRL <Step stepid="step3"> <StepTitle> <StepNumber>3</StepNumber> <Text>RPCM Firmware Health</Text> </StepTitle> <InstructionBlock> <Instruction instructionid="step3_i1"> <VerifyInstruction> <VerifyGoal> <TargetDescription> <Text>Verify ORU Health OK</Text> </TargetDescription>.

Procedure authoring and checking Authoring Graphical and Textual Editing Syntax checking and Syntax constraints Viewing Static and Dynamic views on procedures Procedure Checking Check procedures against flight rules Check procedures against constraints Assist in evaluation of simulation results General interface supports plug and play of validation components Configuration and workflow management Support workflow, including repositories, signoffs, etc.

Procedure editing environment Automated checker and verifier System state simulation with property checking Interoperation layer Procedure editor Interactive Procedure test

Simulation of PRL procedures Build finite state machine (FSM) models describing the underlying physical system (at least, its interface to the operator world) Simulate the execution of the procedure in conjunction with the FSMs Identify missing pre-conditions for nominal state execution

Model-based simulation of procedures Procedural Display Hangar Off State Machine based Simulator Deploy Docked Failure mode and fault events injection Procedure and Display Mini AERCam Procedure SYSTEM Power Up and Configuration Attitude Free Drift Auto. Attitude Control FreeFlyerGN&C Free Flight Translation Free Drift Auto. Translation Control Flight Rules Verifier Gyro Off Not Operational On Operational Logger Playback

Model checking of PRL Procedures Hangar XML Model For System Interface Translator Simulator Deploy Off Docked FreeFlyerGN&C Attitude Free Drift Translation Free Drift Auto. Attitude Control Free Flight Auto. Translation Control System Model Gyro Off Not Operational Operational PLEXIL Plan Model On Error trace Safety Property JPF Full JPF Model

Java Pathfinder It is an extensible explicit state software model checker for Java byte code. Open-sourced on 28 April 2005 http://sourceforge.net/projects/javapathfinder/ 2003 TGIR Award winner

Decision Support V&V Validation of planning models by translating them into model checking models Validation of plans and plan robustness Automatic generation of test cases to test against flight rules

Validation of planning models The goal is to study validation of planning models by translating them into SAL model checking models Approach: Definition of a simple planning language, called APPL (A Plan Preparation Language), based on NDDL that is more amenable to formal verification Automatic translation from APPL models to NDDL models Automatic translation from APPL models to SAL models We also study the relationship between APPL and the language unifying NDDL and Casper Investigation issues of representation in SAL so that scalability problem can be avoided For example, the representation of time and timers

Automatic generation of tests for planner The goal is to automatically generate test cases for planners so that we can test against flight rules Process: Modeling flight rules in appropriate language We started with LTL (linear temporal logic), but are considering others Generate coverage conditions that cover flight rules according to unique cause criterion Unique cause is an extension of the commonly used MC/DC coverage criterion mandated by the FAA Generate test case in the form of Europa goals (or partial plans) using the coverage conditions

Test case generation for NDDL IDE Flight Rules (English) Editor Flight Rules (patterns) Expand Flight Rules (LTL, ATL) Domain Model (NDDL) Plans EUROPA FAIL Test Suite (NDDL cmds = goals = partial plans) Test Case Generator Generate Coverage Conditions (set of LTL, ATL) Translate