Software LEIC/LETI. Lecture 1

Size: px
Start display at page:

Download "Software LEIC/LETI. Lecture 1"

Transcription

1 Software LEIC/LETI Lecture 1

2 António Rito Silva Francisco Regateiro David Duarte es18-alameda.slack.com

3 Logistics

4 Classes

5

6 Lectures

7 The concepts and real examples

8 Focussed on what is going on with the project

9 Interrupt me!

10 Laboratories

11 Size complexity

12 Technology to manage complexity maven, git,

13 Teacher is a facilitator

14 Helps in project management

15 Project

16 Project to learn, exam to assess

17 Groups

18 Groups of 6

19 Enrolment during the labs

20 Office Hours

21 António Rito Silva Monday from 15:30 to 19:15 in room 535 INESC-ID

22 Grading

23 Tests - 70% (min 9.0 out of 20) (10/4, 16/6, 7/7) 50% theory 50% project Project - 30% (min 8.0 out of 20) divided into 5 parts

24 Final Grade = if E < 9.0 then RE if P < 8.0 then RE if (0,7E + 0,3P) < 9.5 then RE else ROUND(0,7E + 0,3P)

25 Bibliography

26

27

28 and

29 articles on the internet

30 and

31 ( integrates concepts and interrelates with internet sources)

32 Secondary

33 Code Complete 2: A Practical Handbook of Software Construction 2nd Edition [Paperback] Steve McConnell 2004

34 Introdução à Engenharia de Software Sérgio Guerreiro FCA 2015

35 Goals

36 An introduction to software engineering further developed in the MSc

37 Present the different areas from requirements to code

38 Integrate what you have learned so far in the context of building software artefacts from computer science to engineering

39 Motivate the different dimensions of software engineering from technology to human

40 Software development as a collaborative activity the course project

41 What is software engineering?

42 Some definitions

43 Software engineering is an engineering discipline that is concerned with all aspects of software production Ian Sommerville

44 The purpose of software engineering is to develop software-based systems that let customers achieve business goals Ivan Marsic

45 Software Engineering is the branch of computer science that creates practical, cost-effective solutions to computing and information processing problems, preferably, by applying scientific knowledge, and developing software systems in the service of mankind Mary Shaw

46 Software engineering is about methods, tools and techniques used for developing software Douglas Bell

47 The goal of software engineering (...) is the creation of software systems that meet the needs of customers and are reliable, efficient, and maintainable. In addition, the system should be produced in an economical fashion, meeting project schedules and budgets Eric J. Braude and Michael E. Bernstein

48 The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software The IEEE's definition

49 So

50 Build software artefacts

51 Achieve business goals

52 Execute on top of the Turing machine

53 Maximize value

54 Minimize cost

55 It is engineering!

56 Project Adventure Builder

57 Component View : Tax Database : Browser interacts with interacts with : Browser : Browser interacts with : Tax Application Server interacts with interacts with interacts with : Broker Application Server interacts with interacts with interacts with interacts with : Broker Database interacts with : Browser : Bank Application Server : Activity Application Server : Car Application Server : Hotel Application Server interacts with : Browser interacts with interacts with interacts with interacts with : Bank Database : Activity Database : Car Database : Hotel Database

58 Allocate modules to components : Browser : Browser : Browser bank interacts with activity interacts with car interacts with executes the code : Bank Application Server executes the code : Activity Application Server executes the code : Car Application Server interacts with interacts with interacts with : Bank Database : Activity Database : Car Database : Browser : Browser : Browser hotel interacts with broker interacts with tax interacts with executes the code : Hotel Application Server executes the code : Broker Application Server executes the code : Tax Application Server interacts with interacts with interacts with : Hotel Database : Broker Database : Tax Database

59 Bank Module * Operation 1 String reference OperationType type int value DateTime time 1 Bank * String code String name 1 Client String ID String name 1 * * Account String IBAN int balance

60 Activity Module ActivityProvider 1 * Activity 1 * ActivityOffer 1 * Booking String name String code String name String code int minage int maxage int capacity LocalDate begin LocalDate end int capacity String reference

61 Hotel Module Hotel 1 * Room 1 * Booking String code String name String number RoomType type String reference LocalDate arrival LocalDate departure

62 Car Module Rent-A_Car 1 * Vehicle 1 * Renting String name String code String plate int kilometers String reference String drivinglicense LocalDate begin LocalDate end int kilometers Car Motorcycle

63 Broker Module Broker String code Sting name 1 * Adventure String ID LocalDate begin LocalDate end int age String IBAN int amount String bankpayment String roombooking String activitybooking 1 1 AdventureState int raeerrors InitialState PayedState ConfirmedState CanceledState

