SlideShare a Scribd company logo
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

PPT
Crash course in verilog
PPTX
System Verilog Tutorial - VHDL
PPTX
Verilog overview
PPTX
Building Hierarchy
PPTX
PPT ON VHDL subprogram,package,alias,use,generate and concurrent statments an...
PPTX
Verilog Tutorial - Verilog HDL Tutorial with Examples
PPT
PDF
Verilog tutorial
Crash course in verilog
System Verilog Tutorial - VHDL
Verilog overview
Building Hierarchy
PPT ON VHDL subprogram,package,alias,use,generate and concurrent statments an...
Verilog Tutorial - Verilog HDL Tutorial with Examples
Verilog tutorial

What's hot (20)

PPT
PDF
Day2 Verilog HDL Basic
PPT
Coding verilog
PDF
Verilog HDL- 2
PDF
An Introductory course on Verilog HDL-Verilog hdl ppr
PPTX
Verilog presentation final
PPT
Digital Circuit Verification Hardware Descriptive Language Verilog
PDF
Verilog HDL Training Course
PPT
Oop lec 1
PPT
Unit1 jwfiles
PPT
Fpga 04-verilog-programming
PPTX
System Verilog 2009 & 2012 enhancements
PPT
Verilog tutorial
PDF
Delays in verilog
PDF
Declarative Gesture Spotting Using Inferred and Refined Control Points
PPTX
Hardware Description Language
PPT
Verilog hdl
PDF
VHDL- data types
PDF
VHDL CODE
PDF
Session 9 advance_verification_features
Day2 Verilog HDL Basic
Coding verilog
Verilog HDL- 2
An Introductory course on Verilog HDL-Verilog hdl ppr
Verilog presentation final
Digital Circuit Verification Hardware Descriptive Language Verilog
Verilog HDL Training Course
Oop lec 1
Unit1 jwfiles
Fpga 04-verilog-programming
System Verilog 2009 & 2012 enhancements
Verilog tutorial
Delays in verilog
Declarative Gesture Spotting Using Inferred and Refined Control Points
Hardware Description Language
Verilog hdl
VHDL- data types
VHDL CODE
Session 9 advance_verification_features
Ad

Viewers also liked (20)

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

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

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

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
Teaching material agriculture food technology
PPTX
Programs and apps: productivity, graphics, security and other tools
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Spectroscopy.pptx food analysis technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Encapsulation theory and applications.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
KodekX | Application Modernization Development
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
Per capita expenditure prediction using model stacking based on satellite ima...
MYSQL Presentation for SQL database connectivity
Chapter 3 Spatial Domain Image Processing.pdf
Spectral efficient network and resource selection model in 5G networks
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Teaching material agriculture food technology
Programs and apps: productivity, graphics, security and other tools
“AI and Expert System Decision Support & Business Intelligence Systems”
Spectroscopy.pptx food analysis technology
Building Integrated photovoltaic BIPV_UPV.pdf
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Encapsulation theory and applications.pdf
Network Security Unit 5.pdf for BCA BBA.
Diabetes mellitus diagnosis method based random forest with bat algorithm
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Digital-Transformation-Roadmap-for-Companies.pptx
KodekX | Application Modernization Development
Mobile App Security Testing_ A Comprehensive Guide.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing

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