CodeBreaker Decentralized, cooperative and flexible support for extreme programming software development Nelson Baloian Roberto Konow Francisco Claude.

Slides:



Advertisements
Similar presentations
Week 2 DUE This Week: Safety Form and Model Release DUE Next Week: Project Timelines and Website Notebooks Lab Access SharePoint Usage Subversion Software.
Advertisements

Making the System Operational
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Software Configuration Management (SCM) Software Configuration Management (SCM) is a) the development and b) the application of standards and procedures.
Version Control, Revision Control Software Configuration Management.
Summer of Code (SOC) Presentation Fred R McClurg Girish H Mhatre Version Control Overview.
1 The IIPC Web Curator Tool: Steve Knight The National Library of New Zealand Philip Beresford and Arun Persad The British Library An Open Source Solution.
Version Control What it is and why you want it. What is Version Control? A system that manages changes to documents, files, or any other stored information.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
CSE 331 SOFTWARE DESIGN & IMPLEMENTATION VERSION CONTROL UW Autumn 2011.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
Presented by IBM developer Works ibm.com/developerworks/ 2006 January – April © 2006 IBM Corporation. Making the most of Creating Eclipse plug-ins.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Proxy Design Pattern Source: Design Patterns – Elements of Reusable Object- Oriented Software; Gamma, et. al.
SubVersioN – the new Central Service at DESY by Marian Gawron.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Version control Using Git 1Version control, using Git.
Introduction To System Analysis and design
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Software Engineering Modern Approaches
Sumedha Rubasinghe October,2009 Introduction to Programming Tools.
Introduction to Version Control
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Recap (önemli noktaları yinelemek) from last week Paradigm Kay’s Description Intro to Objects Messages / Interconnections Information Hiding Classes Inheritance.
CVS 簡介 數位芝麻網路公司蔡志展 2001/8/18 大綱 • CVS 簡介 • CVS 安裝 • CVS 設定 (Linux/Windows) • CVS 指令簡介 • CVS 多人環境的應用.
Version control Using Git Version control, using Git1.
1 SEG4912 University of Ottawa by Jason Kealey Software Engineering Capstone Project Tools and Technologies.
2010. The Subversion Dilemma Check in buggy code and drive everyone else crazy Avoid checking it in until it’s fully debugged or.
…using Git/Tortoise Git
Database Change Management One solution to an often complex problem Kevin Hurwitz Headspring Systems
IBM Software Group ® Overview of SA and RSA Integration John Jessup June 1, 2012 Slides from Kevin Cornell December 2008 Have been reused in this presentation.
Subversion (SVN) A Revision Control System Successor to CVS Carlos Armas Hervey Allen.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 7: BPEL Some notes selected from.
Chapter 6 Introduction to Defining Classes. Objectives: Design and implement a simple class from user requirements. Organize a program in terms of a view.
CSC 4700 Software Engineering
® IBM Software Group © 2009 IBM Corporation Essentials of Modeling with IBM Rational Software Architect V7.5 Module 17: Team Modeling.
CodeBreaker Decentralized, cooperative and flexible support for extreme programming software development Nelson Baloian Roberto Konow Francisco Claude.
Features INTERFACE  Bug/issue view – the main window for working with separate bugs;  Search view – used for ad-hoc full-text search and narrowing.
Object orientation and Packaging in Java Object Orientation and Packaging Introduction: After completing this chapter, you will be able to identify.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
Building Preservation Environments with Data Grid Technology Reagan W. Moore Presenter: Praveen Namburi.
IBM Academic Initiative JazzHub Overview John Schilt Lead, IBM Academic Initiative Australia / New Zealand UNSW and IET (Young Professionals)
 Project Team: Suzana Vaserman David Fleish Moran Zafir Tzvika Stein  Academic adviser: Dr. Mayer Goldberg  Technical adviser: Mr. Guy Wiener.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
BOF-1147, JavaTM Technology and WebDAV: Standardizing Content Management Java and WebDAV Juergen Pill Team Leader Software AG Remy Maucherat Software Engineer.
These materials are prepared only for the students enrolled in the course Distributed Software Development (DSD) at the Department of Computer.
CodeBreaker Decentralized, cooperative and flexible
Version control, using Git
Enterprise Computing Collaboration System Example
Chapter 6 Database Design
Concurrent Version Control
FileSpot Collaborative File Manager
Teaching slides Chapter 1.
Design and Programming
GitHub A Tool for software collaboration James Skon
Software Construction
Version Control CS169 Lecture 7 Prof. Aiken CS 169 Lecture 7 1.
Classes, Objects and Methods
The COSMO Coding Standards Some Highlights
OBJECT STORAGE AND INTEROPERABILITY
CodeBreaker Decentralized, cooperative and flexible
Presentation transcript:

