Collaborative Software Development
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Distributed Configuration Management: Mercurial CSCI 5828 Spring 2012 Mark Grebe Configuration Management
Distributed Configuration Management: Mercurial CSCI 5828 Spring 2012 Mark Grebe Configuration Management Configuration Management (CM) systems are used to store code and other artifacts in Software Engineering projects. Since the early 70’s, there has been a progression of CM systems used for Software CM, starting with SCCS, and continuing through RCS, CVS, and Subversion. All of these systems used a single, centralized repository structure. Distributed Configuration Management As opposed to traditional CM systems, Distributed Configuration Management Systems are ones where there does not have to be a central repository. Each developer has a copy of the entire repository and history. A central repository may be optionally used, but it is equal to all of the other developer repositories. Advantages of Distributed Configuration Management Distributed tools are faster than centralized ones since metadata is stored locally. Can use tool to manage changes locally while not connected to the network where server resides. Scales more easily, since all of the load is not on a central server. Allows private work that is controlled, but not released to the larger community. Distributed systems are normally designed to make merges easy, since they are done more often. Mercurial Introduction Mercurial is a cross-platform, distributed configuration management application. In runs on most modern OS platforms, including Windows, Linux, Solaris, FreeBSD, and Mac OSX. Mercurial is written 95% in Python, with the remainder written in C for speed. Mercurial is available as a command line tool on all of the platforms, and with GUI support programs on many of the platforms. Mercurial is customizable with extensions, hooks, and output templates. -
A Survey of Collaborative Tools in Software Development
1 INTRODUCTION A Survey of Collaborative Tools in Software Development Anita Sarma Institute for Software Research Donald Bren School of Information and Computer Sciences University of California, Irvine [email protected] ISR Technical Report # UCI-ISR-05-3 March 22, 2005 1 Introduction Collaboration is at the heart of software development. Virtually all software devel- opment requires collaboration among developers within and outside their project teams, to achieve a common objective. It has in fact been shown that about 70% of a software engineer’s time is spent on collaborative activities [219]. Indeed, col- laboration in software development has been studied by researchers in the fields of Software Engineering and Computer Supported Cooperative Work (CSCW) since the 1980s and has produced a wide range of collaborative tools. Enabling software developers to collaborate effectively and effortlessly is a difficult task. The collaboration needs of the team depend to a large extent on environmental factors such as, the organizational structure of the team, the domain for which the software is produced, the product structure, and individual team members. Accordingly, research in collaborative development has produced a host of tools, each typically focussing on a different aspect of collaboration. Most teams have their favorite repertoire of tools that has been built from historical use. These tools may not always be the best suited for the team, but the team still uses them nevertheless as the inertia and cost of trying out new tools surpasses the benefits. A number of classification frameworks exist that can be used to classify collaborative tools. In addition to placing the various tools in context, developers can use these frameworks to select the right mix of tools fit for their needs. -
Collaborative Education in a Virtual Learning Environment Hani Bani
Collaborative Education in a Virtual Learning Environment Hani Bani-Salameh Department of Software Engineering, The Hashemite University, Zarqa 13115, Jordan E-mail: [email protected] Jafar Al-Gharaibeh Architecture Technology Corporation, Eden Prairie, MN 55344, United States E-mail: [email protected] Clinton Jeffery Department of Computer Science, University of Idaho, Moscow, ID 83843, USA E-mail: [email protected] Ziad A. Al-Sharif Department of Software Engineering, Jordan University of Sci. & Tech, Irbid, Jordan E-mail: [email protected] Abstract: For the last few decades, there was tremendous interest in harnessing 3D virtual environments for education and training. Multi-user game-like environments make use of non-player characters and quest activities in tutoring and training. This approach incorporates successful active learning and incremental progress. This article presents issues encountered while adapting the multi-user online game genre for educational virtual environments. In this endeavour, non-player characters play a central role in organizing and delivering educational content. Educational virtual environments call for additional kinds of extension beyond generic user content creation as delivered in some virtual worlds like SecondLife. Support for these environments will emphasize the creation of new activities. A set of libraries and techniques named Portable Non-player character tutors and Quests reduces the effort needed to develop and integrate educational non-player characters. These non-player characters are introduced in CVE, a platform for rapidly developing educational virtual environments. The Portable Non-player character tutors and Quests framework enables formatted web-based exercises, quizzes, and educational content to be incorporated into Copyright © 2016 Inderscience Enterprises Ltd. -
Distributed Revision Control with Mercurial
Distributed revision control with Mercurial Bryan O’Sullivan Copyright c 2006, 2007 Bryan O’Sullivan. This material may be distributed only subject to the terms and conditions set forth in version 1.0 of the Open Publication License. Please refer to Appendix D for the license text. This book was prepared from rev 028543f67bea, dated 2008-08-20 15:27 -0700, using rev a58a611c320f of Mercurial. Contents Contents i Preface 2 0.1 This book is a work in progress ...................................... 2 0.2 About the examples in this book ..................................... 2 0.3 Colophon—this book is Free ....................................... 2 1 Introduction 3 1.1 About revision control .......................................... 3 1.1.1 Why use revision control? .................................... 3 1.1.2 The many names of revision control ............................... 4 1.2 A short history of revision control .................................... 4 1.3 Trends in revision control ......................................... 5 1.4 A few of the advantages of distributed revision control ......................... 5 1.4.1 Advantages for open source projects ............................... 6 1.4.2 Advantages for commercial projects ............................... 6 1.5 Why choose Mercurial? .......................................... 7 1.6 Mercurial compared with other tools ................................... 7 1.6.1 Subversion ............................................ 7 1.6.2 Git ................................................ 8 1.6.3 -
DVCS Or a New Way to Use Version Control Systems for Freebsd
Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions DVCS or a new way to use Version Control Systems for FreeBSD Ollivier ROBERT <[email protected]> BSDCan 2006 Ottawa, Canada May, 12-13th, 2006 Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions Agenda 1 Brief history of VCS 2 FreeBSD context & gures 3 Is Arch/baz suited for FreeBSD? 4 Mercurial to the rescue 5 New processes & policies needed 6 Conclusions Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions The ancestors: SCCS, RCS File-oriented Use a subdirectory to store deltas and metadata Use lock-based architecture Support shared developments through NFS (fragile) SCCS is proprietary (System V), RCS is Open Source a SCCS clone exists: CSSC You can have a central repository with symlinks (RCS) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS, the de facto VCS for the free world Initially written as shell wrappers over RCS then rewritten in C Centralised server Easy UI Use sandboxes to avoid locking Simple 3-way merges Can be replicated through CVSup or even rsync Extensive documentation (papers, websites, books) Free software and used everywhere (SourceForge for example) Ollivier ROBERT <[email protected]> DVCS or a new way to use Version Control Systems for FreeBSD Brief history of VCS FreeBSD context & gures Is Arch/baz suited for FreeBSD? Mercurial to the rescue New processes & policies needed Conclusions CVS annoyances and aws BUT.. -
GIT—A Stupid Content Tracker
GIT—A Stupid Content Tracker Junio C. Hamano Twin Sun, Inc. [email protected] Abstract The paper gives an overview of how git evolved and discusses the strengths and weaknesses of its design. Git was hurriedly hacked together by Linus Torvalds, after the Linux kernel project lost its license to use BitKeeper as its source code management system (SCM). It has since 1 Low level design quickly grown to become capable of managing the Linux kernel project source code. Other projects have started to replace their existing Git is a “stupid content tracker.” It is designed SCMs with it. to record and compare the whole tree states ef- ficiently. Unlike traditional source code control Among interesting things that it does are: systems, its data structures are not geared to- ward recording changes between revisions, but for making it efficient to retrieve the state of in- 1. giving a quick whole-tree diff, dividual revisions. 2. quick, simple, stupid-but-safe merge, The unit in git storage is an object. It records: 3. facilitating e-mail based patch exchange workflow, and • blob – the contents of a file (either the 4. helping to pin-point the change that caused contents of a regular file, or the path a particular bug by a bisection search in pointed at by a symbolic link). the development history. • tree – the contents of a directory, by recording the mapping from names to ob- The core git functionality is implemented as a jects (either a blob object or a tree object set of programs to allow higher-layer systems that represents a subdirectory). -
Version Control Key Points ======
Version Control Key Points ========================== Mike Jackson, The Software Sustainability Institute. This work is licensed under the Creative Commons Attribution License. Copyright (c) Software Carpentry and The University of Edinburgh 2012. See http://software-carpentry.org/license.html for more information. Derived from Chris Cannam's original at, https://code.soundsoftware.ac.uk/projects/easyhg/wiki/SC2012BootcampPl an. .. Written in reStructuredText, http://docutils.sourceforge.net/rst.html. Prerequisites ------------- Mercurial, BitBucket. Introduction ------------ Cover VersionControl.ppt, slides 1-2. Use Mercurial command-line. EasyMercurial GUI as a visually appealing alternative - once the concepts are understood. Create a repository directory and add a file -------------------------------------------- hg and Mercury. Set an editor for providing commit messages e.g. nano. :: export EDITOR=nano Or xemacs :: export EDITOR=xemacs Or vi. :: export EDITOR=vi Create repository. :: hg init hg status file.txt "?" means repository does not know about it. :: hg add file.txt hg status file.txt "A" means repository has scheduled it for addition but not yet added it. :: hg commit file.txt abort: no username supplied message /home/user/.hgrc file contains common settings. :: [ui] username = Boot Camp <[email protected]> :: hg commit file.txt Commit message records "why" changes were made. "made a change" messages are redundant. "Commit 1, 2..." messages are redundant. Messages must have meaning to others who may read them (or the original author 6 months from now). :: hg status file.txt No information means repository knows about it and it's up-to-date. .hgignore can record files to ignore e.g. ~ files, .o files, .class files etc. :: syntax: glob *~ Add to repository. -
Invisible Crowds in Cyberspace
Invisible Crowds in Cyberspace: Mapping the Social Structure of the Usenet1 Marc A. Smith University of California, Los Angeles Published in: Smith, Marc. “Invisible Crowds in Cyberspace: Measuring and Mapping the Social Structure of USENET” in Communities in Cyberspace: Perspectives on New Forms of Social Organization.. London, Routledge Press, 1999 SURVEYING SOCIAL CYBERSPACES The Usenet is a quintessential Internet social phenomenon: it is huge, global, anarchic and rapidly growing. It is also mostly invisible. Although, it is the largest example of a conferencing or discussion group system,2 the tools generally available to access it only display leaves and branches - chains of messages and responses. None present the trees and forest. With hundreds of thousands of new messages every day, it is impossible to try to read them all to get a sense of the entire place. As a result, an overview of activity in the Usenet has been difficult to assemble and many basic questions about its size, shape, structure and dynamics have gone unanswered. How big is the Usenet? How many people post? Where are they from? When and where do they post? How do groups vary from one another and over time? How many different kinds of groups are there? How many groups successfully thrive and how many die? What do the survivors have that the others lack? How do different social cyberspaces connect and fit together and form a larger ecology? There is no shortage of questions. But we lack a historical record of the transformations of social cyberspaces3 just at the point when network interaction media are being widely adopted. -
Hg Mercurial Cheat Sheet Serge Y
Hg Mercurial Cheat Sheet Serge Y. Stroobandt Copyright 2013–2020, licensed under Creative Commons BY-NC-SA #This page is work in progress! Much of the explanatory text still needs to be written. Nonetheless, the basic outline of this page may already be useful and this is why I am sharing it. In the mean time, please, bare with me and check back for updates. Distributed revision control Why I went with Mercurial • Python, Mozilla, Java, Vim • Mercurial has been better supported under Windows. • Mercurial also offers named branches Emil Sit: • August 2008: Mercurial offers a comfortable command-line experience, learning Git can be a bit daunting • December 2011: Git has three “philosophical” distinctions in its favour, as well as more attention to detail Lowest common denominator It is more important that people start using dis- tributed revision control instead of nothing at all. The Pro Git book is available online. Collaboration styles • Mercurial working practices • Collaborating with other people Use SSH shorthand 1 Installation $ sudo apt-get update $ sudo apt-get install mercurial mercurial-git meld Configuration Local system-wide configuration $ nano .bashrc export NAME="John Doe" export EMAIL="[email protected]" $ source .bashrc ~/.hgrc on a client user@client $ nano ~/.hgrc [ui] username = user@client editor = nano merge = meld ssh = ssh -C [extensions] convert = graphlog = mq = progress = strip = 2 ~/.hgrc on the server user@server $ nano ~/.hgrc [ui] username = user@server editor = nano merge = meld ssh = ssh -C [extensions] convert = graphlog = mq = progress = strip = [hooks] changegroup = hg update >&2 Initiating One starts with initiate a new repository. -
Bazaar, Das DVCS
Bazaar, das DVCS Marek Kubica 20. November 2008 Marek Kubica Bazaar, das DVCS Vorweg ein paar Infos Mit was ich so spiele Bazaar in der Arbeit Mercurial für Python-Projekte Git für den Rest Welche Spielzeuge lass ich links liegen CVS wozu noch wo es SVN gibt? SVN wozu noch wenn es DVCS gibt? darcs lohnt sich nicht mehr monotone, codeville, arch obsolete das selbsgehackte, tolle DVCS deines Nachbarn ;) Marek Kubica Bazaar, das DVCS Geschichte In the beginning, there was GNU Arch Marek Kubica Bazaar, das DVCS GNU Arch Die Anfänge von DVCS CVS stinkt, wir brauchen was besseres SVN ist Evolution, keine Revolution GNU Arch war das erste DVCS mit dem ich in Kontakt kam (larch) fürchterlich kompliziert wurde dann von tla ersetzt immer noch fürchterlich Canonical hat tla 1.2 geforkt und Bazaar, baz genannt Paralell dazu: revc = Arch 2.0 Marek Kubica Bazaar, das DVCS Baz als Rettung? Von heiÿen Kartoeln baz war in C Was passiert: Canonical ruft Bazaar-NG ins Leben, bzr, lässt baz fallen Bazaar-NG wird in Bazaar umgetauft baz ist tot, tla ist tot, larch ist tot, revc ist bedeutungslos Hurra, GNU Arch ist endlich tot, es lebe bzr! Marek Kubica Bazaar, das DVCS bzr, der Retter Was bietet Bazaar? in Python geschrieben, mit einigen Speedups in Pyrex (C) reguläre Releases (quasi jeden Monat) Einfache Bedienung Meist ausreichende Performance Umfangreiche Dokumentation: Programmmeldungen, Manpages, Wiki, IRC-Channel (wenn man Geduld hat) Flexible Einsatzmöglichkeiten (verschiedene Workows) 1 Git mit Bazaar simulieren 2 SVN in Bazaar nachbauen (für Nostalgiker) freier Hoster wo man Code hochladen kann (Launchpad) Marek Kubica Bazaar, das DVCS Zeitleiste 2005 war eine aufregende Zeit 26. -
Adopting a Collaborative Software Development Process in the Scientific Community
Adopting a Collaborative Software Development Process in the Scientific Community NOAA's 32nd Climate Diagnostics and Prediction Workshop (CDPW) Mike Charles DOC/NOAA/NWS/NCEP/CPC Motivation To advocate improved software development and project management techniques, including collaborative software development and the use of project management software. Who does this apply to? • Universities • Government • Private sector • Any software developers From now on, for the sake of brevity, "collaborative work" will include use of project management software. Disadvantages of Non- Collaborative Work Non-Collaborative Work A developer works alone • Work goes unchecked by others • If the owner leaves, nobody knows how the software works • There are no ideas contributed by others during development Non-Collaborative Work A developer doesn't log changes • Hard to revert to a previous version of the code • Can't remember what they did last week • Can't tell why a specific change was made Non-Collaborative Work A developer doesn't create documentation • Hard for others to adopt code • Hard for backup code owners to fix bugs and/or run code • Hard to share code with others Advantages of Collaborative Work Collaborative Work How should developers be working? • Collaboration - Working with others leads to more ideas and creativity, and more QCing of code • Tracking Changes - Using revision control software, tracking changes to code and keeping a log makes it easier to revert to older versions of the code, and keep track of work • Documentation - Creating -
WHY USE a WIKI? an Introduction to the Latest Online Publishing Format
WHY USE A WIKI? An Introduction to the Latest Online Publishing Format A WebWorks.com White Paper Author: Alan J. Porter VP-Operations WebWorks.com a brand of Quadralay Corporation [email protected] WW_WP0309_WIKIpub © 2009 – Quadralay Corporation. All rights reserved. NOTE: Please feel free to redistribute this white paper to anyone you feel may benefit. If you would like an electronic copy for distribution, just send an e-mail to [email protected] CONTENTS Overview................................................................................................................................ 2 What is a Wiki? ...................................................................................................................... 2 Open Editing = Collaborative Authoring .................................................................................. 3 Wikis in More Detail................................................................................................................ 3 Wikis Are Everywhere ............................................................................................................ 4 Why Use a Wiki...................................................................................................................... 5 Getting People to Use Wikis ................................................................................................... 8 Populating the Wiki................................................................................................................. 9 WebWorks ePublisher and Wikis