04.05.2015 Views

Dr. Kathryn Anne Weiss Jet Propulsion Laboratory, California ...

Dr. Kathryn Anne Weiss Jet Propulsion Laboratory, California ...

Dr. Kathryn Anne Weiss Jet Propulsion Laboratory, California ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© 2009 <strong>California</strong> Institute<br />

of Technology. Government<br />

sponsorship acknowledged.<br />

<strong>Dr</strong>. <strong>Kathryn</strong> <strong>Anne</strong> <strong>Weiss</strong><br />

<strong>Jet</strong> <strong>Propulsion</strong> <strong>Laboratory</strong>,<br />

<strong>California</strong> Institute of Technology<br />

<strong>Dr</strong>. Peter Feiler<br />

Software Engineering Institute<br />

<strong>Dr</strong>. Dave Gluch<br />

Software Engineering Institute &<br />

Embry-Riddle Aeronautical University<br />

Kurt Woodham<br />

L-3 Communications (now NASA Langley)


Objectives:<br />

To present a rigorous framework for the independent<br />

verification and validation of software systems<br />

through the systematic modeling and analysis of<br />

formal architecture representations.<br />

To demonstrate the framework on an existing system.<br />

AADL Architecture Analysis and Design Language<br />

MDS the Mission Data System<br />

Topics:<br />

An AADL Practice Framework for IV&V<br />

Modeling MDS with AADL<br />

Applying the AADL Practice Framework to an MDS<br />

Adaptation<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

2


Topic 1:<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

3


Software Quality Assurance<br />

Ensuring that the software system adheres to quality<br />

attribute requirements<br />

Quality attributes are measured using Figures of Merit<br />

(FOMs), which also make QA requirements testable<br />

Example:<br />

<br />

<br />

<br />

Quality Attribute Performance<br />

FOM 1 Data Transport Latency<br />

FOM 2 Processor Utilization<br />

Example:<br />

<br />

<br />

Quality Attribute Reliability<br />

FOM Mean Time Between Failures<br />

Adherence to quality attribute requirements<br />

independently verified and validated<br />

How can we facilitate that process?<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

4


Model-Based Software Quality Assurance<br />

Enable quality attribute requirement verification<br />

and validation through the use of models<br />

1<br />

