SlideShare ist ein Scribd-Unternehmen logo
1 von 19
USING
MODEL TRANSFORMATION
TECHNIQUES FOR THE SUPERIMPOSITION
OF
ARCHITECTURAL         STYLES

  Elena Navarro, UCLM, Spain
  Carlos E. Cuesta, URJC, Spain
  Dewayne E. Perry, U. Texas at Austin, USA
  Cristina Roda, UCLM, Spain

                                Essen, 16 September, 2011
CONTENTS

 Introduction
 Context: Model-Driven Development
       The ATRIUM Methodology
   Using M2M Transformations for Styles
       Superimposing Architectural Styles
       Structure of QVT Relations
       Case Study: ACROSET
       Superimposing the ACROSET Style via QVT
   Conclusions
                                                  2
INTRODUCTION
   Software Architecture provides several means to
    reuse the effort in the development process
       Architectural Styles are probably the best known
   It is a well-known topic in the area, but
     Definitions are often too abstract
     Not many approaches able to deal with them
     Only a few proposals provide some automatic support

   Our proposal will be to apply them during
    construction time by superimposition
     The proposal uses the principles of model-driven
      development to do that…
                                                            3
     … hence providing (semi-)automatic support
CONTEXT: THE ATRIUM PROCESS
   A Model-Driven, Architecture-Centric Process

                ISO/IEC
                  9126
                 ISO/IEC
                   9126          Define
                                 Goals
                                 Define
                                 Goals
               Informal                           ATRIUM Goal
             Requirements
                Informal                             Model
                                                  ATRIUM Goal
             Requirements                            Model

                                                     Define
                                Selected            Scenarios
                                                      Define
                            Architectural Style
                                 Selected           Scenarios
                            Architectural Style


                                 Design
                                 Patterns           Scenario
                                  Design
                                                     Model
                                                    Scenario
                                 Patterns
                                                     Model

                            Transformation        Synthesize and
                                rules
                            Transformation          Transform
                                                  Synthesize and
                                 rules              Transform




                                                      proto-
                                                   architecture
                                                      proto-
                                                   architecture
TOOL SUPPORT: MORPHEUS
   Model-Driven Development support
       Semi-automatic support (human in the loop)
   Support for QVT Relations based on Medini

              Requirements     Scenarios   Software Architecture




                                              MORPHEUS



Demos at:
http://www.dsi.uclm.es/personal/ElenaNavarro/research_atrium.htm
ARCHITECTURAL STYLES BY
TRANSFORMATIONS
   Architectural Styles, when used in practice, have
    essentially two effects
     Outline the set of elements (“vocabulary”)
     Outline the overall structure and constrain the behaviour
      (usually on connections)
   In a model-driven context, both things can be done
    by using M2M model transformations
     Affected elements (vocabulary) can be identified
     Constrains can be applied when connecting elements

   Already integrated in the ATRIUM process as shown
    (in Synthesize and Transform)
                                                                  6
       But easily generalizable to many MDD processes
ON QVT RELATIONS
   QVT Relations: the declarative part of QVT
     This makes it particularly fit for architectures
     Able to manage both source and target models
     It has the incrementality featured
           Generated proto-architectures can be updated
       It also supports directionality and traceability
   By definition, transformations depend on the origin
    and target languages (i.e. metamodels)
     In our case, ATRIUM scenarios, at the
      requirements/analysis level
     And PRISMA models, at the architectural level
     But the approach can be easily generalized           7
RULES ORGANIZATION
 A QVT feature: to classify our transformations
 Architectural Generation Patterns
     Most easily generalizable
     Generate architectural elements (components,
      connectors, etc.) from the specification
   Idioms
     Low-level transformations, metamodel-specific
     Usually this is what the analyst has to do

   Architectural Styles
     Imposing style constraints onto the architecture
     In essence a M2M “metamodel merge” operation
                                                         8
     The main focus of this talk
