Annotation of Concurrent Changes in Collaborative Software Development
|
|
- Elijah Morrison
- 8 years ago
- Views:
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 (Short Paper) André Pessoa Negrão, Miguel Mateus, Paulo Ferreira, and Luís Veiga INESC ID/Técnico Lisboa Rua Alves Redol
More informationCompensation 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 informationCut 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 informationCollaborative 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 informationChange 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 informationINTERNET-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 informationA 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 informationJazzing 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 informationSoftware 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 informationVersion 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 informationContinuous 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 informationSoftware 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 informationBlueJ 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 informationSIMPLIFIED 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 informationState 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 informationRECIPE: 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 informationVersion 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 informationConcurrency 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 informationLab 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 informationSoftware 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 informationVersion 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 informationUsing 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 informationAwareness 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 informationPackage-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 informationA 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 informationTowards 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 informationThe 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 informationVersion 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 informationCoDesign 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 informationDivergence 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 informationCOSC345 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 informationConflict 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 informationConfiguration & 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 informationIntelligent 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 informationSangam 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 informationComparison 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 informationCurriculum 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 informationHow 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 informationDatabase 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 informationSemi-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 informationVersion 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 informationConfiguration 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 informationComparison 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 informationContinuous 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 informationDatabase 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 informationProcess 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 informationSource 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 informationWorking 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 informationJOURNAL 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 informationSupporting 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 informationContinuous 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 informationVersion 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 informationMODEL-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 informationSubversion 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 informationActivity 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 informationVector-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 informationMicrosoft 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 informationA 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 informationBeginning 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 informationDAVE 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 informationGROUPWARE. 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 informationUsing 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 informationCS108, 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 informationMethodologies. 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 informationRevision 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 informationThe 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 informationusing 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 informationKWIC 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 informationLeveraging 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 informationCPSC 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 informationEfficient 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 informationIntegrated 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 informationVersion 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 informationSVN 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 informationOptimization 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 informationpure::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 informationCISC 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 informationVerifying 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 informationIntegrating 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 informationSQL 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 informationMobile 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 informationJRefleX: 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 informationFeatures 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 informationService 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 informationSoftware 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 informationTowards 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 informationToward 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 informationVersioning 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 informationAn 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 informationAspects 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 informationWebSphere 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 informationFEEG6002 - 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 informationSoftware 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 informationDeltaV: 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 informationA 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 informationRequirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
More informationModeling 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 informationSafe 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 informationConfiguration 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 informationThe 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