`<br />

2 3 4<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

5


Provides:<br />

Analysis Guidelines<br />

Descriptions of methodologies, tool usage instructions,<br />

viewpoint definitions, and other supporting documents<br />

Component Library<br />

A collection of reusable AADL component type and<br />

implementation declarations that can be used to<br />

create models of a target system<br />

Custom Property Sets<br />

Specialized AADL Property definitions that can be<br />

integrated into standard AADL models<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

6


Create the foundation for analysis<br />

Inputs:<br />

Requirements<br />

Includes Risks and QAs / FOMs<br />

V&V or IV&V Plan<br />

Analysis Repository: Analysis Guidelines<br />

Outputs:<br />

Analysis Plan<br />

Partially Completed Analysis View Reports<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

7


Create the models<br />

Inputs:<br />

Analysis Repository: Component Library<br />

<br />

Utilize existing AADL models<br />

Analysis Repository: Custom Property Sets<br />

<br />

Utilize existing Custom Property Sets<br />

Analysis Plan<br />

Partially Completed Analysis View Reports<br />

Outputs:<br />

Analysis Repository: Component Library<br />

<br />

Add new or modified AADL models<br />

Analysis Repository: Custom Property Sets<br />

<br />

Add new or modified Custom Property Sets<br />

Partially Completed Analysis View Reports<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

8


Using AADL and OSATE<br />

OSATE Open Source AADL Tool Environment<br />

For more information on AADL and OSATE, please visit:<br />

http://www.aadl.info<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

9


Analyze the models and report results<br />

Inputs:<br />

Analysis Plan<br />

Partially Completed Analysis View Reports<br />

Analysis Repository: Component Library<br />

Outputs:<br />

Analysis View Reports<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

10


Topic 2:<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

11


MDS: The Mission Data System<br />

An advanced reference architecture for real-time<br />

embedded control systems<br />

Mission Planning & Execution<br />

Knowledge<br />

Goals<br />

Control<br />

Goals<br />

State<br />

Functions<br />

State<br />

Knowledge<br />

Models<br />

State<br />

Values<br />

State<br />

Estimation<br />

State<br />

Control<br />

System<br />

Under<br />

Control<br />

Measurements<br />

& Commands<br />

Sense<br />

Hardware<br />

Adapter<br />

Commands<br />

Act<br />

Report<br />

Telemetry<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

12


Take an Architectural Approach<br />

Knowledge<br />

Goals<br />

Ground-to-Flight Migration<br />

State<br />

Functions<br />

State and Models are Central<br />

State<br />

Explicit Use of Models<br />

Estimation<br />

System<br />

Under<br />

Measurements<br />

Goal-Directed Operations<br />

Control<br />

& Commands<br />

Closed-Loop Control<br />

Resource Management<br />

Separate State Estimation from State Control<br />

Integral Fault Protection<br />

Acknowledge State Uncertainty<br />

Separate Data Management from Data Transport<br />

Join Navigation with Attitude Control<br />

Instrument the Software<br />

Upward Compatibility<br />

Mission Planning & Execution<br />

Sense<br />

Act<br />

State<br />

Knowledge<br />

Models<br />

Hardware<br />

Adapter<br />

Report<br />

State<br />

Values<br />

State<br />

Control<br />

Commands<br />

For more information on MDS, please visit: http://mds.jpl.nasa.gov<br />

Telemetry<br />

Control<br />

Goals<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

13


State and Models are<br />

Central<br />

Data Ports between producer<br />

and consumer tasks represent<br />

state variables<br />

Separate State<br />

Estimation from State<br />

Control<br />

AADL Package concept<br />

organizes and<br />

compartmentalizes estimators<br />

and controllers<br />

Resource Management<br />

MDS Architectural Theme<br />

Explicit modeling of the<br />

compute platform and<br />

budget-based resource<br />

analysis<br />

AADL Modeling Approach<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

14


Mission Planning & Execution<br />

Knowledge<br />

Goals<br />

Control<br />

Goals<br />

State<br />

Functions<br />

State<br />

Knowledge<br />

Models<br />

State<br />

Values<br />

State<br />

Estimation<br />

State<br />

Control<br />

System<br />

Under<br />

Control<br />

Measurements<br />

& Commands<br />

Sense<br />

Hardware<br />

Adapter<br />

Commands<br />

Act<br />

Report<br />

Telemetry<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

15


Topic 3:<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

16


Rover Wheel Control Example<br />

Wheel 5 Wheel 3 Wheel 1<br />

<strong>Dr</strong>ive<br />

Thread<br />

<strong>Dr</strong>ive<br />

Thread<br />

<strong>Dr</strong>ive<br />

Thread<br />

Steer<br />

Thread<br />

goals<br />

goals<br />

goals<br />

goals<br />

MDS Rover Example<br />

goals<br />

goals<br />

Pilot Thread<br />

goals<br />

Rover Position<br />

& Heading<br />

State Variables<br />

goals<br />

<strong>Dr</strong>ive<br />

Thread<br />

<strong>Dr</strong>ive<br />

Thread<br />

<strong>Dr</strong>ive<br />

Thread<br />

Steer<br />

Thread<br />

Wheel 6<br />

Wheel 4<br />

Wheel 2<br />

Any values in this presentation are illustrative and should not be<br />

taken as representative of any existing MDS adaptation.<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

17


Analysis Plan<br />

Task<br />

Use the AADL Analysis Framework to<br />

analyze the MDS Rover for Project Group<br />

Eta. This is a IV&V project and existing<br />

models are available for use.<br />

Analysis<br />

Critical Issues:<br />

Resource Consumption – CPU<br />

Utilization must not exceed 75%.<br />

Components to Model:<br />

<strong>Dr</strong>ive Control System<br />

Analyses to Perform:<br />

Schedulability<br />

Logistics<br />

Team:<br />

John Smith – Lead<br />

Jack Anderson – Developer<br />

Paul Jones – Developer<br />

Responsibilities:<br />

John Smith – Review models and<br />

analysis results<br />

Jack Anderson – Develop and modify<br />

model<br />

Paul Jones – Analyze model<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

18


Analysis Plan (Detailed Analysis Summary)<br />

Analysis Summary<br />

Quality Attributes Important to the System<br />

ID Quality Attribute <strong>Dr</strong>iving Issue<br />

1<br />

Performance:<br />

Schedulability<br />

Processor utilization must not exceed 75%.<br />

Scope<br />

Component Details Analysis Activity/Activities<br />

<strong>Dr</strong>ive Control<br />

System<br />

Contains all the<br />

controlling threads<br />

Scheduling Analysis<br />

Compute<br />

Platform<br />

Methods<br />

Build model for<br />

scheduling<br />

analysis. Bind<br />

and schedule<br />

threads tool.<br />

Contains Processor<br />

Scheduling Analysis<br />

Analysis Techniques<br />

Properties<br />

Components Required<br />

Required<br />

Period;<br />

Compute_Execution<br />

_Time;<br />

Rover Wheel Control System -<br />

Actual_Processor_ MDS adaptation<br />

Binding;<br />

Clock_Period<br />

High<br />

Priority<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

19


-- There are three thread types created.<br />

-- 1.) Pilot thread (one for the vehicle)<br />

-- 2.) <strong>Dr</strong>iving thread (one for each wheel)<br />

-- 3.) Steering thread (for the front two wheels)<br />

thread pilot<br />

features<br />

intent_in: in data port;<br />

goals_input: in data port;<br />

goals_output: out data port;<br />

commands_in: port group;<br />

commands_out: out data port;<br />

end pilot;<br />

-- base implementation<br />

thread implementation pilot.rover<br />

end pilot.rover;<br />

-- driving and steering threads have the same interface<br />

thread wheel<br />

features<br />

goals_input: in data port;<br />

commands_out: port group;<br />

end wheel;<br />

thread implementation wheel.drive<br />

end wheel.drive;<br />

thread implementation wheel.steer<br />

end wheel.steer;<br />

Refine RA models<br />

by creating various<br />

controller threads<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

20


SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

21


Property Description Property Association<br />

Period<br />

Time between each execution of<br />

a periodically scheduled thread<br />

Period => 50 ms<br />

Compute_Execution_Time<br />

Best and worst case execution<br />

times of a thread.<br />

Compute_Execution_Time => 2 Ms..3Ms<br />

Actual_Processor_Binding<br />

Threads must be bound to a Actual_Processor_Binding =><br />

processor in the model. MDSComputePlatform.MDSProcessor<br />

Clock_Period<br />

The cycle period for the<br />

processor.<br />

Clock_Period => 1000 ps<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

22


View Identifier: Rover Scheduling-1<br />

Process Identifier (optional):<br />

Scope: The rover drive control system<br />

Perspective: Use thread, thread group,<br />

process, and processor components.<br />

Include all relevant scheduling<br />

properties.<br />

Constraints: Include only components<br />

that contribute to the schedulability of the<br />

drive control system.<br />

Analyses: Using execution periods,<br />

times, and processor clocks, assess the<br />

schedulability of the drive control<br />

system threads.<br />

Specific Guidelines: Extract useful items<br />

from existing models. Add necessary<br />

threads for performing analysis.<br />

Model File Name (*.aadl or *.aaxl): Rover_Scheduling_Model.aaxl<br />

Results<br />

Analysis ID Expected Results Actual Results Assessment and Action(s)<br />

1 Load


MB-SQA is an effective approach to independently verifying and validating<br />

quality attribute requirements<br />

Demonstrated via the modeling and analysis of the Mission Data<br />

System reference architecture<br />

<br />

<br />

Camera Heater Control System Adaptation latency analysis<br />

Rover <strong>Dr</strong>ive Control System Adaptation schedulability analysis<br />

The AADL Practice Framework provides processes, tools, and artifacts for<br />

performing MB-SQA in the IV&V context<br />

A well-defined process with supporting infrastructure, not merely the<br />

application of a modeling language<br />

The AADL Practice Framework is currently being expanded to address<br />

development V&V at JPL<br />

“Integrating Model-Based Software Assurance using AADL into Software<br />

Development V&V Process”<br />

<br />

Apply AADL Practice Framework for Model-Based Software Quality<br />

Assurance to a pilot project at the IV&V Facility<br />

Original pilot was the Juno Project<br />

Limited in scope due to schedule and budget constraints<br />

SAS_09_Technical_<strong>Weiss</strong>_AADL_PF<br />

24


Article:<br />

Feiler P., Gluch D., <strong>Weiss</strong> K., Woodham K., “Model-Based<br />

Software Quality Assurance with the Architecture Analysis and<br />

Design Language”, Proceedings of AIAA Infotech @Aerospace 2009<br />

(April 2009).<br />

NASA reports:<br />

Report on Applying the AADL to the Modeling and Analysis of the<br />

MDS Architecture<br />

Report on A Practice Framework for Model-Based Analysis Using<br />

the Architecture Analysis & Design Language (AADL)<br />

Juno Mini study Report: (5 person week effort) requested approval<br />

for public release<br />

Reports shortly available as SEI reports.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!