SlideShare a Scribd company logo
1 of 25
Download to read offline
Crossing the Boundaries while Analyzing
   Heterogeneous Component-Based
           Software Systems


                      Amir Reza Yazdanshenas
                                 Leon Moonen


                                      2011/09/28
                                      ICSM 2011
Safety Monitoring and Control System




                                       2
Safety Monitoring and Control System



     Sensor                            Actuator




     Sensor           logic            Actuator
              Input           Output



     Sensor                            Actuator




                                                  3
Safety Monitoring and Control System




                  logic
          Input           Output




                                       4
Case Description

Start with clear              More costumers:    More costumers:
design & documents            new requirements   scalability

Input1             Output1
Input2
         A     A
                   Output2
                              • Inhibit           Input1
                                                           A   A Output1
         D     D
Input3
         D     D
                 Output3      • Override
Input4           Output4
Input5
         D     D
                 Output5
                              • Suppress
         D     D
Input6
         D     D
                 Output6      • Acknowledge      CascIn            CascOut

Input7           Output7
         A     D
               D Output8
                 Output9                                   A   A
               D



 Similar to digital circuit                       CascIn
                                                                   CascOut
 design components!

                                                 Workaround:
                                                 • Cascading modules
                                                 • Voting modules
                                                                             5
Case Description…
More costumers:
reusing decisions




                    6
Case Description…

    Potentially unlimited number of configurations
    –  No default/standard configuration of components!
    –  Separate configuration for each installation



    –  (examples omitted due to NDA)




                                                          7
Problem Statement


                      logic




                Comp. 1   Comp. 3
        Input                       Output

                Comp. 2   Comp. n




                                             8
Problem Statement

      Do sensor signals reach the correct output actuators?

                               logic




         Input                                    Output




                       For certification purposes,
                 can we provide source based evidence?

                                                              9
Tracking Information Flow

           “find source based evidence that
       signals from sensors trigger the correct
                       actuators”

            is there information flow from
     the desired sensors to the selected actuator?

         are the desired sensors (input ports)
          part of the backward program slice
        for the selected actuator (output port)?

                                                     10
Heterogeneous Systems
  Deployed system is not just set of components
   –  actual behavior depends on composition &
      configuration
   –  literature focuses on analysis of homogeneous
      systems
⚡ Existing slicing tools are language specific
   ⚡ no support for “external” artifacts




                                                      11
