Annotation of Concurrent Changes in Collaborative Software Development

Size: px
Start display at page:

Download "Annotation of Concurrent Changes in Collaborative Software Development"

Transcription

1 Annotation of Concurrent Changes in Collaborative Software Development Claudia-Lavinia Ignat INRIA Nancy-Grand Est LORIA, Campus Scientifique, F Vandoeuvre-lès-Nancy, France Abstract Studies showed that in large projects the partition of software modules is limited and developers can contribute to any part of the code. In traditional software development tools such as CVS and Subversion users work in their local workspaces without being informed about concurrent modifications. This can lead to conflicting or redundant changes. We propose an awareness mechanism that informs users about the concurrent published changes by annotating the local project with these modifications. Users can continue working without integrating the concurrent changes being notified about the location of changes at different levels such as package, class, method and line. Users can also see the representation of the concurrent changes by consulting the annotations associated to code lines. We present the algorithms that implement our awareness approach. 1. Introduction Most medium to large-scale projects involve multiple software developers that can be located in different places and might work on different time schedules. Traditionally, software projects are developed and maintained by means of a version control or a configuration management system such as CVS [2] or Subversion [3]. These tools allow developers to work in isolation on different or same parts of software and publish their changes at a later time. Studies showed that in large projects the partition of software modules among developers is limited and developers can contribute to any part of the code [8]. While users work in isolation on their own copies of the source code and compile and test their changes before publishing them to the group, blind modifications might occur [9]. These blind modifications could lead to conflicts or redundant work. A conflict would, for instance, be generated if a developer modifies a method while another developer concurrently deletes that method. Two developers perform redundant work if they concurrently perform an identical task. In order to avoid blind modifications developers should be informed as soon as possible about concurrent changes performed by other developers. Providing a user an understanding of who is working with him, what they are doing and how his own actions interact with theirs is called awareness [5]. We propose avoiding blind modifications by means of a suitable awareness mechanism. Various tools were proposed to visualise awareness during software development by either augmenting existing views or constructing specialised views where human activities are combined with software artifact information [14, 4]. However, none of these approaches localises and represents changes performed by other users on software artifacts. In this paper we present an awareness approach that avoids blind modifications by localising and representing concurrent changes. Integrating changes of other developers in real-time on a local copy of the source code is not feasible as this often leads to non-compiling code preventing the possibility to test code. We propose the annotation of source code with changes performed by other users. Annotations form an overlay model that is presented to users over their document view. Therefore, users can benefit from the awareness mechanism by means of annotations while continuing to change and test their code without actually integrating remote changes. In this paper we describe our awareness approach for changes that are published to the repository, i.e. users will be informed by means of annotations about concurrent changes committed to the repository and not yet integrated. The awareness mechanism about concurrent changes uncommitted to the repository relying on the same basic ideas as the awareness mechanism about concurrent committed changes is under current research and is not subject of discussion in this paper. The main assumption of our novel awareness mechanism is that users are connected most of the time, even when they work in isolation. Since nowadays network connectivity is provided almost everywhere at the office, in mobile environments such as trains and planes, or out of the office in hotels or at home and it will continuously expand in the

2 near future, our assumption seems feasible. However, we can support disconnected work, but without providing any awareness mechanism. The paper is structured as follows. In section 2 we present our envisaged annotation mechanism from the user and interface point of view. Section 3 presents the document model and the set of operations that we used in our annotation mechanism. In section 4 we describe the operationbased synchronisation mechanism that we used in our approach. Section 5 presents our solution for the envisaged annotation mechanism. Section 6 compares our proposition with related approaches. Finally, section 7 presents some concluding remarks and directions of future work. 2. Envisaged annotation mechanism In this section we provide an example showing the envisaged annotation mechanism. For an easy understanding, we consider a very simple example involving two software engineers that collaborate on the source code of the same project stored on a central repository. The modifications they perform will overlap on the code of some common classes. Suppose that the first developer decides to remove the method isreal() from the class Integer illustrated in Figure 1 as he thinks that this method is not used throughout the project. Concurrently, the second developer that uses the functionality of class Integer realises that the method isreal() that he uses should be corrected - it should return false as an integer should not be considered to be a real. Let us analyse what awareness information is provided to the two developers depending on the order the two developers commit to the repository. Suppose that the second user commits first to the repository the corrections he performed on the method isreal(). The first user who deletes the method isreal() will receive after the commit of the second user the awareness information presented in Figure 2. By means of a marker the user will be informed that the class Integer is concurrently modified as shown on the top left hand side window of the interface. In the right hand side window an annotation marker will indicate that a line was concurrently modified by another user. If the user examines details about the annotation, he will be informed that there is a conflict between his local change and the remote ones. For instance, the associated annotation in Figure 2 informs the user that the method is- Real() locally deleted was modified by another user. In this manner, the user can decide to contact the other user or not to delete the method. Figure 2. Interface at the first site after annotation of concurrent committed operations Figure 1. Initial document state Suppose now that the first user commits to the repository the deletion of the method isreal(). Let us analyse what happens at the site of the second user that modifies the method isreal(). After the first user commits his changes, awareness information about the changes performed will be sent to him and his local source code will be annotated as in Figure 3. In the right hand side window the user will be notified that the method isreal() is deleted by annotating the lines composing this method. The left hand side windows displaying the class hierarchy and the methods belonging to class Integer will highlight the fact that class Integer was concurrently modified and method isreal() was deleted. In the next sections we describe our approach for developing the annotation mechanism presented in this section.

3 Figure 3. Interface at the second site after annotation of concurrent committed operations 3. Model of the document and set of operations In order to capture changes at a low granularity level such as the character, we modeled the document as a sequence of characters and we represent changes performed on the document by means of the following two types of operations: insert(p,c) that inserts character c at position p and delete(p) that deletes the character at position p. The linear structure of the document can be mapped to the structure of a source code document composed of packages, classes, methods and lines of code. Therefore, if a change was performed at a certain character of the document, we can annotate that a change was performed in the corresponding line of code, method, class or package. 4. Operation-based synchronisation over a shared repository In this section we present the operation-based synchronisation mechanism over a shared repository by describing the basic methods that should be offered by a version control system. We then present the basic operational transformation mechanism in order to understand the basic steps of the update procedure Checkout, Commit, Update The three basic methods supported by a version control system are: checkout, commit and update. A checkout method creates a local working copy of an object from the repository. A commit method creates in the repository a new version of the corresponding object by validating the modifications done on the local copy of the object. The condition of performing this method is that the repository does not contain a more recent version of the object to be committed than the base version of the local copy of the object, i.e. the last version from the repository that the user started working on. An update method performs the merging of the local copy of the object with the last version of that object stored in the repository. In an operation-based version control system the repository stores a document version V i by means of the set of operations representing the difference between V i 1 and V i. The initial version V 0 is represented by the initial document state. In the checkout phase, a request is sent to the repository to specify the version of the document that is intended to be checked out. The repository sends to the client the initial version of the document and the set of operations representing the difference between the requested document version and the initial document version. The client then executes the received list of operations on the received initial document state. It also sets the base document version to the requested version. In the commit phase, a check is first performed as to whether the user can commit the changes to the repository. If the base version of the document in the local workspace is equal to the last version in the repository, a commit can be performed. Otherwise, an update is necessary before committing the changes. In the case that a commit is allowed, the repository should simply store the operations that were performed in the local workspace. In the update phase, the repository sends to the local workspace a list of operations representing the delta between the latest version in the repository and the base version in the local workspace. Upon receiving the list of operations from the repository, the local workspace performs a merging algorithm to update the local version of the document. Consider the scenario illustrated in Figure 4 where the local user started working from version V k on the repository but cannot commit the changes because meanwhile the version from the repository has been updated to version V k+n. Let us denote by LL the list of operations executed by the user in their local workspace and by DL the list of operations representing the delta between versions V k+n and V k. Two basic steps have to be performed. The first step consists of applying the operations from DL on the local copy of the user in order to update the local document by integrating the changes included in V k+n. The operations from the repository, however, cannot be executed in their original form as they have to be transformed in order to include the effect of all the local operations contained in LL before they can be executed in the user workspace. The

