Project Management. Overview

Similar documents
2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

CSC 2700: Scientific Computing

Welcome! Virtual tutorial starts at 15:00 GMT. Please leave feedback afterwards at:

A BASIC UNDERSTANDING OF VERSION CONTROL

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson

Topics covered. Introduction to Git Git workflows Git key concepts Hands on session Branching models. Git 2

Version Control Systems (VCS)

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019

Revision Control and GIT

Version control CSE 403

Version Control. Kyungbaek Kim. Chonnam National University School of Electronics and Computer Engineering. Original slides from James Brucker

Tools for software development:

Subversion Repository Layout

Ingegneria del Software Corso di Laurea in Informatica per il Management (D)VCS. Davide Rossi Dipartimento di Informatica Università di Bologna

Software Development I

Introduction to Git and Github

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018

Fundamentals of Git 1

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management

Version control system (VCS)

Version Control Systems (Part 1)

Version Control Systems

Version Control System - Git. zswu

Source Code Management

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

[Software Development] Development Tools. Davide Balzarotti. Eurecom Sophia Antipolis, France

Version Control. CSC207 Fall 2014

Laboratorio di Programmazione. Prof. Marco Bertini

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects.

M E R C U R I A L (The Source Control Management)

Git tutorial. Katie Osterried C2SM. October 22, 2015

Using Git to Manage Source RTL

COSC345 Software Engineering. Version Control

Revision control. INF5750/ Lecture 2 (Part I)

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018

Manage quality processes with Bugzilla

Review Version Control Concepts

Version control with Git.

Git & Github Fundamental by Rajesh Kumar.

Version Control. Version Control

Version control CSE 403

Versioning. Terms. Configuration item (CI) Version Configuration Management aggregate Configuration Baseline

Software Systems Design. Version control systems and documentation

Software Project (Lecture 4): Git & Github

Git and GitHub. Dan Wysocki. February 12, Dan Wysocki Git and GitHub February 12, / 48

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

Introduction to Revision Control

CSE 374 Programming Concepts & Tools. Hal Perkins Winter 2012 Lecture 16 Version control and svn

An Introduction to Subversion

TDDC88 Lab 4 Software Configuration Management

Computer Science Design I Version Control with Git

Part I Part 1 Version Control Systems (VCSs)

Git better. Collaborative project management using Git and GitHub. Matteo Sostero March 13, Sant Anna School of Advanced Studies

Common Configuration Management Tasks: How to Do Them with Subversion

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU


Part I Part 1 Version Control Systems (VCSs)

Git for Subversion users

Version Control Systems

Version Control Systems

Push up your code next generation version control with (E)Git

Revision Control. An Introduction Using Git 1/15

Introduction to Version Control

February 2 nd Jean Parpaillon

JetBrains TeamCity Comparison

CS 320 Introduction to Software Engineering Spring February 06, 2017

CS 390 Software Engineering Lecture 3 Configuration Management

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy

Revision control systems (RCS) and. Subversion

! #Running this command from the top directory of your project will add all your changes."! $ git add."

Part I Part 1 Version Control Systems (VCSs)

Git: Distributed Version Control

Git for Version Control

Part I Part 1 Version Control Systems (VCSs)

Part I Part 1 Version Control Systems (VCSs)

Outline. Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network

Version Control Systems: Overview

CS108, Stanford Handout #37. Source Control CVS

AIS Grid School 2015

Software Tools Subversion

Assumptions. GIT Commands. OS Commands

Outline. Introduction to Version Control Systems Origins of Git Git terminology & concepts Basic Git commands Branches in Git Git over the network

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong

Git! Fundamentals. IT Pro Roundtable! June 17, 2014!! Justin Elliott! ITS / TLT! Classroom and Lab Computing!! Michael Potter!

Visualizing Git Workflows. A visual guide to 539 workflows

Version control CSE 403

Programming with Haiku

Welcome! Virtual tutorial will start at 15:00 GMT. Please leave feedback afterwards at:

Practical C Programming

Version Control System GIT

Chapter 3. Revision Control

CSE 390 Lecture 9. Version control and Subversion (svn)

Source Code Management wih git