64 Tax Module IRS 1 1 * TaxPayer String NIF String name String address 2 {1 Seller, 1 Buyer} * Invoice String reference float value float IVA LocalDate date * Seller Buyer 1 * ItemType int tax

65 Iterative Development

66 Single Process : Java Virtual Machine broker tax car bank hotel activity

67 Client + Database : Java Virtual Machine broker tax car bank hotel activity interacts with : Adventures Database

68 Application Servers broker executes the code : Broker Application Server interacts with : Broker Database activity bank executes the code executes the code : Bank Application Server : Activity Application Server : Hotel Application Server executes the code interacts with interacts with interacts with : Bank Database : Activity Database : Hotel Database car executes the code : Car Application Server : Tax Application Server interacts with executes the code tax interacts with : Tax Database : Car Database

69 Complete Integration : JMeter tests tests tests tests tests tests : Tax Database : Browser interacts with interacts with : Browser : Browser interacts with : Tax Application Server interacts with interacts with interacts with : Broker Application Server interacts with interacts with interacts with interacts with : Broker Database interacts with : Browser : Bank Application Server : Activity Application Server : Car Application Server : Hotel Application Server interacts with : Browser interacts with interacts with interacts with interacts with : Bank Database : Activity Database : Car Database : Hotel Database

70 Git distributed version control system

71 the team is coding Git distributed version control system

72 the team is coding several versions of the same files Git distributed version control system

73 Artefact Versioning V0 V1 V2 V3

74

75 suporta versões

76 suporta versões suporta versões

77 Example: Create a file

78 Starting with a central repo Origin repository 8c2c

79 Developers clone from origin Origin repository 8c2c Dev-A repository 8c2c git clone <repository-url> Dev-B repository 8c2c

80 Lets name things Origin repository 8c2c master Dev-A repository 8c2c origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

81 Dev-A: create HelloWorld.java Origin repository 8c2c master Dev-A repository 8c2c HelloWorld.java origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

82 Dev-A: create HelloWorld.java Origin repository 8c2c master Dev-A repository 8c2c HelloWorld.java [untracked] origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

83 Dev-A: stage HelloWorld.java Origin repository 8c2c master git add HelloWorld.java Dev-A repository 8c2c HelloWorld.java [staged] origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

84 Dev-A: commit Origin repository 8c2c master git commit Dev-A repository 8c2c 901f HelloWorld.java [unmodified] origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

85 Dev-A: sync to origin Origin repository 8c2c 901f master git push Dev-A repository 8c2c 901f origin/master master HEAD Dev-B repository 8c2c origin/master master HEAD

86 ze$ git clone

87 ze$ git clone copy from remote to local and to workspace

88 ze$ git clone ze$ edit README.md copy from remote to local and to workspace

89 ze$ git clone ze$ edit README.md copy from remote to local and to workspace change in workspace

90 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace

91 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace add to staging

92 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace add to staging ze$ git commit -m add ze info"

93 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace add to staging ze$ git commit -m add ze info" create version in local

94 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace add to staging ze$ git commit -m add ze info" create version in local ze$ git push origin master

95 ze$ git clone ze$ edit README.md ze$ git add README.md copy from remote to local and to workspace change in workspace add to staging ze$ git commit -m add ze info" create version in local ze$ git push origin master create version in remote

96 ze$ edit README.md

97 ze$ edit README.md change in Zé workspace

98 ze$ edit README.md mia$ edit README.md change in Zé workspace

99 ze$ edit README.md mia$ edit README.md change in Zé workspace change in Mia workspace

100 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md

101 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging

102 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging ze$ git add README.md

103 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging ze$ git add README.md add to Zé staging

104 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" ze$ git add README.md

105 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local ze$ git add README.md

106 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin ze$ git add README.md

107 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git add README.md

108 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git add README.md ze$ git commit -m add Ze info"

109 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md

110 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin

111 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin error - your local version is outdated

112 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin error - your local version is outdated

113 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin error - your local version is outdated merge remote version of Mia with local version of Zé

114 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md error - your local version is outdated merge remote version of Mia with local version of Zé

115 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts

116 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts

117 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts add to Zé staging

118 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts add to Zé staging ze$ git commit -m add merge with

119 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts add to Zé staging ze$ git commit -m add merge with create merged version in Zé local

120 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts add to Zé staging ze$ git commit -m add merge with ze$ git push origin create merged version in Zé local