CASE STUDY: EFTCOR PROJECT
   Robots performing maintenance tasks on ships
       High needs in terms of non-functional requirements:
        reliability, safety, etc.
CASE STUDY: ACROSET STYLE
   In the context of the EFTCoR project
     We specifically focus on the software of the RDCU
      (Robotic Devices Control Unit)
     In charge of managing the whole system

   Its design uses a variant of the Layered Style
     Specifically, a DSSA style named ACROSET
     All robots in the system conform to this style
     Three kinds of subsystems
         SUC – simple unit controller: manages sensors / actuators
         MUC – mechanism unit controller: aggregates SUCs and

          provides specific control policies
         RUC – robotic unit controller; aggregates MUCs and manages
                                                                       10
          the whole robot
DEFINING TRANSFORMATIONS FOR THE
ACROSET STYLE
   Transformation ScenariosToArchmodelPRISMA
     Import architectural patterns (generation & style)
     Identify candidate models
     Identify unique elements (key)

        import archpatt;
        import archAcrosetStyle;
        transformation ScenariosToArchmodelPRISMA
        (scenarios: ATRIUMScenarios, archmodel: Archmodel)
               key archmodel::System {name};
               key archmodel::Component {name};
               key archmodel::Connector {name};
               key archmodel::Port {name,
                       ArchitecturalElement};
               key archmodel::Attachment {name, System};
               key archmodel::Attachment {name,              11
                       Architecturalmodel};
APPLYING THE ACROSET STYLE
            Relation: ApplyingACROSET2Systems

                                                        i.message->notEmpty() and ((s1.role='MUC' and s2.role ='SUC')
                                                    or (s1.role ='RUC' and s2.role='MUC')) and l1->oclIsKindOf(Connector)


     <<domain>>                                                                                                                      <<domain>>
     i:Interaction    scenarios: ATRIUMScenarios                                        archModel: ArchModel                          s:System
                                                                      TOP
                                        C                                                         E                    name=‟System-ACROSETStyle‟


                                                 message
                                                                                                       connect                                        containsComps
                                            m:Message
                                                                                                      att:Attachment                               s1:System
                                            name=cn

                                                                                                      name=attName                                 name=sn1
              sendEvent                                                 receiveEvent

   m1:MessageOccurrenceSpecification                  m2:MessageOccurrenceSpecification

                                                                                                                       linkPort              has
                           covered                                        covered

                 l1:Lifeline                                      l2:Lifeline                                                     ps1:Port

                 name=ln1                                         name=ln2
                                                                                                                         name=portName

                          interaction                                   interaction

             sf1:SystemFrame                                  sf2:SystemFrame
                name=sn1                                         name=sn2

         where
attName=‟Att‟+sn1+ln1+sn2+ln2; //the name of the attachment

portName= „Port‟+sn2+ln2; //the name of the port of the system mapped from l1

MessageToAttachment(sf2, s1, attName, portName2); //it establishes attachment between the system (mapped from sf2) and the architectural element

(mapped from l1)                                                                                                                                                      12
LifelineToConnectorBinding(l2, s2, portName2, bindingName); //it creates the port in the architectural element (mapped from l2), and the the binding

between that port and the port ps2 of the system (mapped from s2) that contains it
APPLYING STYLE BY TRANSFORMATIONS
   There are essentially three issues to solve
     Defining the right elements (style “vocabulary”)
     Defining (i.e. generating) the target architecture
      according to domain-specific concerns
         I.e. instantiating the right components
            Done as part of the “normal” generation process

         … and connecting them to each other

            Usually requires a more detailed approach

            QVT Relation‟s declarative nature helps a lot

       Ensuring that this structure complies with style
         Every constraint is checked as part of the generation
         Style is therefore enforced by construction

       Every relation provides these features in context         13
