Leveraging Traceability between Code and Tasks for Code Review and Release Management
|
|
|
- Warren Carroll
- 10 years ago
- Views:
Transcription
1 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, Garching, Germany {narayan, finis, Alexander Delater Institute of Computer Science University of Heidelberg Im Neuenheimer Feld 326, Heidelberg, Germany Abstract The software maintenance process relies on traceability information captured throughout the development of a software product. Traceability from code to software engineering artifacts like features or requirements has been extensively researched. In this paper, we focus on traceability links between code and tasks. Tasks can be further linked to other artifacts such as features or requirements. In this paper, we present an approach for (semi-) automatic creation of traceability links between code and tasks. The core idea is to let the developers create the links themselves while they use a version control system. We use these traceability links to improve the processes of code review and release management. A prototype based on this work has been implemented and integrated into the model-based CASE tool UNICASE. We applied the developed prototype in the open-source project UNICASE itself and report about our significant experiences. Keywords-traceability; code review; release management; patch; branch. I. INTRODUCTION Software configuration management (SCM) is the discipline of managing the evolution of large and complex software systems to assist software development and maintenance processes [1]. According to the IEEE standard [2], SCM covers several activities such as identification of product components and their versions, audit, review, as well as change control (by establishing procedures to be followed when performing a change). Practicing SCM in a software project has several benefits, including increased productivity, better project control, identification and fixes of bugs, and improved customer satisfaction [3]. Especially in projects with increased complexity, efficient handling of SCM requires tool support. Standard SCM tools exist for various activities e.g. version control systems (VCS). However, other SCM activities still lack proper tool support because of the involved traceability challenges, especially the review of changes during a code review and the building of a software product during release management. In this paper, we present an approach for (semi-) automatic creation of traceability links between code and tasks to improve the processes of code review and release management by providing tool support. Tasks represent a unit of work, which describe changes to be performed to the code or new developments and they are used in many software development projects. In the remainder of the paper, we use the term work item instead of task to avoid misunderstandings with the term task used in requirements engineering. The paper is structured as follows: in Section II, we provide background information. In Section III, we describe the processes of code review and release management and benefits from using traceability links between code and work items. The approach is presented in Section IV and the prototype implementation is shown in Section V. In Section VI, we describe our experiences in using the prototype in the open-source project UNICASE. Related work is presented in Section VII and a discussion and future work conclude the paper in Section VIII and Section IX, respectively. II. BACKGROUND Traceability links between requirements and work items have previously been researched in the MUSE model (Management-based Unified Software Engineering) [4], which integrates the system model and the project model. The system model describes the system under construction, such as requirements, features, use cases or UML artifacts. The project model describes the on-going project, such as work items, the organizational structure, sprints or meetings. The MUSE model is implemented in the model-based CASE tool UNICASE [5] [6], which we use to implement our approach. The presented approach in this paper is dealing with the (semi-) automatic creation of traceability links between work items and code. Previous studies have shown that links between system elements and project elements provide useful information for the work (by shortening the navigation paths of the developers) and that based on such links system elements are kept more up-to-date [7]. Thus, we are extending the MUSE model by introducing traceability to code. Various development activities can benefit from the traceability links between requirements, work items and code. In this work, we concentrate on code review and release management activities. 8
2 III. CODE REVIEW AND RELEASE MANAGEMENT This section explains the processes of code review and release management. We discuss how these two processes could be improved by using traceability links between requirements, work items and code. Furthermore, we specify requirements for an approach improving these two processes. A. Code Review Code review is a process where a team member reviews code written by another member to ensure quality and consistency, as well as to share knowledge in a software development project. It assists in improving the quality by identifying defects at an early stage. However, code review by its nature is a labour-intensive process. This is further affected by the lack of effective tool support. The problem is not overwhelming tool complexity, as the goals of such a tool are rather simple. Goals of such a tool are: Enable the reviewer to quickly transfer the changes to be reviewed to his local workspace as well as highlight the changes so that s/he can review the interplay of the changes with the entire code base. After the code review, it should allow the reviewer to add a review summary to the associated work item. A specific question during requirements validation is to ensure that the implementation of every requirement or feature is reviewed. Thus, one needs to be able to associate changes in the code to its corresponding work item in the project management documents. Therefore, work items themselves are associated to a requirement or feature as well as to the changes in the code. This requires extended tool support to aid the code review process. B. Release Management Another important activity in SCM is the release management process. This process involves deciding on which configuration a product is released and which features it includes. During the release management it needs to be verified that the code, from which the release is actually built, includes all features or requirements the release should embody. Most of the existing literature fails to highlight this activity and its importance in release management. Van der Hoek et al. [8] even describe the release management as a poorly understood and underdeveloped part of the software process. Instead, it is generally assumed that a configuration of code already exists and that it contains all required content. Thus, two important aspects are: Is the implementation of each feature or requirement, which are part of this release, included in the code? Is the implementation not finished, or finished but only stored in the local workspace of the implementor? Are there any other changes in the code e.g. undocumented bug fixes or accidentally introduced changes? If it can be validated which features or requirements are included in the code of a release, the release management process can further benefit from extended functionalities provided by the tool. For example, assembling the code for the release autonomously. By specifying the base version of code and a set of features or requirements to be included into the release, the system should be able to merge the implementation of all features or requirements into the code, ignoring already included features or requirements. Other activities can also benefit from tracking the changes in the release. During release management, there is a need to capture a list of features and included bug fixes in the form of a change log for every release. This log is usually shipped with the product and/or published to inform users about changes. However, the change log could be assembled automatically as it is possible to identify the list of features or bug fixes implemented in the code. C. Leveraging Traceability between Code and Work Items For the purpose of improving the processes of code review and release management, we capture all changes made to the code in a so-called change package. The change package is created by accumulating the changes a developer performs in the code within the context of a certain work item. Hence, every change package is associated with only one work item. During a code review, the reviewer needs to quickly transfer all changes to be reviewed to his/her local workspace. Suppose the reviewer has to review some changes in the code. For this task, s/he gets assigned a work item to be reviewed. The original work item was linked by a developer to a change package containing all changes that s/he performed to the code. So, while viewing the work item, the reviewer could quickly apply all the changes in the change package to his/her local workspace. After applying the changes, the reviewer could start immediately with the code review. The code review process would be improved due to automatic transfer of all changes to the local workspace and reduced setup time. Previously, these tasks had to be performed manually. For the release management process, the base version of code and a set of features or requirements to be included into the release need to be specified. Using our approach, it is possible to merge all the change packages for every work item associated with the selected features or requirements over the base version of the code, ignoring already included change packages. Furthermore, it needs to be validated whether a change package is already included in the given code. Additionally, one could assemble the change log for the release automatically, as it is possible to identify the set of features, requirements or bug fixes implemented in the code. The release management process would benefit from automated assembling of code and change log creation. Previously, these tasks had to be performed manually, as well. 9
3 D. Requirements Based on the ideas above on how to improve the processes of code review and release management, we have identified the following three requirements for a change package: 1) Change package creation: A change package must be producible from the current changes the developer has in his/her workspace. 2) Change package application: A change package must be applicable to a given set of code files. 3) Change package validation: It must be possible to validate if the changes in a package are already applied to a given code configuration. In the following section, we discuss how to satisfy these three requirements to improve the processes of code review and release management. IV. APPROACH This work proposes an approach to (semi-) automatically establish traceability links between code and work items. Our approach links the exact changes which were made in the code to a work item. We assume that developers only work on one work item at a time and do not switch between different work items. The core idea for (semi-) automatically creating traceability links is letting the developer build the links himself/herself while using a VCS within the project. Whenever s/he finishes the implementation of a work item, the developer does not immediately commit the changes to the repository. Instead, before the commit, s/he orders the system to create a change package containing all changes in the code and associate it to a work item (see Figure 1). Finish Implementation of Work Item Figure 1. Create Change Package Changes in Code Associate Change Package to Work Item Process of creating Change Packages Commit to VCS The following subsections describe the proposed approach in detail with regard to two different ways of change package representation: a patch and a branch. A. Patches as Change Packages A patch is a file containing a set of changes between two versions of the code. The changes are stored in a specified format (e.g., unified diff) which allows to apply the changes contained in them to files (e.g., code), thus reproducing the patched version. Patches can be created and applied by almost all VCSs and even without a VCS, common programs like diff and patch under Unix can be used to create patches. The following mechanisms are used to fulfill the requirements for a change package: 1) Change package creation: A change package is created by creating the patch file. 2) Change package application: A change package is applied by applying the patch. 3) Change package validation: This is where patches reach their limits: It is rather difficult to check if a patch is already included in a given code. If the code was not changed afterwards, a simple check for the changes in the patch file can yield a result. However, if the code was changed afterwards (which is the more common case), comparing the content and the changes in the patch will not yield a result. Thus, relying only on a comparison of the patch content with the current file content is not suitable. While the first two requirements are straightforward, the last requirement is challenging. There exist several possible approaches to implement the last requirement. For example, one is keeping a list of patches applied onto the code and linking this list with the version history in the repository. The problem with this approach is that it only works if all patches are applied using the system which tracks their application. If a patch is applied using common tools like the patch Unix command or the commands provided by the used VCS, this patch will be un-tracked. A prototype for the patch representation of change packages was implemented. It is based on Subversion. Because it only uses the functionality of patch creation, it can also be adapted to other VCSs. The prototype currently does not support the check whether a patch is contained in the current version of the code. Therefore, the patch-based approach can only support the code review process, but not the release management process. B. Lightweight Branches as Change Packages VCSs ensure that no changes, besides the ones introduced by commits (and reliably logged), are done to the repository. Thus, a good approach for providing change package validation is to make them reside directly in the repository. By tying the representation closer to the repository, more of its tracking features can be leveraged. The obvious choice for a change package representation which resides in the repository is a branch. A branch represents changes done to the code since the revision from which the branch started to diverge. The three required properties could be implemented for branches as follows: 1) Change package creation: A branch is created and changes are committed to this branch. 2) Change package application: A branch can be applied onto another branch of the repository by merging it into the other one. 3) Change package validation: By checking the revision graph, it can be deducted whether a branch has been 10
4 merged into another one (see details below). However, the repository has to support a revision graph to allow this approach. The basic idea of checking if a change package is already merged into a given branch is using the revision graph and performing a backward search (i.e., a search from a revision into the direction of its predecessor revisions). The search starts from the head revision of the given base branch which is to be checked for included change packages. If a revision identifying a change package branch (hereinafter called indicator revision) is found, a positive answer is given. If the search does not yield the indicator revision of a change package, a negative answer for this package is given. The representation of the indicator revision depends on the VCS. If the branch head of a merged-in branch is kept, this branch head can be used as indicator revision and stored in the change package. Otherwise, for example, the first commit on the branch can be used. A drawback of this approach is that it restricts the VCS to be used. First, the VCS must support branches. This is no big restriction as most modern VCS do support this feature. The next limitation is more severe: The VCS must support a revision graph which reveals all predecessors of a revision which was created by merging. Subversion, for example, is not able to deliver this information and is therefore unsuitable for this approach. Finally, the branches must be lightweight: Since one change package is represented by one branch, numerous branches will exist concurrently in the repository. A branch is considered lightweight, if a large number of branches can be created without reducing the performance of the system and without taking too much space in the VCS. Additionally, the creation and merging of branches should be fast and the merge algorithms used should be sophisticated. It must be able to resolve most conflicts automatically, because this is cumbersome and error-prone. One system that actively advertises its ability to maintain a large number of lightweight branches is Git. It also incorporates the use of sophisticated merge algorithms which reduce the amounts of conflicts propagated to the user. Thus, Git was chosen for the prototype implementation of the lightweight branch representation of change packages. In contrast to the patch-based prototype, the branch-based one is able to support all required three requirements. Thus, the branch-based approach can support both processes of code review and release management. V. PROTOTYPE A prototype of the presented approach has been implemented and integrated into UNICASE. After performing changes to the code, the developer selects a work item for the created change package (see Figure 2). For the code review, a reviewer gets assigned a work item to be reviewed. S/he can easily apply the linked change packages to his/her local Figure 2. Choosing a Work Item to associate to a Change Package workspace. This process is eased in UNICASE by providing user-specific change notifications [9]. Once the developer finishes his/her work, the reviewer gets notified whether s/he can start with the review process. After the review, s/he can add a review summary to this work item and share it with the developer. Figure 3. Figure 4. Release Management Support in Prototype: Overview Release Management in Prototype: Release Content In Figures 3-5, an insight into the prototype implementation in UNICASE for the support of the release management 11
5 that new code changes were waiting for review using userspecific change notifications [9] in UNICASE. S/he opened the work item and selected the option to automatically download and apply the linked change package. All changes were automatically fetched/pulled from the branch in the VCS and applied to the local workspace of the reviewer. After reviewing all changes, the reviewer committed the changes to the main trunk of the VCS. Finally, the reviewer had to write a review comment to the work item indicating that the changes have been reviewed and applied. Figure 5. Release Management Support in Prototype: Changelog is provided. The tool is able to show the progress of the build process as well as all already merged, not merged or erroneous change packages (see Figure 3). The release content tab shows all included work items in this particular release and their linked change packages (see Figure 4). The change log is automatically created (see Figure 5). VI. APPLICATION OF PROTOTYPE We used the prototype during one sprint (4 weeks) in the development of the UNICASE project. In the following, we report on the processes of code review and release management with and without using the prototype as well as our experiences. A. Code Review The code review process without using the prototype was as follows: a developer got assigned a work item describing his/her work for implementation. After implementation, the developer created manually a patch file containing all changes. Then s/he send the patch via to a reviewer for code review. The reviewer downloaded the patch and applied it manually to his/her local workspace. Afterwards, the reviewer had to find the work item belonging to the patch. After the reviewer had reviewed all changes and agreed to all performed changes, s/he committed the changes to the VCS. Finally, the reviewer had to write a review comment to the work item indicating that the changes have been reviewed and applied. The code review process with using the prototype was as follows: a developer got assigned a work item describing his/her work for implementation. After implementation, the developer selected the assigned work item (see Figure 2). If no work item existed for the performed changes, e.g., for a hot fix, the developer just created a work item on demand. After that, the changes were committed to the VCS in a separate branch. A change package was created containing a link to a branch and it was linked to the selected work item. The developer marked the work item as done and assigned a reviewer to it. The reviewer was automatically notified B. Release Management The release management process without the prototype was as follows: A release manager went through the list of all the work items and their linked features/requirements that the release should embody. Subsequently, the release manager went through each work item based on their priority and verified if their is a corresponding commit from the developer in the VCS assigned to the work item (switching back and forth between two different tools). Often, s/he also noticed that the patches were not applied to the branch from where the new release has to be made but rather at other place. In this scenario, s/he would have created a diff and applied it to the release branch that was checked out in his/her local workspace. If s/he was unsure whether a commit belongs to a work item, s/he first tried to contact and confirm with the assignee of the work item. Once the branch is ready by including all the code changes, the release manager committed all the local changes to the VCS and moved on to do the release manually or using a build server. The release management process with the prototype was as follows: A release manager created a release model and added all the features/requirements the release should embody. Once s/he was done with a VCS checkout of the latest version for the release branch, s/he selected the Build Release option provided in the prototype. The prototype applied all change packages linked with every work item that are related to the features/requirements included in the release model automatically. Next, the prototype presented a release checking report to the release manager that showed a summary of the release process with various information, e.g. whether all the work items are resolved (Figure 3), all change packages merged to the release branch (Figure 4) and the automatically created change log from the work item descriptions (Figure 5). Once the release manager selected to do the release, all the change packages were merged and committed to the VCS repository. C. Experiences We noticed several advantages while using the prototype. First, the developers were able to automatically assemble all code belonging to the sprint and its planned work items and check if code could be assembled successfully. Second, if problems occurred during the release, these problems were 12
6 reported. An overview about already merged, not merged or erroneous change packages helped the developers looking into the specific change packages. Third, the change log was automatically assembled. We learned that the presented approach significantly increased the productivity of our development team, e.g. the release management process using the prototype is now up to 4 times faster than before (30 minutes with and 2 hours without prototype). VII. RELATED WORK In the following, related work for code traceability, code review and release management is discussed. A. Code Traceability Maintaining traceability links between code and other artifacts is a challenging task and therefore a field of intense research. Most approaches relate structures in the code like classes, methods, modules, files, or lines of code to other artifacts like requirements or features. Our approach tracks changes instead of structures in the code, instead. A very simple, yet effective approach is presented by Treude et al. [10] embedding the links directly into code comments, which can be read by their proposed tool TagSEA. They use tags in comments to refer to other artifacts. They go further into the direction by creating links between tasks (equal to our definition of work item) and code. This is accomplished by connecting their tool with MyLyn [11], which can be used to express tasks. They connect code to MyLyn tasks by using special tags. A major drawback of using tags in the source code is the overhead of keeping the tags updated. In a complex project with a large number of artifacts it gets difficult for a developer to recall which code files should be connected to which work item. In our approach, we use the abstraction of patches over individual code artifacts to overcome this issue. Fischer et al. [12] link VCS with release data, which is in contrast to our approach. They use the version history in the repository, in addition to bug tracking data, to automatically build the release history of a project and allow viewing and querying it to retrieve information about the evolution of the project. While they do post-mortem analysis, our approach is focused on creating links between code and tasks during development to benefit code review and release management. Marcus et al. [13] establish links between code and the corresponding documentation. In contrast to the approaches mentioned above, they try to recover the links automatically using information retrieval, namely Latent Semantic Indexing (LSI). This is different to our approach, as we establish links between code and work items (semi-) automatically while the developers use a VCS. Qusef et al. [14] use their SCOTCH tool for dynamic slicing and conceptual coupling to recover traceability links between unit tests and tested classes. Antoniol et al. [15] link code locations to objectoriented design artifacts. Like Marcus et al., they establish all the links without additional information, by performing different static and dynamic analyses. They use, amongst others, vector space indexing and probabilistic indexing techniques (comparable to LSI). All these methods are based on the textual similarity of artifact content, code identifiers and comments. This results in unreliable traceability links, as the created traceability links cannot ensure a high precision as well as a high recall at the same time. B. Code Review Several researchers contributed to the tool support of code review. Brothers et al. [16] proposed the ICICLE tool, which embodies different functionalities aiding code reviews. Examples are a human interface for preparing comments on the code under inspection and hypertextbased browsers for referring to various kinds of knowledge associated with code inspection, thus achieving a certain degree of traceability. Harjumaa et al. [17] proposed a web based tool, which features the distribution of the document to be inspected, annotation of it, searching of related documents, a checklist, and inspection statistics. Belli et al. [18] described an approach for the automatic handling, checking, and updating of check lists used in reviews. A similar approach of improving artifact quality by distributed artifact inspection was presented by De Lucia et al. [19]. They focused on general aspects of the artifacts life-cycle and presented a distributed inspection process consisting of seven phases implemented in a tool called WAIT. All these approaches are in contrast to ours, as we are able to transfer the changes to be reviewed automatically as well as providing traceability from the code over work items to other artifacts, e.g., features or requirements. There are further tools for code review which can do a lot of other things that our tool does not support. However, these tools do not support the functionality discussed here. C. Release Management Among numerous research work aiming at improving the release management process, we identified two major contributions related within the scope of our work. Van der Hoek et al. [8] identified the basic issues in release management and developed a tool to aid the release management process. In contrast to our approach, their approach does not include assembling and building components to be released. It is merely a database of releases, components to be released and their dependencies among each other. Saliu et al. [20] contributed research in the field of release planning, especially for evolving systems which are built incrementally. Our approach supports release planning as well, since work items linked to changes in the code are included in a release. VIII. DISCUSSION The proposed approach works with certain constraints and assumptions. For example, it is also possible that a 13
7 change belonging to a work item has been committed to the repository without the creation of a change package. This can happen if the code is committed with the sources of another change package, which happens if a developer was working on two work items and committed the changes for both in one change package only. However, this can be noticed by the developer if s/he realizes that one of the work items has a missing change package. The approach leaves the task of creating links between the code changes and the work items to the developer himself/herself. So, the approach suffers from mistakes a developer does while performing this activity (like linking code to the wrong work item). The general problem is that artifacts in human readable text or code can not be linked together with full reliability using any existing technique. Our approach of letting the developers create the links themselves as part of their usual work is expected to be better in comparison to automatic approaches. IX. CONCLUSION This paper proposed an approach for (semi-) automatically creating traceability links between code and work items by using VCSs. The created traceability links were used to improve the processes of code review and release management. The idea to automate the code review process was to use traceability links between code and work items to apply the code to the reviewers machine, highlight the changes and add the reviewers feedback to the work items. For the release management, the traceability links between code and work items were used to check which work items are contained in the code of a release and to build a release automatically by merging in the missing features or requirements. The techniques and applications discussed in this paper, like the establishment of links between code and work items, are still not explored in depth. Therefore, there are a lot of possibilities for future research in this area. We are aware that our approach currently only allows developers to work at one work item at a time. Therefore, support for working on several work items at once is subject to future work. Furthermore, we want to study further possibilities for the application of our proposed approach. The work presented in this paper has been evaluated so far only with a small user group during one sprint in the UNICASE project. Thus, we plan to conduct a representative user experiment. A study where the prototype is used throughout a development project would be very beneficial to evaluate the benefits offered by the proposed approach to the code review and release management processes. REFERENCES [1] Tichy, W.F. Tools for software configuration management. In Proceedings of the International Workshop on Software Version and Configuration Control, pp (1988) [2] IEEE. IEEE standard for software configuration management plans: ANSI/IEEE std (1983) [3] Leon, A. Software configuration management handbook. Artech House, Inc. Norwood, MA, USA (2004) [4] Helming, J., Koegel, M., and Naughton, H. Towards traceability from project management to system models. In TEFSE 09: Proceedings of the 2009 ICSE Workshop on Traceability in Emerging Forms of Software Engineering, pp , IEEE Computer Society (2009) [5] Bruegge, B., Creighton, O., Helming, J., and Koegel, M. Unicase - an Ecosystem for Unified Software, In ICGSE 08: Distributed software development: methods and tools for risk management, pp (2008) [6] UNICASE Open Source Project. [7] Helming, J., David, J., Koegel, M., and Naughton, H. Integrating System Modeling with Project Management - A Case Study. In COMPSAC 09: International Computer Software and Applications Conference, pp (2009) [8] Van der Hoek, A., Hall, R., Heimbigner, D., and Wolf, A. Software release management. Software Engineering - ESEC/FSE, pp (1997) [9] Helming, J., Koegel, M., Naughton, H., David, J., and Shterev, A. Traceability-Based Change Awareness. In MODELS 09: International Conference on Model Driven Engineering Languages and Systems, pp (2009) [10] Treude C. and M.A. Storey. How tagging helps bridge the gap between social and technical aspects in software development. In ICSE 09: International Conference on Software Engineering, pp (2009) [11] Eclipse MyLyn. [retrieved: September, 2012] [12] Fischer, M., Pinzger, M., and Gall, H. Populating a Release History Database from version control and bug tracking systems. In ICSM 03: International Conference on Software Maintenance, pp (2003) [13] Marcus, A., Maletic, J.I., and Sergeyev, A. Recovery of traceability links between software documentation and source code. International Journal of Software Engineering and Knowledge Engineering, vol. 15, no. 5, pp (2005) [14] Qusef, A., Bavota, G., Oliveto, R., De Lucia, A., and Binkley, D. SCOTCH: Slicing and Coupling Based Test to Code Trace Hunter. In 18th Working Conference on Reverse Engineering (WCRE), pp (2011) [15] Antoniol, G., Canfora, G., Casazza, G., and De Lucia, A. Maintaining traceability links during object-oriented software evolution. Software: Practice and Experience, vol. 31, no. 4, pp (2001) [16] Brothers, L.R. Multimedia groupware for code inspection. International Conference on Discovering a New World of Communications (ICC), pp (1992) [17] Harjumaa, L. and Tervonen, I. A WWW-based tool for software inspection. In HICSS, Published by the IEEE Computer Society, pp (1998) [18] Belli, F. and Crisan, R. Towards automation of checklistbased code-reviews. In ISSRE 96: International Symposium on Software Reliability Engineering, IEEE Computer Society, pp (1996) [19] De Lucia, A., Fasano, F., Scanniello, G., and Tortora, G. Improving artefact quality management in advanced artefact management system with distributed inspection. Software, IET, vol. 5, no. 6, pp (2011) [20] Saliu, O. and Ruhe, G. Supporting software release planning decisions for evolving systems. 29th Annual IEEE/NASA Software Engineering Workshop, pp (2005) 14
Tracing Requirements and Source Code during Software Development
Tracing Requirements and Source Code during Software Development Alexander Delater, Barbara Paech Institute of Computer Science University of Heidelberg Im Neuenheimer Feld 326, 69120 Heidelberg, Germany
UNICASE Trace Client: ACASE Tool Integrating Requirements Engineering, Project Management and Code Implementation
UNICASE Trace Client: ACASE Tool Integrating Requirements Engineering, Project Management and Implementation Alexander Delater,Barbara Paech Institute of Computer Science, University of Heidelberg Im Neuenheimer
Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs
Interactive Recovery of Requirements Traceability Links Using User Feedback and Configuration Management Logs Ryosuke Tsuchiya 1, Hironori Washizaki 1, Yoshiaki Fukazawa 1, Keishi Oshima 2, and Ryota Mibe
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
Using Requirements Traceability Links At Runtime A Position Paper
Using Requirements Traceability Links At Runtime A Position Paper Alexander Delater, Barbara Paech University of Heidelberg, Institute of omputer Science Im Neuenheimer Feld 326, 69120 Heidelberg, Germany
Global Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
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.
Page 1. Outline of the Lecture. What is Software Configuration Management? Why Software Configuration Management?
Books: Software Configuration Management 1. B. Bruegge and A. H. Dutoit, Object-Oriented Software Engineering: Using UML, Patterns, and Java (Chapter 13) Outline of the Lecture Purpose of Software Configuration
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
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
Integrity 10. Curriculum Guide
Integrity 10 Curriculum Guide Live Classroom Curriculum Guide Integrity 10 Workflows and Documents Administration Training Integrity 10 SCM Administration Training Integrity 10 SCM Basic User Training
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
In depth study - Dev teams tooling
In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses
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
Tool support for Collaborative Software Quality Management
Tool support for Collaborative Software Quality Management Philipp Kalb and Ruth Breu Institute of Computer Science University of Innsbruck Email: philipp.kalb, [email protected] Abstract. Nowadays
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
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
SOFTWARE DEVELOPMENT BASICS SED
SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2
Successfully managing geographically distributed development
IBM Rational SCM solutions for distributed development August 2004 Successfully managing geographically distributed development Karen Wade SCM Product Marketing Manager IBM Software Group Page 2 Contents
Life Cycle Management for Oracle Data Integrator 11 & 12. At lower cost Get a 30% return on investment guaranteed and save 15% on development costs
Life Cycle Management for Oracle Data Integrator 11 & 12 Increase productivity Stop wasting your time doing things maually by automating every step in your project s Life Cycle At lower cost Get a 30%
Pipeline Orchestration for Test Automation using Extended Buildbot Architecture
Pipeline Orchestration for Test Automation using Extended Buildbot Architecture Sushant G.Gaikwad Department of Computer Science and engineering, Walchand College of Engineering, Sangli, India. M.A.Shah
Using Subversion in Computer Science
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
Requirements for Software Deployment Languages and Schema
Requirements for Software Deployment Languages and Schema Richard S. Hall, Dennis Heimbigner, Alexander L. Wolf Software Engineering Research Laboratory Department of Computer Science University of Colorado
Chapter 13 Configuration Management
Object-Oriented Software Engineering Using UML, Patterns, and Java Chapter 13 Configuration Management Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software
Software development. Outline. Outline. Version control. Version control. Several users work on a same project. Collaborative software development
Software development Groupware and Collaborative Interaction Collaborative Software Development M2R Interaction - Université Paris-Sud - Année 2013-2014 Cédric Fleury ([email protected]) Several users
Version Control. Luka Milovanov [email protected]
Version Control Luka Milovanov [email protected] Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version
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
Towards Collaborative Requirements Engineering Tool for ERP product customization
Towards Collaborative Requirements Engineering Tool for ERP product customization Boban Celebic, Ruth Breu, Michael Felderer, Florian Häser Institute of Computer Science, University of Innsbruck 6020 Innsbruck,
Requirements engineering
Learning Unit 2 Requirements engineering Contents Introduction............................................... 21 2.1 Important concepts........................................ 21 2.1.1 Stakeholders and
Chapter 13 Configuration Management
Chapter 13 Configuration Management Using UML, Patterns, and Java Object-Oriented Software Engineering Outline of the Lecture Purpose of Software Configuration Management (SCM)! Motivation: Why software
a new generation software test automation framework - CIVIM
a new generation software test automation framework - CIVIM Software Testing is the last phase in software development lifecycle which has high impact on the quality of the final product delivered to the
Software Configuration Management (SCM)
Software Configuration Management (SCM) SCM actually consists of several separate yet cumulative disciplines. Version Management is an entry point for SCM T M Abstract : Software Configuration Management
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
TIBCO Spotfire and S+ Product Family
TIBCO Spotfire and S+ Product Family Compliance with 21 CFR Part 11, GxP and Related Software Validation Issues The Code of Federal Regulations Title 21 Part 11 is a significant regulatory requirement
Software Configuration Management. Wingsze Seaman COMP250SA February 27, 2008
Software Configuration Management Wingsze Seaman COMP250SA February 27, 2008 Outline CM and SCM Definitions SCM History CMMI and SCM SCM Tools SCM/Dynamic Systems SCM/Software Architecture Resources 2
Ensure Merge Accuracy in Continuous Integration Development Environments
Ensure Merge Accuracy in Continuous Integration Development Environments 2 Defect Challenges in Continuous Integration Development Modern software development is rapidly moving to incremental development
Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
VISUALIZATION APPROACH FOR SOFTWARE PROJECTS
Canadian Journal of Pure and Applied Sciences Vol. 9, No. 2, pp. 3431-3439, June 2015 Online ISSN: 1920-3853; Print ISSN: 1715-9997 Available online at www.cjpas.net VISUALIZATION APPROACH FOR SOFTWARE
Solving the Software Quality Challenges of Agile Development
Solving the Software Quality Challenges of Agile Development 2 Solving the Software Quality Risks of Agile Development Agile software development is a series of iterative and incremental development methods
Requirements Traceability. Mirka Palo
Requirements Traceability Mirka Palo Seminar Report Department of Computer Science University of Helsinki 30 th October 2003 Table of Contents 1 INTRODUCTION... 1 2 DEFINITION... 1 3 REASONS FOR REQUIREMENTS
What Are Software Developers Facing?
Configuration Management Tuotteenhallinta ohjelmistoprojektissa 1. Objectives 2. Problems & Motivation 3. CM Concept 4. Making CM system to work 5. Present CM Standards and Terms 6. CM Benefits and Summary
An Integrated Quality Assurance Framework for Specifying Business Information Systems
An Integrated Quality Assurance Framework for Specifying Business Information Systems Frank Salger 1, Stefan Sauer 2, Gregor Engels 1,2 1 Capgemini sd&m AG, Carl-Wery-Str. 42, D-81739 München, Germany
Nova Software Quality Assurance Process
Nova Software Quality Assurance Process White Paper Atlantic International Building 15F No.2 Ke Yuan Yi Road, Shiqiaopu, Chongqing, P.R.C. 400039 Tel: 86-23- 68795169 Fax: 86-23- 68795169 Quality Assurance
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
A Framework for Integrating Software Usability into Software Development Process
A Framework for Integrating Software Usability into Software Development Process Hayat Dino AFRICOM Technologies, Addis Ababa, Ethiopia [email protected] Rahel Bekele School of Information Science, Addis
The 7 Attributes of a Good Software Configuration Management System
Software Development Best Practices The 7 Attributes of a Good Software Configuration Management System Robert Kennedy IBM Rational software Benefits of Business Driven Development GOVERNANCE DASHBOARD
Pragmatic Version Control
Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project
Introduction to Programming Tools. Anjana & Shankar September,2010
Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue
Theme 1 Software Processes. Software Configuration Management
Theme 1 Software Processes Software Configuration Management 1 Roadmap Software Configuration Management Software configuration management goals SCM Activities Configuration Management Plans Configuration
The Role of Computers in Synchronous Collaborative Design
The Role of Computers in Synchronous Collaborative Design Wassim M. Jabi, The University of Michigan Theodore W. Hall, Chinese University of Hong Kong Abstract In this paper we discuss the role of computers
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
Rugby: An Agile Process Model Based on Continuous Delivery
Rugby: An Agile Process Model Based on Continuous Delivery Stephan Krusche TU München Munich, Germany [email protected] Lukas Alperowitz TU München Munich, Germany [email protected] Martin O. Wagner TU
Keywords document, agile documentation, documentation, Techno functional expert, Team Collaboration, document selection;
Volume 4, Issue 4, April 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com A Document Driven
Introducing Xcode Source Control
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases
An Eclipse Plug-In for Visualizing Java Code Dependencies on Relational Databases Paul L. Bergstein, Priyanka Gariba, Vaibhavi Pisolkar, and Sheetal Subbanwad Dept. of Computer and Information Science,
Taking Subversion to a Higher Level. Branching/Merging Support. Component Management Support. And More
Taking Subversion to a Higher Level Branching/Merging Support Component Management Support And More About Impact CM Impact CM is a Service AddOn that facilitates software configuration management (CM)
Delivering Quality Software with Continuous Integration
Delivering Quality Software with Continuous Integration 01 02 03 04 Unit Check- Test Review In 05 06 07 Build Deploy Test In the following pages we will discuss the approach and systems that together make
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
A Change Impact Analysis Tool for Software Development Phase
, pp. 245-256 http://dx.doi.org/10.14257/ijseia.2015.9.9.21 A Change Impact Analysis Tool for Software Development Phase Sufyan Basri, Nazri Kama, Roslina Ibrahim and Saiful Adli Ismail Advanced Informatics
One solution for all your Source Configuration Management Needs
One solution for all your Source Configuration Management Needs SPECTRUM SOFTWARE, Inc. 11445 Johns Creek Parkway Suite 300 Duluth, GA 30097 Ph: 770-448-8662 Fax: 678-473-9294 www.spectrumscm.com www.spectrumsoftware.net
Generating Aspect Code from UML Models
Generating Aspect Code from UML Models Iris Groher Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich, Germany [email protected] Stefan Schulze Siemens AG, CT SE 2 Otto-Hahn-Ring 6 81739 Munich,
Mining a Change-Based Software Repository
Mining a Change-Based Software Repository Romain Robbes Faculty of Informatics University of Lugano, Switzerland 1 Introduction The nature of information found in software repositories determines what
Leveraging Rational Team Concert's build capabilities for Continuous Integration
Leveraging Rational Team Concert's build capabilities for Continuous Integration Krishna Kishore Senior Engineer, RTC IBM [email protected] August 9-11, Bangalore August 11, Delhi Agenda What
Agile Software Development Methodologies and Its Quality Assurance
Agile Software Development Methodologies and Its Quality Assurance Aslin Jenila.P.S Assistant Professor, Hindustan University, Chennai Abstract: Agility, with regard to software development, can be expressed
SERG. Reconstructing Requirements Traceability in Design and Test Using Latent Semantic Indexing
Delft University of Technology Software Engineering Research Group Technical Report Series Reconstructing Requirements Traceability in Design and Test Using Latent Semantic Indexing Marco Lormans and Arie
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
Time Monitoring Tool Software Development Plan. Version <1.1>
Time Monitoring Tool Software Development Plan Version Revision History Date Version Description Author 10/01/01 1.0 First Draft Sabrina Laflamme 12/01/01 1.1 Completion of Document John Lemon Page
Software change and release management White paper June 2008. Extending open source tools for more effective software delivery.
Software change and release management White paper June 2008 Extending open source tools for more Page 2 Contents 2 Integrating and complementing open source tools 2 Trends in business shape software development
Software Construction
Software Construction Martin Kropp University of Applied Sciences Northwestern Switzerland Institute for Mobile and Distributed Systems Learning Target You can explain the importance of continuous integration
PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME >
PROJECT MANAGEMENT PLAN TEMPLATE < PROJECT NAME > Date of Issue: < date > Document Revision #: < version # > Project Manager: < name > Project Management Plan < Insert Project Name > Revision History Name
CHAPTER 7 Software Configuration Management
CHAPTER 7 Software Configuration Management ACRONYMS CCB CM FCA MTBF PCA SCCB SCI SCM SCMP SCR SCSA SEI/CMMI SQA SRS USNRC INTRODUCTION Configuration Control Board Configuration Management Functional Configuration
Rational Team Concert. Quick Start Tutorial
Rational Team Concert Quick Start Tutorial 1 Contents 1. Introduction... 3 2. Terminology... 4 3. Project Area Preparation... 5 3.1 Defining Timelines and Iterations... 5 3.2 Creating Team Areas... 8 3.3
White Paper Take Control of Datacenter Infrastructure
Take Control of Datacenter Infrastructure Uniting the Governance of a Single System of Record with Powerful Automation Tools Take Control of Datacenter Infrastructure A new breed of infrastructure automation
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Leveraging CMMI framework for Engineering Services
Leveraging CMMI framework for Engineering Services Regu Ayyaswamy, Mala Murugappan Tata Consultancy Services Ltd. Introduction In response to Global market demand, several OEMs adopt Global Engineering
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
How Rational Configuration and Change Management Products Support the Software Engineering Institute's Software Capability Maturity Model
How Rational Configuration and Change Management Products Support the Software Engineering Institute's Software Capability Maturity Model by Bill Cottrell and John Viehweg Software Engineering Specialists
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
Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53
Preface xvi Part I Introduction and System Engineering 1 Chapter 1 Introduction 2 1.1 What Is Software Engineering? 2 1.2 Why Software Engineering? 3 1.3 Software Life-Cycle Activities 4 1.3.1 Software
Introduction to the Git Version Control System
Introduction to the Sebastian Rockel [email protected] University of Hamburg Faculty of Mathematics, Informatics and Natural Sciences Department of Informatics Technical Aspects of Multimodal
Computer programs (both source and executable) Documentation (both technical and user) Data (contained within the program or external to it)
CHAPTER 27 CHANGE MANAGEMENT Overview Changes are inevitable when software is built. A primary goal of software engineering is to improve the ease with which changes can be made to software. Configuration
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
Actualtests.C2010-508.40 questions
Actualtests.C2010-508.40 questions Number: C2010-508 Passing Score: 800 Time Limit: 120 min File Version: 5.6 http://www.gratisexam.com/ C2010-508 IBM Endpoint Manager V9.0 Fundamentals Finally, I got
WebSphere Business Modeler
Discovering the Value of SOA WebSphere Process Integration WebSphere Business Modeler Workshop SOA on your terms and our expertise Soudabeh Javadi Consulting Technical Sales Support WebSphere Process Integration
HP Application Lifecycle Management
HP Application Lifecycle Management Overview HP Application Lifecycle Management is a software solution expressly designed to allow your team to take control of the application lifecycle while investing
CS 565 Business Process & Workflow Management Systems
CS 565 Business Process & Workflow Management Systems Professor & Researcher Department of Computer Science, University of Crete & ICS-FORTH E-mail: [email protected], [email protected] Office: K.307,
(Refer Slide Time: 01:52)
Software Engineering Prof. N. L. Sarda Computer Science & Engineering Indian Institute of Technology, Bombay Lecture - 2 Introduction to Software Engineering Challenges, Process Models etc (Part 2) This
