SlideShare a Scribd company logo
Using	
  Evolu,on	
  Pa/erns	
  to	
  
  Evolve	
  So4ware	
  Architectures      	
  
Joint	
  work	
  with	
  Dalila	
  Tamzalit,	
  
  Université	
  de	
  Nantes,	
  France	
  
Published	
  in	
  IEEE	
  ECBS	
  2010,	
  Oxford	
  
With	
  help	
  of	
  Aurélien	
  Lansmanne	
  for	
  the	
  implementaMon	
  
Context	
  :	
  So4ware	
  Architectures
                                         	
  
SoOware	
  development	
  process	
  
   –  	
  Requirements	
  
   – 	
  Architecture	
  
   –  	
  Design	
  
   –  	
  ImplementaMon	
  
	
  Architectural	
  descripMons	
  
   –  Capture	
  strategic	
  decisions	
  and	
  raMonale	
  at	
  a	
  high-­‐level	
  of	
  
      abstracMon	
  
   –  Provide	
  a	
  basis	
  for	
  detailed	
  design	
  
   –  Are	
  essenMal	
  for	
  expressing	
  and	
  constraining	
  large-­‐scale	
  
      and	
  criMcal	
  systems	
  

                                                                                                  3	
  
Context	
  :	
  So4ware	
  Architectures
                                                     	
  
                                                                        	
  
      IEEE/ISO/IEC	
  Standard	
  1471-­‐2000:	
  Recommended	
  Prac,ce	
  




      Component	
  &	
  
        connector	
  
                                                                   4	
  
        viewpoint	
  
Université de Mons
Context	
  :	
  So4ware	
  Architectures
                                         	
  
•  C&C	
  viewpoint	
  
   •  Expresses	
  the	
  system	
  structure	
  in	
  terms	
  of	
  components	
  
      (with	
  ports)	
  related	
  by	
  connectors	
  (with	
  roles)	
  
•  Architectural	
  DescripMon	
  Language	
  (ADL)	
  
   •  Provides	
  the	
  syntax	
  and	
  semanMcs	
  for	
  the	
  C&C	
  viewpoint	
  
•  Example	
  
   •  e-­‐shop	
  expressed	
  
      in	
  COSA	
  ADL	
  




                                                                                           5	
  
Context	
  :	
  Architectural	
  Styles
                                           	
  
•  An	
  architectural	
  style	
  captures	
  recurring	
  
   architectural	
  paZerns	
  
•  Examples	
  
   •  Pipe&Filter,	
  Publish-­‐Subscribe,	
  Peer-­‐to-­‐peer,	
  n-­‐Mered,	
  …	
  




                                                                                         6	
  
Context	
  :	
  Architectural	
  Styles
                                           	
  
•  An	
  architectural	
  style	
  captures	
  recurring	
  
   architectural	
  paZerns	
  
•  Examples	
  
   •  Client-­‐Server	
  




                                                               7	
  
Goal	
  :	
  Architectural	
  Evolu,on	
  
•  SoOware	
  evoluMon	
  
   –  Is	
  inevitable:	
  Perpetual	
  challenge	
  for	
  large-­‐scale	
  systems	
  
   –  Is	
  difficult	
  and	
  expensive	
  
        •  Systems	
  tend	
  to	
  increase	
  in	
  complexity	
  
        •  Several	
  stakeholders,	
  several	
  representaMons	
  
        •  Difficult	
  to	
  manage,	
  lack	
  of	
  abstracMon	
  
   –  Needs	
  to	
  be	
  liOed	
  
        •  Support	
  for	
  evoluMon	
  at	
  architectural	
  level	
  
   –  Needs	
  to	
  be	
  automated	
  
        •  Needs	
  to	
  be	
  built	
  in	
  the	
  language	
  (ADL)	
  and	
  its	
  supporMng	
  tools	
  




                                                                                                                  8	
  
Goal	
  :	
  Architecture	
  restructuring	
  