121 ze$ edit README.md change in Zé workspace mia$ edit README.md change in Mia workspace mia$ git add README.md add to Mia staging add to Zé staging mia$ git commit -m add Mia info" create version in Mia local mia$ git push origin create version in Mia remote ze$ git commit -m add Ze info" create version in Zé local ze$ git add README.md ze$ git push origin ze$ git pull origin ze$ edit README.md ze$ git add README.md error - your local version is outdated merge remote version of Mia with local version of Zé Zé solves conflicts add to Zé staging ze$ git commit -m add merge with create merged version in Zé local ze$ git push origin create merged version in remote

122 Test Commands

123 Further Resources Software Engineering: Global Edition (10 Edition), Ian Sommerville, chapter Centralized workflow model: tutorials/comparing-workflows/centralized-workflow Pro Git, Scott Chacon and Ben Straub. Git: Eclipse EGit User Guide: User_Guide

Software LEIC/LETI. Lecture 3

Software LEIC/LETI. Lecture 3 Software Engineering @ LEIC/LETI Lecture 3 Last Lecture System Build Continuous Integration Today Test Automation Verification and Validation Human Error, Fault, Error, Failure Verification vs Validation

More information

CS 390 Software Engineering Lecture 5 More Git

CS 390 Software Engineering Lecture 5 More Git CS 390 Software Engineering Lecture 5 More Git Reference: Scott Chacon and Ben Straub, Pro Git, published by Apress, available at https://git-scm.com/book/en/v2. Outline Finish local repository Remote

More information

Lab 08. Command Line and Git

Lab 08. Command Line and Git Lab 08 Command Line and Git Agenda Final Project Information All Things Git! Make sure to come to lab next week for Python! Final Projects Connect 4 Arduino ios Creative AI Being on a Team - How To Maximize

More information

A BASIC UNDERSTANDING OF VERSION CONTROL

A BASIC UNDERSTANDING OF VERSION CONTROL A BASIC UNDERSTANDING OF VERSION CONTROL DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU EVER DO THIS? DID YOU

More information

Introduction to Git and Github

Introduction to Git and Github Introduction to Git and Github Computing in Optimization and Statistics: Lecture 1 Jackie Baek MIT January 10, 2017 What is git and GitHub? git is a version control system. Other version control systems

More information

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A:

FAQ Q: Where/in which branch do I create new code/modify existing code? A: Q: How do I commit new changes? A: FAQ Q: Where/in which branch do I create new code/modify existing code? A: We strongly recommend only modifying the source code within the local master branch: Git Repository View Woped repository Branches

More information

Review Version Control Concepts

Review Version Control Concepts Review Version Control Concepts SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Managing change is a constant aspect of software development.

More information

Visualizing Git Workflows. A visual guide to 539 workflows

Visualizing Git Workflows. A visual guide to 539 workflows Visualizing Git Workflows A visual guide to 539 workflows Table of Contents Notation Collaboration Without Review or Branches Merge Conflicts Requesting Code Review Collaboration with Multiple Branches

More information

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow

Tutorial: Getting Started with Git. Introduction to version control Benefits of using Git Basic commands Workflow Tutorial: Getting Started with Git Introduction to version control Benefits of using Git Basic commands Workflow http://xkcd.com/1597/ 2 Tutorial Objectives Fundamentals of how git works Everything you

More information

Branching and Merging

Branching and Merging Branching and Merging SWEN-261 Introduction to Software Engineering Department of Software Engineering Rochester Institute of Technology Version control branching supports the ability to manage software

More information

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng

GIT. CS 490MT/5555, Spring 2017, Yongjie Zheng GIT CS 490MT/5555, Spring 2017, Yongjie Zheng GIT Overview GIT Basics Highlights: snapshot, the three states Working with the Private (Local) Repository Creating a repository and making changes to it Working

More information

Software Project (Lecture 4): Git & Github

Software Project (Lecture 4): Git & Github Software Project (Lecture 4): Git & Github Wouter Swierstra, Atze Dijkstra Feb 2016 Wouter Swierstra, Atze Dijkstra Software Project (Lecture 4): Git & Github Feb 2016 1 / 45 Wouter Swierstra, Atze Dijkstra

More information

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week

Agenda. - Final Project Info. - All things Git. - Make sure to come to lab for Python next week Lab #8 Git Agenda - Final Project Info - All things Git - Make sure to come to lab for Python next week Final Project Low Down The Projects are Creative AI, Arduino, Web Scheduler, ios and Connect 4 Notes

More information

Online Remote Repositories

Online Remote Repositories Online Remote Repositories GitHub and Bitbucket centralized Git repositories for dissemination and collaboration Barry Grant bjgrant@umich.edu http://thegrantlab.org Recap: Client-Server vs Distributed

More information

Software Development I

Software Development I 6.148 Software Development I Two things How to write code for web apps. How to collaborate and keep track of your work. A text editor A text editor A text editor Anything that you re used to using Even

More information

Revision control Advanced git