4 second step consists of transforming the operations in LL in order to include the effects of the operations in DL. The resulting list of transformed local operations represents the new delta to be saved in the repository. Repository become an insert operation of the character o at position 116, the result document being: int concurrencycontrol ( ) { V 0... V k DL=O, O d2,..., O dm checkout W 0 V k+n update merge Private Workspace LL=O l1, O l2,..., O lp W r Vk+n W r+1 Operational transformation mechanism was allowed to be performed in this case as the document states before the generation of O 11 and O 21 respectively were identical. We explain next more formally the notion of operational transformation. Firstly, we present the notion of context [15] of an operation. Figure 4. Updating Stage 4.2. Operational transformation In order to illustrate the operational transformation approach we start by providing an example. Suppose the repository contains a class document with the content illustrated below. For simplicity, we represented only a small part of the document. int concurencycontrl ( ) { Suppose that two users checkout this version of the document and perform some operations in their workspaces. User 1 performs the operation O 11 =insert(115, o ). We supposed that the method name concurencycontrl(...) corresponds to offset 100 in the source document. Therefore operation O 11 is an operation of insertion of character o at the position 115 inside the document in order to correct the misspelling of the method name concurencycontrl to concurencycontrol. Afterwards, User 1 commits the changes to the repository and the repository stores the list of operations performed by User 1 consisting of O 11. Further, assume that, concurrently, User 2 executes operation O 21 =insert(105, r ) of insertion of character r at the position 105 inside the document in order to correct the misspelling of the method name concurencycontrl to concurrencycontrl. Before performing a commit, User 2 needs to update their local copy of the document. Operation O 11 stored in the repository cannot be applied in its initial form on the local workspace of User 2, it needs to be transformed in order to include the effect of operation O 21. Because operation O 21 inserts a character before the insertion position of O 11, O 11 needs to increase its position of insertion by 1. This process of transformation of an operation to include the effects of another operation is called operational transformation. In this way, the transformed operation will Definition 1 The context of an operation O denoted as CT O is defined as being the document state on which O is defined. Two operations O a and O b having the same context, CT Oa = CT Ob, are denoted O a = CT O b. Definition 2 An operation O a is context preceding operation O b denoted as O a CT O b if CT Ob = CT Oa O a, i.e. the state of the document on which O b is defined is equal to the state of the document after the execution of O a. Next, we explain one of the basic mechanisms of the operational transformation approach [6], called inclusion transformation that we used in our algorithms. This type of transformation was illustrated in the previous example. Definition 3 The Inclusion Transformation - IT (O a, O b ) transforms operation O a against operation O b such that the effect of O b is included in O a. The condition of performing IT (O a, O b ) is that O a = CT O b. If the result of IT (O a, O b ) is O a, then O b CT O a Updating phase In this subsection we present the operation-based merging algorithm used in the updating phase and that is also used by our annotation mechanism presented in section 5. The operation-based merging algorithm presented in this subsection is derived from the SOCT4 algorithm [16]. Consider the scenario illustrated in Figure 4 where we denoted by LL the list of operations executed by the user in their local workspace and by DL the list of operations in the repository that have to be applied locally to update the local document. Consider that DL and LL have the following structure DL = [O,..., O d(i 1), O di, O d(i+1),..., O dm ], where O CT... CT O dm and LL = [O l1,..., O l(i 1), O li, O l(i+1),..., O ln ], where O l1 CT... CT O ln. O = CT O l1 as both lists LL and DL were defined on the same context namely the document state corresponding to version V k. As mentioned in subsection 4.1 operations in DL need to be transformed

5 against operations in LL and operations in LL have to be transformed against operations in DL. Each operation in DL needs to be transformed against all operations in LL. When O has to be applied on the local workspace, it is allowed to sequentially transform O with respect to O l1,..., O l(i 1), O li, O l(i+1),..., O ln as O = CT O l1 O 1 = CT O l2 where O 1 = IT (O, O l1 ) O 2 = CT O l3 where O 2 = IT (O1, O l2) O n 1 = CT O ln where O n 1 = IT (O n 2, O ln 1) When O d2 has to be applied on the local workspace, O d2 cannot be directly sequentially transformed against the list LL as O d2 is not contextually equivalent with the operations in LL as operation O d2 contains in its context operation O while operations in LL do not. In order that transformations can be performed, operations in LL should include the effect of operation O, the result being the list LL 1 = [O 1 l1,..., O1 l(i 1), O1 li, O1 l(i+1),..., O1 ln ] where Ol1 1 = IT (O l1, O ) Ol2 1 = IT (O l2, O 1 ) where O1 = IT (O, O l1 ) O 1 ln = IT (O ln, O n 1 ) where On 1 = IT (O n 2, O ln 1). Further, when O d3 has to be applied locally it needs to be transformed against operations in LL 1. In order that such transformations can be performed, operations in LL 1 need to be transformed against operation O d2 in the same manner as described above. The same process is in turn applied for operations O d4,, O dm. We can notice that at each step operations in DL and LL are transformed against each other. In order to support this process, the symmetric inclusion transformation between two operations O a and O b has been defined as follows: Algorithm symmetricinclusion(o a,o b ):(O a,o b ) { O a:=it(o a,o b ); O b :=IT(O b,o a ); return (O a,o b ); } In what follows we present the merge procedure. It takes as input arguments two logs, the remote log RL containing the operations from the repository and the local log LL containing the local operations. The merge procedure generates as output two other logs, the new remote log NRL and the new local log NLL, each of which is modified to include the effects of the operations in the other log. The new remote log NRL will contain the list of operations that should be executed sequentially on the current document state of the working copy in order to update it. The new local log NLL will store the list of operations which represent the delta between the new version and the old version in the repository and will have to be sent to the repository. The implementation of the merge procedure is given below. Algorithm merge(rl, LL):(NRL,NLL) { for (i:=1;i RL ;i++) for (j:=1;j LL ;j++) (RL[i],LL[j]):=symmetricInclusion(RL[i],LL[j]); NLL:=LL; NRL:=RL; return (NRL,NLL); } 5. Annotation mechanism Additionally to the standard checkout, commit and update methods we offer an annotation mechanism of concurrent changes that is described in this section. Each time a user commits changes to the repository, the repository informs the other users about the committed operations and user documents are annotated with the committed changes. Users can continue working without integrating committed changes, being informed by means of annotations about the concurrent changes performed. As showed in Figure 2, our annotation mechanism is meant to provide developers a quick overview about changes that occurred at a specific document part and who performed those changes. Changes performed by different users are depicted by different colours. For tracking user changes deleted parts of the document are marked as strike out and therefore they are not physically removed from the document. Annotations should not modify the local document state and therefore local operations performed in the workspace do not have to take into account execution of annotation operations. We call an annotation operation a remote operation that will annotate the document. Annotations should be attached to the current document state. Therefore, for computing the proper location and effects of annotation operations in the current document, they have to take into account concurrent executions of local operations. The contents of the attached annotations to certain document parts should illustrate the integration of the annotation operations within the local document state corresponding to that document part. Therefore, merging between annotation and local operations has to be performed. In order to offer support for the visualisation of the deleted parts of the document, delete operations should mark for deletion the targeted characters and transformation functions used for merging should be adapted to do not take deletions into account. We used the tombstone transformation functions [13] for merging annotation operations with the local operations. In order to deal with the annotation mechanism, each user workspace maintains the following data structures:

6 LL the local log of operations containing the operations executed in the local workspace. ARL the annotation remote log containing the committed and non-updated operations from the repository that were used for the annotation process on the local document. ALL the list of local operations transformed against the ARL log. These transformations are performed in order to prepare further applications of annotations. V.bv is the identifier of the base version of the local project, i.e. the latest version in the repository that was integrated in the local workspace. We next describe the steps followed and how the above structures are updated in the case of the following main actions: checkout, execution of a list of local operations, commit, update of the local workspace and annotation of the local workspace. We mention that the actions of checkout, commit, update and annotation are atomic and therefore, no two of these types of actions independently called can interfere with each other. Moreover, if two actions of this type are sequentially sent by a certain site (client or server) to be applied on the remote site, they will arrive in the same order at the receiver site Checkout version V.nv When a version of the project V.nv is checked out, the following steps are performed: - execute locally all received operations from the repository representing version V.nv - V.bv:=V.nv - LL:=[]; ALL:=[]; ARL:=[] - RL:=Repository.difference(V.nv,V.lv), where V.lv is the latest version in the repository - call annotate(rl) The local document is replaced with the version of the document from the repository and therefore, the list of operations received from the repository is locally executed on the initial document version received from the repository and the list LL is emptied. V.bv is updated with the value of the checked-out version from the repository. The annotations are removed and therefore ALL and ARL are emptied. Afterwards, the repository computes and sends to the client the difference between the latest version in the repository V.lv and the checked-out version V.nv. The client calls the annotation procedure described in subsection 5.5 with this difference passed as parameter Execution of a list of local operations When a user executes locally the list of operations L 1, the following steps are performed: - append(l 1,LL) - (NL 1,NARL):=mergeTTF(L 1,ARL) - append(nl 1,ALL) - ARL:=NARL List L 1 is appended to the list of local operations LL. In order to compute the location and contents of annotations, list L 1 is merged with list ARL. The transformed list of local operations NL 1 is appended to ALL. The annotation remote log ARL is replaced with NARL obtained as result of merge to take into account the list L 1 of executed local operations. The base version of the local project V.bv remains unchanged. The function mergettf has the same functionality as merge described in subsection 4.3 with the difference that the subprocedure symmetricinclusion uses the tombstone transformation functions Commit A user is allowed to save his local version of the project to the repository only if his local version is up-to-date. If the local version is not up-to-date, the user has to update his local version of the project before committing his changes. When a new version of the project is committed to the repository, the following steps are performed: - send to the repository the list LL - V.bv:=V.bv+1 - LL:=[]; ALL:=[]; ARL:=[] The list of local operations LL is sent to the repository and a new version of the project constructed from the list LL will be made available. The local base version is incremented. After the commit is performed, the list LL is emptied. The annotations are removed and therefore lists ALL and ARL are emptied, too Update When an update is performed, the repository sends to the user the list RL representing the difference between the base local version of the user and the last available version of the project in the repository. The following steps are realised: - ALL:=[]; ARL:=[] - (NRL,NLL):=merge(LL,RL) - LL:=NLL - execute NRL sequentially on the local document state - V.bv:=V.lv, where V.lv is the latest version in the repository

7 Annotations are removed and therefore lists ALL and ARL are emptied. The local list of operations LL is merged with the remote list of operations RL. The transformed list of local operations NLL will become the current local log. The operations in the transformed remote log N RL are sequentially applied on the local workspace. The base version of the local workspace is assigned the latest version in the repository. Note that for computing the document state as result of an update, the merge procedure described in subsection 4.3 is used. Delete operations physically delete characters in the document when they are executed and transformations against delete operations are performed Annotate the local document with a list of remote operations Each time a user commits changes to the repository, the repository sends to the other connected users the list of committed changes. This list of remote operations denoted by RL is received by local users and used to annotate the document. These operations are not integrated on the local document, i.e. list LL remains unmodified as well as the base version of the document. The following steps are performed: - (NRL,NALL):=mergeTTF(RL,ALL) - use sequentially the operations in NRL to compute the annotations within the document - append(nrl,arl) - ALL:=NALL In order to compute the content of the annotations attached to parts of the document where concurrent changes occurred, the annotation operations in RL are merged with local operations in ALL. The operations in the transformed list NRL are used sequentially to compute an intermediary state of the local document that integrates annotation operations. The actual local document state does not change. The intermediary document state is scanned and the parts where annotation changes occurred are associated with local document lines. NRL is appended to ARL to keep track of all operations used in the annotation process. The list ALL is replaced by the transformed list NALL to take into account the new list of operations RL used in the annotation mechanism. 6. Related work CVS watches [2] permit users to subscribe for changes performed on an artifact and to be notified by when a user announces by means of a command his intent to modify that artifact. However, watches require the use of as an external tool for coordination in software development. In [7] the notification mechanism is replaced with a lightweight notification mechanism called Elvin together with a tickertape tool where CVS messages are displayed and where developers can also chat with one another. Elvin and the tickertape are integrated in the CVS. These approaches do not provide a presentation mechanism of the changes performed. VC 2 [10] is an awareness tool that can be integrated with existing version control systems. The file system is monitored for changes performed on documents. A user working on a document receives a notification when another user starts editing the same document. The user can then ask the other user for committing his changes. The second user might accept or reject the request. In [4] a real-time awareness is provided for collaborative software engineering. Warning messages are used to notify developers about concurrent activity. Developers can afterwards consult the list of conflicts. Moreover, based on a selected conflict, a user can set watches for concurrently edited elements such that he is informed when the collaborator finished editing the element. State Treemap [11] informs users about states of shared documents. Different states are defined to indicate when a copy is locally modified, when two copies of the document are modified and none of them is published yet or when a document copy is modified locally and some changes on that document were committed. Palantìr [14] is an awareness tool for distributed software development based on the same principle as State Treemap, the main difference being that severity information that computes the amount of changes performed among documents is provided. In the divergence metrics approach [12], metrics are not based as in Palantìr and State Treemap approaches on events triggered when the states of documents are changed, but they rather use information provided by operations that model concurrent changes. It is possible to compute the amount of concurrent changes performed on each document or an amount of conflicting/overlapping changes. However, none of the previously mentioned approaches directly localises and presents the concurrent changes. Some of these approaches such as [2], [7] and [10] provide notifications about concurrent changes without any information on the changes performed. In [4] the notification mechanism allows users to consult conflicting changes that are listed in a separate document. In our approach concurrent changes are localised and annotated on the local document without any burden for users to set watches and analyse their results. The approaches in [11], [14] and [12] provide either a simple information that an artifact has been concurrently changed or a quantitative information about the concurrent changes performed on the same arti-

8 fact. However, no information about the location of changes is provided. Some of the approaches described above present notifications or a qualitative measure of concurrent uncommitted changes. We presented an awareness approach only for concurrent committed changes. We are currently working on extending our approach for uncommitted changes. 7. Conclusions and future work In this paper we presented an awareness approach that avoids conflicting or redundant concurrent modifications in collaborative software development. Our approach consists on annotating the local project with the concurrent changes. By means of annotations users are informed about the location and representation of concurrent modifications and can continue their work without integrating these changes in their local workspace. We expect that provided awareness information will generate group communication and autocoordination between users in order to prevent conflicts and redundant work. We presented the operational transformation algorithms for implementing the proposed annotation mechanism associated with a basic version control system. We developed a plugin for Eclipse [1] that implements the proposed annotation mechanism. We implemented a basic version control system where users can save and checkout versions of their shared projects and update their local projects with the published changes. Additional to a traditional version control system, our system informs users when new changes were published and these changes are used to annotate user local workspaces. We are currently working on extending the awareness mechanism for concurrent uncommitted changes in addition to the committed changes. We plan to investigate the usability and the benefits of our approach by performing user studies. References [1] Eclipse - an open development platform. [2] B. Berliner. CVS II: Parallelizing Software Development. In Proceedings of the USENIX Winter Technical Conference, pages , Washington, D. C., USA, Jan [3] B. Collins-Sussman, B. W. Fitzpatrick, and C. M. Pilato. Version control with Subversion. O Reilly & Associates, Inc., [4] P. Dewan and R. Hegde. Semi-synchronous conflict detection and resolution in asynchronous software development. In Proceedings of the European Conference on Computer- Supported Cooperative Work - ECSCW 2007, pages , Limerick, Ireland, Sept [5] P. Dourish and V. Bellotti. Awareness and coordination in shared workspaces. In Proceedings of the ACM Conference on Computer-Supported Cooperative Work - CSCW 92, pages , Toronto, Ontario, Canada, [6] C. A. Ellis and S. J. Gibbs. Concurrency Control in Groupware Systems. In Proceedings of the ACM SIGMOD Conference on the Management of Data - SIGMOD 89, pages , Portland, Oregon, USA, May [7] G. Fitzpatrick, P. Marshall, and A. Phillips. CVS Integration With Notification And Chat: Lightweight Software Team Collaboration. In Proceedings of the ACM Conference on Computer-Supported Cooperative Work - CSCW 2006, pages 49 58, Banff, Alberta, Canada, [8] C. Gutwin, R. Penner, and K. Schneider. Group awareness in distributed software development. In Proceedings of the ACM Conference on Computer Supported Cooperative Work - CSCW 04, pages 72 81, Chicago, Illinois, USA, [9] C.-L. Ignat, G. Oster, P. Molli, and H. Skaf-Molli. A Collaborative Writing Mode for Avoiding Blind Modifications. Ninth International Workshop on Collaborative Editing Systems, GROUP 07, IEEE Distributed Systems online, Nov [10] D. Machado, N. Preguia, C. Baquero, and J. L. Martins. VC 2 - Providing Awareness in Off-The-Shelf Version Control Systems. Ninth International Workshop on Collaborative Editing Systems, GROUP 2007, IEEE Distributed Systems online, Nov [11] P. Molli, H. Skaf-Molli, and C. Bouthier. State Treemap: an Awareness Widget for Multi-Synchronous Groupware. In Proceedings of the International Workshop on Groupware - CRIWG 2001, pages , Darmstadt, Germany, Sept [12] P. Molli, H. Skaf-Molli, and G. Oster. Divergence Awareness for Virtual Team Through the Web. In Proceedings of World Conference on the Integrated Design and Process Technology - IDPT 2002, Pasadena, California, USA, June [13] G. Oster, P. Molli, P. Urso, and A. Imine. Tombstone Transformation Functions for Ensuring Consistency in Collaborative Editing Systems. In Proceedings of the International Conference on Collaborative Computing: Networking, Applications and Worksharing - CollaborateCom 2006, page 10, Atlanta, Georgia, USA, Nov [14] A. Sarma, Z. Noroozi, and A. van der Hoek. Palantìr: Raising Awareness among Configuration Management Worspaces. In Proceedings of the International Conference on Software Engineering - ICSE 2003, pages , Portland, Oregon, USA, May [15] H. Shen and C. Sun. Flexible Merging for Asynchronous Collaborative Systems. In Proceeding of the Conference on Cooperative Information Systems - CoopIS 2002, volume 2519 of Lecture Notes in Computer Science, pages , Irvine, California, USA, Nov [16] N. Vidot, M. Cart, J. Ferrié, and M. Suleiman. Copies Convergence in a Distributed Real-Time Collaborative Environment. In Proceedings of the ACM Conference on Computer- Supported Cooperative Work - CSCW 2000, pages , Philadelphia, Pennsylvania, USA, Dec

Adaptive Consistency and Awareness Support for Distributed Software Development

Adaptive Consistency and Awareness Support for Distributed Software Development Adaptive Consistency and Awareness Support for Distributed Software Development (Short Paper) André Pessoa Negrão, Miguel Mateus, Paulo Ferreira, and Luís Veiga INESC ID/Técnico Lisboa Rua Alves Redol

More information

Compensation in Collaborative Editing

Compensation in Collaborative Editing Compensation in Collaborative Editing Stéphane Weiss, Pascal Urso and Pascal Molli LORIA Campus Scientifique, BP 239 F-54506 Vandoeuvre-lès-Nancy, France {weiss,urso,molli}@loria.fr ABSTRACT Undo/Redo

More information

Cut paste string operation for collaborative groupware applications

Cut paste string operation for collaborative groupware applications DOI 10.1186/s40660-015-0003-z SHORT REPORT Open Access Cut paste string operation for collaborative groupware applications Santosh Kumawat 1* and Ajay Khunteta 2 *Correspondence: santoshkumawat82@ymail.

More information

Collaborative Software Engineering: A Survey

Collaborative Software Engineering: A Survey Collaborative Software Engineering: A Survey Agam Brahma November 21, 2006 Abstract This paper surveys recent work in the field of collaborative software engineering and relates it to concepts discussed

More information

Change Management. tamj@cpsc.ucalgary.ca ABSTRACT

Change Management. tamj@cpsc.ucalgary.ca ABSTRACT Change Management James Tam, Saul Greenberg, and Frank Maurer Department of Computer Science University of Calgary Calgary, Alberta phone: +1 403 220 3532 tamj@cpsc.ucalgary.ca ABSTRACT In this paper,

More information

INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS

INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS INTERNET-BASED COLLABORATIVE PROGRAMMING TECHNIQUES AND ENVIRONMENTS By Haifeng Shen A DISSERTATION SUBMITTED IN FULFILLMENT OF THE REQUIREMENTS OF THE DEGREE OF DOCTOR OF PHILOSOPHY AT THE SCHOOL OF COMPUTING

More information

A Need-Based Collaboration Classification Framework

A Need-Based Collaboration Classification Framework A Need-Based Collaboration Classification Framework Anita Sarma, André van der Hoek and Li-Te Cheng Department of Informatics Donald Bren School of Info & Comp Sciences University of California Irvine

More information

Jazzing up Eclipse with Collaborative Tools

Jazzing up Eclipse with Collaborative Tools Jazzing up Eclipse with Collaborative Tools Li-Te Cheng, Susanne Hupfer, Steven Ross, John Patterson IBM Research Cambridge, MA 02142 {li-te_cheng,shupfer,steven_ross,john_patterson}@us.ibm.com Abstract

More information

Software Configuration Management. Context. Learning Objectives

Software Configuration Management. Context. Learning Objectives Software Configuration Management Wolfgang Emmerich Professor of Distributed Computing University College London http://sse.cs.ucl.ac.uk Context Requirements Inception Elaboration Construction Transition

More information

Version Control Using Subversion. 12 May 2013 OSU CSE 1

Version Control Using Subversion. 12 May 2013 OSU CSE 1 Version Control Using Subversion 12 May 2013 OSU CSE 1 Version Control In team projects, software engineers: Share and extend a common code base (and comply with standards, coding conventions, comment

More information

Continuous Integration

Continuous Integration Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal

More information

Software Configuration Management and Continuous Integration

Software Configuration Management and Continuous Integration 1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish

More information

BlueJ Teamwork Tutorial

BlueJ Teamwork Tutorial BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3

More information

SIMPLIFIED CENTRALIZED OPERATIONAL TRANSFORMATION ALGORITHM FOR CONCURRENT COLLABORATIVE SYSTEMS

SIMPLIFIED CENTRALIZED OPERATIONAL TRANSFORMATION ALGORITHM FOR CONCURRENT COLLABORATIVE SYSTEMS International Journal of Computer Science and Applications Technomathematics Research Foundation Vol. 9, No. 3, pp. 47 60, 2012 SIMPLIFIED CENTRALIZED OPERATIONAL TRANSFORMATION ALGORITHM FOR CONCURRENT

More information

State Treemap: an Awareness Widget for Multi-Synchronous Groupware

State Treemap: an Awareness Widget for Multi-Synchronous Groupware State Treemap: an Awareness Widget for Multi-Synchronous Groupware Pascal Molli, Hala Skaf-Molli, Christophe Bouthier LORIA, INRIA Lorraine {molli,skaf,bouthier}@loria.fr Awareness widgets facilitate coordination

More information

RECIPE: a prototype for Internet-based real-time collaborative programming

RECIPE: a prototype for Internet-based real-time collaborative programming RECIPE: a prototype for Internet-based real-time collaborative programming Haifeng Shen and Chengzheng Sun School of Computing and Information Technology Griffith University QLD 4111, Australia {Hf.Shen,

More information

Version Control! Scenarios, Working with Git!

Version Control! Scenarios, Working with Git! Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not

More information

Concurrency Awareness in a P2P Wiki System

Concurrency Awareness in a P2P Wiki System Concurrency Awareness in a P2P Wiki System Sawsan Alshattnawi, Gérôme Canals, Pascal Molli To cite this version: Sawsan Alshattnawi, Gérôme Canals, Pascal Molli. Concurrency Awareness in a P2P Wiki System.

More information

Lab Exercise Part II: Git: A distributed version control system

Lab Exercise Part II: Git: A distributed version control system Lunds tekniska högskola Datavetenskap, Nov 25, 2013 EDA260 Programvaruutveckling i grupp projekt Labb 2 (part II: Git): Labbhandledning Checked on Git versions: 1.8.1.2 Lab Exercise Part II: Git: A distributed

More information

Software Engineering

Software Engineering Software Engineering Lecture 06: Design an Overview Peter Thiemann University of Freiburg, Germany SS 2013 Peter Thiemann (Univ. Freiburg) Software Engineering SWT 1 / 35 The Design Phase Programming in

More information

Version Control Tools

Version Control Tools Version Control Tools Source Code Control Venkat N Gudivada Marshall University 13 July 2010 Venkat N Gudivada Version Control Tools 1/73 Outline 1 References and Resources 2 3 4 Venkat N Gudivada Version

More information

Using Git for Project Management with µvision

Using Git for Project Management with µvision MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time

More information

Awareness in Computer-Supported Collaborative Modelling. Application to GenMyModel

Awareness in Computer-Supported Collaborative Modelling. Application to GenMyModel Awareness in Computer-Supported Collaborative Modelling. Application to GenMyModel Michel Dirix Axellience 59000 Lille - France michel.dirix@axellience.com PhD student since January 2013 Abstract. Costs

More information

Package-Based Software Development

Package-Based Software Development Package-Based Software Development Merijn de Jonge Department of Mathematics and Computer Science, Eindhoven University of Technology, P.O. Box 513, 5600 MB Eindhoven, The Netherlands M.de.Jonge@tue.nl

More information

A Cost-Benefit Approach to Recommending Conflict Resolution for Parallel Software Development

A Cost-Benefit Approach to Recommending Conflict Resolution for Parallel Software Development A Cost-Benefit Approach to Recommending Conflict Resolution for Parallel Software Development Nan Niu, Fangbo Yang, Jing-Ru C. Cheng, and Sandeep Reddivari Department of Computer Science and Engineering,

More information

Towards Software Configuration Management for Test-Driven Development

Towards Software Configuration Management for Test-Driven Development Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany tammo.freese@offis.de Abstract. Test-Driven Development is a technique where

More information

The Real Challenges of Configuration Management

The Real Challenges of Configuration Management The Real Challenges of Configuration Management McCabe & Associates Table of Contents The Real Challenges of CM 3 Introduction 3 Parallel Development 3 Maintaining Multiple Releases 3 Rapid Development

More information

Version Control Using Subversion. Version Control Using Subversion 1 / 27

Version Control Using Subversion. Version Control Using Subversion 1 / 27 Version Control Using Subversion Version Control Using Subversion 1 / 27 What Is Version Control? Version control is also known as revision control. Version control is provided by a version control system

More information

CoDesign A Highly Extensible Collaborative Software Modeling Framework

CoDesign A Highly Extensible Collaborative Software Modeling Framework CoDesign A Highly Extensible Collaborative Software Modeling Framework Jae young Bang, Daniel Popescu, George Edwards, and Nenad Medvidovic University of Southern California Los Angeles, CA 90089-0781,

More information

Divergence Awareness in Distributed Multi-Synchronous Collaborative Systems

Divergence Awareness in Distributed Multi-Synchronous Collaborative Systems Divergence Awareness in Distributed Multi-Synchronous Collaborative Systems Khaled Aslan-Almoubayed To cite this version: Khaled Aslan-Almoubayed. Divergence Awareness in Distributed Multi-Synchronous

More information

COSC345 2013 Software Engineering. Lecture 7: Version Control

COSC345 2013 Software Engineering. Lecture 7: Version Control COSC345 2013 Software Engineering Lecture 7: Version Control Some Problems Communications File system problems Version control Basic principles and use Outline When to use version control Examples SCCS

More information

Conflict Management for Real-Time Collaborative Editing in Mobile Replicated Architectures

Conflict Management for Real-Time Collaborative Editing in Mobile Replicated Architectures Conflict Management for Real-Time Collaborative Editing in Mobile Replicated Architectures Sandy Citro, Jim McGovern, Caspar Ryan School of Computer Science and Information Technology RMIT University Melbourne,

More information

Configuration & Build Management

Configuration & Build Management Object-Oriented Software Engineering Using UML, Patterns, and Java Configuration & Build Management Outline of the Lecture Purpose of Software Configuration Management (SCM) Some Terminology Software Configuration

More information

Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context

Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context Alejandro Corbellini 1,2, Silvia Schiaffino 1,2, Daniela Godoy 1,2 1 ISISTAN Research Institute, UNICEN University,

More information

Sangam A Distributed Pair Programming Plug-in for Eclipse

Sangam A Distributed Pair Programming Plug-in for Eclipse Sangam A Distributed Pair Programming Plug-in for Eclipse Chih-wei Ho 1, Somik Raha 2, Edward Gehringer 1, Laurie Williams 1 1 Department of Computer Science, North Carolina State University Raleigh, NC

More information

Comparison of Coordination Communication and Expertise Communication in Software Development: Motives, Characteristics, and Needs

Comparison of Coordination Communication and Expertise Communication in Software Development: Motives, Characteristics, and Needs To appear in New Frontiers in Artificial Intelligence: JSAI-isAI 2010 Workshops, LNAI Series, Springer, fall 2010. Comparison of Coordination Communication and Expertise Communication in Software Development:

More information

Curriculum Vitae. Zhenchang Xing

Curriculum Vitae. Zhenchang Xing Curriculum Vitae Zhenchang Xing Computing Science Department University of Alberta, Edmonton, Alberta T6G 2E8 Phone: (780) 433 0808 E-mail: xing@cs.ualberta.ca http://www.cs.ualberta.ca/~xing EDUCATION

More information

How to Use Windows Firewall With User Account Control (UAC)

How to Use Windows Firewall With User Account Control (UAC) Keeping Windows 8.1 safe and secure 14 IN THIS CHAPTER, YOU WILL LEARN HOW TO Work with the User Account Control. Use Windows Firewall. Use Windows Defender. Enhance the security of your passwords. Security

More information

Database Replication with Oracle 11g and MS SQL Server 2008

Database Replication with Oracle 11g and MS SQL Server 2008 Database Replication with Oracle 11g and MS SQL Server 2008 Flavio Bolfing Software and Systems University of Applied Sciences Chur, Switzerland www.hsr.ch/mse Abstract Database replication is used widely

More information

Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development

Semi-Synchronous Conflict Detection and Resolution in Asynchronous Software Development L. Bannon, I. Wagner, C. Gutwin, R. Harper, and K. Schmidt (eds.). ECSCW 07: Proceedings of the Tenth European Conference on Computer Supported Cooperative Work, 24-28 September 2007, Limerick, Ireland

More information

Version Control Systems: SVN and GIT. How do VCS support SW development teams?

Version Control Systems: SVN and GIT. How do VCS support SW development teams? Version Control Systems: SVN and GIT How do VCS support SW development teams? CS 435/535 The College of William and Mary Agile manifesto We are uncovering better ways of developing software by doing it

More information

Configuration Management and Open Source Projects

Configuration Management and Open Source Projects Configuration Management and Open Source Projects André van der Hoek Institute for Software Research Department of Information and Computer Science Irvine, CA 92697-3425 USA andre@ics.uci.edu Abstract

More information

Comparison of Coordination Communication and Expertise Communication in Software Development: Their Motives, Characteristics and Needs

Comparison of Coordination Communication and Expertise Communication in Software Development: Their Motives, Characteristics and Needs Comparison of Coordination Communication and Expertise Communication in Software Development: Their Motives, Characteristics and Needs Kumiyo Nakakoji 1,2, Yunwen Ye 3, Yasuhiro Yamamoto 1 1 RCAST, University

More information

Continuous Integration (CI)

Continuous Integration (CI) Introduction A long standing problem for software development teams has been to maintain the stability of an application while integrating the changes made by multiple developers. The later that integration

More information

Database Replication with MySQL and PostgreSQL

Database Replication with MySQL and PostgreSQL Database Replication with MySQL and PostgreSQL Fabian Mauchle Software and Systems University of Applied Sciences Rapperswil, Switzerland www.hsr.ch/mse Abstract Databases are used very often in business

More information

Process Modeling using BPMN 2.0

Process Modeling using BPMN 2.0 Process Modeling using BPMN 2.0 This chapter provides a brief overview of Business Process Modeling Notation (BPMN) concepts with particular emphasis on the BPMN 2.0 additions. In addition, it describes

More information

Source Control Systems

Source Control Systems Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy

More information

Working with a Version Control System

Working with a Version Control System Working with a Version Control System Summary Tutorial TU0114 (v2.4) March 18, 2008 This tutorial looks at how you can use Altium Designer s built-in version control capabilities to check project files

More information

JOURNAL OF OBJECT TECHNOLOGY

JOURNAL OF OBJECT TECHNOLOGY JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.

More information

Supporting Group Awareness in Distributed Software Development

Supporting Group Awareness in Distributed Software Development Supporting Group Awareness in Distributed Software Development Carl Gutwin, Kevin Schneider, David Paquette, and Reagan Penner Department of Computer Science, University of Saskatchewan Computer Science

More information

Continuous Integration. CSC 440: Software Engineering Slide #1

Continuous Integration. CSC 440: Software Engineering Slide #1 Continuous Integration CSC 440: Software Engineering Slide #1 Topics 1. Continuous integration 2. Configuration management 3. Types of version control 1. None 2. Lock-Modify-Unlock 3. Copy-Modify-Merge

More information

Version Control with Subversion

Version Control with Subversion Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or

More information

MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering

MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering MODEL-DRIVEN DEVELOPMENT OF SOFTWARE CONFIGURATION MANAGEMENT SYSTEMS A Case Study in Model-driven Engineering Thomas Buchmann, Alexander Dotor and Bernhard Westfechtel Angewandte Informatik 1, Universität

More information

Subversion workflow guide

Subversion workflow guide Subversion workflow guide Joanne Carr January 2010 Contents 1 Before we start: some definitions, etc. 2 2 UKRmol-in repository layout 3 3 Checking out 3 4 Monitoring and dealing with

More information

Activity Mining for Discovering Software Process Models

Activity Mining for Discovering Software Process Models Activity Mining for Discovering Software Process Models Ekkart Kindler, Vladimir Rubin, Wilhelm Schäfer Software Engineering Group, University of Paderborn, Germany [kindler, vroubine, wilhelm]@uni-paderborn.de

More information

Vector-Field Consistency for Collaborative Software Development

Vector-Field Consistency for Collaborative Software Development Vector-Field Consistency for Collaborative Software Development (extended abstract of the MSc dissertation) Miguel Mateus Departamento de Engenharia Informática Instituto Superior Técnico Advisor: Professor

More information

Microsoft Visual Studio Integration Guide

Microsoft Visual Studio Integration Guide Microsoft Visual Studio Integration Guide MKS provides a number of integrations for Integrated Development Environments (IDEs). IDE integrations allow you to access MKS Integrity s workflow and configuration

More information

A User-Oriented Approach to Scheduling Collection Building in Greenstone

A User-Oriented Approach to Scheduling Collection Building in Greenstone A User-Oriented Approach to Scheduling Collection Building in Greenstone Wendy Osborn 1, David Bainbridge 2,andIanH.Witten 2 1 Department of Mathematics and Computer Science University of Lethbridge Lethbridge,

More information

Beginning with SubclipseSVN

Beginning with SubclipseSVN Version 2 July 2007 Beginning with SubclipseSVN A user guide to begin using the Subclipse for source code management on the CropForge collaborative software development site. Copyright International Rice

More information

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014

DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014 DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required

More information

GROUPWARE. Ifeoluwa Idowu

GROUPWARE. Ifeoluwa Idowu GROUPWARE Ifeoluwa Idowu GROUPWARE What is Groupware? Definitions of Groupware Computer-based systems that support groups of people engaged in a common task (or goal) and that provide an interface to a

More information

Using Activity Theory to Understand Contradictions in Collaborative Software Development

Using Activity Theory to Understand Contradictions in Collaborative Software Development Using Activity Theory to Understand Contradictions in Collaborative Software Development Cleidson R. B. de Souza and David F. Redmiles School of Information and Computer Science University of California,

More information

CS108, Stanford Handout #33. CVS in Eclipse

CS108, Stanford Handout #33. CVS in Eclipse CS108, Stanford Handout #33 Winter, 2006-07 Nick Parlante CVS in Eclipse Source Control Any modern software project of any size uses "source control" Store all past revisions - Can see old versions, see

More information

Methodologies. Adam Pasztory 12/19/07. Pasztory - 1

Methodologies. Adam Pasztory 12/19/07. Pasztory - 1 Revision Control Methodologies Adam Pasztory 12/19/07 Pasztory - 1 Revision control is one of the primary components of the change management process for system administrators.(1) Any project that has

More information

Revision control systems (RCS) and

Revision control systems (RCS) and Revision control systems (RCS) and Subversion Problem area Software projects with multiple developers need to coordinate and synchronize the source code Approaches to version control Work on same computer

More information

The Design and Use of Synchronous Collaborative Software Engineering Tools

The Design and Use of Synchronous Collaborative Software Engineering Tools The Design and Use of Synchronous Collaborative Software Engineering Tools Carl Cook Warwick Irwin Neville Churcher Technial Report TR-05/05, July 2005 Software Engineering & Visualisation Group, Department

More information

using version control in system administration

using version control in system administration LUKE KANIES using version control in system administration Luke Kanies runs Reductive Labs (http://reductivelabs.com), a startup producing OSS software for centralized, automated server administration.

More information

KWIC Implemented with Pipe Filter Architectural Style

KWIC Implemented with Pipe Filter Architectural Style KWIC Implemented with Pipe Filter Architectural Style KWIC Implemented with Pipe Filter Architectural Style... 2 1 Pipe Filter Systems in General... 2 2 Architecture... 3 2.1 Pipes in KWIC system... 3

More information

Leveraging Traceability between Code and Tasks for Code Review and Release Management

Leveraging Traceability between Code and Tasks for Code Review and Release Management Leveraging Traceability between Code and Tasks for Code Review and Release Management Nitesh Narayan, Jan Finis, Yang Li Institute of Computer Science Technical University of Munich Boltzmannstrasse 3,

More information

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)

CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.) Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source

More information

Efficient Automated Build and Deployment Framework with Parallel Process

Efficient Automated Build and Deployment Framework with Parallel Process Efficient Automated Build and Deployment Framework with Parallel Process Prachee Kamboj 1, Lincy Mathews 2 Information Science and engineering Department, M. S. Ramaiah Institute of Technology, Bangalore,

More information

Integrated Online Courseware for Computer Science Courses

Integrated Online Courseware for Computer Science Courses Integrated Online Courseware for Computer Science Courses Michael T. Helmick Miami University Department of Computer Science and Systems Analysis Oxford, Ohio USA mike.helmick@muohio.edu ABSTRACT Computer

More information

Version Control Tutorial using TortoiseSVN and. TortoiseGit

Version Control Tutorial using TortoiseSVN and. TortoiseGit Version Control Tutorial using TortoiseSVN and TortoiseGit Christopher J. Roy, Associate Professor Virginia Tech, cjroy@vt.edu This tutorial can be found at: www.aoe.vt.edu/people/webpages/cjroy/software-resources/tortoise-svn-git-tutorial.pdf

More information

SVN Starter s Guide Compiled by Pearl Guterman June 2005

SVN Starter s Guide Compiled by Pearl Guterman June 2005 SVN Starter s Guide Compiled by Pearl Guterman June 2005 SV Table of Contents 1) What is SVN?... 1 2) SVN Architecture... 2 3) Creating a Working Copy... 3 4) Basic Work Cycle... 4 5) Status Symbols...