EXPANDING THE OTHER SUBSYSTEM…
                 Relation: MessageToAttachment
     <<domain>>                                                                                                                     <<domain>>
     m:Message         scenarios: ATRIUMScenarios                                      archModel: ArchModel                          s:System

       name=cn                       C                                                           E                    name=‟System-ACROSETStyle‟


                                                                                                      connect                                           include
                                                                <<domain>>
                                                         attachmentName:String
                                                                                                     att:Attachment                               s2:System

                                                                                                     name=attName                                 name=sn2
          sendEvent                                                 receiveEvent

  m1:MessageOccurrenceSpecification             m2:MessageOccurrenceSpecification


                         covered                                      covered                                         linkPort              has

                 l1:Lifeline                                  l2:Lifeline                                                        ps2:Port
                 name=ln1                                     name=ln2
                                                                                                                        name=portName2

                       interaction                                   interaction

             sf1:SystemFrame                              sf2:SystemFrame
                 name=sn1                                     name=sn2


          where
attName=attachmentName; //the name of the attachment

portName2= „Port‟+sn1+ln1; //the name of the port of the system mapped from sf2

bindingName= „Bind‟+sn1+ln1+ln2; //the name of the binding to be established
LifelineToConnectorBinding(l2, s2, portName2, bindingName) or LifelineToComponentBinding(l2, s2, portName2, bindingName); //it creates the

architectural element (mapped from l2) with a port and establishes the binding between that port and the port of the system that refers that architectural
                                                                                                                                                                  14
element
WRAPPING IT ALL TOGETHER…
   There are many more details of course
       The usual MDE/M2M details
         Definition of the corresponding meta-models, which had to be
          extended to cope with Architectural Styles
         Different sets of QVT rules, providing different sets of
          generation and style patterns
       Also there are more “sub-relations” (and OCL
        constraints) implied in the presented definitions
         System Frames, Lifelines and Messages to Systems, Bindings
          and Attachments at all levels
         Style application is “guided” by domain-specific details

         Essentially it implies to follow a strict naming discipline

            I.e. to “transport” the names where they are required
                                                                         15
         This is all done concurrently (i.e., declaratively)
PROTO-ARCHITECTURE GENERATION




    ATRIUM Scenarios
                 PortWristSUCWristCnct
    PRISMA
                                                  BindWristSUCWristCnctArmCnct


                                                                          «ConnectorPRISMA»
                                                                               ArmCnct
       AttArmMUCArmCnctWristSUCWristCnct     PortWristSUCWristCnct
                                                                                              ArmMUC
                                                                                              ArmMUC



                         PortArmMUCArmCnct        BindArmMUCArmCnctWristCnct                             16
                                                                          «ConnectorPRISMA»
                                                                              WristCnct
                                              PortArmMUCArmCnct

                                                                                              WristSUC
CONCLUSIONS
   There are already several proposals to generate
    architectures using MDD mechanisms
       But not many of them use architectural styles
   This approach can be generalized independently of
    the presented machinery
     Also applied, e.g. in service-oriented architectures and
      using ATL+AMW instead of QVT
     QVT Relations, however, provides the best features
      from a style-oriented point of view
         Defining a style is rather straightforward
         Incrementality helps during system evolution

         Trace class can be used to trace back to requirements
                                                                  17
       Currently expanding to include evaluation models
THANKS FOR YOUR ATTENTION!




                             18
MDD: TRACING DESIGN DECISIONS
                                                                                                                                                            Goal
                                      Operationalization                                                                                       -concern
                              -code : long                                       Contribution                     Requirement                  -priority
                              -name : string                                                                 -pre-condition : string           -formalDef : string
                              -designDecision : string                  *                             *      -post-condition : string          -pattern
                              -designRationale : string                                                                                        -author : string
                                                                                                                                               -creationDate : string
 Goal Meta-Model
                                                                                              -interaction
                                                          Interaction                                                               LifeLine
                            specifiedBy
                                                                                              1
                                                                                                                      -lifeline    *


                                   «stereotype»                                   «stereotype»
                               ArchitecturalScenario                                                         «stereotype»         «stereotype»           «stereotype»
                                                                                 systemFrame
                              -code : long                                                                   Environment           Connector             Component
                                                                            -systemName : string
                                                                            -scenarioName : String
                                       1     -archScenario
                                                                             -systems    *
                                                                                                  «stereotype»          «stereotype»
 Scenario Meta-Model                                                                                 Human                 COTS


                                           DesignAsset
              traceFrom                                                                            ArchitecturalElement
                              -code : long                          -describedBy
                              -name : string                                                      -name:string
                              -designDecision : string              *                     1
                              -designRationale : string




                                                                             *          Connector                         Component              -containsComps

                                                    -containsConnectors                                                                          *


                                                                                                                                                     *
                                                                                                                            System

 Architectural Meta-Model                                                                                    *

