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

More Related Content

Similar to VADER 2011 (Younessi)

DesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsDesignPrinciples-and-DesignPatterns
DesignPrinciples-and-DesignPatternsBasavaraj Patil
 
SELFLESS INHERITANCE
SELFLESS INHERITANCESELFLESS INHERITANCE
SELFLESS INHERITANCEijpla
 
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...Alain Lompo
 
Software design principles - jinal desai
Software design principles - jinal desaiSoftware design principles - jinal desai
Software design principles - jinal desaijinaldesailive
 
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 1DanWooster1
 
Functional programming
Functional programmingFunctional programming
Functional programmingPiumiPerera7
 
Object Oriented Design SOLID Principles
Object Oriented Design SOLID PrinciplesObject Oriented Design SOLID Principles
Object Oriented Design SOLID Principlesrainynovember12
 
Programming topics. syed arslan rizvi
Programming topics. syed arslan rizviProgramming topics. syed arslan rizvi
Programming topics. syed arslan rizviSyed 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
 
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 adaptationijseajournal
 
Functional JavaScript Fundamentals
Functional JavaScript FundamentalsFunctional JavaScript Fundamentals
Functional JavaScript FundamentalsSrdjan Strbanovic
 

Similar to 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
 

More from Carlos Cuesta

JITICE 2015 (Cuesta)
JITICE 2015 (Cuesta)JITICE 2015 (Cuesta)
JITICE 2015 (Cuesta)Carlos Cuesta
 
JITICE 2014 (Cuesta)
JITICE 2014 (Cuesta)JITICE 2014 (Cuesta)
JITICE 2014 (Cuesta)Carlos Cuesta
 
Redes Sociales 2014 (Cuesta)
Redes Sociales 2014 (Cuesta)Redes Sociales 2014 (Cuesta)
Redes Sociales 2014 (Cuesta)Carlos 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)Carlos Cuesta
 
VADER 2011 (Pérez-Sotelo)
VADER 2011 (Pérez-Sotelo)VADER 2011 (Pérez-Sotelo)
VADER 2011 (Pérez-Sotelo)Carlos Cuesta
 
VADER 2011 (Moreno-Rivera)
VADER 2011 (Moreno-Rivera)VADER 2011 (Moreno-Rivera)
VADER 2011 (Moreno-Rivera)Carlos Cuesta
 

More from 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)
 

Recently uploaded

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesZilliz
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 

Recently uploaded (20)

Vector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector DatabasesVector Databases 101 - An introduction to the world of Vector Databases
Vector Databases 101 - An introduction to the world of Vector Databases
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 

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