1 / 30

Configuration Management and Distributed Software Engineering

Configuration Management and Distributed Software Engineering. Jon A. Preston Dr. Xiaolin Hu CSc8350 – Spring 2005. Agenda. SE = Coordination and collaboration CM = Artifact management IDE = Integrating CMS/CSCW Code visualization techniques Open-systems architecture.

gwatts
Download Presentation

Configuration Management and Distributed Software Engineering

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. Configuration Management and Distributed Software Engineering Jon A. Preston Dr. Xiaolin Hu CSc8350 – Spring 2005

  2. Agenda • SE = Coordination and collaboration • CM = Artifact management • IDE = Integrating CMS/CSCW • Code visualization techniques • Open-systems architecture

  3. Collaboration/Coordination • Software engineering involves coordinating multiple developers, architects, testers, designers, and managers • Net-centric computing dominates • Resultant distributed nature of SE projects • Leverage geography to achieve SE “shifts”

  4. Configuration Management • Principally involves artifact management and coordination • Allow maximum concurrency • Minimize collisions (lost and/or replicated work) • Recent study (2001) • 12.5% of all changes to a file occur within 24 hours • 16 parallel versions to be merged

  5. Document A Edits A → A’ Edits A → A’’ Update with A’ or A’’ or merge User 1 User 2 Configuration Management

  6. Optimistic vs. Pessimistic • Two approaches to CM • Optimistic • High concurrency (hopefully disjoint) • Must deal with possible merge • Pessimistic • Low concurrency • Avoids the merge problem • Users can check out “read only” and edit

  7. Document A Checks out A Edits A → A’ Checks in A’ The differential is saved User 1 User 2 Pessimistic Coordination Checkout denied until A’ is checked in

  8. Document A Accesses A Accesses A Edits A → A’ Edits A’ → A’’ Changes to A and A’ are immediately coordinated User 1 User 2 Optimistic Coordination

  9. Distributed Configuration Management • Network-centric computing • Distributed file system • Distribute artifacts among many machines • Coordinate among machines (lookup, etc.) • Can offer replication services (reliability, performance) • Must then deal with replicating locks and changes

  10. Distributed CM Files A-I User 1 Locks file C Locks file T Files J-Q User 2 Locks file J Locks file Z … Files R-Z User N Locks file L

  11. Distributed CM with Replication Files A-I User 1 Locks file C Locks file T Files J-Q User 2 Locks file J Files R-Z Locks file Z … User N Locks file L Files R-Z

  12. Distributed CM with Replication Files A-I User 1 Locks file C Locks file T Files J-Q User 2 Locks file J Files R-Z Updates file Z … User N Locks file L Updates file Z Files R-Z

  13. Structure of Software Systems • Highly structured – code blocks • Hierarchical – trees/graphs • Reuse leads to interdependencies • Can auto-detect such structures and interdependencies

  14. Node data Node Fine-grain Differentials Version n Version n+1 Edited code block

  15. Collaborative IDE and Versioning • Locking (pessimistic CM) doesn’t scale • Highly-structured nature of software code helpful • Supports “wait-free” collaboration • Must deal with collisions/merging • Evolution graph (branching and merging) presented

  16. Collaborative Editing in Jazz • Plug in for Eclipse (Java IDE) • Shows “Rear View Window” of other users • Connects with IM, email, and screen sharing • “Lightweight” collaboration

  17. Microsoft’s Integrated Approach • Visual Studio 2005 Team System • Integrates architecture, design, development, testing, and oversight/tracking • Includes communication “hooks”

  18. Visual Studio 2005 Team System

  19. Test Integration and Coverage

  20. Code Visualization • Augur • Extends “SeeSoft” • Allows for an aggregate view of distributed software development • Colors indicate users as well as structure of code and age of change • Multiple views • Presented at ICSE’04

  21. SeeSoft

  22. Augur – Visualizing Source Code

  23. Augur – Visualizing Source Code

  24. Open-systems Architecture • Current research in CSCW • Web-based systems • Change tracking in Office • Web-services • Access remotely • Subscriber pattern for notification • Middleware • Update legacy CMS with new functionality

  25. Core Functionality • Optimistic check out • Pessimistic check out • Check in • Subscribe and unsubscribe • Publish lists • Artifacts (and state) • Users (contact information, presence, etc.) • Subscriptions

  26. Open-systems Architecture Notification (Email, IM, etc.) CVS Fine-grain middleware Network Doc Editor VSS Connection middleware Fine-grain middleware Web Services-Provided Core Functionality … … CMS Connection middleware IDE Fine-grain middleware

  27. Conclusion • Traditional CM does not scale well • Pessimistic locking inhibits concurrency • Fine-grain locking a possible solution • Integration of CSCW and IDE critical • Visualization techniques useful • Track changes over time • Provide meta-view of structure • Open-systems architecture is promising

More Related