Title: Configuration Management and Distributed Software Engineering
1Configuration Management and Distributed Software
Engineering
- Jon A. Preston
- Dr. Xiaolin Hu
- CSc8350 Spring 2005
2Agenda
- SE Coordination and collaboration
- CM Artifact management
- IDE Integrating CMS/CSCW
- Code visualization techniques
- Open-systems architecture
3Collaboration/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
4Configuration 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
5Configuration Management
6Optimistic 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
7Pessimistic Coordination
Checkout denied until A is checked in
8Optimistic Coordination
9Distributed 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
10Distributed 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
11Distributed 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
12Distributed 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
13Structure of Software Systems
- Highly structured code blocks
- Hierarchical trees/graphs
- Reuse leads to interdependencies
- Can auto-detect such structures and
interdependencies
14Fine-grain Differentials
Version n
Version n1
Edited code block
15Collaborative IDE and Versioning
- Locking (pessimistic CM) doesnt scale
- Highly-structured nature of software code helpful
- Supports wait-free collaboration
- Must deal with collisions/merging
- Evolution graph (branching and merging) presented
16(No Transcript)
17Collaborative 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
18(No Transcript)
19Microsofts Integrated Approach
- Visual Studio 2005 Team System
- Integrates architecture, design, development,
testing, and oversight/tracking - Includes communication hooks
20Visual Studio 2005 Team System
21Test Integration and Coverage
22Code 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 ICSE04
23SeeSoft
24Augur Visualizing Source Code
25Augur Visualizing Source Code
26(No Transcript)
27Open-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
28Core Functionality
- Optimistic check out
- Pessimistic check out
- Check in
- Subscribe and unsubscribe
- Publish lists
- Artifacts (and state)
- Users (contact information, presence, etc.)
- Subscriptions
29Open-systems Architecture
Notification (Email, IM, etc.)
CVS
Fine-grain middleware
Network
VSS
Doc Editor
Connection middleware
Fine-grain middleware
Web Services-Provided Core Functionality
CMS
Connection middleware
IDE
Fine-grain middleware
30Conclusion
- 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