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

software architecture
SMART_READER_LITE
LIVE PREVIEW

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:


slide-1
SLIDE 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

slide-2
SLIDE 2

Jeffrey M. Barnes and David Garlan

Background

  • Architecture evolution is central to software

development

  • At present, software architects have few

tools to help plan and execute evolutions

2

new technologies new frameworks new requirements new market opportunities

require

architectural change

slide-3
SLIDE 3

Jeffrey M. Barnes and David Garlan

Background

3

  • J. M. Barnes, D. Garlan, et al.
  • O. Le Goaer, D. Tamzalit, et al.
  • L. Grunske
  • N. Brown et al.

G D G’

:component A :component B :component C :component C :component C :component B :port A :port A :port C :port B :port A :port A :port C :port A :port A :port C :port B :port C :port A :port A :port C :port B :port C

LEGENDE E D C B A

Evolution e

Configuration initiale Configuration architecturale Evolution architecturale Release 1 Release 2 Release 3 Release 4 Release 5 Path #1 Cumulative value 75 132 175 216 243 % of total value 30.86% 54.32% 72.02% 88.89% 100.00% Cumulative cost (Icn + Rcn) 30 54.72 65.72 67.72 89.64 % of total implementation cost 40.54% 71.72% 86.58% 89.28% 118.47% Path #2 Cumulative value 47 126 243 % of total value 0% 0% 19% 52% 100% Cumulative cost (Icn + Rcn) 21 33 43 58 74 % of total implementation cost 28.38% 44.60% 58.11% 78.38% 100%

Initial architecture Target architecture Path Intermediate states

slide-4
SLIDE 4

Jeffrey M. Barnes and David Garlan

Our Model of Architecture Evolution

4

Initial architecture Target architecture Time Path Intermediate states

slide-5
SLIDE 5

Jeffrey M. Barnes and David Garlan

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

5

*J. M. Barnes, “NASA’s Advanced Multimission Operations System: A case study in software architecture evolution,” in Proc. QoSA’12, 2012, pp. 3–12.

slide-6
SLIDE 6

Jeffrey M. Barnes and David Garlan

Vision: A Plug-In for Architecture Evolution Planning

6

Initial architecture Target architecture

slide-7
SLIDE 7

Jeffrey M. Barnes and David Garlan

Vision: A Plug-In for Architecture Evolution Planning

7

Target Int2 Int1 Int4 Int3

«transition» «transition» «transition» «transition» «transition» «transition» «transition»

Initial

SysML Internal Block D iagram [System] MPCS in : Telemetry chill_up_out : CLTUs chill_monitor_ui chill_up_command_store : File chill_up_command_load : File : chill_up
  • ut : CLTUs
bus : JmsMessage saveCommand : File loadCommand : File : chill_down [*] bus : JmsMessage in : Telemetry evrDb : EVR channelDb : ChannelValues frameDb : Frame packetDb : Packet productDb : Product sessionDb : Session file : File sessionTable : Table insertSession : Session selectSession : Session evrTable : Table insertEvr : EVR selectEvr : EVR channelTable : Table insertChannelValue : ChannelValues selectChannelValue : ChannelValues frameTable : Table insertFrame : Frame selectFrame : Frame packetTable : Table insertPacket : Packet selectPacket : Packet productTable : Table insertProduct : Product selectProduct : Product logTable : Table insertLog : LogInfo selectLog : LogInfo commandTable : Table insertCommand : Command selectCommand : Command db : MpcsDatabase : chill_get_* [*] : Session : EVR : ChannelValues : Frame : Packet : Product : LogInfo : Command chill_down_output_directory : FileStore store : File chill_up_command_store : FileStore load : File store : File bus : JmsMessageB us subscribe : JmsMessage publish : JmsMessage : chill_monitor [*] in : JmsMessage ui : BusSupervisor commandDb : Command in : JmsMessage logDb : LogInfo Session EVR ChannelValues Frame Packet Product LogInfo Command CommandFile CommandFile EVR Product Packet Frame ChannelValues Session EvrMessage, ChannelMessage, ProductMessage, CommandMessage, LogMessage CommandFile Telemetry CLTUs LogInfo LogMessage, ProductMessage, ChannelMessage, CommandMessage, EvrMessage Command CommandFile ChannelMessage, ProductMessage, EvrMessage, LogMessage CommandMessage, LogMessage ProductFile, ProductMetadataFile
slide-8
SLIDE 8

Jeffrey M. Barnes and David Garlan

Vision: A Plug-In for Architecture Evolution Planning

8

Target Int2 Int1 Int4 Int3

«transition» «transition» «transition» «transition» «transition» «transition» «transition»

Initial

Operator Palette Add adapter Configure firewall Remove database

    

slide-9
SLIDE 9

Jeffrey M. Barnes and David Garlan

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”

9

slide-10
SLIDE 10

Jeffrey M. Barnes and David Garlan

Feature Prototypes

  • 1. Model manipulation
  • 2. Identification 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

10

slide-11
SLIDE 11

Jeffrey M. Barnes and David Garlan

Challenge:

Understanding the Kinds of Variation that the Framework Supports

11

Framework Plug-in

slide-12
SLIDE 12

Jeffrey M. Barnes and David Garlan

Challenge:

Controlling the User Interface

12

Target Int2 Int1 Int4 Int3

«transition» «transition» «transition» «transition» «transition» «transition» «transition»

Initial

Operator Palette Add adapter Configure firewall Remove database

slide-13
SLIDE 13

Jeffrey M. Barnes and David Garlan

Challenge:

Manipulating Presentational Elements

13

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

newBlock1 newBlock2 newBlock3

slide-14
SLIDE 14

Jeffrey M. Barnes and David Garlan

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

14