More information

Optimization of Search Results with Duplicate Page Elimination using Usage Data A. K. Sharma 1, Neelam Duhan 2 1, 2

Optimization of Search Results with Duplicate Page Elimination using Usage Data A. K. Sharma 1, Neelam Duhan 2 1, 2 Optimization of Search Results with Duplicate Page Elimination using Usage Data A. K. Sharma 1, Neelam Duhan 2 1, 2 Department of Computer Engineering, YMCA University of Science & Technology, Faridabad,

More information

pure::variants Transformer for Software Configuration Management Manual

pure::variants Transformer for Software Configuration Management Manual pure-systems GmbH Copyright 2003-2007 pure-systems GmbH 2007 Table of Contents 1. Synopsis... 1 2. Concept... 1 2.1. Client Authorization... 2 3. Installing the Transformer... 3 4. Using the Transformer...

More information

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011

CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011 CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion

More information

Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis

Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Verifying Business Processes Extracted from E-Commerce Systems Using Dynamic Analysis Derek Foo 1, Jin Guo 2 and Ying Zou 1 Department of Electrical and Computer Engineering 1 School of Computing 2 Queen

More information

Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design

Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design Integrating Databases, Objects and the World-Wide Web for Collaboration in Architectural Design Wassim Jabi, Assistant Professor Department of Architecture University at Buffalo, State University of New

