SlideShare una empresa de Scribd logo
1 de 12
TOWARDS A DEVELOPMENT
FRAMEWORK BASED ON BEHAVIOR
RECOMBINATION



 Houman Younessi, RH,     RPI, USA
 Renaud Pawlak, LISITE, ISEP, France
 Carlos E. Cuesta, VorTIC3, URJC, Spain

                     Hersonissos, Crete, Greece, 18/10/2011
CONTENTS

   Introduction

   Behavioral Recombination Framework (BRF)
       Behavior Predicates

       Abstracting Behavior

       Recombining Behaviors

       The Recombinator

   Related work

   Conclusions & Future work                  2
INTRODUCTION:
THE NEED FOR VARIABILITY
   Adaptation needs variability
     Variation points imply a strategic choice
     For instance, less consume over QoS

   Variation + modularity = simple choice
     Just activate/deactivate a certain module
     Loose coupling: CBSE, AOSE
     But modularity depends on architecture
         Tyranny of the dominant decomposition
         Related to architectural erosion


   Proposal: define variation on behavior
     To define trusted behavior adaptations
                                                  3
     The structure is not important anymore
BEHAVIORAL RECOMBINATION FRAMEWORK
(BRF)
   Program behavior is defined as a sequence of
    actions (state changes or messages)
       Adapting a program is changing the order of execution
        (or adding new states)
   Behavioral Recombination Framework (BRF)
     Modeling the behavior using a recombinator
     Using the “recombinant DNA” metaphor
           Existing prototype: Recombinant Java
   Defining trusted behaviors
     Define primary behavioral sequence(s)
     Define rules to check expected behavior
                                                                4
     Define alternate behaviors (rewriting rules)
PRIMARY SEQUENCE:
THE EXPECTED BEHAVIOR
   Relation to Use Cases
     Primary Sequence = main scenario
     Rewriting Rules = alternate scenarios

   Relation to TDD and agile processes
     Particularly, Continuosus Integration
     Rewriting Rules = integration tests

   For instance, consider a program
        zip (f)
        c= connect (s, user, pass)
        r = send (c, f)
        disconnect (c)
                                              5
BEHAVIOR PREDICATES
   Now we can check desired properties
     In our example: always zip before sending
     Done using behavior predicates

   To some extent, similar to Pnueli’s LTL
     But using a regular expression-based notation
     For instance: A*; B
     Can be translated to a Büchi automaton

   All execution paths must match these predicates
       These are invariants, or integration tests
   For example:
        (¬ (zip(f)   send(?,f)))*; send(?,f)   error   6
ABSTRACTING BEHAVIOR
   Instead of using invocations to match behavior, we
    can abstract in “predictive variables”
        zip (f)
        zipped = true
        uploading = true
   These abstract “meta-variables” play a similar role
    to annotations in several languages
     Rules can be rewritten using them
     Avoids changing conditions due to changes in
      programming sentences
   For example:
                                                          7
    uploading    ¬ zipped   error
RECOMBINING BEHAVIORS
   The key point in the recombinant approach
       Alternate behaviors are defined as rewriting rules which
        may alter original ones
           Following again a Use-Case-Driven approach
       The recombiner mixes this behavior and the primary
        sequence, re-calculating the entire program
           Use of the sequence(n) and join operators
       Process:
         In every sequence, go to first action
         WHILE a predicate matches current action

            Apply this rule

            Recalculate the new primary sequence

         Once all have been applied, go to the next one           8
         Loop
THE RECOMBINER:
RECOMBINING A SEQUENCE

     Condition?
                  TRUE


        SEQUENCE?
                         Condition?
                                      TRUE

                         SEQUENCE?




    RECOMBINER

                                             9
RELATED WORK
   An obvious similarity to model checking
     But the approach was not originally conceived as a
      formal approach, and has avoided this
     Behavior predicates (aka regular expressions) can be
      compared to LTL formulae
     Spin allows something similar using LTL
         It allows multithreading while checking
         It does not allow constructive rewriting


   Similar to EAOP in the AOSD world
     EAOP triggers events by using program traces
     Event-driven aspects are similar to rewriting rules
     This is essentially a language, ours a framework       10
CONCLUSIONS & FURTHER WORK
   Developing a framework for constructing
    applications
     By recombining sequences of actions
     Possible to develop trusted behaviors
           And therefore trusted adaptations
     Also for recombining “generic” sequences
     Prototype: Recombinant Java
           Generalizing into a methodolical framework
   Future work
     A requirements specification method (Manhattan)
     Use a high-level specification language
     Complements a “pure” CBSE approach                 11
