1 / 14

COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS

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. The Context. NECSIS 2013 Workshop

edward
Télécharger la présentation

COLLABORATIVE SOFTWARE EVOLUTION WITH CROSS-CUTTING CONCERNS

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related