More information

SQL Server Master Data Services A Point of View

SQL Server Master Data Services A Point of View SQL Server Master Data Services A Point of View SUBRAHMANYA V SENIOR CONSULTANT SUBRAHMANYA.VENKATAGIRI@WIPRO.COM Abstract Is Microsoft s Master Data Services an answer for low cost MDM solution? Will

More information

Mobile Storage and Search Engine of Information Oriented to Food Cloud

Mobile Storage and Search Engine of Information Oriented to Food Cloud Advance Journal of Food Science and Technology 5(10): 1331-1336, 2013 ISSN: 2042-4868; e-issn: 2042-4876 Maxwell Scientific Organization, 2013 Submitted: May 29, 2013 Accepted: July 04, 2013 Published:

More information

JRefleX: Towards Supporting Small Student Software Teams

JRefleX: Towards Supporting Small Student Software Teams JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca

More information

Features of AnyShare

Features of AnyShare of AnyShare of AnyShare CONTENT Brief Introduction of AnyShare... 3 Chapter 1 Centralized Management... 5 1.1 Operation Management... 5 1.2 User Management... 5 1.3 User Authentication... 6 1.4 Roles...

More information

Service Provisioning and Management in Virtual Private Active Networks

Service Provisioning and Management in Virtual Private Active Networks Service Provisioning and Management in Virtual Private Active Networks Fábio Luciano Verdi and Edmundo R. M. Madeira Institute of Computing, University of Campinas (UNICAMP) 13083-970, Campinas-SP, Brazil