Version Control for the 2- Pizza Team: Merge Conflicts (ELLS 9.5) Armando Fox

Version Control: Gitting Started

DEAD-SIMPLE VERSION CONTROL FOR YOUR TEAM GIT WITH MATTHEW REIDSMA GRAND VALLEY STATE UNIVERSITY

What is version control? (discuss) Who has used version control? Favorite VCS? Uses of version control (read)

Distributed Version Control

Workshop: High-performance computing for economists

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017

Transcription:

Project Management Overview How to manage a project? What is software configuration management? Version control systems Issue tracking systems N. Meng, L. Zhang 2 1

What is Project Management? Effective project management focuses on the 4 P s: People: the most important element recruiting, training, performance management Product: the software to build Project objectives, scope, alternative solutions Process: define activities and tasks involved Milestones, work products, QA points Project: progress control Planning, monitoring, controlling N. Meng, L. Zhang 3 The First Law No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle. Bersoff, et al, 1980 N. Meng, L. Zhang 4 2

What Are These Changes? changes in business requirements changes in technical requirements changes in user requirements other documents Project Plan software models Test code data N. Meng, L. Zhang 5 Software Configuration Management (SCM) Definition The task of tracking and controlling changes in software SCM repository tools that allow developers to effectively manage changes Version control system Issue tracking system N. Meng, L. Zhang 6 3

Version Control System What Is Version Control System? VCS, also known as Revision Control System To manage changes to documents, programs, large websites, and other collections of information CVS, SVN, Mercurial, GIT N. Meng, L. Zhang 8 4

What Do We Mean by Manage Changes? What changes have been made? Why are the changes made? Who makes the changes? Can we redo/undo some changes? Can we branch the project? N. Meng, L. Zhang 9 Subversion Version Control System (SVN) 5

Subversion Repository Layout One SVN server can hold many repositories One repository can hold many projects One project contains Trunk: Main line of development Tags: Markers to highlight notable revisions major releases Branches: Side lines of development Root Project 1 trunk tags branches Project 2 trunk tags branches N. Meng, L. Zhang 11 Each project has multiple revisions 0 1 2 3 Each revision is assigned a name Revision number is incremented for every commit transaction Delta (diff) information is recorded N. Meng, L. Zhang 12 6

Basic Features of a Repository Keep the history of all changes to files and directories You can add in new versions You can recover any previous version Access control Read/write permission for users Logging Author, date, and reason for a change N. Meng, L. Zhang 13 Typical Workflow client (do some work, Create repository (only once) Initial checkout (empty directory) server add files under control) (do some work) Check status Initial check in Follow-up check in Update Send latest versions on record N. Meng, L. Zhang 14 7

Diff Branch Merge Additional Features N. Meng, L. Zhang 15 Diff To display the differences between two revisions What has been changed? Add or delete a line of text No update, or move Version 1: Version 2: x = 0; x = 1; y = 1; y = 1; Diff: - x = 0; + x = 1; N. Meng, L. Zhang 16 8

Key Points about Diff A key operation of version control systems A lot of features are based on diff Save new versions Recover a prior version Patch We use Diff(v1, v2) to represent changes on v1 for v2 Diff(v1, v2)!= Diff(v2, v1) N. Meng, L. Zhang 17 Diff: a Real Example Start line in the old version Start line in the new version svn diff r v1:v2 filename + : added lines, - : deleted lines Some unchanged lines are shown to indicate program context N. Meng, L. Zhang 18 9

Changes Detected by Diff Addition/Deletion of directories Addition/Deletion of files A renamed file is reported as a separate addition and a separate deletion Addition/Deletion of lines N. Meng, L. Zhang 19 Branch Scenario You deliver a great product to your customers: REL-1.0.0 Your development team continue adding new features on the trunk Customers report a major bug in the product and ask for a fix What do you do? N. Meng, L. Zhang 20 10

Branch and patch separately! RELEASE 1.0.0 BUGFIX_BRANCH svn copy path/to/trunk path/to/branch N. Meng, L. Zhang 21 Other reasons to branch Separate branches for Tentative new features Different products Different teams Different releases Where to put the major development, branch, trunk, both? N. Meng, L. Zhang 22 11