Challenge #1:

          void main() {       void main() {                                             void main() {                    void main() {
           int sum, I;
           while ( i<11 ){
            sum = add(sum)
                               int sum, I;
                               while ( i<11 ){
                                sum = add(sum)
                                                                                         int sum, I;
                                                                                         while ( i<11 ){
                                                                                          sum = add(sum)
                                                                                                                     ✗    int sum, I;
                                                                                                                          while ( i<11 ){
                                                                                                                           sum = add(sum)
            i = add(i, 1);      i = add(i, 1);                                            i = add(i, 1);                   i = add(i, 1);
                 …                   …                                                         …                                …
                                                                                                                     ✗
                                                                                                                                                 ✓




                                                          ✗
           sensor.c              input.c                                                   voter.c                        output.c




© 2011 Leon Moonen           Model-driven Information Flow Analysis to Support Software Certification - NECSIS Seminar at Queen's (2011/06/27)       12
Shared Memory Communication


                                    main

                           cause & effect
               cause           matrix           effect
     input A           1    2   3           j
                                                         output B
                       2
                       3

                                                effect
                                                         output C



     input B   cause   i
                                                         output D
                                                effect




                                                                    13
Challenge #2:


                     output#1
sensor#1


           input#1
                     output#2
sensor#2



           input#2   output#3



sensor#N
                     output#4


                                14
Challenge #2:


                     output#1
sensor#1


           input#1
                     output#2
sensor#2



           input#2   output#3



sensor#N
                     output#4


                                15
Our solution: Build a Homogeneous
Model of the System




                                    16
KDM: Flexible and Extensible




                               17
SDG: ICDG + CDGs




                   18
Conclusion
void main() {      void main() {      void main() {      void main() {
 int sum, I;        int sum, I;        int sum, I;        int sum, I;
 while ( i<11 ){    while ( i<11 ){    while ( i<11 ){    while ( i<11 ){
  sum = add(sum)     sum = add(sum)     sum = add(sum)     sum = add(sum)
  i = add(i, 1);     i = add(i, 1);     i = add(i, 1);     i = add(i, 1);
       …                  …                  …                  …




 sensor.C             input.C            voter.C          output.C




                                                                            19
Conclusion


                               output#1
sensor#1
                     voter#1
           input#1
                               output#2
sensor#2
                     voter#2

           input#2             output#3



sensor#N             voter#3

                               output#4


                                          20
Conclusion

✓              ✓
✓                  ✓
                                     ✓
               ✓                                           output#1
                                                   ✓
✓ sensor#1         ✓                 ✓
                                 ✓
                                         voter#1       ✓
                       input#1                         ✓
                                                           output#2
                                                                      ✓
    sensor#2
                   ✓
                                         voter#2
                   ✓             ✓
                       input#2       ✓             ✓       output#3
               ✓
                                     ✓
✓ sensor#N                           ✓ voter#3
                                                           output#4


                                                                          21
Precision & Scalability Tests
  Identical results with CodeSurfer on an
   example program

  Kongsberg code base:




                                             22
Precision & Scalability Tests
  Identical results with CodeSurfer on an
   example program

  Kongsberg code base:




                                             23
Limitations
   Bit manipulation: no precise information flow
    –  granularity limitation in Codesurfer implementation
   Implemented for C with proprietary composition
    –  experiment with other languages, e.g. Java and other
       composition languages/frameworks



 Future Work
  Abstraction and visualization
   –  improve comprehensibility of results
   –  present the result in multiple abstraction layers
       –  separate Intra- and Inter- component information
          flows
                                                              24
Thank you!


Comments/Questions?



                      25

More Related Content

What's hot

Day2 Verilog HDL Basic
Day2 Verilog HDL BasicDay2 Verilog HDL Basic
Day2 Verilog HDL Basic
Ron Liu
 
Unit1 jwfiles
Unit1 jwfilesUnit1 jwfiles
Unit1 jwfiles
mrecedu
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
Subash John
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
Nirav Desai
 

What's hot (20)

Verilog hdl
Verilog hdlVerilog hdl
Verilog hdl
 
Day2 Verilog HDL Basic
Day2 Verilog HDL BasicDay2 Verilog HDL Basic
Day2 Verilog HDL Basic
 
Coding verilog
Coding verilogCoding verilog
Coding verilog
 
Verilog HDL- 2
Verilog HDL- 2Verilog HDL- 2
Verilog HDL- 2
 
An Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl pprAn Introductory course on Verilog HDL-Verilog hdl ppr
An Introductory course on Verilog HDL-Verilog hdl ppr
 
Verilog presentation final
Verilog presentation finalVerilog presentation final
Verilog presentation final
 
Digital Circuit Verification Hardware Descriptive Language Verilog
Digital Circuit Verification Hardware Descriptive Language VerilogDigital Circuit Verification Hardware Descriptive Language Verilog
Digital Circuit Verification Hardware Descriptive Language Verilog
 
Verilog HDL Training Course
Verilog HDL Training CourseVerilog HDL Training Course
Verilog HDL Training Course
 
Oop lec 1
Oop lec 1Oop lec 1
Oop lec 1
 
Unit1 jwfiles
Unit1 jwfilesUnit1 jwfiles
Unit1 jwfiles
 
Fpga 04-verilog-programming
Fpga 04-verilog-programmingFpga 04-verilog-programming
Fpga 04-verilog-programming
 
System Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancementsSystem Verilog 2009 & 2012 enhancements
System Verilog 2009 & 2012 enhancements
 
Verilog tutorial
Verilog tutorialVerilog tutorial
Verilog tutorial
 
Delays in verilog
Delays in verilogDelays in verilog
Delays in verilog
 
Declarative Gesture Spotting Using Inferred and Refined Control Points
Declarative Gesture Spotting Using Inferred and Refined Control PointsDeclarative Gesture Spotting Using Inferred and Refined Control Points
Declarative Gesture Spotting Using Inferred and Refined Control Points
 
Hardware Description Language
Hardware Description Language Hardware Description Language
Hardware Description Language
 
Verilog hdl
Verilog hdlVerilog hdl
Verilog hdl
 
VHDL- data types
VHDL- data typesVHDL- data types
VHDL- data types
 
VHDL CODE
VHDL CODE VHDL CODE
VHDL CODE
 
Session 9 advance_verification_features
Session 9 advance_verification_featuresSession 9 advance_verification_features
Session 9 advance_verification_features
 

Viewers also liked

ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM 2011
 

Viewers also liked (20)

Faults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussionsFaults and Regression Testing - Fault interaction and its repercussions
Faults and Regression Testing - Fault interaction and its repercussions
 
ICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer KoschkeICSM'01 Most Influential Paper - Rainer Koschke
ICSM'01 Most Influential Paper - Rainer Koschke
 
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
Natural Language Analysis - Expanding Identifiers to Normalize Source Code Vo...
 
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
Industry - Precise Detection of Un-Initialized Variables in Large, Real-life ...
 
Components - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API LimitationsComponents - Graph Based Detection of Library API Limitations
Components - Graph Based Detection of Library API Limitations
 
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
Tutorial 2 - Practical Combinatorial (t-way) Methods for Detecting Complex Fa...
 
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change PropagationImpact analysis - A Seismology-inspired Approach to Study Change Propagation
Impact analysis - A Seismology-inspired Approach to Study Change Propagation
 
ERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to TaskERA - Clustering and Recommending Collections of Code Relevant to Task
ERA - Clustering and Recommending Collections of Code Relevant to Task
 
Industry - Estimating software maintenance effort from use cases an indu...
Industry - Estimating software maintenance effort from use cases an      indu...Industry - Estimating software maintenance effort from use cases an      indu...
Industry - Estimating software maintenance effort from use cases an indu...
 
Postdoc Symposium - Abram Hindle
Postdoc Symposium - Abram HindlePostdoc Symposium - Abram Hindle
Postdoc Symposium - Abram Hindle
 
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software SearchERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
ERA - A Comparison of Stemmers on Source Code Identifiers for Software Search
 
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
Postdoc symposium - A Logic Meta-Programming Foundation for Example-Driven Pa...
 
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
Dynamic Analysis - SCOTCH: Improving Test-to-Code Traceability using Slicing ...
 
ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild ERA - Measuring Maintainability of Spreadsheets in the Wild
ERA - Measuring Maintainability of Spreadsheets in the Wild
 
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...Industry -  Relating Developers' Concepts and Artefact Vocabulary in a Financ...
Industry - Relating Developers' Concepts and Artefact Vocabulary in a Financ...
 
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java InterfacesMetrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
Metrics - Using Source Code Metrics to Predict Change-Prone Java Interfaces
 
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
Traceability - Structural Conformance Checking with Design Tests: An Evaluati...
 
ERA - Tracking Technical Debt
ERA - Tracking Technical DebtERA - Tracking Technical Debt
ERA - Tracking Technical Debt
 
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
ERA - Measuring Disruption from Software Evolution Activities Using Graph-Bas...
 
Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...Industry - The Evolution of Information Systems. A Case Study on Document Man...
Industry - The Evolution of Information Systems. A Case Study on Document Man...
 

Similar to Components - Crossing the Boundaries while Analyzing Heterogeneous Component-Based Software Systems

Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
NIKHIL NAWATHE
 
3150 Chapter 2 Part 1
3150 Chapter 2 Part 13150 Chapter 2 Part 1
3150 Chapter 2 Part 1
Mole Wong
 
Ch7 OS
Ch7 OSCh7 OS
Ch7 OS
C.U
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir Overview
PTIHPA
 

Similar to Components - Crossing the Boundaries while Analyzing Heterogeneous Component-Based Software Systems (20)

OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
OpenMI Developers Training
OpenMI Developers TrainingOpenMI Developers Training
OpenMI Developers Training
 
Code Analysis-run time error prediction
Code Analysis-run time error predictionCode Analysis-run time error prediction
Code Analysis-run time error prediction
 
Streamy, Pipy, Analyticy
Streamy, Pipy, AnalyticyStreamy, Pipy, Analyticy
Streamy, Pipy, Analyticy
 
Chapter 3 malik
Chapter 3 malikChapter 3 malik
Chapter 3 malik
 
Chapter 3 malik
Chapter 3 malikChapter 3 malik
Chapter 3 malik
 
Chapter 3 malik
Chapter 3 malikChapter 3 malik
Chapter 3 malik
 
3150 Chapter 2 Part 1
3150 Chapter 2 Part 13150 Chapter 2 Part 1
3150 Chapter 2 Part 1
 
Vhdl 1 ppg
Vhdl 1 ppgVhdl 1 ppg
Vhdl 1 ppg
 
Формальная верификация как средство тестирования (в Java)
Формальная верификация как средство тестирования (в Java)Формальная верификация как средство тестирования (в Java)
Формальная верификация как средство тестирования (в Java)
 
A Layered Architecture for the Model-driven Development of Distributed Simula...
A Layered Architecture for the Model-driven Development of Distributed Simula...A Layered Architecture for the Model-driven Development of Distributed Simula...
A Layered Architecture for the Model-driven Development of Distributed Simula...
 
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT TalksMykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
Mykhailo Zarai "Be careful when dealing with C++" at Rivne IT Talks
 
CodeChecker summary 21062021
CodeChecker summary 21062021CodeChecker summary 21062021
CodeChecker summary 21062021
 
Practical file
Practical filePractical file
Practical file
 
Ch7 OS
Ch7 OSCh7 OS
Ch7 OS
 
Algorithms
AlgorithmsAlgorithms
Algorithms
 
Java cơ bản java co ban
Java cơ bản java co ban Java cơ bản java co ban
Java cơ bản java co ban
 
1 Vampir Overview
1 Vampir Overview1 Vampir Overview
1 Vampir Overview
 
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
Oh Crap, I Forgot (Or Never Learned) C! [CodeMash 2010]
 
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
Build 2016 - B880 - Top 6 Reasons to Move Your C++ Code to Visual Studio 2015
 

Recently uploaded

Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot ModelMcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
Mcleodganj Call Girls 🥰 8617370543 Service Offer VIP Hot Model
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Introduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDMIntroduction to use of FHIR Documents in ABDM
Introduction to use of FHIR Documents in ABDM
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 

Components - Crossing the Boundaries while Analyzing Heterogeneous Component-Based Software Systems

  • 1. Crossing the Boundaries while Analyzing Heterogeneous Component-Based Software Systems Amir Reza Yazdanshenas Leon Moonen 2011/09/28 ICSM 2011
  • 2. Safety Monitoring and Control System 2
  • 3. Safety Monitoring and Control System Sensor Actuator Sensor logic Actuator Input Output Sensor Actuator 3
  • 4. Safety Monitoring and Control System logic Input Output 4
  • 5. Case Description Start with clear More costumers: More costumers: design & documents new requirements scalability Input1 Output1 Input2 A A Output2 • Inhibit Input1 A A Output1 D D Input3 D D Output3 • Override Input4 Output4 Input5 D D Output5 • Suppress D D Input6 D D Output6 • Acknowledge CascIn CascOut Input7 Output7 A D D Output8 Output9 A A D Similar to digital circuit CascIn CascOut design components! Workaround: • Cascading modules • Voting modules 5
  • 7. Case Description…   Potentially unlimited number of configurations –  No default/standard configuration of components! –  Separate configuration for each installation –  (examples omitted due to NDA) 7
  • 8. Problem Statement logic Comp. 1 Comp. 3 Input Output Comp. 2 Comp. n 8
  • 9. Problem Statement Do sensor signals reach the correct output actuators? logic Input Output For certification purposes, can we provide source based evidence? 9
  • 10. Tracking Information Flow “find source based evidence that signals from sensors trigger the correct actuators”   is there information flow from the desired sensors to the selected actuator?   are the desired sensors (input ports) part of the backward program slice for the selected actuator (output port)? 10
  • 11. Heterogeneous Systems   Deployed system is not just set of components –  actual behavior depends on composition & configuration –  literature focuses on analysis of homogeneous systems ⚡ Existing slicing tools are language specific ⚡ no support for “external” artifacts 11
  • 12. Challenge #1: void main() { void main() { void main() { void main() { int sum, I; while ( i<11 ){ sum = add(sum) int sum, I; while ( i<11 ){ sum = add(sum) int sum, I; while ( i<11 ){ sum = add(sum) ✗ int sum, I; while ( i<11 ){ sum = add(sum) i = add(i, 1); i = add(i, 1); i = add(i, 1); i = add(i, 1); … … … … ✗ ✓ ✗ sensor.c input.c voter.c output.c © 2011 Leon Moonen Model-driven Information Flow Analysis to Support Software Certification - NECSIS Seminar at Queen's (2011/06/27) 12
  • 13. Shared Memory Communication main cause & effect cause matrix effect input A 1 2 3 j output B 2 3 effect output C input B cause i output D effect 13
  • 14. Challenge #2: output#1 sensor#1 input#1 output#2 sensor#2 input#2 output#3 sensor#N output#4 14
  • 15. Challenge #2: output#1 sensor#1 input#1 output#2 sensor#2 input#2 output#3 sensor#N output#4 15
  • 16. Our solution: Build a Homogeneous Model of the System 16
  • 17. KDM: Flexible and Extensible 17
  • 18. SDG: ICDG + CDGs 18
  • 19. Conclusion void main() { void main() { void main() { void main() { int sum, I; int sum, I; int sum, I; int sum, I; while ( i<11 ){ while ( i<11 ){ while ( i<11 ){ while ( i<11 ){ sum = add(sum) sum = add(sum) sum = add(sum) sum = add(sum) i = add(i, 1); i = add(i, 1); i = add(i, 1); i = add(i, 1); … … … … sensor.C input.C voter.C output.C 19
  • 20. Conclusion output#1 sensor#1 voter#1 input#1 output#2 sensor#2 voter#2 input#2 output#3 sensor#N voter#3 output#4 20
  • 21. Conclusion ✓ ✓ ✓ ✓ ✓ ✓ output#1 ✓ ✓ sensor#1 ✓ ✓ ✓ voter#1 ✓ input#1 ✓ output#2 ✓ sensor#2 ✓ voter#2 ✓ ✓ input#2 ✓ ✓ output#3 ✓ ✓ ✓ sensor#N ✓ voter#3 output#4 21
  • 22. Precision & Scalability Tests   Identical results with CodeSurfer on an example program   Kongsberg code base: 22
  • 23. Precision & Scalability Tests   Identical results with CodeSurfer on an example program   Kongsberg code base: 23
  • 24. Limitations   Bit manipulation: no precise information flow –  granularity limitation in Codesurfer implementation   Implemented for C with proprietary composition –  experiment with other languages, e.g. Java and other composition languages/frameworks Future Work   Abstraction and visualization –  improve comprehensibility of results –  present the result in multiple abstraction layers –  separate Intra- and Inter- component information flows 24