Weitere ähnliche Inhalte

Andere mochten auch

Powers 5 13 dissertation presentation
Powers 5 13 dissertation presentationPowers 5 13 dissertation presentation
Powers 5 13 dissertation presentationShawn Powers
 
PITA Y SU MÁQUINA
PITA Y  SU  MÁQUINAPITA Y  SU  MÁQUINA
PITA Y SU MÁQUINAjulipita
 
MI COMPUTADOR IDEAL
MI  COMPUTADOR  IDEALMI  COMPUTADOR  IDEAL
MI COMPUTADOR IDEALjulipita
 
Useful v. beautiful
Useful v. beautifulUseful v. beautiful
Useful v. beautifulShawn Powers
 

Andere mochten auch (6)

Powers 5 13 dissertation presentation
Powers 5 13 dissertation presentationPowers 5 13 dissertation presentation
Powers 5 13 dissertation presentation
 
SOAR 2009 (Cuesta)
SOAR 2009 (Cuesta)SOAR 2009 (Cuesta)
SOAR 2009 (Cuesta)
 
PITA Y SU MÁQUINA
PITA Y  SU  MÁQUINAPITA Y  SU  MÁQUINA
PITA Y SU MÁQUINA
 
MI COMPUTADOR IDEAL
MI  COMPUTADOR  IDEALMI  COMPUTADOR  IDEAL
MI COMPUTADOR IDEAL
 
Useful v. beautiful
Useful v. beautifulUseful v. beautiful
Useful v. beautiful
 
ECSA 2013 (Cuesta)
ECSA 2013 (Cuesta)ECSA 2013 (Cuesta)
ECSA 2013 (Cuesta)
 

Ähnlich wie ECSA 2011 (Navarro)

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpointsHenry Muccini
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelAlessio Bucaioni
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeIJEACS
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandfordNASAPMC
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]Ivano Malavolta
 
Model-based Testing Principles
Model-based Testing PrinciplesModel-based Testing Principles
Model-based Testing PrinciplesHenry Muccini
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.pptssuser2ef938
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfB.T.L.I.T
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringPiero Fraternali
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patternssukumarraju6
 
Serenity Project: Security in Software Enginering
Serenity Project: Security in Software EngineringSerenity Project: Security in Software Enginering
Serenity Project: Security in Software EngineringFrancisco Sanchez Cid
 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISEsreeja_rajesh
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsHenry Muccini
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusWillert
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologiesnaina-rani
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
Software Patterns
Software PatternsSoftware Patterns
Software Patternskim.mens
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
 

Ähnlich wie ECSA 2011 (Navarro) (20)

Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Towards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component ModelTowards a metamodel for the Rubus Component Model
Towards a metamodel for the Rubus Component Model
 
Model-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to CodeModel-Driven Generation of MVC2 Web Applications: From Models to Code
Model-Driven Generation of MVC2 Web Applications: From Models to Code
 
Friedenthal.sandford
Friedenthal.sandfordFriedenthal.sandford
Friedenthal.sandford
 
The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]The road ahead for architectural languages [ACVI 2016]
The road ahead for architectural languages [ACVI 2016]
 