•  Apply	
  ideas	
  of	
  “program	
  refactoring”	
  at	
  
   architectural	
  level	
  
   •  Improve	
  architectural	
  structure	
  by	
  automated	
  
      transformaMons	
  
   •  Examples	
  
        •  Transform	
  legacy	
  systems	
  to	
  client-­‐server	
  systems,	
  to	
  N-­‐Mered	
  
           systems,	
  to	
  SOA,	
  …	
  
        •  Introducing	
  an	
  architectural	
  style	
  to	
  an	
  exisMng	
  architecture	
  
   –  Goal	
  
        •  Impose	
  addiMonal	
  structural	
  constraints	
  
        •  While	
  preserving	
  	
  the	
  exisMng	
  funcMonality	
  


                                                                                                        9	
  
Goal	
  :	
  Architecture	
  restructuring	
  
    Example:	
  from	
  monolithic	
  to	
  client-­‐server
                                                          	
  
   •  Original	
  C&C	
  architecture	
  
    	
        	
  e-­‐shop	
  expressed	
  using	
  COSA	
  ADL	
  




                                                                      10	
  
Université de Mons
Goal	
  :	
  Architecture	
  restructuring	
  
    Example:	
  from	
  monolithic	
  to	
  client-­‐server
                                                          	
  




                                                                 11	
  
Université de Mons
Approach	
  
	
  Formal	
  valida,on	
  
     –  Assess	
  feasibility	
  using	
  graph	
  transformaMon	
  theory	
  
     –  Provide	
  proof-­‐of-­‐concept	
  using	
  AGG	
  tool	
  	
  


	
  Prac,cal	
  valida,on	
  
     –  Extend	
  exisMng	
  ADL	
  (COSA)	
  with	
  support	
  for	
  evoluMon	
  
     –  Implement	
  the	
  formal	
  ideas	
  in	
  COSABuilder	
  tool	
  


	
  Case	
  study	
  
     –  Convert	
  a	
  monolithic	
  architecture	
  (E-­‐shop)	
  in	
  a	
  client-­‐
        server	
  architecture	
  by	
  introducing	
  architectural	
  style	
  
                                                                                           12	
  
Formal	
  valida,on	
  
•  Use	
  graph	
  transformaMon	
  theory	
  
   •  Specify	
  proof-­‐of-­‐concept	
  in	
  AGG	
  tool	
  

   •  Represent	
  ADL	
  metamodel	
  as	
  a	
  type	
  graph	
  
   •  Represent	
  addiMonal	
  constraints	
  as	
  graph	
  invariants	
  
   •  Represent	
  architecture	
  as	
  a	
  graph	
  conforming	
  to	
  this	
  type	
  
      graph	
  
   •  Represent	
  architectural	
  style	
  
   •  Represent	
  architectural	
  evoluMon	
  steps	
  as	
  graph	
  
      transforma1on	
  rules	
  
   •  Use	
  formal	
  analysis	
  capabiliMes	
  of	
  AGG	
  

                                                                                              13	
  
Formal	
  Valida,on	
  
•  Represent	
  (part	
  of	
  )	
  COSA	
  ADL	
  metamodel	
  as	
  a	
  
   type	
  graph	
  
    •  Architectural	
  concepts:	
  component,	
  configuraMon,	
  
       (provided	
  or	
  required)	
  port	
  or	
  role,	
  connector,	
  binding,	
  
       aZachment	
  




                                                                                           14	
  
Formal	
  Valida,on	
  
•  Represent	
  architecture	
  as	
  a	
  graph	
  conform	
  to	
  
   this	
  type	
  graph 	
  	
  




                                                                        15	
  
Formal	
  Valida,on	
  
•  Represent	
  (part	
  of	
  )	
  COSA	
  ADL	
  metamodel	
  as	
  a	
  
   type	
  graph	
  
    •  Derived	
  edge	
  types:	
  connectsTo	
  and	
  connector   	
  	
  




                                                                                16	
  
