Collaborative Software Development on the Web
|
|
|
- Thomas Hines
- 10 years ago
- Views:
Transcription
1 Collaborative Software Development on the Web Martin Nordio, H.-Christian Estler, Carlo A. Furia, and Bertrand Meyer ETH Zurich, Switzerland June 26, 2012 Abstract Software development environments (IDEs) have not followed the IT industry s inexorable trend towards distribution. They do too little to address the problems raised by today s increasingly distributed projects; neither do they facilitate collaborative and interactive development practices. A consequence is the continued reliance of today s IDEs on paradigms such as traditional configuration management, which were developed for earlier modes of operation and hamper collaborative projects. This contribution describes a new paradigm: cloud-based development, which caters to the specific needs of distributed and collaborative projects. The CloudStudio IDE embodies this paradigm by enabling developers to work on a shared project repository. Configuration management becomes unobtrusive; it replaces the explicit updatemodify-commit cycle by interactive editing and real-time conflict tracking and management. A case study involving three teams of pairs demonstrates the usability of CloudStudio and its advantages for collaborative software development over traditional configuration management practices. 1 Introduction The Integrated Development Environment is the software developer s central tool. IDEs have undergone considerable advances; their fundamental structure and mode of operation are still, however, what they were decades ago. In particular, while Internet development has benefitted from IDEs, the IDE has not benefitted from the Internet; it remains an essentially personal tool, requiring every member of a project to work on a different copy of the software under development and periodically to undergo a painful process of reconciliation. CloudStudio, the IDE described in this article, brings software development to the Internet. In recent years ever more human activities, from banking to text processing, have been moved to the cloud. CloudStudio does the same for software engineering by introducing a new paradigm of software development, where all the products of a software project are shared in a common web-based repository. Moving software development to the cloud is not just a matter of following general trends, but a response to critical software engineering needs, which current technology does not meet: supporting today s distributed developments, which often involve teams spread over many locations, and iterative development practices such as pair programming and online code reviews; maintaining compatibility between software elements developed by different team members; avoiding potentially catastrophic version incompatibility problems; drastically simplifying configuration management. CloudStudio brings flexibility to several new facets of software development, most importantly configuration management (CM): to replace the traditional and painful update-modify-commitreconcile cycle, CloudStudio tracks changes at every location in real time and displays only the selected users changes in the integrated editor. The compiler and other tools are aware of the current user preferences, and target the version of the code coinciding with the current view. CloudStudio also integrates communication tools (a chat box and Skype), and includes a fully automated verification component, including both static (proof) and dynamic (testing) tools (see
2 Section 6). This array of tightly integrated tools makes CloudStudio an innovative IDE, which can improve the quality and speed of projects involving distributed teams, and support highly collaborative development practices. CloudStudio is an ambitious project for which we have built a prototype, which readers can try out (see Section 3). To demonstrate CloudStudio s potential to facilitate distributed development, we have conducted a case study where three teams of two programmers modified and extended existing software projects with CloudStudio and with traditional CM (i.e., Subversion). Within the limits given by its limited extent, the case study substantiates the claims that CloudStudio can facilitate collaborative development without interfering with the standard habits of programmers. While the initial results from the prototype are exciting, many research challenges remain. This article describes both the current CloudStudio framework and the open research challenges that lie ahead. Section 2 presents the challenges of collaborative and distributed development. Section 3 is an overview of CloudStudio from the user perspective. Section 4 describes CloudStudio s CM model and awareness system. Section 5 presents a case study used to evaluate CloudStudio s potential for collaborative development. Section 8 summarizes and discusses future work. 2 Distributed and Collaborative Development Today s software projects are increasingly multipolar. Gone are the days of one-company, onesite projects; most industry developments involve teams split over several locations, countries, cultures [14]. Such projects involve not just developers but many other stakeholders with different backgrounds and needs, from users and managers to testers and trainers. Organizationally, they no longer limit themselves to a single location or even a single company but follow talent wherever it is, increasingly leading to a distributed mode of development. Such distributed projects raise a full set of new software engineering challenges [10, 9, 8], which the standard approaches do not address well. Examples of these challenges include requirements and interface specification in the context of distributed development. Many failures have been reported in outsourced and distributed projects, often due not to lack of technical expertise, but to difficulties in management and communication. Distributed projects require new methods and sophisticated tool support to handle the complex interactions between the many actors involved. An orthogonal trend that brings its own challenges is the growth of methods based on iterative, incremental, and highly collaborative development, such as agile methods. These approaches advertise informal collaboration and continuous direct communication between team members as solutions to the deficiencies of traditional structured development processes. Whether and how intense collaboration is achievable when programmers do not sit in the same room are, however, open question; and even for developers working at the same location, tools specifically designed to facilitate collaborative development are still largely unseen. A central issue, often playing a major part in project failures, is configuration management. CM addresses fundamental needs: making sure that all project members use the same reference versions of every software element, avoiding conflicts as they change various parts of the system, avoiding configuration errors (where version n of module A uses the wrong version of module B), avoiding regression errors (where a previously corrected bug reappears as a result of bad information flow), allowing the re-creation of a previous version of the system or one of its modules. The initial impetus for CloudStudio was our experience with distributed software development both in the context of a long-running industry development, distributed over many sites and led by the last author, and with a university course which we have taught for several years with a distributed collaborative project involving student teams from several universities [15]. We found that today s tools are badly lacking in support for such distributed setups: Communication is a critical issue. Tools such as Skype, WebEx, GoogleDocs, and wikis are useful but not meant for software development. Configuration management, the key day-to-day practical issue, is a major hurdle. While CM is essential in any team effort, the tools, based on 30-year-old concepts, are heavy to
3 use (requiring constant update and commit operations) and poorly adapted to modern distributed projects. These operations distract developers from their truly important tasks. Between the time a developer checks out a component and checks it back in, the project manager and the rest of the team have no idea of what is happening to it; if two developers modify the same component, conflicts will be detected late, when they likely are hard to reconcile. There is always a tendency to branch, often leading to a catastrophe down the line at the time of merging. (Unlike physicists, software developers have their Big Bang at the end.) Our vision is a new paradigm for software development, both addressing the needs of distributed projects and taking advantage of distribution. The vision is embodied in an experimental distributed software development environment, CloudStudio, allowing teams to work on a common product regardless of their geographical location. Instead of running on each developer s machine, CloudStudio is hosted on the Web and works on a shared project repository. The result is a radically new approach providing developers and managers, at any time, with an accurate and up-to-date picture of the entire project. It also includes a profound rethinking of the fundamental task of configuration management, which becomes an unobtrusive automatic technique for keeping track of changes on the developers behalf and reconstructing earlier versions on demand. Characteristics of CloudStudio include: Unobtrusive configuration management: CloudStudio gives each developer the appearance of having a private copy of the project, but the project is in the cloud, its material shared between all project members. There is practically no need for traditional update and commit: CM happens in the background as a result of editing actions. Awareness system: CloudStudio keeps track of all the changes introduced by the developers, and lets any developer display the changes of the other developers. CloudStudio allows for compiling and verifying the project including/excluding these changes. Thus, a developer s modifications do not block others. 3 A Session with CloudStudio This section gives an overview of CloudStudio from the perspective of two users Stu and Claudia who are working on the same project from different locations. Figure 2 elaborates a usage scenario based on the fundamental CloudStudio s features discussed in this section. After logging in on cloudstudio.ethz.ch and selecting a project, Stu reaches the main Cloud- Studio window, pictured in Figure 1. The central frame shows the source code for the current class (PARAGRAPH), which Stu can change with the class browser in the right-hand vertical frame. The bottom frame displays the results of the latest compilation and verification runs. Stu is editing class PARAGRAPH concurrently with Claudia, who is working at a different location. At any time, Stu can show or hide Claudia s changes to the code by toggling a button. When changes are shown, as they are in Figure 1, vertical bars of different colors mark each line of code according to its edit status: orange for lines changed or added by Stu (the current user); blue for lines changed or added by Claudia; red for lines with conflicts, that is edited differently by Claudia and Stu; lines without a colored bar are unchanged by anyone. When he compiles the project, Stu can target the base version of the code (only unchanged lines), or include his or Claudia s changes to it, or both. This mechanisms make Claudia and Stu aware of each other s work; they do not have to block and immediately resolve conflicts, but they can continue working without stomping on each other s feet. CloudStudio offers tools not only to detect and prevent conflicts, but also to resolve them. Stu can see that Claudia is online in the left-hand top frame; he can call her on Skype, or chat with her directly in the left-hand bottom frame. After agreeing on what to do with the conflicts, Stu clicks the commit button to force a synchronization with Claudia. CloudStudio s explicit commit works quite differently than in standard IDEs: the advanced features for configuration management make its usage quite infrequent. When Stu commits, CloudStudio synchronizes the base version
4 Figure 1: Main CloudStudio window for user Claudia (balloons are not part of the user interface but of this figure s caption). to Stu s current version; if lines with conflicts remain, the commit conservatively skips them so that the base version is in a consistent state. The IDE shows the current base version number n corresponding to unchanged lines of code in the editor in the top-left corner (IDE (n)). Chatting and talking can become more effective if Claudia and Stu have a means to type collaboratively on the very same piece of code, and to see it change to reflect the edits by both. To this end, CloudStudio offers the interweave editing mode where participants work on the code as if they were sitting at the same keyboard. With interweave mode on, the notion of conflict disappears, because Claudia and Stu are effectively working in the same editor, similarly as in GoogleDocs. Stu can enable or disable interweave editing at any time. In fact, most of the development is carried out without interweaving, which is appropriate for fine-grained conflict resolution but generates too much jumble if used for most concurrent editing. On top of the tools for collaborative development, CloudStudio features a standard IDE integrated in the browser. It even offers tools for automated verification, so Stu can inspect failed verification attempts and accordingly modify the code to correct errors. 4 Unobtrusive Configuration Management and Awareness This section presents the major feature offered by CloudStudio to support collaborative development: a configuration management system that is not centered around the rigid notion of revision, and that facilitates concurrent collaborative work by multiple programmers. 4.1 Overview of the Problem The goal of configuration management is to track and control the evolution of software artifacts code, imprimis during project development. The evolution is three-dimensional, since software evolves in time, across developers, and in different modules. The standard approach to configuration management implemented by tools such as CVS and Subversion uses a client/server architecture, where a central repository stores incremental snapshots of the codebase, and every developer is a client of the repository who maintains a
5 local working copy of the code. Synchronization between working copies and the central repository occurs by explicit client request through update and commit operations. When a client A commits, the content of the central repository is changed to include A s changes present in its working copy. Conversely, when a client B updates, B s working copy is updated to coincide with the central repository s. Even if so-called distributed version control systems such as Git do not use a client/server architecture, they still require manual operations, comparable to updates and commits, to synchronize a local copy with others. This paradigm makes conflicts likely to occur whenever two developers work on the same portion of code without being aware of each other: their local copies may diverge in irreconcilable ways, hence they have to undergo a painful process of analysis and coordination to produce a unique consistent version of that piece of code. CloudStudio targets the shortcomings of traditional CM systems to facilitate collaborative development by abandoning the update-commit paradigm and by integrating an awareness system of what other developers are doing in the IDE. This way, developers using CloudStudio never have to update, and commit only very infrequently, while being constantly aware of potentially conflicting edits as they set in, before fixing them becomes too burdensome. 4.2 Configuration Management Model CloudStudio stores the current base version of a project s code in a relational database hosted in the cloud. The database table consists of the four attributes: File, Line#, Text, Owner, which respectively indicate a source file name, a line number in that file, the text appearing at that line number, and which users (if any) are editing that line. The database stores the base version of the codebase with a tuple: f, k, l, for each line l in position k in a project file f, where denotes base versions. For example, if the fifth line of file stack.e contains the signature of routine push (v: INTEGER), the database will store the tuple stack.e, 5, push (v: INTEGER),. Whenever a user u changes the line in position k in a project file f into the string l, the database adds the tuple: f, k, l, u, which records u s version of the line. Figure 2 (following page): Programmer Claudia (rightmost column) starts working on a class PARAGRAPH. CloudStudio displays the class current base version as plain text in Claudia s browser (C1); once she starts modifying the class, it marks in orange the code added that is not committed yet (C2 C3). In the meanwhile, programmer Stu (leftmost column) also starts working on the same PARAGRAPH class. Stu notices that the to do comment line is marked blue (S1); this means that Claudia has modified that line. Stu switches view to see exactly Claudia s work (the implementation of set font size ), also displayed marked in blue (S2). Fully aware of Claudia s concurrent editing, Stu does some light refactoring, consisting of renaming attribute size to font size (S3). Claudia is aware of the change, because attribute size s line is marked blue in her editor (C4). At this point, Stu tries to compile his current view of the project; compilation fails because of the different attribute names in his and Claudia s combined edits. Stu easily figures out the problem and decides to fix it himself. This introduces a line marked red inside the routine Claudia has created, to denote a line modified differently by the two users with respect to the base version (S4). CloudStudio makes reconciling the two versions very easy, in terms not only of programming but also of coordination between developers. In fact, Stu concisely tells Claudia about the problem and how he solved it. There is no need for complex communication, because both developers are aware of which parts have been changed by whom and how (S4 C5). After quick agreement, Claudia and Stu decide to synchronize the base version for other developers (S5 C6). Further modifications can now rely on a conflict-free up-to-date version of the class.
6
7 Since a tuple is added for every user who edits a line, we can search for conflicts by looking up tuples that only differ in the last component, with two values other than. For example, if Claudia changes push s argument type to ANY, and Stu makes push return a BOOLEAN to signal whether the operation was successful, there is a conflict signaled by the two tuples stack.e, 5, push (v: ANY), Claudia and stack.e, 5, push (v: INTEGER): BOOLEAN, Stu. Whenever a user u performs an explicit commit, the base version of the project is updated to reflect u s latest edits. That is, for every tuple τ = f, k, l, u in the database without conflicts, CloudStudio discards every tuple f, k, l, (for every l), and replaces τ with f, k, l,. If τ has conflicts, the base version of that line does not change. Every commit generates a new base version of the project in the database; the previous base version is purged from the database but it can be stored in a back-end repository, allowing developers to roll back to older stable snapshots of the project and to re-populate the database with them. If two users u 1, u 2 are working in interweave mode, CloudStudio stores their edits in the same tuples; that is, if either u 1 or u 2 changes the line in position k in file f into l, the database stores the tuple f, k, l, {u 1, u 2 }. 1 Correspondingly, conflicts may arise between u 1 and u 2 s edits and somebody else s but not between u 1 and u 2. Also, a commit by either one of u 1 and u 2 has the same effect of updating the base version to coincide with u 1 and u 2 s. 4.3 Awareness System CloudStudio s awareness system extracts information from the configuration management database and displays it according to user preferences. The basic behavior is that the editor shows the current user s edits, and the base version of every line untouched since the last explicit commit. Each user retains ownership of her uncommitted changes; others can see them but not modify or commit them. On top of this, CloudStudio provides options to see the changes introduced by other developers. Each company and project has its own rules. The CloudStudio vision carefully refrains from imposing a specific methodology or process model, but provides the means to support such choices. The current user can select any other developer u and choose to: Display all changes introduced by u; Display where u introduced changes but do not show them; Display only where u s changes generate conflicts; Do not display changes by u at all; Work in interweave mode with u. The last option avoids the introduction of conflicts and allows developers to modify lines collaboratively, in a way similar to GoogleDocs but with a level of granularity and control suitable for software development. 5 Case Study This section presents a case study that compares the performance of two-programmer teams using CloudStudio against traditional CM practices. The overall goal of the case study is to assess the usability of CloudStudio and its advantages for collaborative development over traditional IDEs and CM techniques. 1 The straightforward details of how this is implemented with relational schema are not discussed.
8 5.1 Development Tasks The case study included three program development tasks, two focused on refactoring and one on testing; all applications were written in Eiffel. R1: Task R1 targets an application implementing a card game (the card deck and the game logic); the complete application includes 210 lines of code over 4 classes. Task R1 requires refactoring of three classes, and development of new functionalities by extending the refactored classes; the task is collaborative because the new functionalities must work with the classes after refactoring. Refactoring included: method and field renaming; enforcement of Eiffel coding standards (e.g., capitalization, comments); re-arrangement of methods in groups (marked by the feature Eiffel keyword) according to their functionalities; code extraction into a new class. R2: Task R2 targets an application modeling a coffee vending machine; users of the application have basic options to select coffee, can pay and receive change. The application includes 230 lines of code over 3 classes. Task R2 is similar to R1 except that it targets the coffee machine application: R2 requires refactoring and development of new functionalities by extending the refactored classes. T1: Task T1 targets the same coffee machine application as task R2. It requires development of new functionalities (namely, the option to add milk to the coffee, and the dispatch of different cup sizes) and writing of test cases that achieve 100% code coverage on the new code. Task T1 is also inherently collaborative as the development of new functionalities and of test cases occur concurrently, according to the concept of test-driven pair programming [5]. 5.2 Subjects and Experimental Setup The subjects used in the study were six PhD students from our research group. All of them are experienced Eiffel programmers who frequently develop with EiffelStudio and Subversion (SVN) as part of their PhD research; none of them had used CloudStudio before the study, had taken part in its development, or has much experience with collaborative development. We randomly arranged the six subjects in three pairs: Team1, Team2, Team3. Team1 first performed task R1 with CloudStudio and then task T1 with EiffelStudio and SVN. Team2 first performed task R1 with EiffelStudio and SVN and then task T1 with CloudStudio. Team3 first performed task R1 with CloudStudio and then task R2 with EiffelStudio and SVN. Each team performed its sessions according to the following protocol. The two team members sat at the opposite corners of a large table with their laptops connected to the network. Before beginning, the second author (henceforth the experimenter ) gave a brief (5 min.) introduction to CloudStudio to both programmers at the same time, where he showed them how to log-in and the basics of the CM system without any reference to the development tasks. Then, he gave them a sheet of paper with a description of the task they had to perform (the second task was introduced only after completion of the first). The two programmers received identical instruction sheets and had to coordinate in order to split the work between them. During the study nobody other than the experimenter and the two programmers was in the room. The programmers were only allowed to use instant messaging to communicate; their position in the room and the experimenter ensured that no other communication channel was available. The experimenter did not interfere with the programmers other than to clarify possible unclear points in the task description (but this was never necessary). There was no time limit to complete the tasks: each session continued until the current task was completed (the experimenter checked completeness a posteriori by manual inspection of the codebase). After each session, the experimenter recorded the total number of words exchanged via instant messaging and the overall time spent to complete the task. An a posteriori analysis of the communication logs, discussed in Section 5.4, supports the hypothesis that these two measures (words and time) are reasonable proxies for the actual amount of communication between the two programmers that took place during the experiments.
9 Figure 3: Results of the case study (the scale is not uniform). 5.3 Results Figure 3 reports the amount of communication between programmers while performing the various tasks. While all participants are competent programmers, their speed and development style vary significantly; as a result, the random assignment formed heterogeneous groups which may not be directly comparable. The results in Figure 3, however, show a consistent advantage for teams using CloudStudio over teams using SVN: the difference is sometimes small (as for task T1), sometimes conspicuous (as for task R1 between Team2 and Team1); in all cases, CloudStudio required less communication for the same task than SVN, even if the study s programmers used it for the first time. Let us now describe the performance of the various teams in more detail. Team1 delivered the best overall performance and was fluent both with SVN and with Cloud- Studio; the two programmers worked well together and required a limited amount of communication to synchronize properly. The comparison with Team2 on the same tasks suggests that using CloudStudio is beneficial: Team1 outperformed Team2 almost by an order of magnitude when using CloudStudio on task R1, whereas their performance became similar on task T1 where Team1 used SVN. It was clear that Team1 was overall faster than Team2, but the peculiarities of task R1 magnified the difference in favor of who could rely on better collaboration tools. The programmers in Team2 had the greatest communication problems in the study, as shown by their performance in task R1. The log of their message exchanges shows that they had to debate several points of disagreement about how to perform the refactorings, and that not being able to see in real-time what the other was doing (as it happened when working with SVN) exacerbated their disagreement and frustration. Unlike the members of the other teams, the two programmers in Team3 worked with wildly different speed, to the point that in both tasks R1 and R2 a programmer completed his part of the task when the other was still exploring the system and understanding the instructions. The overall performance of Team3 required little communication in all cases, but this is mostly a result of the fact that the different programmer speed forced a serialization between the two programmers; hence, synchronization was not a big issue because the development was not really collaborative
10 and interactive. We do not discuss in detail the time taken by programmers because the assignments emphasized correctness of the solution and did not pressure the teams for time. Anyway, and perhaps unsurprisingly, the overall time turned out to be correlated with the amount of communication, hence all the experimental data point to the same qualitative conclusions. 5.4 Discussion A post mortem analysis of the instant messaging logs shows recurring patterns of communications between programmers. The initial part of every session starts with a discussion of the task, after which the two programmers negotiate a division of the labor and agree on some synchronization mechanism. During development with SVN, messages such as Did you update your project? and I m done with implementing X and have committed are frequent. With CloudStudio, the same messages occurs much more sparingly, and some of the remaining instances can probably be attributed to the programmers limited familiarity with CloudStudio and how it works (in fact, in some cases of redundant notification messages using CloudStudio, the recipient replied with sentences such as Just go ahead, I can see your changes live ). After the case study, we asked the participants to complete a simple questionnaire about their experience and with requests for feedback. The participants unanimously appreciated CloudStudio mechanisms for the real-time visualization of other people s changes, and for the immediate display of conflicts. Disagreement existed on how severe a problem are merge conflicts in everyday s software development: four programmers consider it a serious hassle and appreciate better mechanisms to prevent or manage conflicts; the other two maintained that merge conflicts can be reduced to a minimum with a little coordination. In all, the participants to the study tend to agree with our conclusions that CloudStudio offers valuable features for collaborative development and a more flexible paradigm of CM. The generalizability of our results is necessarily limited by the case study s scope and size, as well as by its reliance on specific development tasks that emphasize real-time collaboration but may affect only a limited part of large software projects. In this sense, the reaction of one of the programmers in our study to task R1 is instructive: he was initially skeptical and remarked that he would never do refactoring while another programmer is implementing new functionalities ; after using CloudStudio, however, he acknowledged that, with the right tools, such tasks can indeed be performed in parallel. 6 Other Features of CloudStudio s Prototype Implementation A CloudStudio prototype is freely available at cloudstudio.ethz.ch; since it is entirely webbased, using it does not require downloading any software. The implementation combines an editor written in Eiffel (automatically translated to JavaScript [3]) with other functionalities implemented in Java using Google Web Toolkit v. 2.3, and leverages a MySQL database back-end. CloudStudio currently supports development in Eiffel, but its architecture is extensible to other programming languages such as C, C#, and Java. Besides the innovative configuration management and awareness system described in Section 4, CloudStudio offers the basic functionalities of traditional IDEs such as EiffelStudio or Eclipse: an editor with syntax checking, a class browser to navigate the project, and integration with the compiler. At the time of writing, the complete implementation of interweave editing is underway. In continuity with our related work on formal verification centered around EVE, the Eiffel Verification Environment (se.ethz.ch/research/eve/), CloudStudio integrates verification tools to help developers improve software quality. It currently supports testing with the AutoTest framework [12] (see Figure 4), and formal correctness proofs with AutoProof [13] (see Figure 5). AutoTest performs random testing of object-oriented programs with contracts, and it has proved extremely effective in detecting hundreds of errors in production software; AutoProof provides a
11 static verification environment similar to Spec#[1] but for Eiffel. Both tools are fully automatic and integrated with CloudStudio s CM system: testing and proving sessions work on the current view selected by CloudStudio users, which flexibly may or may not include concurrent edits by other developers (as described in Section 4). Figure 4: CloudStudio integrates the AutoTest framework for automatic random testing of objectoriented programs with contracts. AutoTest is completely automated: users only select the classes to be tested and the time allotted; AutoTest generates and executes a test suite for the classes. The figure shows an AutoTest report, which details passing and failing tests for every routine of every tested class. Clicking on an entry shows details about its associated test cases. 7 Related Work The research community agrees on the potential impact that custom IDEs and collaboration tools can have on effective distributed software development [21]. Recent years have shown a trend towards supporting IDEs into the web-browser. Some prominent examples of web IDEs are Cloud9 ( Cloud9 IDE), CodeRun Studio ( CodeRun Studio), and Codeanywhere ( net. Codeanywhere). As the browser is the natural workbench for web applications, most web IDEs target languages for web development (e.g., Javascript) rather than general purpose programming languages such as Eiffel or Java. Another limitation of most commercial web IDEs currently available is their focus on supporting run-of-the-mill functionalities that are standard in stand-alone IDEs, as opposed to embracing new development and communication modes. Some research prototypes of web IDEs have experimented novel approaches to collaborative development. Besides CloudStudio, the project Collabode [4] supports real-time code sharing among developers through a web IDE. Unlike CloudStudio, however, Collabode does not introduce new notions of CM, and it is mainly intended for developers simultaneoutly working on the same piece of code with the same view (similarly to CloudStudio s interweave mode). One of the most comprehensive frameworks for distributed development is IBM s Jazz [17], built on top of the popular Eclipse IDE. Jazz offers advanced communication and collaboration
12 Figure 5: CloudStudio integrates AutoProof, a fully automatic static verification tool that performs exhaustive correctness proofs of classes with contracts. AutoProof uses exact static analysis to establish if routines satisfy their postcondition for every execution with input satisfying their precondition. The figure displays an AutoProof report, showing, for every routine, whether its correctness proof succeeded. AutoProof is sound but incomplete, hence failed proof attempts may be false positives that do not necessarily indicate the routine is incorrect. A successful proof, on the contrary, is guarantee of correctness within the limits of the given contracts. mechanisms, but it is still built around the conventional CM model where files are the smallest unit of revision. Real-time collaboration (for example, for pair-programming) can be added on top of Jazz through tools such as Jazz Sangam [20], which, however, are separate entitites that do not fully integrate with the rest of the CM system. A different small group of research tools such as Syde [6] and CollabVS [7] introduce new models of CM, where more abstract and flexible change analyses are possible. Syde works on abstract syntax trees of the code, and defines changes as abstract operations on trees. Crystal [2] is based on the idea of constantly trying to merge the software artifacts of different developers in order to detect conflicts as early as possible. These concepts are quite novel, yet still ultimately centered on the notion of conflict (and conflict resolution). CloudStudio s focus is instead on providing programmers with real-time code change awareness, which can prevent many conflicts from arising in the first place. 8 Conclusions We have described a new paradigm of cloud-based software development, addressing the needs of modern distributed projects, and presented the first version of a supporting web-based tool called CloudStudio, freely available for experimentation. As can be expected with such a novel approach, many questions remain open, providing both theoretical research challenges and practical engineering goals. We plan to extend the new paradigm of configuration management outlined above. Much work remains on the IDE, in particular more sophisticated display of the changes introduced by the developers. More collaboration
13 tools are needed, in particular to support the new modes of code inspection made possible and desirable by the Internet [11]. We also intend to perform more extensive empirical evaluation of the effectiveness of the ideas and tools, both in an industrial setting and through systematic use of the tools in the multi-university distributed dose project and course on distributed and outsourcing software engineering course [15]. Acknowledgments We thank Le Minh Duc, Alexandru Dima, and Alejandro Garcia for contributing to the prototype implementation of CloudStudio. Julian Tschannen and Yi (Jason) Wei contributed to the integration of the verification tools, and participated to the case study with Yu (Max) Pei, Marco Piccioni, Marco Trudel, Scott West. CloudStudio s startup funding through the Gebert-Ruf Stiftung is gratefully acknowledged. References [1] M. Barnett, M. Fähndrich, K. R. M. Leino, P. Müller, W. Schulte, and H. Venter. Specification and verification: the Spec# experience. Commun. ACM, 54(6):81 91, [2] Y. Brun, R. Holmes, M. Ernst, and D. Notkin. Proactive detection of collaboration conflicts. In Proc. of ESEC-FSE, [3] A. Dima. Developing JavaScript applications in Eiffel. Master s thesis, ETH Zurich, [4] M. Goldman, G. Little, and R. C. Miller. Collabode: collaborative coding in the browser. In Proceeding of the 4th international workshop on Cooperative and human aspects of software engineering, CHASE 11, pages 65 68, New York, NY, USA, ACM. [5] M. Goldman and R. C. Miller. Test-driven roles for pair programming. In Proc. of CHASE, pages ACM, [6] L. Hattori and M. Lanza. Syde: a tool for collaborative software development. In Proc. of ICSE, pages , [7] R. Hegde and P. Dewan. Connecting programming environments to support ad-hoc collaboration. In Proc. of ASE, pages , [8] J. Herbsleb and D. Moitra. Global software development. IEEE Software, 18(2), [9] H. Holmstrom, E. O. Conchuir, P. J. Agerfalk, and B. Fitzgerald. Global software development challenges: A case study on temporal, geographical and socio-cultural distance. In Proc. of ICGSE, pages 3 11, [10] B. Meyer. The unspoken revolution in software engineering. IEEE Computer, 39(1): , [11] B. Meyer. Design and code reviews in the age of the Internet. In Proc. of SEAFOOD, volume 16 of LNBIP. Springer, [12] B. Meyer, A. Fiva, I. Ciupa, A. Leitner, Y. Wei, and E. Stapf. Programs that test themselves. IEEE Software, pages 22 24, [13] M. Nordio, C. Calcagno, B. Meyer, P. Müller, and J. Tschannen. Reasoning about Function Objects. In J. Vitek, editor, TOOLS-EUROPE, LNCS. Springer-Verlag, [14] M. Nordio, M. Joseph, B. Meyer, and A. Terekhov. Preface to SEAFOOD volume 54 of LNBIP, Springer, 2010.
14 [15] M. Nordio, R. Mitin, and B. Meyer. Advanced hands-on training for distributed and outsourced software engineering. In Proc. of ICSE, [16] Codeanywhere. [17] Jazz. [18] Cloud9 IDE. [19] CodeRun Studio. [20] J. Vijay, S. Devide, A. Meneely, C.-W. Ho, L. Williams, and M. Devetsikiotis. Jazz Sangam: A real-time tool for distributed pair programming on a team development platform. In Proc. of IRCSE, [21] J. Whitehead. Collaboration in software engineering: A roadmap. In Proc. of FOSE, pages , 2007.
Overview presentation, CIEL, Bordeaux, 9 June 2015. Means Eidgenösische Technische Hochschule (German)
Chair of Software Engineering, ETH Zurich Overview presentation, CIEL, Bordeaux, 9 June 2015 Bertrand Meyer 1 ETH Means Eidgenösische Technische Hochschule (German) The only federal university in Switzerland
Agile So)ware Development
Software Engineering Agile So)ware Development 1 Rapid software development Rapid development and delivery is now often the most important requirement for software systems Businesses operate in a fast
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.
Comparing Agile Software Processes Based on the Software Development Project Requirements
CIMCA 2008, IAWTIC 2008, and ISE 2008 Comparing Agile Software Processes Based on the Software Development Project Requirements Malik Qasaimeh, Hossein Mehrfard, Abdelwahab Hamou-Lhadj Department of Electrical
Keywords IS-SDE, software engineering, CALM, ALM, collaborative software development, development tools
Volume 5, Issue 9, September 2015 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com An Integrated
Benefits of Test Automation for Agile Testing
Benefits of Test Automation for Agile Testing Manu GV 1, Namratha M 2, Pradeep 3 1 Technical Lead-Testing Calsoft Labs, Bangalore, India 2 Assistant Professor, BMSCE, Bangalore, India 3 Software Engineer,
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
Towards Software Configuration Management for Test-Driven Development
Towards Software Configuration Management for Test-Driven Development Tammo Freese OFFIS, Escherweg 2, 26121 Oldenburg, Germany [email protected] Abstract. Test-Driven Development is a technique where
Continuous User Experience Development
Continuous User Experience Development Kati Kuusinen Tampere University of Technology Tampere, Finland Korkeakoulunkatu 1, FI-33101 Tampere [email protected] Abstract. Continuous approaches for software
Cloud Based Collaboration Tool Rohini C. Ekghare*, Prof. Manish Hadap**
RESEARCH ARTICLE OPEN ACCESS Cloud Based Collaboration Tool Rohini C. Ekghare*, Prof. Manish Hadap** *Department of Information Technology, Yeshwantrao Chavan College of Engineering, Nagpur-441110, India.
Exploiting Dynamic Information in IDEs Eases Software Maintenance
Exploiting Dynamic Information in IDEs Eases Software Maintenance David Röthlisberger Software Composition Group, University of Bern, Switzerland [email protected] Abstract The integrated development
ARCHITECTURE FOR INTEGRATING A WEB-BASED IDE AND A PROJECT MANAGEMENT SYSTEM
ARCHITECTURE FOR INTEGRATING A WEB-BASED IDE AND A PROJECT MANAGEMENT SYSTEM Arnold Choa 1, Linda Chua 1, Kevin See 1, Alvin Uy 1, Danny Cheng 2 1 Software Technology College of Computer Studies, De La
How Silk Central brings flexibility to agile development
How Silk Central brings flexibility to agile development The name agile development is perhaps slightly misleading as it is by its very nature, a carefully structured environment of rigorous procedures.
Software testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
Large Scale Systems Design G52LSS
G52LSS Lecture 3 Rapid and Agile Development Rapid Application Development Prototyping CASE Tools Agile Development Extreme Programming Learning outcomes: describe main features of methods for RAD and
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
Improving database development. Recommendations for solving development problems using Red Gate tools
Improving database development Recommendations for solving development problems using Red Gate tools Introduction At Red Gate, we believe in creating simple, usable tools that address the problems of software
CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011
CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion
Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1
Rapid software development Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1 Objectives To explain how an iterative, incremental development process leads to faster delivery of
Human Aspects of Software Engineering: The Case of Extreme Programming
1 Human Aspects of Software Engineering: The Case of Extreme Programming Orit Hazzan 1 and Jim Tomayko 2 1 Department of Education in Technology and Science, Technion - IIT, Haifa 32000, Israel [email protected]
Basic Trends of Modern Software Development
DITF LDI Lietišķo datorsistēmu programmatūras profesora grupa e-business Solutions Basic Trends of Modern Software Development 2 3 Software Engineering FAQ What is software engineering? An engineering
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
(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
Software Continuous Integration & Delivery
November 2013 Daitan White Paper Software Continuous Integration & Delivery INCREASING YOUR SOFTWARE DEVELOPMENT PROCESS AGILITY Highly Reliable Software Development Services http://www.daitangroup.com
VDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
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
VACA: A Tool for Qualitative Video Analysis
VACA: A Tool for Qualitative Video Analysis Brandon Burr Stanford University 353 Serra Mall, Room 160 Stanford, CA 94305 USA [email protected] Abstract In experimental research the job of analyzing data
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
How To Collaborate On A Project Plan 365 Plan On A Pcode On A Microsoft Project World On A Macbook Or Ipad Or Ipa Or Ipam Or Ipat Or Ipar Or Ipor Or Ipro Or Ipo Or Ip
Project Plan 365 Collaboration with Microsoft Project Files (MPP) in SharePoint cloud White Paper Housatonic Software - Project Plan 365 App 2014 Contents 1. Introduction... 3 2. Prerequisites... 4 3.
Getting started with API testing
Technical white paper Getting started with API testing Test all layers of your composite applications, not just the GUI Table of contents Executive summary... 3 Introduction... 3 Who should read this document?...
WHITEPAPER. Improving database development
WHITEPAPER Improving database development Introduction At Redgate, we believe in creating simple, usable tools that address the problems of software developers and technology businesses. In considering
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)
Methodology: Agile development of safety critical systems Annex D1.1.d to deliverable D1.1
Collaborative Large scale Integrating Project Open Platform for EvolutioNary Certification Of Safety critical Systems Methodology: Agile development of safety critical systems to deliverable D1.1 Work
Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations
www.ijcsi.org 457 Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations Prakash.V SenthilAnand.N Bhavani.R Assistant
Applitools Eyes Web Application Guide
Applitools Eyes Web Application Guide 1 2 Table of Contents Overview... 3 How to start using Applitools Eyes... 3 Analyzing your first test through Applitools Eyes Web Application... 4 Exploring the home
Continuous Integration with Jenkins. Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.
1 Continuous Integration with Jenkins Coaching of Programming Teams (EDA270) J. Hembrink and P-G. Stenberg [dt08jh8 dt08ps5]@student.lth.se Faculty of Engineering, Lund Univeristy (LTH) March 5, 2013 Abstract
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
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
Bridging the Gap Between Acceptance Criteria and Definition of Done
Bridging the Gap Between Acceptance Criteria and Definition of Done Sowmya Purushotham, Amith Pulla [email protected], [email protected] Abstract With the onset of Scrum and as many organizations
Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects
Effective Management of Static Analysis Vulnerabilities and Defects Introduction According to a recent industry study, companies are increasingly expanding their development testing efforts to lower their
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
Project Plan 365 Collaboration with Microsoft Project Files (MPP) in Dropbox cloud
Project Plan 365 Collaboration with Microsoft Project Files (MPP) in Dropbox cloud White Paper Housatonic Software - Project Plan 365 App 2014 Contents 1. Introduction... 3 2. Prerequisites... 4 3. What
Software Development In the Cloud Cloud management and ALM
Software Development In the Cloud Cloud management and ALM First published in Dr. Dobb's Journal, February 2009: http://www.ddj.com/development-tools/212900736 Nick Gulrajani is a Senior Solutions Architect
Web Applications Development and Software Process Improvement in Small Software Firms: a Review
Web Applications Development and Software Process Improvement in Small Software Firms: a Review Haroon Tarawneh Al-balqa Applied University [email protected] Sattam Allahawiah Al-balqa Applied University
IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation
Solution Brief IBM WebSphere Operational Decision Management Improve business outcomes with real-time, intelligent decision automation Highlights Simplify decision governance and visibility with a unified
Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software
Barely Sufficient Software Engineering: 10 Practices to Improve Your Research CSE Software Special Thanks: LDRD NNSA ASC SAND#: 2009-0579 C Michael A. Heroux James M. Willenbring Sandia National Laboratories
Nexus Professional Whitepaper. Repository Management: Stages of Adoption
Sonatype Nexus Professional Whitepaper Repository Management: Stages of Adoption Adopting Repository Management Best Practices SONATYPE www.sonatype.com [email protected] +1 301-684-8080 12501 Prosperity
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into
The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material,
Why HTML5 Tests the Limits of Automated Testing Solutions
Why HTML5 Tests the Limits of Automated Testing Solutions Why HTML5 Tests the Limits of Automated Testing Solutions Contents Chapter 1 Chapter 2 Chapter 3 Chapter 4 As Testing Complexity Increases, So
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
White Paper: 5GL RAD Development
White Paper: 5GL RAD Development After 2.5 hours of training, subjects reduced their development time by 60-90% A Study By: 326 Market Street Harrisburg, PA 17101 Luis Paris, Ph.D. Associate Professor
Software Development Life Cycle (SDLC)
Software Development Life Cycle (SDLC) Supriyo Bhattacharjee MOF Capability Maturity Model (CMM) A bench-mark for measuring the maturity of an organization s software process CMM defines 5 levels of process
Enabling Continuous Delivery by Leveraging the Deployment Pipeline
Enabling Continuous Delivery by Leveraging the Deployment Pipeline Jason Carter Principal (972) 689-6402 [email protected] Pariveda Solutions, Inc. Dallas,TX Table of Contents Matching
IBM Rational ClearCase, Version 8.0
IBM Rational ClearCase, Version 8.0 Improve software and systems delivery with automated software configuration management solutions Highlights Improve software delivery and software development life cycle
Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context
Intelligent Analysis of User Interactions in a Collaborative Software Engineering Context Alejandro Corbellini 1,2, Silvia Schiaffino 1,2, Daniela Godoy 1,2 1 ISISTAN Research Institute, UNICEN University,
Hypercosm. Studio. www.hypercosm.com
Hypercosm Studio www.hypercosm.com Hypercosm Studio Guide 3 Revision: November 2005 Copyright 2005 Hypercosm LLC All rights reserved. Hypercosm, OMAR, Hypercosm 3D Player, and Hypercosm Studio are trademarks
SECTION 4 TESTING & QUALITY CONTROL
Page 1 SECTION 4 TESTING & QUALITY CONTROL TESTING METHODOLOGY & THE TESTING LIFECYCLE The stages of the Testing Life Cycle are: Requirements Analysis, Planning, Test Case Development, Test Environment
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
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
Rapid Software Development
Software Engineering Rapid Software Development Based on Software Engineering, 7 th Edition by Ian Sommerville Objectives To explain how an iterative, incremental development process leads to faster delivery
Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)
Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1
XpoLog Center Suite Log Management & Analysis platform
XpoLog Center Suite Log Management & Analysis platform Summary: 1. End to End data management collects and indexes data in any format from any machine / device in the environment. 2. Logs Monitoring -
Software Requirement Specification for Web Based Integrated Development Environment. DEVCLOUD Web Based Integrated Development Environment.
Software Requirement Specification for Web Based Integrated Development Environment DEVCLOUD Web Based Integrated Development Environment TinTin Alican Güçlükol Anıl Paçacı Meriç Taze Serbay Arslanhan
Specification and Analysis of Contracts Lecture 1 Introduction
Specification and Analysis of Contracts Lecture 1 Introduction Gerardo Schneider [email protected] http://folk.uio.no/gerardo/ Department of Informatics, University of Oslo SEFM School, Oct. 27 - Nov.
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
SCC Online Web Edition
THE SUREST WAY TO LEGAL RESEARCH SCC Online Web Edition User Guide Welcome to SCC Online Make your legal research easier, quicker, and more effective Thank you for choosing SCC Online Web Edition as your
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
JRefleX: Towards Supporting Small Student Software Teams
JRefleX: Towards Supporting Small Student Software Teams Kenny Wong, Warren Blanchet, Ying Liu, Curtis Schofield, Eleni Stroulia, Zhenchang Xing Department of Computing Science University of Alberta {kenw,blanchet,yingl,schofiel,stroulia,xing}@cs.ualberta.ca
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
CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.
CS 389 Software Engineering Lecture 2 Chapter 2 Software Processes Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed. Topics covered Software process models Process activities Coping
Continuous integration End of the big bang integration era
Continuous integration End of the big bang integration era Patrick Laurent Partner Technology & Enterprise Applications Deloitte Mario Deserranno Manager Technology & Enterprise Applications Deloitte The
Unicenter Desktop DNA r11
Data Sheet Unicenter Desktop DNA r11 Unicenter Desktop DNA is a scalable migration solution for the management, movement and maintenance of a PC s DNA (including user settings, preferences and data.) A
Enterprise Integration: operational models of business processes and workflow systems *
Enterprise Integration: operational models of business processes and workflow systems. 1 Enterprise Integration: operational models of business processes and workflow systems * G.Bruno 1, C.Reyneri 2 and
Software Requirements Specification
CSL740 Software Engineering Course, IIT Delhi Software Requirements Specification Submitted By Abhishek Srivastava (2011EEY7511) Anil Kumar (2009CS10180) Jagjeet Singh Dhaliwal (2008CS50212) Ierum Shanaya
Introduction to Source Control ---
Introduction to Source Control --- Overview Whether your software project is large or small, it is highly recommended that you use source control as early as possible in the lifecycle of your project.
Agile Requirements Definition for Software Improvement and Maintenance in Open Source Software Development
Agile Requirements Definition for Software Improvement and Maintenance in Open Source Software Development Stefan Dietze Fraunhofer Institute for Software and Systems Engineering (ISST), Mollstr. 1, 10178
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102
Intellect Platform - The Workflow Engine Basic HelpDesk Troubleticket System - A102 Interneer, Inc. Updated on 2/22/2012 Created by Erika Keresztyen Fahey 2 Workflow - A102 - Basic HelpDesk Ticketing System
Chapter 9 Software Evolution
Chapter 9 Software Evolution Summary 1 Topics covered Evolution processes Change processes for software systems Program evolution dynamics Understanding software evolution Software maintenance Making changes
Chapter 5. Regression Testing of Web-Components
Chapter 5 Regression Testing of Web-Components With emergence of services and information over the internet and intranet, Web sites have become complex. Web components and their underlying parts are evolving
Software Service Engineering Architect s Dream or Developer s Nightmare?
Software Service Engineering Architect s Dream or Developer s Nightmare? Gregor Hohpe Google, 1600 Amphitheatre Parkway, Mountain View, CA 94043 [email protected] Abstract. Architectural principles such
Efficient Collection and Analysis of Program Data - Hackystat
You can t even ask them to push a button: Toward ubiquitous, developer-centric, empirical software engineering Philip Johnson Department of Information and Computer Sciences University of Hawaii Honolulu,
Application Lifecycle Management White Paper. Source Code Management Best Practice: Applying Economic Logic to Migration ALM
ALM Application Lifecycle Management White Paper Source Code Management Best Practice: Applying Economic Logic to Migration Summary: Is there a Business Case for Migration? Ultimately, what is the value
Lab 0 (Setting up your Development Environment) Week 1
ECE155: Engineering Design with Embedded Systems Winter 2013 Lab 0 (Setting up your Development Environment) Week 1 Prepared by Kirill Morozov version 1.2 1 Objectives In this lab, you ll familiarize yourself
Better management through process automation.
Process management with IBM Rational ClearQuest software White paper Better management through process automation. David Lawrence, technical marketing specialist May 2006 Page 2 Contents 2 Introduction
Agile Development with Jazz and Rational Team Concert
Agile Development with Jazz and Rational Team Concert Mayank Parikh [email protected] Acknowledgements: Thanks to Khurram Nizami for some of the slides in this presentation Agile Values: A Foundation
Continuous delivery Release software on-demand, not on Red Alert
Continuous delivery Release software on-demand, not on Red Alert Have it all. Ahead of the competition Value In a world where customers expect a mobile and connected 24x7 experience, businesses must adapt
New Generation of Software Development
New Generation of Software Development Terry Hon University of British Columbia 201-2366 Main Mall Vancouver B.C. V6T 1Z4 [email protected] ABSTRACT In this paper, I present a picture of what software development
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.