Pros and Cons of Branch Pros Separation of concerns among teams and developers Parallel version history without interference between branches Cons Branches may diverge a lot Hard to propagate changes across branches N. Meng, L. Zhang 23 Merge Scenario After fixing the major bug on a branch, you have to apply the same/similar changes to the trunk What do you do? N. Meng, L. Zhang 24 12

Merge back the patch! RELEASE 1.0.0 BUGFIX_BRANCH 267 RELEASE 1.0.1 Merge back svn merge reintegrate path/to/branch N. Meng, L. Zhang 25 What can happen when merging? Conflict Two people edit the same file Resolve the conflict manually and checked in again N. Meng, L. Zhang 26 13

Distributed Version Control: GIT Everyone has their own local version control repository Like a local branch of the project Remote updates and commits are like branch merge Local commits used to backup projects Github allows developers to contribute by working on branches N. Meng, L. Zhang 27 Centralized VC vs. Distributed VC[1] Central Server Remote Server N. Meng, L. Zhang 28 14

Git Initialization [1] C:\> mkdir CoolProject C:\> cd CoolProject C:\CoolProject > git init Initialized empty Git repository in C:/ CoolProject/.git C:\CoolProject > notepad README.txt C:\CoolProject > git add. C:\CoolProject > git commit - m 'my first commit' [master (root- commit) 7106a52] my first commit 1 file changed, 1 insertion(+) create mode 100644 README.txt C:\CoolProject > git remote add origin remote repository URL # Sets the new remote C:\CoolProject > git push origin master # Pushes the changes in your local repository to the remote repository N. Meng, L. Zhang 29 Git Branch & Merge [1] A master > git commit m my first commit 15

Branches Illustrated [1] A B C master > git commit (x2) Branches Illustrated [1] A B C master bug123 > git checkout b bug123 16

Branches Illustrated A B C master D E bug123 > git commit (x2) Branches Illustrated A B C master D E bug123 > git checkout master 17

Branches Illustrated A B C D E master bug123 > git merge bug123 Branches Illustrated A B C D E master 18

Tips for Version Control Small commits Check in logically relevant changes as a commit Write meaningful commit messages Facilitate change understanding, applying, and reverting Avoid commit noise Commit compliable or even deliverable code N. Meng, L. Zhang 37 Issue Tracking System 19

What Is Issue Tracking System? ITS, also known as trouble ticket system, support ticket, request management, or incident ticket system Manages and maintains lists of issues, as needed by an organization To create, update, and resolve reported issues by customers or developers Bugzilla, JIRA N. Meng, L. Zhang 39 What Do We Mean by Issues? A unit of work to accomplish an improvement in a system It could be a bug a requested feature a patch missing documentation, N. Meng, L. Zhang 40 20

Why Do We Need Issue Tracking? Developers need communication while making changes Mailing List Hard to manage, come with all other mails Not well organized Forum Categorized by topic Notify people when a reply is posted No track to code and issue status N. Meng, L. Zhang 41 What Is Included in An Issue? N. Meng, L. Zhang 42 21

Basic Features Structurally describe issues Solving status, severity levels Track status of the issue Assign a unique ID to each issue Some system automates connection between commit and issue via issue ID N. Meng, L. Zhang 43 Typical Workflow Requester: Opens an issue I100 Issue Tracking System I100 Somebody: reopens the issue again because it was not solved successfully Triager: Assigns a developer I100 Developer: investigates the issue and tries to solve it Developer: closes the issue N. Meng, L. Zhang 44 22

Resolution of An Issue Fixed A bug is fixed, a feature is added, a patch is applied Invalid Bug cannot be reproduced, features do not make sense, patch is not correct Duplicate It is a duplicate of an existing issue Get merged with the other issue N. Meng, L. Zhang 45 Resolution of An Issue Won t fix The developers decide not to fix the bug or accommodate the new feature Limited human resource, lack of essential information to reproduce a bug, lack of expertise N. Meng, L. Zhang 46 23

Issue Tracking & Version Control Many project hosting websites include issue tracking systems Google Code Github BitBucket Sourceforge N. Meng, L. Zhang 47 Reference [1] Mark Groves, Introducing Git version control into your system, PPT N. Meng, L. Zhang 48 24