300 likes | 318 Views
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.
E N D
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
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”
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
Document A Edits A → A’ Edits A → A’’ Update with A’ or A’’ or merge User 1 User 2 Configuration Management
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
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
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
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
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
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
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
Structure of Software Systems • Highly structured – code blocks • Hierarchical – trees/graphs • Reuse leads to interdependencies • Can auto-detect such structures and interdependencies
Node data Node Fine-grain Differentials Version n Version n+1 Edited code block
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
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
Microsoft’s Integrated Approach • Visual Studio 2005 Team System • Integrates architecture, design, development, testing, and oversight/tracking • Includes communication “hooks”
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
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
Core Functionality • Optimistic check out • Pessimistic check out • Check in • Subscribe and unsubscribe • Publish lists • Artifacts (and state) • Users (contact information, presence, etc.) • Subscriptions
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
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