More information

Software Configuration Management. Addendum zu Kapitel 13

Software Configuration Management. Addendum zu Kapitel 13 Software Configuration Management Addendum zu Kapitel 13 Outline Purpose of Software Configuration Management (SCM) Motivation: Why software configuration management? Definition: What is software configuration

More information

Towards Computer-Supported Collaborative Software Engineering

Towards Computer-Supported Collaborative Software Engineering Towards Computer-Supported Collaborative Software Engineering A thesis submitted in partial fulfilment of the requirements for the Degree of Doctor of Philosophy in the University of Canterbury by Carl

More information

Toward Undoing in Composite Web Services

Toward Undoing in Composite Web Services Toward Undoing in Composite Web Services Marie-Claude Gaudel LRI, Paris-Sud University & CNRS, Orsay, France mcg@lri.fr Abstract. Cancelling or reversing the effect of a former action is a necessity in

More information

Versioning and Evolution Control of Models in Software Configuration Management System

Versioning and Evolution Control of Models in Software Configuration Management System Research Journal of Information Technology 5(3): 72-80, 2013 ISSN: 2041-3106; e-issn: 2041-3114 Maxwell Scientific Organization, 2013 Submitted: March 13, 2013 Accepted: April 29, 2013 Published: September

More information

An Object Oriented Role-based Access Control Model for Secure Domain Environments

