Safety-Critical Firmware What can we learn from past failures?
|
|
|
- Lorraine Jemima Atkinson
- 10 years ago
- Views:
Transcription
1 Safety-Critical Firmware What can we learn from past failures? Michael Barr & Dan Smith Webinar: September 9, 2014 MICHAEL BARR, CTO BSEE/MSEE and Firmware Developer Consultant and Trainer (1999-present) Former Adjunct Professor! University of Maryland, Johns Hopkins University Former Editor-in-Chief; Columnist; Conference Chair Expert witness! unintended acceleration injuries; smartphone and set-top patents Author of 3 books and 70+ articles/papers 2 Copyright Barr Group. All rights reserved. Page 1
2 BARR GROUP The Embedded Systems Experts Barr Group helps companies make their embedded systems safer and more secure. barrgroup.com 3 UPCOMING PUBLIC BOOT CAMPS Embedded SOFTWARE Boot Camp! October near Detroit, Michigan Embedded ANDROID Boot Camp! October in Costa Mesa, California Embedded SECURITY Boot Camp! November 3-7 in Dallas, Texas 4 Copyright Barr Group. All rights reserved. Page 2
3 UPCOMING PUBLIC 1-DAY TRAINING Firmware Defect Prevention for Safety-Critical Devices! September 23 rd near Detroit, Michigan Overview! Focus on cost-effective defect prevention best practices! For engineers and managers in safety-critical fields 5 DAN SMITH, PRINCIPAL ENGINEER BSEE from Princeton 20+ years of embedded systems design! Fields: Control systems, telecom/datacom, medical devices, defense, transportation! Roles: engineer, instructor, speaker, consultant! Numerous RTOSes, processors, platforms Focus on secure, safe, fault-tolerant systems 6 Copyright Barr Group. All rights reserved. Page 3
4 OVERVIEW OF TODAY S WEBINAR Goal! Examine past software failures in critical systems! Learn how to avoid repeating the past Key Takeaways! Failures often traceable to preventable defects! Combination of education, process and vigilance Prerequisites! Knowledge of C (and perhaps a bit of C++) 7 CRITICAL SYSTEMS Defined: A (safety) critical system can cause injury or death when it malfunctions. Other disciplines, weighty concerns:! High Security Systems (access control, military)! High Availability Systems (grid, mobile/cellular, internet)! Mission critical systems (unmanned exploration) Commission / Omission 8 Copyright Barr Group. All rights reserved. Page 4
5 LOOKING THROUGH A KEYHOLE Much more to developing safety-critical systems! Planning, staffing, training, budgeting! Product specifications, requirements, test plans! Hardware, mechanical, redundancy, fail-safes! Modeling / simulation, formal proofs, fuzzing! Testing, validation, verification Presentation covers only implementation phase! Specifically, firmware development 9 ROLE OF FIRMWARE IN CRITICAL SYSTEMS Increasing role of firmware in:! Automobiles & transportation in general! Mobile electronics (phone, GPS, etc.)! Medical devices! we could go on & on & on More functionality being pushed into firmware! Operations formerly handled by hardware! Greater complexity, greater potential for problems 10 Copyright Barr Group. All rights reserved. Page 5
6 RIPPED FROM THE HEADLINES Source: HINDSIGHT Of course the cause & fix is obvious!! Then why same mistakes repeated over & over?!?! Similar lessons from security (e.g. buffer overflow) Point isn t to criticize or taunt! Avoid repeating the same mistakes 12 Copyright Barr Group. All rights reserved. Page 6
7 THERAC-25 Images: 13 THERAC: WHAT HAPPENED? Hardware interlocks were designed out! Previous generations had them, replaced with software Early sign of software s increasing safety responsibility Race conditions & improper machine settings! High energy beam activated without spreader plate! One byte-counter overflowed at just the wrong time Result: 100x radiation dosage! At least 6 patients harmed, 3 killed 14 Copyright Barr Group. All rights reserved. Page 7
8 THERAC: FINDINGS Atomic Energy of Canada Limited (AECL):! Immature and inadequate software development process ( untestable software )! Incomplete reliability modeling & failure mode analysis! No (independent) review of critical software! Improper software re-use from older models! Improper inter-task synchronization Also notable:! System implemented in assembly language! System used own in-house operating system 15 ARIANE 5 / FLIGHT 501 Successor to smaller Ariane 4 rocket! Designed to carry larger, heavier payloads! Today: standard launch vehicle for ESA June 1996: Maiden flight Payload: Cluster! Four 1200-kg spacecraft! Mission: study Earth s magnetosphere 16 Image Source: Copyright Barr Group. All rights reserved. Page 8
9 FLIGHT 501 FAILURE 37 seconds into launch! Both inertial navigation systems malfunction & crash! Thrusters steered into extreme & incorrect orientations! Vehicle departed from intended flight path Flight termination system! Mechanical stresses triggered deliberate self-destruction! Fortunately that worked as intended!!! Cost: approximately $370M 17 FLIGHT CAUSE Inertial navigation system (SRI) re-used from Ariane 4 Flight 501 much greater horizontal velocity! Conversion: 64-bit floating point to 16-bit integer 18! Variable holding horizontal velocity overflowed! Overflow checks omitted for efficiency Implementation language was Ada! Typically regarded as a safer implementation language Software where error occurred:! Not needed after launch! Copyright Barr Group. All rights reserved. Page 9
10 MISRA C:2012 Directive 4.1: Run-time failures shall be minimized. C s run-time environment is very light-weight! Unchecked array access, divide by 0, dynamic allocation Implication:! Burden is on you, the programmer Tactic: Extensive (dynamic) run-time checking 19 ASSERTIONS Software assertions! Used to confirm programmer s assumptions at runtime Also a form of documentation C language: assert() (header file <assert.h>)! Expression is expected to evaluate to TRUE bool$isinrange(int$lower_bound,$int$upper_bound,$int$value)$ {$ $$assert(lower_bound$<=$upper_bound);$ $$ $ }$ What if expression evaluates to FALSE? 20 Copyright Barr Group. All rights reserved. Page 10
11 REMOVING ASSERTIONS Cost of assertions! Run time (CPU), code size Removing / disabling assertions! Typically by defining NDEBUG at compile time Assertions turn into whitespace! Often done just before shipping / production Ship what you tested Parachutes and pennies! And seatbelts 21 FLIGHT LESSONS Re-use of software isn t always an automatic win Mixing data types (e.g int & float) can be problematic! It s not just C that suffers from such problems Don t execute unnecessary software Disable assertions (sanity checks) at your own risk Consideration of failure modes is important too 22 Copyright Barr Group. All rights reserved. Page 11
12 WHAT ABOUT TESTING? Testing is necessary and important! But not sufficient Testing does not prove the absence of bugs! Some bugs escape to the field And are often very difficult to reproduce! Tests are software, too Bugs aren t limited to production code Tests are just one part of an overall quality strategy 23 PATRIOT MISSILE SYSTEM 24 Copyright Barr Group. All rights reserved. Page 12
13 PATRIOT MISSILE FAILURE : February 25, 1991! 28 U.S. soldiers dead; 100+ wounded! Single deadliest incident for U.S. 25 THE PATRIOT SOFTWARE BUG Two versions of system time! Clock 1: integer ticks (one tick = 0.1s) 26! Clock 2: fixed-point representation 3.25s:' ' Problem: no exact representation of 0.1 decimal (base 10) in binary ( non terminating )! Conversion from integer ticks to floating point values results in rounding (about 1 part in a million) After 100 hours (360,000 seconds), this is ~0.34 seconds! But what does that translate to in terms of distance? GAO Report: Copyright Barr Group. All rights reserved. Page 13
14 PERILS OF FLOATING POINT, 1 void$test1(void)${$ $$float$f$=$0.1f;$printf("%0.6f\n",$f);$ $$f$+=$0.1f;$$$$$$printf("%0.6f\n",$f);$ }$ void$test2(void)${$ $$float$f$=$0.1f;$printf("%0.9f\n",$f);$ $$f$+=$0.1f;$$$$$$printf("%0.9f\n",$f);$ }$ int$main(void)${$ $$test1();$ $$test2();$ $$ $ $ $ $ $ 27?!?!? PERILS OF FLOATING POINT, 2 void$test3(void)${$ $$float$f1$=$0.1f,$f2$=$0.3f;$ $$f1$+=$0.3f;$f1$+=$0.7f;$ $$for$(int$i$=$0;$i$<$8;$++i)$${$ $$$$f2$+=$0.1f;$ $$}$ $$printf("%0.9f\n%0.9f\n",$f1,$f2);$ }$ int$main(void)${$ $$test3();$ $$return$0;$ }$ $ $ Larger error accumulation due to rounding on each iteration of loop 28 Copyright Barr Group. All rights reserved. Page 14
15 ACCUMULATED ERROR Uptime (h) Error (s) Shift (m) GAO Report: PATRIOT MISSILE FAILURE: LESSONS Testing will not catch all problems Mixing floating point and fixed point/integer operations can be tricky! In fact using floating point alone can be tricky! Tracking time (or any precise quantity)! Be consistent! Understand precision, rounding and conversion 30 Copyright Barr Group. All rights reserved. Page 15
16 MARS CLIMATE ORBITER 31 Source: UNITS ARE IMPORTANT Ultimately, computers calculate things! Most calculations involve dimensions & units! Pressure(kPa), velocity(m/s), flow (l/m), etc. Common unit mistakes in calculations! Same fundamental dimension, different system e.g. SetVelocityMetersPerSec(MPH_55);'! Disagreement in fundamental dimensions e.g. SetAcceleration((pos2?pos1)/time));' 32 Copyright Barr Group. All rights reserved. Page 16
17 DIMENSIONAL ANALYSIS In C, no unit information in standard types e.g. int'speed'='1234;'! Is that meters per second?! Is that miles per hour? e.g. float'calcpress(float'force,'float'area);'! What are the units for force & area? Can we use the language s type system to help?! Yes, and static analysis, too (e.g. Flexelint 9) 33 USING FLEXELINT 9 TO EXPOSE DIMENSION / UNIT PROBLEMS $$$$$1 $//$Dimensional$analysis$demonstration.$ $$$$$2 $//$Report$whenever$a$variable$(such$as$v)$typed$as$a$Velocity$ $$$$$3 $//$is$assigned$anything$other$than$a$velocity$or$a$met/sec.$ $$$$$4 $$ $$$$$5 $//lint$wstrong($acjcx,$met,$sec,$velocity$=$met/sec$)$ $$$$$6 $typedef$double$met,$sec,$velocity;$ $$$$$7 $$ $$$$$8 $Velocity$speed($Met$d,$Sec$t$)${$ $$$$$9 $$$Velocity$v;$ $$$$10 $$$v$=$d$/$t;$$$$$$$$$$$$$$//$ok$ $$$$11 $$$v$=$1$/$t;$$$$$$$$$$$$$$//$nope!$ $$$$12 $$$v$=$(3.5/t)$*$d;$$$$$$$$//$ok$ v$=$1$/$t;$$$$$$$$$$$$$$//$warning$ dimensional2.c$$11$$warning$632:$assignment$to$strong$type$'met/sec'$ in$context:$assignment$ dimensional2.c$$11$$warning$633:$assignment$from$a$strong$type$'1/ Sec'$in$context:$assignment$ 34 Copyright Barr Group. All rights reserved. Page 17
18 C DON T USE NAKED NUMBERS Consider an object-oriented approach! Create different types (classes) for different units typedef$uint32_t$speed1;$ typedef$uint16_t$speed2;$ typedef$struct$foo_tag${$ $$SPEED1$SpeedInCmPerSec;$ }$SPEED_CM_S;$ typedef$struct$foo_tag2${$ $$SPEED2$SpeedInMilesPerHour;$ }$SPEED_M_H;$ $ //$Below$routines$would$have$builtWin$bounds$checking,$etc.$ void$ctor1speedcmpersec(speed_cm_s$*obj,$speed1$initspeedcmpersec);$ void$ctor2speedcmpersec(speed_cm_s$*obj,$speed_m_h$const$*speedin);$ void$adjustspeedcmpersec(speed_cm_s$*current,$speed_cm_s$const$*adjustment);$ $ 35 EVEN BETTER USE C++ C++ is a perfect fit for this problem! Stronger type system than C! Templates & metaprogramming enforce dimensional correctness at compile time! More information:! Paper, Scott Meyers, Dimensional Analysis in C++ 1! See Boost::Units Copyright Barr Group. All rights reserved. Page 18
19 FILTERING OUT THE DEFECTS Coding Standard (e.g. MISRA) Static Analysis Formal Code Inspection Testing (multiple levels) 37 KEY TAKEAWAYS No such thing as bug-free software Testing is not sufficient Defense in depth just like security! Coding Standard / safe subset (e.g. MISRA standard)! Process (static analysis, code inspections)! Knowledge is a pro-active approach Always better to prevent than to find & fix 38 Copyright Barr Group. All rights reserved. Page 19
20 FURTHER READING Haven t found that glitch Dr. David Cummings Mars Code - Gerard J. Holzmann Text: Video: Better Embedded System SW (Phil Koopman) 39 QUESTION & ANSWER 40 Copyright Barr Group. All rights reserved. Page 20
21 ADDITIONAL RESOURCES Paper: Top 10 Bug-Killing Coding Standard Rules barrgroup.com/embedded-systems/how-to/bug-killing- Standards-for-Embedded-C Michael Barr s Blog: Barr Code Training: Barr Group s Upcoming Public Courses barrgroup.com/training-calendar 41 CONCLUSION 42 Copyright Barr Group. All rights reserved. Page 21
Top 10 Bug-Killing Coding Standard Rules
Top 10 Bug-Killing Coding Standard Rules Michael Barr & Dan Smith Webinar: June 3, 2014 MICHAEL BARR, CTO Electrical Engineer (BSEE/MSEE) Experienced Embedded Software Developer Consultant & Trainer (1999-present)
Software Engineering. Computer Science Tripos 1B Michaelmas 2011. Richard Clayton
Software Engineering Computer Science Tripos 1B Michaelmas 2011 Richard Clayton Critical software Many systems must avoid a certain class of failures with high assurance safety critical systems failure
SCADE Suite in Space Applications
SCADE Suite in Space Applications at EADS David Lesens 09/10/2008 Overview Introduction Historical use of SCADE at EADS Astrium ST Why using SCADE? The Automatic Transfer Vehicle (ATV) M51 and Vega R&T
Technical Report CMU/SEI-88-TR-024 ESD-TR-88-025
Technical Report CMU/SEI-88-TR-024 ESD-TR-88-025 System Specification Document: Shipboard Inertial Navigation System Simulator and External Computer B. Craig Meyers Nelson H. Weiderman October 1988 Technical
CS4507 Advanced Software Engineering
CS4507 Advanced Software Engineering Lecturer: Adrian O Riordan Office: Room G.71 WGB Email: a.oriordan cs.ucc.ie Course Webpage: http://www.cs.ucc.ie/~adrian/cs4507.html CS4507 Overview 5 Credit course
Software Safety Basics
Software Safety Basics (Herrmann, Ch. 2) 1 Patriot missile defense system failure On February 25, 1991, a Patriot missile defense system operating at Dhahran, Saudi Arabia, during Operation Desert Storm
Introduction. Getting started with software engineering. Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1
Introduction Getting started with software engineering Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 1 Slide 1 Why? the Therac-25 Failure 1985-1987 Therac-25 Radiation Treatment Machine
Minimizing code defects to improve software quality and lower development costs.
Development solutions White paper October 2008 Minimizing code defects to improve software quality and lower development costs. IBM Rational Software Analyzer and IBM Rational PurifyPlus software Kari
Software Testing & Analysis (F22ST3): Static Analysis Techniques 2. Andrew Ireland
Software Testing & Analysis (F22ST3) Static Analysis Techniques Andrew Ireland School of Mathematical and Computer Science Heriot-Watt University Edinburgh Software Testing & Analysis (F22ST3): Static
New trends in medical software safety: Are you up to date? 5 October 2015, USA
TÜV SÜD New trends in medical software safety: Are you up to date? 5 October 2015, USA Dr. Peter Havel, Senior Vice President, Medical & Health Services (MHS) TÜV SÜD Product Service [email protected] The
The Therac 25 A case study in safety failure. Therac 25 Background
The Therac 25 A case study in safety failure Radiation therapy machine The most serious computer-related accidents to date People were killed References: Nancy Leveson and Clark Turner, The Investigation
Rigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 1 Important Facts Office Hours: Thu 3-4pm, or by appointment Office: CIWW 407 Course web site: http://cs.nyu.edu/wies/teaching/rsd-13
The Course. http://www.cse.unsw.edu.au/~cs3153/
The Course http://www.cse.unsw.edu.au/~cs3153/ Lecturers Dr Peter Höfner NICTA L5 building Prof Rob van Glabbeek NICTA L5 building Dr Ralf Huuck NICTA ATP building 2 Plan/Schedule (1) Where and When Tuesday,
Die wichtigsten Use Cases für MISRA, HIS, SQO, IEC, ISO und Co. - Warum Polyspace DIE Embedded Code-Verifikationslösung ist.
Die wichtigsten Use Cases für MISRA, HIS, SQO, IEC, ISO und Co. - Warum Polyspace DIE Embedded Code-Verifikationslösung ist. Christian Guß Application Engineer The MathWorks GmbH 2015 The MathWorks, Inc.
Abstract Interpretation-based Static Analysis Tools:
Abstract Interpretation-based Static Analysis Tools: Proving the Absence of Runtime Errors and Safe Upper Bounds on the Worst-Case Execution Time and Safe Upper Bounds on the Stack Usage Christian Ferdinand
PATRIOT MISSILE DEFENSE Software Problem Led to System Failure at Dhahran, Saudi Arabia
--.- /Initcd Stdcs General Accounting Offiw Ikport to the Chairman, Subcommittee on Investigations and Oversight, Committee on Science, Space, and Technology, House of Rcprcsentativcs PATRIOT MISSILE DEFENSE
Dependable Systems Course. Introduction. Dr. Peter Tröger
Dependable Systems Course Introduction Dr. Peter Tröger Dependable Systems Course Extended version of the Dependable Systems course at Humboldt University (www.rok.informatik.hu-berlin.de) Knowledge gained
A Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
Software: Driving Innovation for Engineered Products. Page
Software: Driving Innovation for Engineered Products Software in products holds the key to innovations that improve quality, safety, and ease-of-use, as well as add new functions. Software simply makes
Motivation and Contents Overview
Motivation and Contents Overview Software Engineering Winter Semester 2011/2012 Department of Computer Science cs.uni-salzburg.at Dr. Stefan Resmerita 2 Course Contents Goals Learning about commonly used
Static vs. Dynamic Testing How Static Analysis and Run-Time Testing Can Work Together. Outline
Static vs. Dynamic Testing How Static Analysis and Run-Time Testing Can Work Together S. Tucker Taft and Brian Lesuer SQGNE December 2006 Outline The Challenges Facing Software Testing A Software Testing
Sound Verification Techniques for Developing High-Integrity Medical Device Software
ESC-360 Sound Verification Techniques for Developing High-Integrity Medical Device Software Jay Abraham The MathWorks Paul Jones FDA / CDRH Raoul Jetley FDA / CDRH Abstract Embedded software in medical
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2006 Vol. 5, No. 6, July - August 2006 On Assuring Software Quality and Curbing Software
The Road from Software Testing to Theorem Proving
The Road from Software Testing to Theorem Proving A Short Compendium of my Favorite Software Verification Techniques Frédéric Painchaud DRDC Valcartier / Robustness and Software Analysis Group December
Quality Management. Lecture 12 Software quality management
Quality Management Lecture 12 Software quality management doc.dr.sc. Marko Jurčević prof.dr.sc. Roman Malarić University of Zagreb Faculty of Electrical Engineering and Computing Department of Fundamentals
Software Engineering. Hans van Vliet Vrije Universiteit Amsterdam, The Netherlands email: [email protected]
Software Engineering Hans van Vliet Vrije Universiteit Amsterdam, The Netherlands email: [email protected] ARIANE Flight 501 http://www.youtube.com/watch?v=gp_d8r-2hwk Disintegration after 39 sec origin of
Testing and Inspecting to Ensure High Quality
Testing and Inspecting to Ensure High Quality Basic definitions A failure is an unacceptable behaviour exhibited by a system The frequency of failures measures the reliability An important design objective
Software testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
Redefining Static Analysis A Standards Approach. Mike Oara CTO, Hatha Systems
Redefining Static Analysis A Standards Approach Mike Oara CTO, Hatha Systems Software Analysis for Compliance Compliance Assessment Requires Software Analysis Dynamic Analysis Option Static Analysis Performed
Chapter 17 Software Testing Strategies Slide Set to accompany Software Engineering: A Practitioner s Approach, 7/e by Roger S. Pressman Slides copyright 1996, 2001, 2005, 2009 by Roger S. Pressman For
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
Best Practices for Verification, Validation, and Test in Model- Based Design
2008-01-1469 Best Practices for Verification, Validation, and in Model- Based Design Copyright 2008 The MathWorks, Inc. Brett Murphy, Amory Wakefield, and Jon Friedman The MathWorks, Inc. ABSTRACT Model-Based
BOOKOUT V. TOYOTA. 2005 Camry L4 Software Analysis. Michael Barr
BOOKOUT V. TOYOTA 2005 Camry L4 Software Analysis Michael Barr MICHAEL BARR Embedded Software Expert Electrical Engineer (BSEE/MSEE) Experienced Embedded Software Developer! Named inventor on 3 patents
Safety and Hazard Analysis
Safety and Hazard Analysis An F16 pilot was sitting on the runway doing the preflight and wondered if the computer would let him raise the landing gear while on the ground - it did A manufacturer of torpedoes
Course Goals. Solve Non-Technical Customer problem Server side: Ruby on Rails Client side: HTML, CSS, AJAX, JavaScript Deploy using cloud computing
Course Goals Learn Software Engineering Principles by understanding new challenges, opportunities, and open problems of SaaS Take a SaaS project from conception to public deployment Solve Non-Technical
CS100B Fall 1999. Professor David I. Schwartz. Programming Assignment 5. Due: Thursday, November 18 1999
CS100B Fall 1999 Professor David I. Schwartz Programming Assignment 5 Due: Thursday, November 18 1999 1. Goals This assignment will help you develop skills in software development. You will: develop software
Real Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
Oracle Solaris Studio Code Analyzer
Oracle Solaris Studio Code Analyzer The Oracle Solaris Studio Code Analyzer ensures application reliability and security by detecting application vulnerabilities, including memory leaks and memory access
ECE 0142 Computer Organization. Lecture 3 Floating Point Representations
ECE 0142 Computer Organization Lecture 3 Floating Point Representations 1 Floating-point arithmetic We often incur floating-point programming. Floating point greatly simplifies working with large (e.g.,
Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University
Software Engineering Introduction & Background Department of Computer Science Kent State University Complaints Software production is often done by amateurs Software development is done by tinkering or
The Space Shuttle: Teacher s Guide
The Space Shuttle: Teacher s Guide Grade Level: 6-8 Curriculum Focus: Astronomy/Space Lesson Duration: Two class periods Program Description This video, divided into four segments, explores scientists'
Software: Driving Innovation for Engineered Products
Software: Driving Innovation for Engineered Products Software in products holds the key to innovations that improve quality, safety, and ease-of-use, as well as add new functions. Software simply makes
How Safe does my Code Need to be? Shawn A. Prestridge, Senior Field Applications Engineer
How Safe does my Code Need to be? Shawn A. Prestridge, Senior Field Applications Engineer Agendum What the benefits of Functional Safety are What the most popular safety certifications are Why you should
PRESENTATION SPACE MISSIONS
GENERAL PRESENTATION SPACE MISSIONS CONTENTS 1. Who we are 2. What we do 3. Space main areas 4. Space missions Page 2 WHO WE ARE GENERAL Multinational conglomerate founded in 1984 Private capital Offices
Copyright 2012 Pearson Education, Inc. Chapter 1 INTRODUCTION TO COMPUTING AND ENGINEERING PROBLEM SOLVING
Chapter 1 INTRODUCTION TO COMPUTING AND ENGINEERING PROBLEM SOLVING Outline Objectives 1. Historical Perspective 2. Recent Engineering Achievements 3. Computing Systems 4. Data Representation and Storage
Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors
Static Analysis of Dynamic Properties - Automatic Program Verification to Prove the Absence of Dynamic Runtime Errors Klaus Wissing PolySpace Technologies GmbH Argelsrieder Feld 22 82234 Wessling-Oberpfaffenhofen
Outline. hardware components programming environments. installing Python executing Python code. decimal and binary notations running Sage
Outline 1 Computer Architecture hardware components programming environments 2 Getting Started with Python installing Python executing Python code 3 Number Systems decimal and binary notations running
Achieving business benefits through automated software testing. By Dr. Mike Bartley, Founder and CEO, TVS (mike@testandverification.
Achieving business benefits through automated software testing By Dr. Mike Bartley, Founder and CEO, TVS ([email protected]) 1 Introduction During my experience of test automation I have seen
The programming language C. sws1 1
The programming language C sws1 1 The programming language C invented by Dennis Ritchie in early 1970s who used it to write the first Hello World program C was used to write UNIX Standardised as K&C (Kernighan
Comprehensive Static Analysis Using Polyspace Products. A Solution to Today s Embedded Software Verification Challenges WHITE PAPER
Comprehensive Static Analysis Using Polyspace Products A Solution to Today s Embedded Software Verification Challenges WHITE PAPER Introduction Verification of embedded software is a difficult task, made
JOURNAL OF MEDICAL INFORMATICS & TECHNOLOGIES Vol. 21/2012, ISSN 1642-6037
JOURNAL OF MEDICAL INFORMATICS & TECHNOLOGIES Vol. 21/2012, ISSN 1642-6037 FDA, medical software, recall, safety of medical devices. Leszek DREWNIOK 1, Ewelina PIEKAR 1, Mirosław STASIAK 1, Remigiusz MANIURA
Module 10. Coding and Testing. Version 2 CSE IIT, Kharagpur
Module 10 Coding and Testing Lesson 23 Code Review Specific Instructional Objectives At the end of this lesson the student would be able to: Identify the necessity of coding standards. Differentiate between
SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT
SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT Mar 31, 2014 Japan Aerospace Exploration Agency This is an English translation of JERG-2-610. Whenever there is anything ambiguous in this document, the original
Certification Authorities Software Team (CAST) Position Paper CAST-13
Certification Authorities Software Team (CAST) Position Paper CAST-13 Automatic Code Generation Tools Development Assurance Completed June 2002 NOTE: This position paper has been coordinated among the
The Security Development Lifecycle. OWASP 24 June 2010. The OWASP Foundation http://www.owasp.org
The Security Development Lifecycle 24 June 2010 Steve Lipner Senior Director of Security Engineering Strategy Trustworthy Computing Microsoft Corporation [email protected] +1 425 705-5082 Copyright
Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: 0306211(Computer Programming 2).
0305203 0305280 0305301 0305302 Software Engineering/Courses Description Introduction to Software Engineering Prerequisite: 0306211(Computer Programming 2). This course introduces students to the problems
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER
ASSEMBLY PROGRAMMING ON A VIRTUAL COMPUTER Pierre A. von Kaenel Mathematics and Computer Science Department Skidmore College Saratoga Springs, NY 12866 (518) 580-5292 [email protected] ABSTRACT This paper
Aerospace Information Technology Topics for Internships and Bachelor s and Master s Theses
Aerospace Information Technology s for Internships and Bachelor s and Master s Theses Version Nov. 2014 The Chair of Aerospace Information Technology addresses several research topics in the area of: Avionic
Proving Control of the Infrastructure
WHITE paper The need for independent detective controls within Change/Configuration Management page 2 page 3 page 4 page 6 page 7 Getting Control The Control Triad: Preventive, Detective and Corrective
Static analysis of numerical programs
Sylvie Putot with Eric Goubault, Franck Védrine and Karim Tekkal (Digiteo) Laboratory for the Modelling and Analysis of Interacting Systems, CEA LIST RAIM 09: 3es Rencontres Arithmétique de l Informatique
Driving force. What future software needs. Potential research topics
Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #
THERE S NO EXCUSE FOR UNSAFE ACTS
ERI Safety Videos Videos for Safety Meetings 2810 THERE S NO EXCUSE FOR UNSAFE ACTS Leader s Guide 2008 ERI Safety Videos THERE S NO EXCUSE FOR UNSAFE ACTS This easy-to-use Leader s Guide is provided to
HY345 Operating Systems
HY345 Operating Systems Recitation 2 - Memory Management Solutions Panagiotis Papadopoulos [email protected] Problem 7 Consider the following C program: int X[N]; int step = M; //M is some predefined constant
Ethical Issues in the Software Quality Assurance Function
Ethical Issues in the Software Quality Assurance Function Jim Nindel-Edwards Microsoft, Inc. USA [email protected] Gerhard Steinke Seattle Pacific University USA [email protected] ABSTRACT The responsibility
Embedded & Real-time Operating Systems
Universität Dortmund 12 Embedded & Real-time Operating Systems Peter Marwedel, Informatik 12 Germany Application Knowledge Structure of this course New clustering 3: Embedded System HW 2: Specifications
Advanced Testing Methods for Automotive Software
Advanced Testing Methods for Automotive Software Madison Turner, Technology Analyst Accelerated Technology, a Mentor Graphics Division Recent history attests to the need for improved software testing methods
Bug hunting. Vulnerability finding methods in Windows 32 environments compared. FX of Phenoelit
Bug hunting Vulnerability finding methods in Windows 32 environments compared FX of Phenoelit The goal: 0day What we are looking for: Handles network side input Runs on a remote system Is complex enough
Automation can dramatically increase product quality, leading to lower field service, product support and
QA Automation for Testing Medical Device Software Benefits, Myths and Requirements Automation can dramatically increase product quality, leading to lower field service, product support and liability cost.
Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance
Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance Sponsored by the U.S. Department of Homeland Security (DHS), the Software Engineering Institute
Eliminate Memory Errors and Improve Program Stability
Eliminate Memory Errors and Improve Program Stability with Intel Parallel Studio XE Can running one simple tool make a difference? Yes, in many cases. You can find errors that cause complex, intermittent
MPLAB TM C30 Managed PSV Pointers. Beta support included with MPLAB C30 V3.00
MPLAB TM C30 Managed PSV Pointers Beta support included with MPLAB C30 V3.00 Contents 1 Overview 2 1.1 Why Beta?.............................. 2 1.2 Other Sources of Reference..................... 2 2
Operating Systems 4 th Class
Operating Systems 4 th Class Lecture 1 Operating Systems Operating systems are essential part of any computer system. Therefore, a course in operating systems is an essential part of any computer science
Fast Arithmetic Coding (FastAC) Implementations
Fast Arithmetic Coding (FastAC) Implementations Amir Said 1 Introduction This document describes our fast implementations of arithmetic coding, which achieve optimal compression and higher throughput by
F-22 Raptor. Agenda. 1. Motivation
Model-Based Software Development and Automated Code Generation for Safety-Critical Systems F-22 Raptor for the Seminar Advanced Topics in Software Engineering for Safety-Critical Systems Cause: Bug in
System Engineering: A Traditional Discipline in a Non-traditional Organization
System Engineering: A Traditional Discipline in a Non-traditional Organization Corporate Overview Founded with the singular goal of providing highly reliable space transportation Tech-style Organization
Overview and History of Software Engineering
Overview and History of Software Engineering CS 230 Introduction to Software Engineering Slide 1 Outline Historical aspects - software crisis Software product Software process Software fault and failures
Developers and the Software Supply Chain. Andy Chou, PhD Chief Technology Officer Coverity, Inc.
Developers and the Software Supply Chain Andy Chou, PhD Chief Technology Officer Coverity, Inc. About Andy CTO at Coverity since 2010 Co-founder at Coverity, 2003 From five guys in a garage to 280 employees
When COTS is not SOUP Commercial Off-the-Shelf Software in Medical Systems. Chris Hobbs, Senior Developer, Safe Systems
When COTS is not SOUP Commercial Off-the-Shelf Software in Medical Systems Chris Hobbs, Senior Developer, Safe Systems 2 Audience and Assumptions Who will benefit from this presentation? Software designers
Computer Science 217
Computer Science 217 Midterm Exam Fall 2009 October 29, 2009 Name: ID: Instructions: Neatly print your name and ID number in the spaces provided above. Pick the best answer for each multiple choice question.
NWEN405: Security Engineering
NWEN405: Security Engineering Lecture 15 Secure Software Engineering: Security Evaluation Engineering & Computer Science Victoria University of Wellington Dr Ian Welch ([email protected]) Waterfall Secure
What Is Specific in Load Testing?
What Is Specific in Load Testing? Testing of multi-user applications under realistic and stress loads is really the only way to ensure appropriate performance and reliability in production. Load testing
Code Coverage: Free Software and Virtualization to the Rescue
Code Coverage: Free Software and Virtualization to the Rescue Franco Gasperoni, AdaCore [email protected] What is Code Coverage and Why Is It Useful? Your team is developing or updating an embedded
Practical Programming, 2nd Edition
Extracted from: Practical Programming, 2nd Edition An Introduction to Computer Science Using Python 3 This PDF file contains pages extracted from Practical Programming, 2nd Edition, published by the Pragmatic
Introduction into IEC 62304 Software life cycle for medical devices
Introduction into IEC 62304 Software life cycle for medical devices Christoph Gerber 4. September 2008 SPIQ 9/5/2008 1 Agenda Current Picture Regulatory requirements for medical device software IEC 62304
Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto.
ECE1778 Project Report Kathy Au Billy Yi Fan Zhou Department of Electrical and Computer Engineering University of Toronto { kathy.au, billy.zhou }@utoronto.ca Executive Summary The goal of this project
Propsim enabled Aerospace, Satellite and Airborne Radio System Testing
www.anite.com Propsim enabled Aerospace, Satellite and Airborne Radio System Testing Anite is now part of Keysight Technologies Realistic and repeatable real-time radio channel emulation solutions for
Agile SPL-SCM: Agile Software Product Line Configuration and Release Management
Agile SPL-SCM: Agile Software Product Line Configuration and Release Management APLE 2006 Workshop SPLC 2006, Baltimore, MD [email protected] Phonak Hearing Systems Presentation Roadmap 1. Introduction