THANKS FOR YOUR ATTENTION




                            12

Más contenido relacionado

Similar a VADER 2011 (Younessi)

Java Chapter 05 - Conditions & Loops: part 1
Java Chapter 05 - Conditions & Loops: part 1Java Chapter 05 - Conditions & Loops: part 1
Java Chapter 05 - Conditions & Loops: part 1
DanWooster1
 
Programming topics. syed arslan rizvi
Programming topics. syed arslan rizviProgramming topics. syed arslan rizvi
Programming topics. syed arslan rizvi
Syed Arslan Rizvi
 
Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...
Florian Blum
 

Similar a VADER 2011 (Younessi) (20)

Oop concepts
Oop conceptsOop concepts
Oop concepts
 
DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsDesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatterns
 
SELFLESS INHERITANCE
SELFLESS INHERITANCESELFLESS INHERITANCE
SELFLESS INHERITANCE
 
Designing function families and bundles with java's behaviors parameterisatio...
Designing function families and bundles with java's behaviors parameterisatio...Designing function families and bundles with java's behaviors parameterisatio...
Designing function families and bundles with java's behaviors parameterisatio...
 
Software design principles - jinal desai
Software design principles - jinal desaiSoftware design principles - jinal desai
Software design principles - jinal desai
 
L07 Design Principles
L07 Design PrinciplesL07 Design Principles
L07 Design Principles
 
Java Chapter 05 - Conditions & Loops: part 1
Java Chapter 05 - Conditions & Loops: part 1Java Chapter 05 - Conditions & Loops: part 1
Java Chapter 05 - Conditions & Loops: part 1
 
Functional programming
Functional programmingFunctional programming
Functional programming
 
beven 2001.pdf
beven 2001.pdfbeven 2001.pdf
beven 2001.pdf
 
Object Oriented Design SOLID Principles
Object Oriented Design SOLID PrinciplesObject Oriented Design SOLID Principles
Object Oriented Design SOLID Principles
 
Programming topics. syed arslan rizvi
Programming topics. syed arslan rizviProgramming topics. syed arslan rizvi
Programming topics. syed arslan rizvi
 
Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...Coordinated run-time adaptation of variability-intensive systems: an applicat...
Coordinated run-time adaptation of variability-intensive systems: an applicat...
 
OO Design Principles
OO Design PrinciplesOO Design Principles
OO Design Principles
 
A model for run time software architecture adaptation
A model for run time software architecture adaptationA model for run time software architecture adaptation
A model for run time software architecture adaptation
 
kolter2010probabilistic.pdf
kolter2010probabilistic.pdfkolter2010probabilistic.pdf
kolter2010probabilistic.pdf
 
Functional JavaScript Fundamentals
Functional JavaScript FundamentalsFunctional JavaScript Fundamentals
Functional JavaScript Fundamentals
 
Solid Principles
Solid PrinciplesSolid Principles
Solid Principles
 
Ooad
OoadOoad
Ooad
 
Ooad
OoadOoad
Ooad
 
Oos Short Q N
Oos Short Q NOos Short Q N
Oos Short Q N
 

Más de Carlos Cuesta (7)

JITICE 2015 (Cuesta)
JITICE 2015 (Cuesta)JITICE 2015 (Cuesta)
JITICE 2015 (Cuesta)
 
JITICE 2014 (Cuesta)
JITICE 2014 (Cuesta)JITICE 2014 (Cuesta)
JITICE 2014 (Cuesta)
 
Redes Sociales 2014 (Cuesta)
Redes Sociales 2014 (Cuesta)Redes Sociales 2014 (Cuesta)
Redes Sociales 2014 (Cuesta)
 
Semana de la Ciencia 2014 (Martínez-Prieto)
Semana de la Ciencia 2014 (Martínez-Prieto)Semana de la Ciencia 2014 (Martínez-Prieto)
Semana de la Ciencia 2014 (Martínez-Prieto)
 
SESoS 2013 (Romay)
SESoS 2013 (Romay)SESoS 2013 (Romay)
SESoS 2013 (Romay)
 
VADER 2011 (Pérez-Sotelo)
VADER 2011 (Pérez-Sotelo)VADER 2011 (Pérez-Sotelo)
VADER 2011 (Pérez-Sotelo)
 