Revision control Advanced git Revision control Advanced git Waterford Institute of Technology April 30, 2016 John Fitzgerald Waterford Institute of Technology, Revision controladvanced git 1/35 Presentation outline Estimated duration

More information

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

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 17, 2018 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 17, 2018 1 But first, Screen Readers The software you

More information

Object Oriented Programming. Week 1 Part 2 Git and egit

Object Oriented Programming. Week 1 Part 2 Git and egit Object Oriented Programming Part 2 Git and egit Lecture Review of Git Local Repository Remote Repository Using Git from Eclipse Review of Git 3 What is Git? Software Configuration Management (SCM) Supports

More information

Use git rm to remove files from workspace

Use git rm to remove files from workspace More Git: Removing files from the repository Branches, tags, merge conflicts Pull requests CPSC 491 First: Get up to speed from last time Removing files from your workspace Use git rm to remove files from

More information

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017

GETTING STARTED WITH. Michael Lessard Senior Solutions Architect June 2017 GETTING STARTED WITH Michael Lessard Senior Solutions Architect June 2017 Agenda What is Git? Installation of Git Git basis Github First steps with Git 2 WHAT IS GIT? What is Git? Started in 2005 Created

More information

Version Control. Version Control

Version Control. Version Control Version Control Prepared for CS 342 - Software Design by John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

Introduction. Martin Ledvinka. Winter Term 2018

Introduction. Martin Ledvinka. Winter Term 2018 Introduction Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2018 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Introduction Winter Term 2018 1 / 23 Contents 1 Organization 2 Projects in Semester

More information

Software Revision Control for MASS. Git Installation / Configuration / Use

Software Revision Control for MASS. Git Installation / Configuration / Use Software Revision Control for MASS Git Installation / Configuration / Use Matthew Sell, CSSE Student MASS Research Participant, February 2014 Overview Download / execute installer Initial configuration

More information

Version Control Systems

Version Control Systems Version Control Systems Version Control In the 2 nd edition of Pro Git, version control is described as a system that records changes to a file or set of files over time so that you can recall specific

More information

Github/Git Primer. Tyler Hague

Github/Git Primer. Tyler Hague Github/Git Primer Tyler Hague Why Use Github? Github keeps all of our code up to date in one place Github tracks changes so we can see what is being worked on Github has issue tracking for keeping up with

More information

Version Control with GIT

Version Control with GIT Version Control with GIT Benjamin Roth CIS LMU München Benjamin Roth (CIS LMU München) Version Control with GIT 1 / 30 Version Control Version control [...] is the management of changes to documents, computer

More information

Lab Objective. Lab Assignment. Downloads and Installation

Lab Objective. Lab Assignment. Downloads and Installation How I Start Working with Git: Git Lab 01 Adapted from: (1) https://github.com/quantstack/xeus-cling (2) https://code.visualstudio.com/docs/languages/cpp Lab Objective 1. Installing and using VS Code 2.

More information

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion

API RI. Application Programming Interface Reference Implementation. Policies and Procedures Discussion API Working Group Meeting, Harris County, TX March 22-23, 2016 Policies and Procedures Discussion Developing a Mission Statement What do we do? How do we do it? Whom do we do it for? What value are we

More information

Version Control. Version Control

Version Control. Version Control Version Control CS440 Introduction to Software Engineering John Bell Based on slides prepared by Jason Leigh for CS 340 University of Illinois at Chicago Version Control Incredibly important when working

More information

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master...