An Object Oriented Role-based Access Control Model for Secure Domain Environments International Journal of Network Security, Vol.4, No.1, PP.10 16, Jan. 2007 10 An Object Oriented -based Access Control Model for Secure Domain Environments Cungang Yang Department of Electrical and Computer

More information

Aspects of Lyee Configuration Management

Aspects of Lyee Configuration Management Aspects of Lyee Configuration Management Volker GRUHN, Raschid IJIOUI, Dirk PETERS, Robert QUECK, Clemens SCHÄFER Chair for Applied Telematics / e-business, Universität Leipzig, Klostergasse 3, D-04109

More information

WebSphere Business Monitor

WebSphere Business Monitor WebSphere Business Monitor Dashboards 2010 IBM Corporation This presentation should provide an overview of the dashboard widgets for use with WebSphere Business Monitor. WBPM_Monitor_Dashboards.ppt Page

More information

FEEG6002 - Applied Programming 3 - Version Control and Git II

FEEG6002 - Applied Programming 3 - Version Control and Git II FEEG6002 - Applied Programming 3 - Version Control and Git II Sam Sinayoko 2015-10-16 1 / 26 Outline Learning outcomes Working with a single repository (review) Working with multiple versions of a repository

More information

Software Configuration Management Plan

Software Configuration Management Plan For Database Applications Document ID: Version: 2.0c Planning Installation & Acceptance Integration & Test Requirements Definition Design Development 1 / 22 Copyright 2000-2005 Digital Publications LLC.