Formal	
  Valida,on	
  
•  Represent	
  (part	
  of	
  )	
  COSA	
  ADL	
  metamodel	
  as	
  a	
  
   type	
  graph	
  
    •  Graph	
  invariants	
  
        •  A	
  component	
  cannot	
  be	
  connected	
  to,	
  or	
  contained	
  in,	
  	
  itself.	
  
        •  A	
  uses	
  dependency	
  is	
  only	
  allowed	
  between	
  different	
  ports	
  
           belonging	
  to	
  the	
  same	
  component.	
  
        •  Two	
  components	
  cannot	
  be	
  at	
  the	
  same	
  Mme	
  connected	
  to,	
  and	
  
           contained,	
  in	
  one	
  another.	
  

        •  A	
  binding	
  is	
  only	
  allowed	
  
           between	
  ports	
  of	
  the	
  same	
  
           type	
  belonging	
  to	
  a	
  
           component	
  and	
  one	
  of	
  its	
  
           subcomponents.	
  
                                                                                                             17	
  
Formal	
  Valida,on	
  
•  Express	
  the	
  architectural	
  style	
  as	
  extension	
  of	
  
   type	
  graph	
  



•  with	
  addiMonal	
  graph	
  constraints	
  
    –  Only	
  Client	
  and	
  Server	
  are	
  allowed	
  as	
  top-­‐level	
  components	
  
    –  A	
  Client	
  component	
  must	
  always	
  be	
  connected	
  to	
  Server	
  via	
  a	
  
       connectsTo-­‐link	
  



                                                                                                  18	
  
Formal	
  Valida,on	
  
•  Represent	
  evoluMon	
  operaMons	
  as	
  graph	
  
   transformaMon	
  rules	
  




                                                           19	
  
Formal	
  Valida,on	
  
•  Represent	
  evoluMon	
  operaMons	
  as	
  graph	
  
   transformaMon	
  rules	
  




                                                           20	
  
Formal	
  Valida,on	
  
•  Ensure	
  preservaMon	
  of	
  internal	
  structural	
  
   dependencies	
  




                                                               21	
  
Evolu,on	
  pa/ern	
  
                      mandatory	
  phase	
  




Université de Mons
Evolu,on	
  pa/ern	
  
                        manual	
  phase	
  




Université de Mons
Formal	
  Valida,on	
  
•  Use	
  transformaMon	
  analysis	
  to	
  detect	
  
   potenMal	
  problems	
  
   •  Based	
  on	
  criMcal	
  pair	
  analysis	
  of	
  parallel	
  conflicts	
  and	
  
      sequenMal	
  dependencies	
  




                                                                                            24	
  
Prac,cal	
  Valida,on	
  
•  	
  COSABuilder	
  
   •  Eclipse	
  plug-­‐in	
  supporMng	
  the	
  COSA	
  ADL	
  
   •  Developed	
  @	
  Modal	
  team	
  -­‐	
  University	
  of	
  Nantes	
  
   •  Object-­‐oriented	
  framework,	
  extensible	
  with	
  new	
  concepts	
  


•  Extend	
  COSABuilder	
  with	
  automated	
  support	
  
   for	
  evoluMon	
  
   •  Masters	
  thesis	
  of	
  Aurélien	
  Lansmanne	
  
Prac,cal	
  Valida,on	
  
•  Extend	
  COSABuilder	
  with	
  evoluMon	
  support	
  
   •  All	
  architectural	
  evoluMon	
  operaMons	
  are	
  reified	
  in	
  the	
  ADL	
  
   •  EvoluMon	
  paZerns	
  expressed	
  in	
  terms	
  of	
  primiMve	
  
      operaMons	
  
   •  GUI	
  support	
  for	
  selecMng	
  and	
  applying	
  evoluMon	
  paZerns	
  
      and	
  operaMons	
  
   •  Support	
  for	
  verifying	
  
        •  the	
  contraints	
  imposed	
  by	
  an	
  architectural	
  style	
  
        •  that	
  internal	
  dependencies	
  are	
  preserved	
  by	
  evoluMon	
  
