Sebastian Fischmeister
University of Waterloo esg.uwaterloo.ca
1
• Provide an overview of the research done within or associated with the project ORF-RE 03-045:
“Certification of Safety-critical Software-intensive
Systems”
• Create an opportunity for integrating of research results and collaborating
2
• Software is where the innovation is happening!
Features sell, apps everywhere
• Software size and complexity is the challenge!
Illustrating one root cause:
Bridge from Tokyo to Vancouver
3
• Computing systems are now beyond deep human comprehension.
• Evidence:
– Software size is growing exponentially
– Processor complexity is growing exponentially
– 80% of the developer’s time is debugging
– We have software with 100M lines of code!
4
• Nuclear shutdown system: 40k lines of code
• F-22 Raptor (‘97): 1.7M lines of code
• F-35 Joint Strike Fighter (‘06): 5.7M lines of code
• Boeing 787 (‘09): 6.5M lines of code
• Current generation limousine: 100M LOC
Can we comprehend such software?
5
100K?
10M?
6
Trying to Understand the Certification Problem
• Toronto: 2,503,281
• Ontario: 13,210,667
• USA: 300M
7
You need to ensure that each person is doing the right thing at the right time.
PROJECT SAMPLER:
REAL-TIME EMBEDDED SOFTWARE
GROUP @ UNIVERSITY OF WATERLOO
8
Time aware instrumentation
Time-triggered runtime verification
Tagging
Basics [TR]
Security [TR]
Coverage criterion [RTAS’09, TII]
Crit. CFG & sampling [FM’11]
ISA extension
[TR]
Mem vs. sampl.
tradeoff [RV’11]
Preemptive
[OPODIS’11] bitvec+
[LCTES’11]
Debugging, tracing & monitoring framework for
RT embedded applications
Super-loop
[LCTES’11]
Markers
[LCTES’10]
Observability in software
Time-triggered execution monitoring
9
• Problem: Can we efficiently trace information flow in a software system? => Tagging
10
Network
Tag Tag Tag
Process
Tag
X
• Implemented in QNX at the kernel level
• Applied to tracing, resource scheduling, and security
• Applicable to testing, monitoring non-functional req.
• Problem: Can we instrument programs without changing the timing (thus the behaviour)?
=> time-aware instrumentation
11
Instrumented
Deadline
X
Original
X X
Execution time
• Applied to three case studies (OLPC, FS, SNU)
• Software solution, hardware solution, code dup
• Useful for tracing, testing, information extraction
• Problem: Can we engineer run-time monitoring and checking of programs? => TTRV
12
Application
Steering
Program
Eval.
properties
Monitor
Observe
Report
Observer
• Time-triggered monitoring & property evaluation
• Useful for system safety, security, steering, tuning , …
13
• Problem: How do people try to understand software systems? => debugging study
RightFunction
RightFile
Browse
Successful debuggers
Test
Browse
Failing debuggers
Edit
SomewhereElse
Test
Edit
ReadDoc NoEdit
1 2 3 4 5 6 7 8 9 10 11 12 13
Consecutive Compilation Tries
Compile
ReadDoc
Compile
• Useful to guide future tools
• Useful to understand developers’ minds
• Software systems are hard to understand
• Software is growing in size and complexity
=> Developers need support to understand what is going on at run time!
• We research methods that help developers understand what the software is doing, especially tailored to (real-time) embedded systems.
• (We also work on benchmarking & real-time networking)
• (We also host the CFI Real-time Embedded Software Lab)
14
• This research was supported in part by industrial partners and the Canadian tax payer!
15
• In collaboration with Akramul Azim, Pansy Arafa, Akramul Azim,
Shay Berkovich, Borzoo Bonakdarpour, Sina Gholamian, Hany
Kashif, Patrick Lam, Samaneh Navabpour, Hiren Patel, Yassir
Rizwan, Ahmad Rehman, Johnson Thomas, Mahesh Tripunithara,
Augusto Oliveira, Wallace Wu.
(PS: Postdoc positions available, email me at sfischme@uwaterloo.ca
)