Getting the files for the first time...2. Making Changes, Commiting them and Pull Requests:...5. Update your repository from the upstream master... Table of Contents Getting the files for the first time...2 Making Changes, Commiting them and Pull Requests:...5 Update your repository from the upstream master...8 Making a new branch (for leads, do this

More information

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015

Git. CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015 Git CSCI 5828: Foundations of Software Engineering Lecture 02a 08/27/2015 1 Lecture Goals Present a brief introduction to git You will need to know git to work on your presentations this semester 2 Git

More information

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

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo, Lab TA: Sean Kross Lab 1 - Version control and HTML (2017-10-06) by Michael Bernstein, Scott Klemmer, Philip Guo, and

More information

CS314 Software Engineering Configuration Management

CS314 Software Engineering Configuration Management CS314 Software Engineering Configuration Management Dave Matthews Configuration Management Management of an evolving system in a controlled way. Version control tracks component changes as they happen.

More information

Tips on how to set up a GitHub account:

Tips on how to set up a GitHub account: Tips on how to set up a GitHub account: 1. Go to the website https://github.com/, you will see the following page: Figure 1: The GitHub main webpage (before you create an account and sign in) Then choose

More information

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.

1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one. Multiple-Choice Questions: 1. Which of these Git client commands creates a copy of the repository and a working directory in the client s workspace. (Choose one.) a. update b. checkout c. clone d. import

More information

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b

git commit --amend git rebase <base> git reflog git checkout -b Create and check out a new branch named <branch>. Drop the -b Git Cheat Sheet Git Basics Rewriting Git History git init Create empty Git repo in specified directory. Run with no arguments to initialize the current directory as a git repository. git commit

More information

F17 Modern Version Control with Git. Aaron Perley https://www.andrew.cmu.edu/course/98-174/

F17 Modern Version Control with Git. Aaron Perley https://www.andrew.cmu.edu/course/98-174/ 98-174 F17 Modern Version Control with Git Aaron Perley (aperley@andrew.cmu.edu) https://www.andrew.cmu.edu/course/98-174/ Why should you take this course? Version control software is an essential part

More information

Software Engineering

Software Engineering Software Engineering CSC 331/631 - Spring 2018 Version Control with Git Paul Pauca March 27 SE Theory: Version Control Systems Link to video lectures (Soft Dev Proc part 1 of 3) Watch these short videos

More information

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group

About SJTUG. SJTU *nix User Group SJTU Joyful Techie User Group About SJTUG SJTU *nix User Group SJTU Joyful Techie User Group Homepage - https://sjtug.org/ SJTUG Mirrors - https://mirrors.sjtug.sjtu.edu.cn/ GitHub - https://github.com/sjtug Git Basic Tutorial Zhou

More information

CS 390 Software Engineering Lecture 3 Configuration Management

CS 390 Software Engineering Lecture 3 Configuration Management CS 390 Software Engineering Lecture 3 Configuration Management Includes slides from the companion website for Sommerville, Software Engineering, 10/e. Pearson Higher Education, 2016. All rights reserved.

More information

S18 Modern Version Control with Git

S18 Modern Version Control with Git 98-174 S18 Modern Version Control with Git Aaron Perley (aperley@andrew.cmu.edu) Ilan Biala (ibiala@andrew.cmu.edu) https://www.andrew.cmu.edu/course/98-174/ Why should you take this course? Version control

More information

The Old World. Have you ever had to collaborate on a project by

The Old World. Have you ever had to collaborate on a project by What the Git? The Old World Have you ever had to collaborate on a project by Shuttling a USB drive back and forth Using Dropbox E-mailing your document around Have you ever accidentally deleted someone

More information

Human-Computer Interaction Design

Human-Computer Interaction Design Human-Computer Interaction Design COGS120/CSE170 - Intro. HCI Instructor: Philip Guo Lab 1 - Version control and HTML (2018-10-03) by Michael Bernstein, Scott Klemmer, Philip Guo, and Sean Kross [Announce

More information

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git

I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git I m an egotistical bastard, and I name all my projects after myself. First Linux, now git. Linus Torvalds, creator of Linux and Git Git Benedict R. Gaster University of West of England November 23, 2015

More information

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

Lab 01 How to Survive & Introduction to Git. Web Programming DataLab, CS, NTHU Lab 01 How to Survive & Introduction to Git Web Programming DataLab, CS, NTHU Notice These slides will focus on how to submit you code by using Git command line You can also use other Git GUI tool or built-in

More information

A brief introduction to the GitLab service at the department

A brief introduction to the GitLab service at the department Git and GitLab A brief introduction to the GitLab service at the department Sven Gestegård Robertz Department of Computer Science, Lund University June 5, 2015 Outline Introduction Student (thesis) project

More information

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

Version Control. Second level Third level Fourth level Fifth level. - Software Development Project. January 11, 2017 Version Control Click to edit Master EECS text 2311 styles - Software Development Project Second level Third level Fourth level Fifth level January 11, 2017 1 Scenario 1 You finished the assignment at

More information

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

Git AN INTRODUCTION. Introduction to Git as a version control system: concepts, main features and practical aspects. Git AN INTRODUCTION Introduction to Git as a version control system: concepts, main features and practical aspects. How do you share and save data? I m working solo and I only have one computer What I

More information

Praktische Aspekte der Informatik

Praktische Aspekte der Informatik Praktische Aspekte der Informatik Moritz Mühlhausen Prof. Marcus Magnor Software Versioning Git basics, workflow, and commands Further Reading Warning! The following slides are meant to give you a very

More information

Introduction to Version Control with Git

Introduction to Version Control with Git Introduction to Version Control with Git Dark Cosmology Centre Niels Bohr Institute License All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0. See

More information

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF

GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF Read Online and Download Ebook GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX DOWNLOAD EBOOK : GIT : BEST PRACTICES GUIDE BY ERIC PIDOUX PDF Click link bellow and free register to download ebook: GIT : BEST

More information

Git for Subversion users

Git for Subversion users Git for Subversion users Zend webinar, 23-02-2012 Stefan who? Stefan who? Freelancer: Ingewikkeld Stefan who? Freelancer: Ingewikkeld Symfony Community Manager Stefan who? Freelancer: Ingewikkeld Symfony

More information

Tizen/Artik IoT Practice Part 4 Open Source Development

Tizen/Artik IoT Practice Part 4 Open Source Development 1 Tizen/Artik IoT Practice Part 4 Open Source Development Sungkyunkwan University Contents 2 SCM Tool: Git Version Management Local & Remote Repository Branch Management Github Contribution Process Issue

More information

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management

Prof. Dr. Marko Boger. Prof. Dr. Christian Johner. Version Management Prof. Dr. Marko Boger Prof. Dr. Christian Johner Version Management Learning objectives Know problems a version control system can solve Master terms such as Check-out, commit, merge, pull, fetch, Master,

More information

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

CSCI 2132: Software Development. Norbert Zeh. Faculty of Computer Science Dalhousie University. Subversion (and Git) Winter 2019 CSCI 2132: Software Development Subversion (and Git) Norbert Zeh Faculty of Computer Science Dalhousie University Winter 2019 Version Control Systems A version control system allows us to Record the history

More information

CS 390 Software Engineering Lecture 4 - Git

CS 390 Software Engineering Lecture 4 - Git CS 390 Software Engineering Lecture 4 - Git Reference: Scott Chacon and Ben Straub, Pro Git, published by Apress, available at https://git-scm.com/book/en/v2. Outline Git terminology Git configuration

More information

Version Control System GIT

Version Control System GIT Version Control System GIT Version Contol System Version (revision) control systems are software that help you track changes you make in your code over time. As you edit to your code, you tell the version

More information

So#ware(Project. Lecture'4. Wouter'Swierstra. So#ware(project( (Lecture(4 1

So#ware(Project. Lecture'4. Wouter'Swierstra. So#ware(project( (Lecture(4 1 So#ware(Project Lecture'4 Wouter'Swierstra So#ware(project( (Lecture(4 1 Last%&me Risks So(ware-architecture So#ware(project( (Lecture(4 2 Working(effec,vely(with(git(and(GitHub. So#ware(project( (Lecture(4

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Christian Kroiß (based on slides by Dr. Andreas Schroeder) 18.04.2013 Christian Kroiß Outline Lecture 1 I. Eclipse II. Redmine, Jenkins,

More information

Version Control with Git ME 461 Fall 2018

Version Control with Git ME 461 Fall 2018 Version Control with Git ME 461 Fall 2018 0. Contents Introduction Definitions Repository Remote Repository Local Repository Clone Commit Branch Pushing Pulling Create a Repository Clone a Repository Commit

More information

Beyond git add/commit/push

Beyond git add/commit/push add Working dir commit Staging area push Local Remote Based on original version made by Alexis López @aa_lopez About us @tuxtor @edivargas jorgevargas.mx github.com/tuxtor Review traditionals commands

More information

Effective Programming Practices for Economists. 7. Version Control, Part II: Git with a Shared Repository

Effective Programming Practices for Economists. 7. Version Control, Part II: Git with a Shared Repository Effective Programming Practices for Economists 7. Version Control, Part II: Git with a Shared Repository Hans-Martin von Gaudecker Department of Economics, Universität Bonn Collaboration Science in general

More information

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1

GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 GUIDE TO MAKE A REAL CONTRIBUTION TO AN OPEN SOURCE PROJECT 1. 1 WHO AM I? @tushar_rishav GSoC'16 student contributing to coala - a static code analysis tool, under Python So ware Foundation. A senior

More information

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub

Overview. 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Git 101: Overview 1. Install git and create a Github account 2. What is git? 3. How does git work? 4. What is GitHub? 5. Quick example using git and GitHub Github icon 1 Install git and a create GitHub

More information

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

Git Workflows. Sylvain Bouveret, Grégory Mounié, Matthieu Moy s Sylvain Bouveret, Grégory Mounié, Matthieu Moy 2017 [first].[last]@imag.fr http://recherche.noiraudes.net/resources/git/git-workflow-slides.pdf 1 / 16 Goals of the presentation Global history: multiple

More information

AIS Grid School 2015

AIS Grid School 2015 Getting distributed without losing your HEAD AIS Grid School 2015 Дубна, Россия 3 e Oктября 2015 Benjamin Wolff (CERN / GS-AIS) Logo source: http://git-scm.com/downloads/logos What is a Version Control

More information

A short tutorial on Git. Servesh Muralidharan 4 March 2014

A short tutorial on Git. Servesh Muralidharan 4 March 2014 A short tutorial on Git Servesh Muralidharan 4 March 2014 This Tutorial What is Source Control Distributed source control with Git Git in Assignment 5 Using Gitlab Using git in Eclipse More about Assignment

More information

Git version control with Eclipse (EGit) Tutorial

Git version control with Eclipse (EGit) Tutorial Git version control with Eclipse (EGit) Tutorial 출처 : Lars Vogel http://www.vogella.com/tutorials/eclipsegit/article.html Lars Vogel Version 3.6 Copyright 2009, 2010, 2011, 2012, 2013, 2014 Lars Vogel

More information

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control:

Revision Control. How can 4. Slides #4 CMPT 276 Dr. B. Fraser. Local Topology Simplified. Git Basics. Revision Control: How can 4 (or 4000) developers work on a product at once? Revision Control Revision Control Revision Control: Also called version control, source control, software configuration management. Motivation:

More information

Algorithm Engineering

Algorithm Engineering Algorithm Engineering Jens K. Mueller jkm@informatik.uni-jena.de Department of Mathematics and Computer Science Friedrich Schiller University Jena Tuesday 21 st October, 2014 Version Control with Git Version

More information

Lab Exercise Test First using JUnit

Lab Exercise Test First using JUnit Lunds tekniska högskola Datavetenskap, Nov, 2017 Görel Hedin/Ulf Asklund EDAF45 Programvaruutveckling i grupp projekt Lab Exercise Test First using JUnit Goal This lab is intended to demonstrate basic

More information

Intro to Github. Jessica Young

Intro to Github. Jessica Young Intro to Github Jessica Young jyoung22@nd.edu GitHub Basics 1. Installing GitHub and Git 2. Connecting Git and GitHub 3. Why use Git? Installing GitHub If you haven t already, create an account on GitHub

More information

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic

CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic CESSDA Expert Seminar 13 & 14 September 2016 Prague, Czech Republic - basics Matthäus Zloch GESIS Outline for this session Git introduction and some theory Git command basics (plus some little advanced)

More information

Version Control Systems (VCS)

Version Control Systems (VCS) Version Control Systems (VCS) Xianyi Zeng xzeng@utep.edu Department of Mathematical Sciences The University of Texas at El Paso. September 13, 2016. Version Control Systems Let s get the textbook! Online

More information

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

Git. SSE2034: System Software Experiment 3, Fall 2018, Jinkyu Jeong Git Prof. Jinkyu Jeong (Jinkyu@skku.edu) TA -- Minwoo Ahn (minwoo.ahn@csl.skku.edu) TA -- Donghyun Kim (donghyun.kim@csl.skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu

More information

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum

Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Introduction to Git and GitHub for Writers Workbook February 23, 2019 Peter Gruenbaum Table of Contents Preparation... 3 Exercise 1: Create a repository. Use the command line.... 4 Create a repository...

More information

b. Developing multiple versions of a software project in parallel

b. Developing multiple versions of a software project in parallel Multiple-Choice Questions: 1. Which of these terms best describes Git? a. Integrated Development Environment b. Distributed Version Control System c. Issue Tracking System d. Web-Based Repository Hosting

More information

How to git with proper etiquette

How to git with proper etiquette How to git with proper etiquette Let's start fixing how we use git here in crew so our GitHub looks even more awesome and you all get experience working in a professional-like git environment. How to use

More information

L Modeling and Simulating Social Systems with MATLAB

L Modeling and Simulating Social Systems with MATLAB 851-0585-04L Modeling and Simulating Social Systems with MATLAB Lecture 3 GIT Connected Karsten Donnay and Stefano Balietti Chair of Sociology, in particular of Modeling and Simulation ETH Zürich 2012-10-08

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

Using Git to Manage Source RTL

Using Git to Manage Source RTL Using Git to Manage Source RTL CS250 Tutorial 1 (Version 082311) August 24, 2011 Brian Zimmer How to use this tutorial This class will be using Git for all of the labs and projects. This will allow the

More information

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

GIT TUTORIAL. Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson GIT TUTORIAL Creative Software Architectures for Collaborative Projects CS 130 Donald J. Patterson SCM SOFTWARE CONFIGURATION MANAGEMENT SOURCE CODE MANAGEMENT Generic term for the ability to manage multiple

More information

Using Git and GitLab: Your first steps. Maurício

Using Git and GitLab: Your first steps. Maurício Using Git and GitLab: Your first steps Maurício Aniche m.f.aniche@tudelft.nl @mauricioaniche How do you store your files? We used to do like this before But now we do it in a different (and much better)

More information

Basics of Git GitHub

Basics of Git GitHub Basics of Hub Why this Webinar? You registered for Microsoft codefundo++ Deadline to submit your idea is Oct 12th, 23:59 IST Getting you started with & Hub Agenda What is Version Control? What is the difference

More information

Git. Presenter: Haotao (Eric) Lai Contact:

Git. Presenter: Haotao (Eric) Lai Contact: Git Presenter: Haotao (Eric) Lai Contact: haotao.lai@gmail.com 1 Acknowledge images with white background is from the following link: http://marklodato.github.io/visual-git-guide/index-en.html images with

More information

Version Control Systems

Version Control Systems Nothing to see here. Everything is under control! September 16, 2015 Change tracking File moving Teamwork Undo! Undo! UNDO!!! What strategies do you use for tracking changes to files? Change tracking File

More information

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018

Introduction to Git. Database Systems DataLab, CS, NTHU Spring, 2018 Introduction to Git Database Systems DataLab, CS, NTHU Spring, 2018 1 Outline Version control system Git basics Git branch Remote repository 2 Outline Version control system Git basics Git branch Remote

More information

SOFTWARE ENGINEERING

SOFTWARE ENGINEERING SOFTWARE ENGINEERING INTRODUCTION TO SOFTWARE ENGINEERING. COURSE STRUCTURE AND REQUIREMENTS Saulius Ragaišis saulius.ragaisis@mif.vu.lt WHAT IS SOFTWARE ENGINEERING? First definition Software engineering

More information

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han

Lecture 3: Processing Language Data, Git/GitHub. LING 1340/2340: Data Science for Linguists Na-Rae Han Lecture 3: Processing Language Data, Git/GitHub LING 1340/2340: Data Science for Linguists Na-Rae Han Objectives What do linguistic data look like? Homework 1: What did you process? How does collaborating

More information

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control?

License. Introduction to Version Control with Git. Local Version Control Systems. Why Use Version Control? License Introduction to Version Control with Git Andreas Skielboe 1 Adapted by Dr. Andrew Vardy 2 All images adapted from Pro Git by Scott Chacon and released under license Creative Commons BY-NC-SA 3.0.

More information

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

Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Working in Teams CS 520 Theory and Practice of Software Engineering Fall 2018 Version Control September 18, 2018 Thursday (September 20) First in-class exercise On using git (today is a prelude with useful

More information

Version Control Systems

Version Control Systems Version Control Systems Christophe Rhodes c.rhodes@gold.ac.uk 12th January 2013 Version Control notes.txt cis320project. Version Control notes.txt index.php cis320project. Version Control notes.txt index.php

More information

Using GitHub and SourceTree to work with DITA TC repositories

Using GitHub and SourceTree to work with DITA TC repositories Using GitHub and SourceTree to work with DITA TC repositories Kristen James Eberlein Eberlein Consulting LLC Agenda 1. Before you begin 2. Getting set up: 1. Fork the DITA TC repository 2. Clone your fork

More information

MOOSE-Based Application Development on GitLab

MOOSE-Based Application Development on GitLab MOOSE-Based Application Development on GitLab MOOSE Team Idaho National Laboratory February 22, 2016 Introduction The intended audience for this talk is developers of INL-hosted, MOOSE-based applications.

More information

Windows. Everywhere else

Windows. Everywhere else Git version control Enable native scrolling Git is a tool to manage sourcecode Never lose your coding progress again An empty folder 1/30 Windows Go to your programs overview and start Git Bash Everywhere

More information

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

CPSC 491. Lecture 19 & 20: Source Code Version Control. VCS = Version Control Software SCM = Source Code Management CPSC 491 Lecture 19 & 20: Source Code Version Control VCS = Version Control Software SCM = Source Code Management Exercise: Source Code (Version) Control 1. Pretend like you don t have a version control

More information

Hg Tutorial. For : COP Object oriented Programming (Using C++) Biswas Parajuli

Hg Tutorial. For : COP Object oriented Programming (Using C++)  Biswas Parajuli Hg Tutorial For : COP 3330. Object oriented Programming (Using C++) http://www.compgeom.com/~piyush/teach/3330 Biswas Parajuli Need for Version Control http://hginit.com/01.html Repository Working directory:

More information

Software Engineering I (02161)

Software Engineering I (02161) Software Engineering I (02161) Week 5 Assoc. Prof. Hubert Baumeister DTU Compute Technical University of Denmark Spring 2018 Contents User Stories Class Diagrams I Version control User stories Requirements

More information

Technology Background Development environment, Skeleton and Libraries

Technology Background Development environment, Skeleton and Libraries Technology Background Development environment, Skeleton and Libraries Slides by Prof. Dr. Matthias Hölzl (based on material from Dr. Andreas Schröder) Outline Lecture 1 I. Eclipse II. Git Lecture 2 IV.

More information