Prac,cal	
  Valida,on	
  
•  Applying	
  an	
  evoluMon	
  operaMon	
  (part	
  1)	
  
Prac,cal	
  Valida,on	
  
•  Applying	
  an	
  evoluMon	
  operaMon	
  (part	
  2)	
  
Prac,cal	
  Valida,on	
  
•  Applying	
  an	
  evoluMon	
  paZern	
  to	
  introduce	
  the	
  
   Client-­‐Server	
  architectural	
  style	
  
Prac,cal	
  Valida,on	
  
•  Verifiying	
  conformance	
  of	
  an	
  architecture	
  to	
  
   the	
  Client-­‐Server	
  architectural	
  style	
  




           (1)




                                  (2)
Prac,cal	
  Valida,on	
  
•  Verifiying	
  conformance	
  of	
  an	
  architecture	
  to	
  
   the	
  Client-­‐Server	
  architectural	
  style	
  




           (1)




                                (2)
Future	
  Work	
  
•  SupporMng	
  mutlipe	
  ADLs,	
  mulMple	
  viewpoints,	
  
   mulMple	
  styles	
  
•  Carrying	
  out	
  more	
  case	
  studies	
  
•  Expressing	
  non-­‐structural	
  aspects	
  of	
  an	
  
   architectural	
  descripMon	
  
•  Considering	
  other	
  evoluMon	
  scenarios	
  
    •  E.g.	
  changing	
  a	
  style	
  to	
  another	
  one	
  
•  Extending	
  ADLs	
  with	
  first-­‐class	
  support	
  for	
  
   evoluMon	
  
                                                                     32	
  
Future	
  Work	
  con,nued	
  
•  Dealing	
  with	
  co-­‐evoluMon	
  


                 http://
                 ComputingNow.computer.org.




   •  But	
  also	
  with	
  requirements,	
  run-­‐Mme,	
  language	
  evoluMon	
  
                                                                                       33	
  

More Related Content

PDF
The Expressive Power of UML-based Web Engineering (UWE)
PDF
ATL tutorial - EclipseCon 2009
PPT
A classification framework for component models
PDF
Barcamp 12 mei 2011 - Pearl chain
PPT
Advanced Pattern Authoring with WebSphere Message Broker
PPT
Effective Application Development with WebSphere Message Broker
ODP
Cg2012 niet-geanimeerd
PDF
QVT & MTL In Eclipse
The Expressive Power of UML-based Web Engineering (UWE)
ATL tutorial - EclipseCon 2009
A classification framework for component models
Barcamp 12 mei 2011 - Pearl chain
Advanced Pattern Authoring with WebSphere Message Broker
Effective Application Development with WebSphere Message Broker
Cg2012 niet-geanimeerd
QVT & MTL In Eclipse

Viewers also liked (6)

PDF
Stakeholder Driven EA
PPTX
4+1 View Model of Software Architecture
PPTX
Software Architecture Reconstruction: Why What and How
PPTX
A Software Architect's View On Diagramming
PDF
Documenting Software Architectures
PPTX
An introduction to fundamental architecture concepts
Stakeholder Driven EA
4+1 View Model of Software Architecture
Software Architecture Reconstruction: Why What and How
A Software Architect's View On Diagramming
Documenting Software Architectures
An introduction to fundamental architecture concepts
Ad

Similar to Using Evolution Patterns to Evolve Software Architectures (20)