Model-based Testing Principles
Model-based Testing PrinciplesModel-based Testing Principles
Model-based Testing Principles
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Uml3
Uml3Uml3
Uml3
 
SADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdfSADP PPTs of all modules - Shanthi D.L.pdf
SADP PPTs of all modules - Shanthi D.L.pdf
 
Web technologies: Model Driven Engineering
Web technologies: Model Driven EngineeringWeb technologies: Model Driven Engineering
Web technologies: Model Driven Engineering
 
Introduction To Design Patterns
Introduction To Design PatternsIntroduction To Design Patterns
Introduction To Design Patterns
 
Apostila UML
Apostila UMLApostila UML
Apostila UML
 
Serenity Project: Security in Software Enginering
Serenity Project: Security in Software EngineringSerenity Project: Security in Software Enginering
Serenity Project: Security in Software Enginering
 
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISESoftware Architecture and Project Management module III : PATTERN OF ENTERPRISE
Software Architecture and Project Management module III : PATTERN OF ENTERPRISE
 
On the Composition and Reuse of Viewpoints
On the Composition and Reuse of ViewpointsOn the Composition and Reuse of Viewpoints
On the Composition and Reuse of Viewpoints
 
SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02SodiusCassidianmdday2010 101129081449-phpapp02
SodiusCassidianmdday2010 101129081449-phpapp02
 
Object oriented methodologies
Object oriented methodologiesObject oriented methodologies
Object oriented methodologies
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
Software Patterns
Software PatternsSoftware Patterns
Software Patterns
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 

Mehr von 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
 

Mehr von 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)
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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 AutomationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
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 textsMaria Levchenko
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
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
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 

