Download
collaborative software evolution with cross cutting concerns n.
Skip this Video
Loading SlideShow in 5 Seconds..
COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS PowerPoint Presentation
Download Presentation
COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS

COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS

135 Views Download Presentation
Download Presentation

COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS Rick Salay, Mehrnaz Najafi and Marsha Chechik NECSIS/ORF Workshop 2014 also Jennifer Horkoff, Fabiano Dalpiaz, Jessica Davies, Daniel Varro, Istvan Rath, Leonid Ryzhyk, Nina Narodytska

  2. The Context NECSIS 2013 Workshop • Len Wozniak presents the need for “lump” development methods to deal with macro change management

  3. The Problem System Lifespan Initial Dev’t Software Evolution System Software Bug Fix • Evolutionary changes • Crosscut designed structure • Heterogeneous • Crosscut levels of abstraction • Overlapping New Requirement System Structure “designed in” Model evolution must manage concurrent “chunks” of change!

  4. Chunk-Based Software Evolution (CBSE) • Focus on • Models – heterogeneous, multiple levels of abstraction • Rather than just code • Distributed concurrent development • Safety, correctness and formal analysis • Principled approach to preserving properties and establishing new ones • Augments current change management practices: • E.g., traceability, slicing, impact analysis, etc.

  5. CBSE Overview Concurrent Dev’t Dimension Team 1 Team 2 …. Team n Extraction Modification Verification Reintegration Chunk Life-cycle Dimension CBSE

  6. CBSE Overview Concurrent Dev’t Dimension Team 1 Team 2 …. Team n Extraction Modification Verification Reintegration Chunk Life-cycle Dimension CBSE

  7. Managing concurrent modification • Chunks can interfere – need to manage conflicts • Approaches • Conflict resolution: coordinate on merge • Slow, may need escalation and rework • Locking: prevent conflicts • Safer but limits concurrent development • Idea: don’t lock model region, lock model properties

  8. Example Device id : string id_encr() • Team 1: Add auto mode to wiper • Prop_1 : Must have auto wiper operation Wiper_Timer max : time max_encr() start() stop() auto() • Team 2: Add data security to vehicle • Prop_2 : All data members have encryption method

  9. Example Device id : string id_encr() • Team 1: Add auto mode to wiper • Prop_1 : Must have auto wiper operation Add Wiper_Timer max : time auto_speed: int max_encr() start() stop() auto() • Team 2: Add data security to vehicle • Prop_2 : All data members have encryption method

  10. Example Device id : string id_encr() • Team 1: Add auto mode to wiper • Prop_1 : Must have auto wiper operation Add Wiper_Timer max : time auto_speed: int max_encr() start() stop() auto() • Team 2: Add data security to vehicle • Prop_2 : All data members have encryption method Violation: to fix must remove “auto_speed” or add encryption method

  11. Example Device id : string id_encr() • Team 1: Add auto mode to wiper • Prop_1 : Must have auto wiper operation Wiper_Timer max : time auto_speed: int max_encr() start() stop() auto() auto_speed_encr() Add • Team 2: Add data security to vehicle • Prop_2 : All data members have encryption method

  12. Property-based locking

  13. Required tool support • To specify a property • To check locked properties • Query engines investigated: QueST (Mac), IncQuery (Varro) • To configure locking • E.g., control granularity of checking • To debug/resolve a property violation

  14. CBSE Overview Concurrent Dev’t Dimension Team 1 Team 2 …. Team n Extraction Modification Verification Reintegration Chunk Life-cycle Dimension CBSE