PDF
Software Architecture: views and viewpoints
PDF
Software Architecture by Reuse, Composition and Customization
PPT
On the Composition and Reuse of Viewpoints
PDF
Framework Engineering
PDF
Framework Engineering_Final
PPT
Sa 008 patterns
PPT
session on pattern oriented software architecture
PDF
Pattern-based Evolution
PDF
Pattern-based Evolution
PDF
Architecture Description Languages: An Overview
PDF
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
PDF
An Introduction to Software Architecture - Summary
PDF
Graph Pattern Identification
PDF
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
PDF
10 - Architetture Software - More architectural styles
PDF
Architecture Extraction From Code
PPTX
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
PPTX
Software architecture styles families_research_gssi_nov2013
PDF
Web2MexADL - CSMR Presentation
Software Architecture: views and viewpoints
Software Architecture by Reuse, Composition and Customization
On the Composition and Reuse of Viewpoints
Framework Engineering
Framework Engineering_Final
Sa 008 patterns
session on pattern oriented software architecture
Pattern-based Evolution
Pattern-based Evolution
Architecture Description Languages: An Overview
Software Engineering of Component-Based Systems-of-Systems: A Reference Frame...
An Introduction to Software Architecture - Summary
Graph Pattern Identification
Essential Software Architecture - Chapter 1 Understanding Software Architectu...
10 - Architetture Software - More architectural styles
Architecture Extraction From Code
PHX Session #5 : Architecture Without Big Design Up Front (Garibay)
Software architecture styles families_research_gssi_nov2013
Web2MexADL - CSMR Presentation
Ad

More from Tom Mens (20)