VADER 2011 (Moreno-Rivera)
VADER 2011 (Moreno-Rivera)VADER 2011 (Moreno-Rivera)
VADER 2011 (Moreno-Rivera)
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Último (20)

Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
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
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 

VADER 2011 (Younessi)

  • 1. TOWARDS A DEVELOPMENT FRAMEWORK BASED ON BEHAVIOR RECOMBINATION Houman Younessi, RH, RPI, USA Renaud Pawlak, LISITE, ISEP, France Carlos E. Cuesta, VorTIC3, URJC, Spain Hersonissos, Crete, Greece, 18/10/2011
  • 2. CONTENTS  Introduction  Behavioral Recombination Framework (BRF)  Behavior Predicates  Abstracting Behavior  Recombining Behaviors  The Recombinator  Related work  Conclusions & Future work 2
  • 3. INTRODUCTION: THE NEED FOR VARIABILITY  Adaptation needs variability  Variation points imply a strategic choice  For instance, less consume over QoS  Variation + modularity = simple choice  Just activate/deactivate a certain module  Loose coupling: CBSE, AOSE  But modularity depends on architecture  Tyranny of the dominant decomposition  Related to architectural erosion  Proposal: define variation on behavior  To define trusted behavior adaptations 3  The structure is not important anymore
  • 4. BEHAVIORAL RECOMBINATION FRAMEWORK (BRF)  Program behavior is defined as a sequence of actions (state changes or messages)  Adapting a program is changing the order of execution (or adding new states)  Behavioral Recombination Framework (BRF)  Modeling the behavior using a recombinator  Using the “recombinant DNA” metaphor  Existing prototype: Recombinant Java  Defining trusted behaviors  Define primary behavioral sequence(s)  Define rules to check expected behavior 4  Define alternate behaviors (rewriting rules)
  • 5. PRIMARY SEQUENCE: THE EXPECTED BEHAVIOR  Relation to Use Cases  Primary Sequence = main scenario  Rewriting Rules = alternate scenarios  Relation to TDD and agile processes  Particularly, Continuosus Integration  Rewriting Rules = integration tests  For instance, consider a program zip (f) c= connect (s, user, pass) r = send (c, f) disconnect (c) 5
  • 6. BEHAVIOR PREDICATES  Now we can check desired properties  In our example: always zip before sending  Done using behavior predicates  To some extent, similar to Pnueli’s LTL  But using a regular expression-based notation  For instance: A*; B  Can be translated to a Büchi automaton  All execution paths must match these predicates  These are invariants, or integration tests  For example: (¬ (zip(f) send(?,f)))*; send(?,f) error 6
  • 7. ABSTRACTING BEHAVIOR  Instead of using invocations to match behavior, we can abstract in “predictive variables” zip (f) zipped = true uploading = true  These abstract “meta-variables” play a similar role to annotations in several languages  Rules can be rewritten using them  Avoids changing conditions due to changes in programming sentences  For example: 7 uploading ¬ zipped error
  • 8. RECOMBINING BEHAVIORS  The key point in the recombinant approach  Alternate behaviors are defined as rewriting rules which may alter original ones  Following again a Use-Case-Driven approach  The recombiner mixes this behavior and the primary sequence, re-calculating the entire program  Use of the sequence(n) and join operators  Process:  In every sequence, go to first action  WHILE a predicate matches current action  Apply this rule  Recalculate the new primary sequence  Once all have been applied, go to the next one 8  Loop
  • 9. THE RECOMBINER: RECOMBINING A SEQUENCE Condition? TRUE SEQUENCE? Condition? TRUE SEQUENCE? RECOMBINER 9
  • 10. RELATED WORK  An obvious similarity to model checking  But the approach was not originally conceived as a formal approach, and has avoided this  Behavior predicates (aka regular expressions) can be compared to LTL formulae  Spin allows something similar using LTL  It allows multithreading while checking  It does not allow constructive rewriting  Similar to EAOP in the AOSD world  EAOP triggers events by using program traces  Event-driven aspects are similar to rewriting rules  This is essentially a language, ours a framework 10
  • 11. CONCLUSIONS & FURTHER WORK  Developing a framework for constructing applications  By recombining sequences of actions  Possible to develop trusted behaviors  And therefore trusted adaptations  Also for recombining “generic” sequences  Prototype: Recombinant Java  Generalizing into a methodolical framework  Future work  A requirements specification method (Manhattan)  Use a high-level specification language  Complements a “pure” CBSE approach 11
  • 12. THANKS FOR YOUR ATTENTION 12