ECSA 2011 (Navarro)

  • 1. USING MODEL TRANSFORMATION TECHNIQUES FOR THE SUPERIMPOSITION OF ARCHITECTURAL STYLES Elena Navarro, UCLM, Spain Carlos E. Cuesta, URJC, Spain Dewayne E. Perry, U. Texas at Austin, USA Cristina Roda, UCLM, Spain Essen, 16 September, 2011
  • 2. CONTENTS  Introduction  Context: Model-Driven Development  The ATRIUM Methodology  Using M2M Transformations for Styles  Superimposing Architectural Styles  Structure of QVT Relations  Case Study: ACROSET  Superimposing the ACROSET Style via QVT  Conclusions 2
  • 3. INTRODUCTION  Software Architecture provides several means to reuse the effort in the development process  Architectural Styles are probably the best known  It is a well-known topic in the area, but  Definitions are often too abstract  Not many approaches able to deal with them  Only a few proposals provide some automatic support  Our proposal will be to apply them during construction time by superimposition  The proposal uses the principles of model-driven development to do that… 3  … hence providing (semi-)automatic support
  • 4. CONTEXT: THE ATRIUM PROCESS  A Model-Driven, Architecture-Centric Process ISO/IEC 9126 ISO/IEC 9126 Define Goals Define Goals Informal ATRIUM Goal Requirements Informal Model ATRIUM Goal Requirements Model Define Selected Scenarios Define Architectural Style Selected Scenarios Architectural Style Design Patterns Scenario Design Model Scenario Patterns Model Transformation Synthesize and rules Transformation Transform Synthesize and rules Transform proto- architecture proto- architecture
  • 5. TOOL SUPPORT: MORPHEUS  Model-Driven Development support  Semi-automatic support (human in the loop)  Support for QVT Relations based on Medini Requirements Scenarios Software Architecture MORPHEUS Demos at: http://www.dsi.uclm.es/personal/ElenaNavarro/research_atrium.htm
  • 6. ARCHITECTURAL STYLES BY TRANSFORMATIONS  Architectural Styles, when used in practice, have essentially two effects  Outline the set of elements (“vocabulary”)  Outline the overall structure and constrain the behaviour (usually on connections)  In a model-driven context, both things can be done by using M2M model transformations  Affected elements (vocabulary) can be identified  Constrains can be applied when connecting elements  Already integrated in the ATRIUM process as shown (in Synthesize and Transform) 6  But easily generalizable to many MDD processes
  • 7. ON QVT RELATIONS  QVT Relations: the declarative part of QVT  This makes it particularly fit for architectures  Able to manage both source and target models  It has the incrementality featured  Generated proto-architectures can be updated  It also supports directionality and traceability  By definition, transformations depend on the origin and target languages (i.e. metamodels)  In our case, ATRIUM scenarios, at the requirements/analysis level  And PRISMA models, at the architectural level  But the approach can be easily generalized 7
  • 8. RULES ORGANIZATION  A QVT feature: to classify our transformations  Architectural Generation Patterns  Most easily generalizable  Generate architectural elements (components, connectors, etc.) from the specification  Idioms  Low-level transformations, metamodel-specific  Usually this is what the analyst has to do  Architectural Styles  Imposing style constraints onto the architecture  In essence a M2M “metamodel merge” operation 8  The main focus of this talk
  • 9. CASE STUDY: EFTCOR PROJECT  Robots performing maintenance tasks on ships  High needs in terms of non-functional requirements: reliability, safety, etc.
  • 10. CASE STUDY: ACROSET STYLE  In the context of the EFTCoR project  We specifically focus on the software of the RDCU (Robotic Devices Control Unit)  In charge of managing the whole system  Its design uses a variant of the Layered Style  Specifically, a DSSA style named ACROSET  All robots in the system conform to this style  Three kinds of subsystems  SUC – simple unit controller: manages sensors / actuators  MUC – mechanism unit controller: aggregates SUCs and provides specific control policies  RUC – robotic unit controller; aggregates MUCs and manages 10 the whole robot
  • 11. DEFINING TRANSFORMATIONS FOR THE ACROSET STYLE  Transformation ScenariosToArchmodelPRISMA  Import architectural patterns (generation & style)  Identify candidate models  Identify unique elements (key) import archpatt; import archAcrosetStyle; transformation ScenariosToArchmodelPRISMA (scenarios: ATRIUMScenarios, archmodel: Archmodel) key archmodel::System {name}; key archmodel::Component {name}; key archmodel::Connector {name}; key archmodel::Port {name, ArchitecturalElement}; key archmodel::Attachment {name, System}; key archmodel::Attachment {name, 11 Architecturalmodel};
  • 12. APPLYING THE ACROSET STYLE Relation: ApplyingACROSET2Systems i.message->notEmpty() and ((s1.role='MUC' and s2.role ='SUC') or (s1.role ='RUC' and s2.role='MUC')) and l1->oclIsKindOf(Connector) <<domain>> <<domain>> i:Interaction scenarios: ATRIUMScenarios archModel: ArchModel s:System TOP C E name=‟System-ACROSETStyle‟ message connect containsComps m:Message att:Attachment s1:System name=cn name=attName name=sn1 sendEvent receiveEvent m1:MessageOccurrenceSpecification m2:MessageOccurrenceSpecification linkPort has covered covered l1:Lifeline l2:Lifeline ps1:Port name=ln1 name=ln2 name=portName interaction interaction sf1:SystemFrame sf2:SystemFrame name=sn1 name=sn2 where attName=‟Att‟+sn1+ln1+sn2+ln2; //the name of the attachment portName= „Port‟+sn2+ln2; //the name of the port of the system mapped from l1 MessageToAttachment(sf2, s1, attName, portName2); //it establishes attachment between the system (mapped from sf2) and the architectural element (mapped from l1) 12 LifelineToConnectorBinding(l2, s2, portName2, bindingName); //it creates the port in the architectural element (mapped from l2), and the the binding between that port and the port ps2 of the system (mapped from s2) that contains it
  • 13. APPLYING STYLE BY TRANSFORMATIONS  There are essentially three issues to solve  Defining the right elements (style “vocabulary”)  Defining (i.e. generating) the target architecture according to domain-specific concerns  I.e. instantiating the right components  Done as part of the “normal” generation process  … and connecting them to each other  Usually requires a more detailed approach  QVT Relation‟s declarative nature helps a lot  Ensuring that this structure complies with style  Every constraint is checked as part of the generation  Style is therefore enforced by construction  Every relation provides these features in context 13
  • 14. EXPANDING THE OTHER SUBSYSTEM… Relation: MessageToAttachment <<domain>> <<domain>> m:Message scenarios: ATRIUMScenarios archModel: ArchModel s:System name=cn C E name=‟System-ACROSETStyle‟ connect include <<domain>> attachmentName:String att:Attachment s2:System name=attName name=sn2 sendEvent receiveEvent m1:MessageOccurrenceSpecification m2:MessageOccurrenceSpecification covered covered linkPort has l1:Lifeline l2:Lifeline ps2:Port name=ln1 name=ln2 name=portName2 interaction interaction sf1:SystemFrame sf2:SystemFrame name=sn1 name=sn2 where attName=attachmentName; //the name of the attachment portName2= „Port‟+sn1+ln1; //the name of the port of the system mapped from sf2 bindingName= „Bind‟+sn1+ln1+ln2; //the name of the binding to be established LifelineToConnectorBinding(l2, s2, portName2, bindingName) or LifelineToComponentBinding(l2, s2, portName2, bindingName); //it creates the architectural element (mapped from l2) with a port and establishes the binding between that port and the port of the system that refers that architectural 14 element
  • 15. WRAPPING IT ALL TOGETHER…  There are many more details of course  The usual MDE/M2M details  Definition of the corresponding meta-models, which had to be extended to cope with Architectural Styles  Different sets of QVT rules, providing different sets of generation and style patterns  Also there are more “sub-relations” (and OCL constraints) implied in the presented definitions  System Frames, Lifelines and Messages to Systems, Bindings and Attachments at all levels  Style application is “guided” by domain-specific details  Essentially it implies to follow a strict naming discipline  I.e. to “transport” the names where they are required 15  This is all done concurrently (i.e., declaratively)
  • 16. PROTO-ARCHITECTURE GENERATION ATRIUM Scenarios PortWristSUCWristCnct PRISMA BindWristSUCWristCnctArmCnct «ConnectorPRISMA» ArmCnct AttArmMUCArmCnctWristSUCWristCnct PortWristSUCWristCnct ArmMUC ArmMUC PortArmMUCArmCnct BindArmMUCArmCnctWristCnct 16 «ConnectorPRISMA» WristCnct PortArmMUCArmCnct WristSUC
  • 17. CONCLUSIONS  There are already several proposals to generate architectures using MDD mechanisms  But not many of them use architectural styles  This approach can be generalized independently of the presented machinery  Also applied, e.g. in service-oriented architectures and using ATL+AMW instead of QVT  QVT Relations, however, provides the best features from a style-oriented point of view  Defining a style is rather straightforward  Incrementality helps during system evolution  Trace class can be used to trace back to requirements 17  Currently expanding to include evaluation models
  • 18. THANKS FOR YOUR ATTENTION! 18
  • 19. MDD: TRACING DESIGN DECISIONS Goal Operationalization -concern -code : long Contribution Requirement -priority -name : string -pre-condition : string -formalDef : string -designDecision : string * * -post-condition : string -pattern -designRationale : string -author : string -creationDate : string Goal Meta-Model -interaction Interaction LifeLine specifiedBy 1 -lifeline * «stereotype» «stereotype» ArchitecturalScenario «stereotype» «stereotype» «stereotype» systemFrame -code : long Environment Connector Component -systemName : string -scenarioName : String 1 -archScenario -systems * «stereotype» «stereotype» Scenario Meta-Model Human COTS DesignAsset traceFrom ArchitecturalElement -code : long -describedBy -name : string -name:string -designDecision : string * 1 -designRationale : string * Connector Component -containsComps -containsConnectors * * System Architectural Meta-Model *