PDF
Dependency Issues in Open Source Software Package Registries
PDF
Model Testing of Executable Statecharts using SISMIC
PDF
How to be(come) a successful PhD student
PPTX
Recognising bot activity in collaborative software development
PDF
A Dataset of Bot and Human Activities in GitHub
PDF
The (r)evolution of CI/CD on GitHub
PDF
Nurturing the Software Ecosystems of the Future
PDF
Comment programmer un robot en 30 minutes?
PPTX
On the rise and fall of CI services in GitHub
PPTX
On backporting practices in package dependency networks
PPTX
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
PPTX
Lost in Zero Space
PDF
Evaluating a bot detection model on git commit messages
PPTX
Is my software ecosystem healthy? It depends!
PPTX
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
PDF
On the fragility of open source software packaging ecosystems
PPTX
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
PPTX
Comparing dependency issues across software package distributions (FOSDEM 2020)
PPTX
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
PDF
SecoHealth 2019 Research Achievements
Dependency Issues in Open Source Software Package Registries
Model Testing of Executable Statecharts using SISMIC
How to be(come) a successful PhD student
Recognising bot activity in collaborative software development
A Dataset of Bot and Human Activities in GitHub
The (r)evolution of CI/CD on GitHub
Nurturing the Software Ecosystems of the Future
Comment programmer un robot en 30 minutes?
On the rise and fall of CI services in GitHub
On backporting practices in package dependency networks
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Lost in Zero Space
Evaluating a bot detection model on git commit messages
Is my software ecosystem healthy? It depends!
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
On the fragility of open source software packaging ecosystems
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
Comparing dependency issues across software package distributions (FOSDEM 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
SecoHealth 2019 Research Achievements

Using Evolution Patterns to Evolve Software Architectures

  • 1. Using  Evolu,on  Pa/erns  to   Evolve  So4ware  Architectures   Joint  work  with  Dalila  Tamzalit,   Université  de  Nantes,  France   Published  in  IEEE  ECBS  2010,  Oxford   With  help  of  Aurélien  Lansmanne  for  the  implementaMon  
  • 2. Context  :  So4ware  Architectures   SoOware  development  process   –   Requirements   –   Architecture   –   Design   –   ImplementaMon    Architectural  descripMons   –  Capture  strategic  decisions  and  raMonale  at  a  high-­‐level  of   abstracMon   –  Provide  a  basis  for  detailed  design   –  Are  essenMal  for  expressing  and  constraining  large-­‐scale   and  criMcal  systems   3  
  • 3. Context  :  So4ware  Architectures     IEEE/ISO/IEC  Standard  1471-­‐2000:  Recommended  Prac,ce   Component  &   connector   4   viewpoint   Université de Mons
  • 4. Context  :  So4ware  Architectures   •  C&C  viewpoint   •  Expresses  the  system  structure  in  terms  of  components   (with  ports)  related  by  connectors  (with  roles)   •  Architectural  DescripMon  Language  (ADL)   •  Provides  the  syntax  and  semanMcs  for  the  C&C  viewpoint   •  Example   •  e-­‐shop  expressed   in  COSA  ADL   5  
  • 5. Context  :  Architectural  Styles   •  An  architectural  style  captures  recurring   architectural  paZerns   •  Examples   •  Pipe&Filter,  Publish-­‐Subscribe,  Peer-­‐to-­‐peer,  n-­‐Mered,  …   6  
  • 6. Context  :  Architectural  Styles   •  An  architectural  style  captures  recurring   architectural  paZerns   •  Examples   •  Client-­‐Server   7  
  • 7. Goal  :  Architectural  Evolu,on   •  SoOware  evoluMon   –  Is  inevitable:  Perpetual  challenge  for  large-­‐scale  systems   –  Is  difficult  and  expensive   •  Systems  tend  to  increase  in  complexity   •  Several  stakeholders,  several  representaMons   •  Difficult  to  manage,  lack  of  abstracMon   –  Needs  to  be  liOed   •  Support  for  evoluMon  at  architectural  level   –  Needs  to  be  automated   •  Needs  to  be  built  in  the  language  (ADL)  and  its  supporMng  tools   8  
  • 8. Goal  :  Architecture  restructuring   •  Apply  ideas  of  “program  refactoring”  at   architectural  level   •  Improve  architectural  structure  by  automated   transformaMons   •  Examples   •  Transform  legacy  systems  to  client-­‐server  systems,  to  N-­‐Mered   systems,  to  SOA,  …   •  Introducing  an  architectural  style  to  an  exisMng  architecture   –  Goal   •  Impose  addiMonal  structural  constraints   •  While  preserving    the  exisMng  funcMonality   9  
  • 9. Goal  :  Architecture  restructuring   Example:  from  monolithic  to  client-­‐server   •  Original  C&C  architecture      e-­‐shop  expressed  using  COSA  ADL   10   Université de Mons
  • 10. Goal  :  Architecture  restructuring   Example:  from  monolithic  to  client-­‐server   11   Université de Mons
  • 11. Approach    Formal  valida,on   –  Assess  feasibility  using  graph  transformaMon  theory   –  Provide  proof-­‐of-­‐concept  using  AGG  tool      Prac,cal  valida,on   –  Extend  exisMng  ADL  (COSA)  with  support  for  evoluMon   –  Implement  the  formal  ideas  in  COSABuilder  tool    Case  study   –  Convert  a  monolithic  architecture  (E-­‐shop)  in  a  client-­‐ server  architecture  by  introducing  architectural  style   12  
  • 12. Formal  valida,on   •  Use  graph  transformaMon  theory   •  Specify  proof-­‐of-­‐concept  in  AGG  tool   •  Represent  ADL  metamodel  as  a  type  graph   •  Represent  addiMonal  constraints  as  graph  invariants   •  Represent  architecture  as  a  graph  conforming  to  this  type   graph   •  Represent  architectural  style   •  Represent  architectural  evoluMon  steps  as  graph   transforma1on  rules   •  Use  formal  analysis  capabiliMes  of  AGG   13  
  • 13. Formal  Valida,on   •  Represent  (part  of  )  COSA  ADL  metamodel  as  a   type  graph   •  Architectural  concepts:  component,  configuraMon,   (provided  or  required)  port  or  role,  connector,  binding,   aZachment   14  
  • 14. Formal  Valida,on   •  Represent  architecture  as  a  graph  conform  to   this  type  graph     15  
  • 15. Formal  Valida,on   •  Represent  (part  of  )  COSA  ADL  metamodel  as  a   type  graph   •  Derived  edge  types:  connectsTo  and  connector     16  
  • 16. Formal  Valida,on   •  Represent  (part  of  )  COSA  ADL  metamodel  as  a   type  graph   •  Graph  invariants   •  A  component  cannot  be  connected  to,  or  contained  in,    itself.   •  A  uses  dependency  is  only  allowed  between  different  ports   belonging  to  the  same  component.   •  Two  components  cannot  be  at  the  same  Mme  connected  to,  and   contained,  in  one  another.   •  A  binding  is  only  allowed   between  ports  of  the  same   type  belonging  to  a   component  and  one  of  its   subcomponents.   17  
  • 17. Formal  Valida,on   •  Express  the  architectural  style  as  extension  of   type  graph   •  with  addiMonal  graph  constraints   –  Only  Client  and  Server  are  allowed  as  top-­‐level  components   –  A  Client  component  must  always  be  connected  to  Server  via  a   connectsTo-­‐link   18  
  • 18. Formal  Valida,on   •  Represent  evoluMon  operaMons  as  graph   transformaMon  rules   19  
  • 19. Formal  Valida,on   •  Represent  evoluMon  operaMons  as  graph   transformaMon  rules   20  
  • 20. Formal  Valida,on   •  Ensure  preservaMon  of  internal  structural   dependencies   21  
  • 21. Evolu,on  pa/ern   mandatory  phase   Université de Mons
  • 22. Evolu,on  pa/ern   manual  phase   Université de Mons
  • 23. Formal  Valida,on   •  Use  transformaMon  analysis  to  detect   potenMal  problems   •  Based  on  criMcal  pair  analysis  of  parallel  conflicts  and   sequenMal  dependencies   24  
  • 24. Prac,cal  Valida,on   •   COSABuilder   •  Eclipse  plug-­‐in  supporMng  the  COSA  ADL   •  Developed  @  Modal  team  -­‐  University  of  Nantes   •  Object-­‐oriented  framework,  extensible  with  new  concepts   •  Extend  COSABuilder  with  automated  support   for  evoluMon   •  Masters  thesis  of  Aurélien  Lansmanne  
  • 25. Prac,cal  Valida,on   •  Extend  COSABuilder  with  evoluMon  support   •  All  architectural  evoluMon  operaMons  are  reified  in  the  ADL   •  EvoluMon  paZerns  expressed  in  terms  of  primiMve   operaMons   •  GUI  support  for  selecMng  and  applying  evoluMon  paZerns   and  operaMons   •  Support  for  verifying   •  the  contraints  imposed  by  an  architectural  style   •  that  internal  dependencies  are  preserved  by  evoluMon  
  • 26. Prac,cal  Valida,on   •  Applying  an  evoluMon  operaMon  (part  1)  
  • 27. Prac,cal  Valida,on   •  Applying  an  evoluMon  operaMon  (part  2)  
  • 28. Prac,cal  Valida,on   •  Applying  an  evoluMon  paZern  to  introduce  the   Client-­‐Server  architectural  style  
  • 29. Prac,cal  Valida,on   •  Verifiying  conformance  of  an  architecture  to   the  Client-­‐Server  architectural  style   (1) (2)
  • 30. Prac,cal  Valida,on   •  Verifiying  conformance  of  an  architecture  to   the  Client-­‐Server  architectural  style   (1) (2)
  • 31. Future  Work   •  SupporMng  mutlipe  ADLs,  mulMple  viewpoints,   mulMple  styles   •  Carrying  out  more  case  studies   •  Expressing  non-­‐structural  aspects  of  an   architectural  descripMon   •  Considering  other  evoluMon  scenarios   •  E.g.  changing  a  style  to  another  one   •  Extending  ADLs  with  first-­‐class  support  for   evoluMon   32  
  • 32. Future  Work  con,nued   •  Dealing  with  co-­‐evoluMon   http:// ComputingNow.computer.org. •  But  also  with  requirements,  run-­‐Mme,  language  evoluMon   33