10
Software Assurance: What Should We Do next? Software Design for Reliability Ivica Crnkovic Mälardalen University, Sweden i [email protected] , www.idt.mdh.se/~icc COMPSAC July 24, Kyoto

Software Assurance: What Should We Do next? - Software Design for Reliability

Embed Size (px)

Citation preview

Page 1: Software Assurance: What Should We Do next?  - Software Design for Reliability

Software Assurance: What Should We Do next?

Software Design for Reliability

Ivica CrnkovicMälardalen University, Sweden

[email protected], www.idt.mdh.se/~icc

COMPSAC July 24, Kyoto

Page 2: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 2

Panel ChairMohammad Zulkernine, Queen's University, CanadaPanelistsIvica Crnkovic, Mälardalen University, SwedenT.H. Tse, The University of Hong Kong, Hong KongBruce McMillin, Missouri University of Science & Technology, USATetsutaro Uehara, Kyoto University, Japan

Page 3: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 3

Mälardalen University, Västerås, Sweden

COMPSAC 2014July 21-25

COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto

ASE 2014Sep 14-19

Page 4: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 4

Reliability – is that enough?

• Reliability is defined as the probability that a system will perform its intended function during a specified period of time under stated conditions.

• Assumptions:– Reliability is predicated on "intended function:” i.e. a

particular operation without failure.– Reliability applies to a specified period of time. – Reliability is restricted to operation under stated (or

explicitly defined) conditions.

Page 5: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 5

Microkernel Complexity - function call graph 2011 NICTA (ABN: 62 102 206 173)

(this is simple)

Software Complexity

What is software of today?

The Blue Brain Projecthttp://bluebrain.epfl.ch/cms/lang/en/pid/56882

Page 6: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 6

What is Software of Today?

8 years of Unix evolutionhttp://www.levenez.com/unix/unix.pdfSoftware Evolution

Page 7: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 7

What is software of today?

Software ubiquityAugmented reality Dynamic Environment

Page 8: Software Assurance: What Should We Do next?  - Software Design for Reliability

Reliability: Robustness vs. Resilience ?

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 8

Robust & resistant systems”states

• Highly controlled• Operates in a narrow band• Predefined states (“modes”)• Top-down design• Challenge: predict all states

caused by the environment

• A broad spectrum of possible equilibrium state• Not necessary all states are predicted • Adaptive and evolving systems• impact of the system on the environment• Challenge:

• Adaptation • Optimal performance in different states• Minimize unwanted impact on the

environment

“Resilient systems”

Page 9: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 9

Software Design

Reliability

Robustness

Adaptability

Resilience

Page 10: Software Assurance: What Should We Do next?  - Software Design for Reliability

04/11/2023 COMPSAC 2013, Panel "Software Assurance - what should we do next?" , Kyoto 10

Challenges

• Design– Bottom-up vs. top-down– Composability vs. analyzability– Static vs. dynamic deployment– Robustness vs. adaptability– Predictability vs. monitoring and healing– Embedded vs. service-oriented– Design by Contract