CodeBreaker Decentralized, cooperative and flexible support for extreme programming software development Nelson Baloian Roberto Konow Francisco Claude Cristian Tala

The Problem Juanita Pedro

* Extreme Programming? *

* Extreme Programming * Program as fast as you can Simple Designs Pair Programming Small Releases Beta testing Team Communication

Available Technologies Version Control Systems  CVS  Subversion  Etc... Collaborative Environments  IBM Rational ClearCase  TUKAN File Level permissions Central Repository Synchronous/Asynchronous Central/Distributed Repository Expensive Many Developers

“Breaking” The code A.java String sint d Method zMethod y

“Breaking” The code A.java String sint d B.java Method zMethod y Method HMethod v

“Breaking” The code

Requirements Work on a peer-to-peer architecture without having a central repository. Allow synchronous and asynchronous collaborative working (including synchronization of the code). Allow the inclusion of new unforeseen participants. Allow fine grained and logical oriented locking of code.

Logical Locking Every File, Class, Method or Logical Object must have an owner. Every Logical Object is locked to everyone except the owner. The locking is done over a name of a class or interface, a method inside a class or a class variable. (Fine Grained Locking) Automatically locking the inherited classes of a locked class. (Extended classes, Implementation of Interfaces, etc) It is possible to lock code which still not exists

Coordination Rules The Coordination Rules are necessary to maintain the development in order. Two kind of Files:  Accepted Java Files The “final” and revised java files.  Temporary Java Files Files being changed by another users.

Coordination Rules Participant “Pedro” is not available. Participant “Juanita” Needs to modify something in the definition file of Object E.

Coordination Rules “Juanita” Changes part of the code in object E. A Temporary Java File is created.

Coordination Rules “Pedro” goes online and receives the changes made by “juanita”. “Pedro” can Accept or Reject the changes made.

Coordination Rules “Pedro” accepts the changes and the modified java file is now an “accepted java file”.

* File System Architecture * Accepted Java Files : This layer contains the Java files with that where accepted by their owner. It is used to create distributions of the software, giving an alternative to build a patched version also, including code that has not been accepted yet. The files are stored as normal java files of a NetBeans project. Temporary Files : Those are the copy made for every java file containing modifications which are still not approved by the owner of the code XML Files : There is an XML for every Java file containing the information about the owner, permissions and information needed for the merging phase. The Emulated File System: Is the logical layer that manages the logical access to the physical files and presents the information about which part of the code is owned by which user and whether the local code has been approved or released by the owner. For this, it uses the information stored in the XML files. It also implements a transparent file system for the user merging the temporary files with the accepted ones when corresponds.

* The XML File * name : The name of the entity. owner : user that owns this object. rev : the version of this object, incrementing in one for every modification made or accepted by the owner. modified : a boolean variable that allows to know if a certain object has been modified by a user that has not the rights. umod : user that modified the file without permission. uver : the version created by the user that is making the modifications without owning the object itself. srcid : a description of the object that allows to distinguish for example two methods with the same name but different arguments. type : if the object is a variable, method, class, etc.

Synchronization Peer to peer JXTA/ /pen drive XML FILE

class Test { // fields... // methods... } Java FileXML File Transform... The Variables owner, srcid, user modification and user version are assigned in the xml file, including all the java source file information.

XML File XML File 1 Compare XML Transfer File

Types of Differences: Modification: Changes in the source code or the owner. DeleteClass: Deletes a Class DeleteMethod: Deletes a Method Delete Field: Deletes a Field NewMethod: Creates a new Method NewField: Creates a new Field NewClass Creates a new Class XML Transfer File

Scenarios of usage Development of Extreme Programming Projects with small teams. Development of small Spontaneous Ideas outside the working area. (i.e: Coffee Shop) Development of medium-sized projects without having a fixed development team and a fixed physical work area. Support for development teams where members are constantly changing roles. Teaching resource, for introductory courses of Java. (Using the Pair Programming capabilty)

CodeBreaker is: Synchronized/Asynchronized development tool FineGrained and logical blocking of the code Support for Extreme Programming teams Support for Pair-Programming. Controlled permissions of the code for the developers with flexibility for special cases. Peer-to-peer Network Easy to install and use (Netbeans plugin)

Thank You Q&A