More information

DeltaV: Adding Versioning to the Web

DeltaV: Adding Versioning to the Web DeltaV: Adding Versioning to the Web WWW10 Tutorial Notes, By Jim Whitehead Documents change over time. Whether they are word processing documents, spreadsheets, Web pages, or source code, the process

More information

A Model Repository for Collaborative Modeling with the Jazz Development Platform

A Model Repository for Collaborative Modeling with the Jazz Development Platform A Model Repository for Collaborative Modeling with the Jazz Development Platform Christian Bartelt University of Clausthal christian.bartelt@tu-clausthal.de Georg Molter Zühlke Engineering GmbH Georg.Molter@zuehlke.com

More information

Requirements engineering

Requirements engineering Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and

More information

Modeling Workflow Patterns

Modeling Workflow Patterns Modeling Workflow Patterns Bizagi Suite Workflow Patterns 1 Table of Contents Modeling workflow patterns... 4 Implementing the patterns... 4 Basic control flow patterns... 4 WCP 1- Sequence... 4 WCP 2-

More information

Safe Generic Data Synchronizer

Safe Generic Data Synchronizer Safe Generic Data Synchronizer Pascal Molli, Gérald Oster, Hala Skaf-Molli and Abdessamad Imine ECOO and CASSIS Teams - LORIA France {molli,oster,skaf,imine}@loria.fr May 15, 003 Abstract Reconciliating

More information

Configuration Management Models in Commercial Environments

Configuration Management Models in Commercial Environments Technical Report CMU/SEI-91-TR-7 ESD-9-TR-7 Configuration Management Models in Commercial Environments Peter H. Feiler March 1991 Technical Report CMU/SEI-91-TR-7 ESD-91-TR-7 March 1991 Configuration Management

More information

The Oracle Universal Server Buffer Manager

The Oracle Universal Server Buffer Manager The Oracle Universal Server Buffer Manager W. Bridge, A. Joshi, M. Keihl, T. Lahiri, J. Loaiza, N. Macnaughton Oracle Corporation, 500 Oracle Parkway, Box 4OP13, Redwood Shores, CA 94065 { wbridge, ajoshi,

More information