CSE 436—Requirements and Version Control Systems Ron K. Cytron 26 September 2005.

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

1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Intro to Version Control Have you ever …? Had an application crash and lose ALL of your work Made changes to a file for the worse and wished you could.
CSE 436—Personal Software Processes, Software Development Models Ron K. Cytron 3 October 2005.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
David Notkin Autumn 2009 CSE303 Lecture 22 Subversion is an open source version control system. Social Implications Friday version control system.
Concepts of Version Control A Technology-Independent View.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Version Control Systems Phil Pratt-Szeliga Fall 2010.
CVS II: Parallelizing Software Development Author: Brian Berliner John Tully.
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.
G51FSE Version Control Naisan Benatar. Lecture 5 - Version Control 2 On today’s menu... The problems with lots of code and lots of people Version control.
1 CSE 390 “Lecture 11” Version control with Git slides created by Ruth Anderson, images from
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
Git for Version Control These slides are heavily based on slides created by Ruth Anderson for CSE 390a. Thanks, Ruth! images taken from
Version control Using Git 1Version control, using Git.
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.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Subversion. What is Subversion? A Version Control System A successor to CVS and SourceSafe Essentially gives you a tracked, shared file system.
With Mercurial and Progress.   Introduction  What is version control ?  Why use version control ?  Centralised vs. Distributed  Why Mercurial ?
1 Lecture 19 Configuration Management Software Engineering.
Requirements Engineering CSE-305 Requirements Engineering Process Tasks Lecture-5.
IS 466 ADVANCED TOPICS IN INFORMATION SYSTEMS LECTURER : NOUF ALMUJALLY 22 – 10 – 2011 College Of Computer Science and Information, Information Systems.
Version control Using Git Version control, using Git1.
Version Control. How do you share code? Discussion.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Chris Onions Getting started with CVS in ATLAS 11 Getting started with CVS in ATLAS Chris Onions (Tutorial based on that of Raúl Ramos Pollán CERN / IT.
Object-Oriented Analysis & Design Subversion. Contents  Configuration management  The repository  Versioning  Tags  Branches  Subversion 2.
An Intro to Concurrent Versions System (CVS) ECE 417/617: Elements of Software Engineering Stan Birchfield Clemson University.
Copyright © 2015 – Curt Hill Version Control Systems Why use? What systems? What functions?
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Lecture 7: Requirements Engineering
CVS – concurrent versions system Network Management Workshop intERlab at AIT Thailand March 11-15, 2008.
CSE 219 Computer Science III CVS
1 Brief Introduction to Revision Control Ric Holt.
CVS – concurrent versions system AROC Guatemala July 19-23, 2010 Guatemala City, Guatemala.
By Germaine Cheung Hong Kong Computer Institute
1 CSE306 Operating Systems Projects CVS/SSH tutorial.
Requirement Engineering. Recap Elaboration Behavioral Modeling State Diagram Sequence Diagram Negotiation.
CVS: Concurrent Version System Lecturer: Prof. Andrzej (AJ) Bieszczad Phone: “UNIX for Programmers and Users” Third.
12 CVS Mauro Jaskelioff (originally by Gail Hopkins)
Version Control System
Requirement Engineering
Version Control and SVN ECE 297. Why Do We Need Version Control?
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
Subversion (SVN) Tutorial for CS421 Dan Fleck Spring 2010.
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
DIGITAL REPOSITORIES CGDD Job Description… Senior Tools Programmer – pulled August 4 th, 2011 from Gamasutra.
BIT 285: ( Web) Application Programming Lecture 07 : Tuesday, January 27, 2015 Git.
SWIM Project Meeting, Bloomington, IN September 2006 Working with the SWIM Code Repository David E. Bernholdt Oak Ridge National Laboratory
Source Control Dr. Scott Schaefer. Version Control Systems Allow for maintenance and archiving of multiple versions of code / other files Designed for.
Information Systems and Network Engineering Laboratory II
SVN intro (review).
Version Control.
Source Control Dr. Scott Schaefer.
An Intro to Concurrent Versions System (CVS)
Version control, using Git
CSE 303 Concepts and Tools for Software Development
Software Engineering for Data Scientists
Concurrent Version Control
Version Control System
Applied Software Implementation & Testing
Revision Control Daniel Daugherty
CSE 303 Concepts and Tools for Software Development
Requirements Very High level specification of what system should do
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Presentation transcript:

CSE 436—Requirements and Version Control Systems Ron K. Cytron 26 September 2005

CSE 436 Software Engineering Workshop Today Requirements discussion Break (15 minute): groups organize presentations Source-control systems (CVS) Break (5 minutes) Groups present intro/overview. A different person gives each of the following talks: –Elevator pitch (15 seconds, 30 seconds, 1 minute) –Customer pitch –Technical pitch to generate interest in forming team Requirements discussion within groups

CSE 436 Software Engineering Workshop Requirements in the SRRD Type –Functional: what the system will do. Transformational properties of the system. Example: system shall compute y=sqrt(x) such that y*y = x. This can get very detailed, and supporting documentation such as protocol specifics can be very useful. “System shall support protocol x.y.z” –Nonfunctional: outside of the code, metapropertiesNonfunctional –Physical: form factors, sizing, power –Goals: not strictly requirements, but desirable outcomes from the customer’s perspective –Derived: depends on other requirements. Must state the relationship so that if the main requirement changes, this can be examined.

CSE 436 Software Engineering Workshop Requirements in the SRRD ID: a unique number, never changes, so that the requirement can be specified uniquely and consistently Description: text of the requirement Source: where does this come from? Source should be customer or some super requirement Verification: how do you plan to verify that the requirement is met? Traced-to: what components are affected by the requirement? It may help to organize software in part based on requirement partitions

CSE 436 Software Engineering Workshop Requirements [ Pressman ] Inception –How did the project get started? –Who is involved? –Intro and overview cover this in SRRD Elicitation Elaboration Negotiation Specification Validation

CSE 436 Software Engineering Workshop Eliciting Requirements We did a mock setting of this last week Articulate use cases –Name of case –Primary actor –Goal in this case –Precondition (start state) –Trigger for case –Steps in scenario 1, 2, 3, etc –Exceptions –Open issues / unresolved questions about requirements (behavior, nonfunctional, etc)

CSE 436 Software Engineering Workshop Elaboration Models are built –Many possible models I/O automata Petri nets Finite state automata –Model helps formalize interactions and behaviors

CSE 436 Software Engineering Workshop Negotiation After elaboration, feasibility may be in doubt –“Do you really need Windows?” Go for “win win” Don’t get personal Be creative Be ready to commit when you can

CSE 436 Software Engineering Workshop Specification Write it down

CSE 436 Software Engineering Workshop Validation Do the requirements make sense? Prototyping may be necessary Go back to negotiation as needed

CSE 436 Software Engineering Workshop Source Control Systems Software evolves through source edits –How do we track software? –How do we manage multiple developers’ activities? –How do we tie development to testing? –How do we prototype new features? –How do we apply bug fixes? Models for source control –It’s mine, ALL mine –Shared vision of who has token to modify what –Library model: check it out and nobody can have it until you check it in –Concurrent access

CSE 436 Software Engineering Workshop Concurrent access Many developers –Different time zones –Different work habits Need to manipulate code base frequently –Low access cost –Developers may not know each other Token and locks are impractical What happens when developers collide?

CSE 436 Software Engineering Workshop CVS Nobody ever has a lock on anything Versions –Main repository version (head of repo) –Many developer working copies –“Commit” changes back to the repository when ready Version numbers change Attempt to merge changes via serializability Conflicts pushed back to “last to commit” Branching –Repo can fork so development can proceed from a common code base along divergent paths –Forked development can be brought back into main trunk if needed Files stored as text-based “diffs” –Head of repo is kept in full text –Back versions kept by diffs –Binary files don’t diff  each version stored fully Keyword substitution $Id: $  becomes version identifier

CSE 436 Software Engineering Workshop Using CVSCVS CVSROOT points to repo directory cvs init –Sets things up cvs import module vendor release –module = where stored in the repo (this matters) –vendor = where did this come from (doesn’t matter) –release = “initial” (doesn’t matter) –This imports a directory into the repo cvs co module[/x/y/…/z] –Gives you a working copy –You can add, delete, modify files –When you commit, changes are sent back cvs add file file … file –Schedules list of files for addition to repo –Add a.cvsignore file for things that should be ignored by CVS in a directory (*.o *.class) cvs upd –Updates your working copy against the repo –Use “cvs –n upd” to check what would happen if you updated –Tries to merge disparate changes –When unsuccessful, conflicts are reported and you must address these Commit early, commit often (XP philosophy) cvs commit –m’meaningful message about the changes’ –Checks in each file at and below the current directory that has changed

CSE 436 Software Engineering Workshop Subversion Like CVS, but perhaps better –Entire repo is at some version number –Check-in of multiple files considered atomic –$Id$ supported but you have to really ask for it –Binary diffs are stored