software architecture
play

Software Architecture Evolution Tool as a Plug-In Jeffrey M. Barnes - PowerPoint PPT Presentation

Challenges in Developing a Software Architecture Evolution Tool as a Plug-In Jeffrey M. Barnes and David Garlan Institute for Software Research Carnegie Mellon University Slides and paper available for download at:


  1. Challenges in Developing a Software Architecture Evolution Tool as a Plug-In Jeffrey M. Barnes and David Garlan Institute for Software Research Carnegie Mellon University Slides and paper available for download at: http://www.cs.cmu.edu/~jmbarnes/papers/topi13.html

  2. Background • Architecture evolution is central to software development new technologies architectural new frameworks require new requirements change new market opportunities • At present, software architects have few tools to help plan and execute evolutions Jeffrey M. Barnes and David Garlan 2

  3. Background Intermediate states D E LEGENDE Evolution e Configuration Path architecturale A B C Evolution architecturale Configuration initiale Initial Target architecture architecture J. M. Barnes, D. Garlan, et al. O. Le Goaer, D. Tamzalit, et al. G’ G D :port C :port C :port C Release 1 Release 2 Release 3 Release 4 Release 5 Path #1 Cumulative value 75 132 175 216 243 :component A :component B % of total value 30.86% 54.32% 72.02% 88.89% 100.00% :port A Cumulative cost (Ic n + Rc n ) 30 54.72 65.72 67.72 89.64 :port A % of total implementation cost 40.54% 71.72% 86.58% 89.28% 118.47% :component B Path #2 Cumulative value 0 0 47 126 243 :port A :port B :port A :port B :port A :port B % of total value 0% 0% 19% 52% 100% Cumulative cost (Ic n + Rc n ) 21 33 43 58 74 :port A :port C :port A :port C :port A :port C % of total implementation cost 28.38% 44.60% 58.11% 78.38% 100% :component C :component C :component C L. Grunske N. Brown et al. Jeffrey M. Barnes and David Garlan 3

  4. Our Model of Architecture Evolution Intermediate states Path Initial Target architecture architecture Time Jeffrey M. Barnes and David Garlan 4

  5. Our Previous Tooling Work • Previously* developed a partial prototype as part of a case study at NASA JPL • Case study aim was to model an evolution at JPL, using modeling languages and tools in use there • Developed facilities to support modeling architecture evolution in MagicDraw – Representational conventions for modeling architecture evolution in UML – Transformation macros to effect evolution operators – UML models of particular intermediate states *J. M. Barnes, “NASA’s Advanced Multimission Operations System: A case study in software architecture evolution,” in Proc. QoSA’12, 2012, pp. 3– 12. Jeffrey M. Barnes and David Garlan 5

  6. Vision: A Plug-In for Architecture Evolution Planning Initial Target architecture architecture Jeffrey M. Barnes and David Garlan 6

  7. Vision: A Plug-In for Architecture chill_up_command_store : File chill_up_command_load : File SysML Internal Block D iagram [System] MPCS CommandFile saveCommand : File store : File CommandFile : chill_up chill_up_command_store : FileStore chill_up_out : CLTUs out : CLTUs CommandFile CLTUs loadCommand : File load : File CommandFile bus : JmsMessage EvrMessage, CommandMessage, ChannelMessage, Evolution Planning LogMessage ProductMessage, bus : JmsMessageB us CommandMessage, publish : JmsMessage subscribe : JmsMessage ui LogMessage in : JmsMessage chill_monitor_ui : chill_monitor [*] in : JmsMessage : BusSupervisor LogMessage, logDb : LogInfo commandDb : Command ProductMessage, ChannelMessage, ChannelMessage, ProductMessage, CommandMessage, EvrMessage, EvrMessage LogMessage db : MpcsDatabase : chill_get_* [*] insertCommand : Command selectCommand : Command : Command commandTable : Table Command Command insertLog : LogInfo selectLog : LogInfo : LogInfo logTable : Table bus : JmsMessage LogInfo LogInfo sessionDb : Session insertSession : Session selectSession : Session : Session sessionTable : Table : chill_down [*] Session in : Telemetry in : Telemetry Session evrDb : EVR insertEvr : EVR selectEvr : EVR : EVR evrTable : Table Telemetry EVR EVR channelDb : ChannelValues insertChannelValue : ChannelValues selectChannelValue : ChannelValues : ChannelValues channelTable : Table ChannelValues ChannelValues frameDb : Frame insertFrame : Frame selectFrame : Frame : Frame frameTable : Table Frame Frame packetDb : Packet insertPacket : Packet selectPacket : Packet : Packet packetTable : Table Packet Packet productDb : Product insertProduct : Product selectProduct : Product : Product productTable : Table Int1 Product Product file : File «transition» ProductFile, ProductMetadataFile store : File chill_down_output_directory : FileStore «transition» Int3 «transition» «transition» Initial «transition» Int2 Target «transition» «transition» Int4 Jeffrey M. Barnes and David Garlan 7

  8. Vision: A Plug-In for Architecture Evolution Planning  Int1 «transition»  «transition» Int3 «transition»    «transition» Initial «transition» Int2 Target «transition» «transition»  Int4 Operator Palette Add adapter Configure firewall Remove database ⋮ Jeffrey M. Barnes and David Garlan 8

  9. Development Process • Development was carried out by a team of two master’s students, directed by the authors • Prototype development proceeded in stages designed to produce “feature prototypes” Jeffrey M. Barnes and David Garlan 9

  10. Feature Prototypes 1. Model manipulation 2. Identi fi cation of evolution paths 3. Interface for applying operators 4. Operator parser 5. Metadata handling 6. Positioning of presentational elements 7. Evolution path constraints Final phase: Integration Jeffrey M. Barnes and David Garlan 10

  11. Challenge: Understanding the Kinds of Variation that the Framework Supports Framework Plug-in Jeffrey M. Barnes and David Garlan 11

  12. Challenge: Controlling the User Interface Int1 «transition» «transition» Int3 «transition» «transition» Initial «transition» Int2 Target «transition» «transition» Int4 Operator Palette Add adapter Configure firewall Remove database ⋮ Jeffrey M. Barnes and David Garlan 12

  13. Challenge: Manipulating Presentational Elements chill_up _comm an d_store : File chill_up _comman d_load : File SysML Internal Bl ock D iagra m [System ] M PCS CommandFile saveComm and : File store : File CommandFile : chill_up chill_up_command_store : FileStore newBlock2 newBlock1 newBlock3 chill_up _ou t : CL TUs out : CLTUs CommandFile CLTUs loadComman d : File load : File CommandFile bus : JmsMe ssag e EvrMessage, ChannelMessage, CommandMessage, ProductMessage, LogMessage bus : JmsMessageB us CommandMessage, publish : Jm sM essage subscribe : JmsM essa ge in : JmsMessa ge ui LogMessage chill_mo nitor_u i : chill_monitor [*] in : JmsMessage : BusSupervisor LogMessage, logDb : LogInfo commandDb : Command ProductMessage, ChannelMessage, ChannelMessage, ProductMessage, CommandMessage, EvrMessage, EvrMessage LogMessage db : MpcsDatabase : chill_get_* [*] insertComma nd : Com ma nd selectComma nd : Comma nd : Command commandTable : Table Command Command insertLog : L ogI nfo selectLog : L ogIn fo : LogInfo logTable : Table bus : JmsMe ssag e LogInfo LogInfo session Db : Sessio n insertSession : Se ssio n selectSe ssio n : Sessio n : Sessio n sessionTable : Table : chill_down [*] Session in : Telemet ry in : Telemet ry Session evrDb : EVR insertEvr : EVR selectEvr : EVR : EVR evrTable : Table Telemetry EVR EVR channelDb : Cha nne lValues insertChanne lValue : Cha nne lValu es selectCha nne lValu e : Chan nelVa lu es : ChannelVa lu es channelTable : Table ChannelValues ChannelValues frameDb : Frame insertFrame : Fra me selectFrame : Frame : Frame frameTable : Table Frame Frame packetDb : Packet insertPacket : Packe t selectPa cket : Pa cket : Packet packetTable : Table Packet Packet productDb : Product insertProduct : Prod uct selectProd uct : Produ ct : Product productTable : Table Product Product file : File ProductFile, ProductMetadataFile store : File chill_down_output_direc tory : Fil eStore Jeffrey M. Barnes and David Garlan 13

  14. Conclusion • Learned a number of lessons about factors that can simplify or complicate development of an architecture evolution plug-in • Many of these lessons have broader application – Especially for other tools that must compare and analyze multiple software architectures • Still lots of future work to do on tooling issues for architecture evolution Jeffrey M. Barnes and David Garlan 14

Recommend


More recommend