Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of...
-
date post
20-Dec-2015 -
Category
Documents
-
view
217 -
download
0
Transcript of Community, Artifacts, and Versions André van der Hoek Institute for Software Research University of...
Community, Artifacts, and Versions
Community, Artifacts, and Versions
André van der HoekInstitute for Software ResearchUniversity of California, Irvine
CommunityCommunity
Set of people working together towards a common goal
Here, we concern ourselves to those communities that are involved in the joint production of artifacts
Intrinsic need: coordination
Limitations in Coordination AbilityLimitations in Coordination Ability
Group size Location of group members Technology Artifacts
Conceptual Visualization Strengths Weaknesses
Formal, process-basedcoordination
Scalable; Control;Insulation from other activities;Group-centric
Resynchronization problems;Insulation becomes isolation
Informal, awareness-basedcoordination
Flexible;Promotes synergy; Raises awareness;User-centric
Not scalable;Requires extensive human intermediation
Typical Coordination MechanismsTypical Coordination Mechanisms
Conceptual Visualization Strengths Weaknesses
Formal, process-basedcoordination
Scalable; Control;Insulation from other activities;Group-centric
Resynchronization problems;Insulation becomes isolation
Informal, awareness-basedcoordination
Flexible;Promotes synergy; Raises awareness;User-centric
Not scalable;Requires extensive human intermediation
Continuous coordination
Expected to be the strengths of both formal and informal coordination
To be discovered by the proposed research
Continuous CoordinationContinuous Coordination
Configuration ManagementConfiguration Management
“Configuration management (CM) is a discipline whose goal is to control changes to large software through the functions of: component identification, change tracking, version selection and baselining, software manufacture, and managing simultaneous updates (team work).”
Walter Tichy, SCM-1, 1988
Construction•Building•Snapshots•Regeneration•Optimization
Construction•Building•Snapshots•Regeneration•Optimization
Auditing•History•Traceability•Logging
Auditing•History•Traceability•Logging
Components•Versions•Configurations•Baselines•Project contexts
Components•Versions•Configurations•Baselines•Project contexts
Spectrum of FunctionalitySpectrum of Functionality
Susan Dart, SCM-3, 1991
Accounting•Statistics•Status•Reports
Accounting•Statistics•Status•Reports
Process•Lifecycle•Task mgmt.•Communication•Documentation
Process•Lifecycle•Task mgmt.•Communication•Documentation
Controlling•Access control•Change request•Bug tracking•Partitioning
Controlling•Access control•Change request•Bug tracking•Partitioning
Team•Workspaces•Merging•Families
Team•Workspaces•Merging•Families
Structure•System model•Interfaces•Consistency•Selection
Structure•System model•Interfaces•Consistency•Selection
Three Generations of CM SystemsThree Generations of CM Systems
Fun
ctio
nalit
y
Time
ResearchDevelopment
1st: version control
2nd: configurationmanagement
3rd: process-based CM
A Typical Development ScenarioA Typical Development Scenario
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD CDDCC
Direct ConflictsDirect Conflicts
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD
Conflicting changes to the same artifact
CCC DD
Indirect ConflictsIndirect Conflicts
CMrepository
Pete’s workspace
CBA
Ellen’s workspace
E CD
Conflicting changes to different artifacts
CCC DD
Traditional CM ApproachesTraditional CM Approaches
Coordination mechanism
Directconflicts
Indirect conflicts
Pessimistic Locking before changes are made
Avoided, at the expense of project delays
Not addressed
Optimistic Automated merging after changes have been made
Resolved, except for overlapping changes
Not addressed
Key ObservationsKey Observations
A CM workspace in reality provides two kinds of isolation:– Good isolation
Shields developers from parallel changes to artifacts
– Bad isolation Hides knowledge of what artifacts other developers are
changing
Opportunities for breaking isolation are limited– Based on repository information only– Initiated by developer only– Addressing direct conflicts only
ObjectiveObjective
To increase awareness of ongoing workspace activities– Collect– Distribute– Organize– Present
To do so automatically and continuously– Push information
To, thereby, move earlier the point at which potential direct and indirect conflicts can be detected
SolutionSolution
New situation:Share information when others perform CM operations, and not just when I perform a CM operation
Old situation:Information available only when I carry out a CM operation or explicitlyrequest information
CMrepository
CMrepository
Palantír ArchitecturePalantír Architecture
CMrepository
Workspace Workspace
Event wrapper
Event service
CM client CM server CM client
Visualization(s)
Event wrapper
Internal state
Extractor
Visualization(s)
Internal state
Extractor
Event Type Indication
Populated Artifact has been placed in a workspace
Unpopulated Artifact has been removed from a workspace
Synchronized Artifact has been synchronized with repository
ChangesInProgress Artifact has changed in a workspace
ChangesCommitted Artifact has been stored in repository
ChangesReverted Artifact has been returned to its original state
Added New artifact has been added to workspace
Removed Artifact has been removed from workspace
Renamed Artifact has been renamed
Moved Artifact has been moved from one artifact to another
SeverityChanged Severity of changes to an artifact has changed
Types of EventsTypes of Events
Typical Sequence of EventsTypical Sequence of EventsPessimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated
Optimistic Populated ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted ChangesInProgress SeverityChanged SeverityChanged … ChangesCommitted UnPopulated
Event WrapperEvent Wrapper
Tasks– Intercept workspace activity– Interpret workspace activity– Determine whether the activity is relevant to Palantír– If relevant, gather information regarding the activity– Construct and emit one or more events
Unique per CM system– Wrap command line– Use standard facilities (triggers, virtual file system)
Can and should remain unobtrusive
Internal StateInternal State
Tasks– Maintain overview of activities in both the local and
remote workspaces– Subscribe to relevant workspace activities
Those pertaining to the artifacts in the local workspace but occurring in other workspaces
Siena-based event routing
– Bootstrap new workspaces with information on existing workspaces
Same for every CM system Always remains unobtrusive
ExtractorExtractor
Tasks– Further narrow down the events to be viewed
Set of workspaces Set of authors Set of artifacts …
Same for every CM system One-time obtrusive
VisualizationVisualization
Tasks– Organize and display events
Same for every CM system Varying degrees of obtrusiveness
– Ticker tape– Tabular– Explorer– Fully graphical
SeveritySeverity
Currently calculated as the percentage of lines of code that have changed– Simple– Not completely accurate
1 line change to an interface 1000 lines renaming a variable
Work in progress– Other severity measures– Impact measures
Continuous CoordinationContinuous Coordination
Palantír addresses the first part of continuous coordination: information exchange and awareness
Palantír still needs to address the second part of continuous coordination: allowing developers to act upon the information– Part is done subconsciously– Part should be supported explicitly
ConclusionsConclusions
Palantír is a novel prototype that raises awareness of workspace activities– Maintains good isolation while overcoming bad
isolation– Based on workspace information– Automated (push instead of pull)– Addressing direct and indirect conflicts
Palantír is a demonstration of continuous coordination, combining formal (CM system check-in/check-out) with information (awareness) mechanisms– Can we extend the same principles to other
activities (e.g., design, …)?