1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)

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

Configuration Management
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Configuration Management
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.
Software Configuration Management Donna Albino LIS489, December 3, 2014.
Version Control, Revision Control Software Configuration Management.
Version Control System Sui Huang, McMaster University Version Control SystemSui Huang, McMaster University Version Control System -- base on Subversion.
Revision Control Systems Amin Tootoonchian Kian Mirjalali.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
Using subversion COMP 2400 Prof. Chris GauthierDickey.
1 / 16 CS 425/625 Software Engineering Software Configuration Management Guest Speaker Jim Hunt November 17, 2008.
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Configuration Management
Software Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Source Control Repositories for Enabling Team Working Svetlin Nakov Telerik Corporation
Software Configuration Management CSC-532 Chandra Shekar Kandi Chandra Shekar Kandi.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Configuration Management
CSSE 375 Software Construction and Evolution: Configuration Management
SubVersioN – the new Central Service at DESY by Marian Gawron.
Version Control. What is Version Control? Manages file sharing for Concurrent Development Keeps track of changes with Version Control SubVersion (SVN)
Source Code Revision Control Software CVS and Subversion (svn)
Software Configuration Management (SCM)
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.
Software Configuration Management (SCM)
The Design Workshop Introduction to Version Control 1.
Subversion, an Open Source Version Control System An Introduction.
Version Control with Subversion Quick Reference of Subversion.
 To explain the importance of software configuration management (CM)  To describe key CM activities namely CM planning, change management, version management.
Configuration Management (managing change). Starter Questions... Which is more important?  stability  progress Why is change potentially dangerous?
Subversion Code Deployment LifeCycle August 2011.
1 Introduction to Software Configuration Management CprE 556 Electrical and Computer Engineering Department Iowa State University.
Version control Using Git Version control, using Git1.
Software Quality Assurance
SENG 403 Tutorial 1 1SENG 403 – Winter Agenda Version Control Basics Subversion Basic actions in Subversion Some examples 2SENG 403 – Winter 2012.
1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)
Kako razvijate PL/SQL pakete? File based PL/SQL development Mitja Golouh SIOUG 2006,
Sabriansyah R.A Version Control. The Repository Subversion adalah sistem tersentralisasi untuk informasi sharing Repository adalah pusat penyimpanan data.
ATA/SE-SQM/OM-4/Workshop 1.PPT/V3.1 Slide 1 of 105 © 2010 NUS. All rights reserved. Master of Technology in Software Engineering Workshop 1: Content Management.
Part 4: FCM and the UM University of Reading, December 2015.
TEAM FOUNDATION VERSION CONTROL AN OVERVIEW AND WALKTHROUGH By: Michael Mallar.
JRA1 Meeting – 09/02/ Software Configuration Management and Integration EGEE is proposed as a project funded by the European Union under contract.
Source Control Repositories for Enabling Team Working Doncho Minkov Telerik Corporation
SG Software Configuration Management And CVS scmGalaxy Author: Rajesh Kumar
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
CS520 Web Programming Version Control with Subversion Chengyu Sun California State University, Los Angeles.
Problem Solving With C++ SVN ( Version Control ) April 2016.
CS491A Software Design Lab Version Control with CVS and Subversion Chengyu Sun California State University, Los Angeles.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Software Configuration Management -Subversion- RTLAB YuJin Park.
Configuration Management
Software Configuration Management CSC-532
Version Control with Subversion
Software Engineering (CSI 321)
Version control, using Git
Configuration Management
Software Configuration Management
CVS revisions UML diagram
Configuration Management
Concurrent Version Control
LECTURE 3: Software Configuration Management
Revision Control Daniel Daugherty
Chapter 25 – Configuration Management
SSDT and Database Project Basics
Software Configuration Management.
Chapter 25 – Configuration Management
Software Configuration Management
Presentation transcript:

1 Software Configuration Management (SCM) and Software Reuse Presented By: Edmund Leng (HT052446J) Choo Zhi Min (HT052430X)

2 Agenda Software Configuration Management (SCM) Relationship between SCM and Software Reuse Use of SCM to promote Software Reuse SVN in Action Use of SVN in Plone and FRS Q&A

3 Software Configuration Management Software Configuration Management: the discipline of identifying the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration and maintaining the integrity and traceability of the configuration throughout the system life cycle Source: IEEE, SWEBOK (Ber97)

4 Goals of SCM The goals of SCM are generally:  Configuration identification - What code are we working with?  Configuration control - Controlling the release of a product and its changes.  Status accounting - Recording and reporting the status of components.  Review - Ensuring completeness and consistency among components.  Build management - Managing the process and tools used for builds.  Process management - Ensuring adherence to the organization's development process.  Environment management - Managing the software and hardware that host our system.  Teamwork - Facilitate team interactions related to the process.  Defect tracking - Making sure every defect has traceability back to the source

5 SCM Essentially, SCM helps several developers who are working on the same code base to collaborate, minimizing the risk of them stumbling over each other Items that are placed under configuration control:  Requirement Specification  Project Plan  Design Specifications  Test Plan and Test Cases  Source Codes  User Documentations  Data Dictionaries  Quality Plan

6 Version Control in Action

7

8 Version Control Version Control is the most essential part of the SCM With Version Control, software developers are able to work simultaneously on updates Implicit in this control was the ability to return to any earlier state of the design It is extremely common for multiple versions of the same software to be deployed in different sites At the simplest level, developers could simply retain multiple copies of the different versions of the program, and number them appropriately

9 History Model Changeset: A specific collection of changes with a unique name Different version control tools manage changes in the repository differently Subversion manages versioned trees as first order objects (the repository is an array of trees) and the changesets are things that are derived (by comparing adjacent trees Arch or Bitkeeper are designed to manage changesets as first order objects (the repository is a bag of patches), and trees are derived by composing sets of patches together

10 Branching and Merging Branching, tagging, and merging are concepts common to almost all version control systems A branch is a line of development that exists independently of another line Branching allows you to work on a complex changes without interfering with the stability of the trunk, feature branch or release branch Merging enables you to compare the differences between 2 branches and apply the differences to your working copy

11 Software Reuse Benefits of Software Reuse:  Abstracts the user away from the inherent complexities of software  Provides better quality software by reusing a component that are tested and verified  Shorter time-to-market Because of the benefits that Software Reuse brings, reuse is not ad hoc or by chance but integrated into the SDLC => SCM can be used to support Software Reuse

12 Problem in Software Reuse? 2 philosophies exist on how to manage the idea of software reuse: Provide the software, along with any required dependencies in one monolithic package. Used by most Microsoft Windows application Provide smaller single purpose package that requires the dependent packages are already installed. Used by most developers of Linux and UNIX packages today The 2 nd approach is more conducive for the reuse of code but pose its own set of problems: Dependency Management  Example: A basic Mozilla application consists of 495 files scattered through 10 different directories. When upgrading, a user must replace all these files. To operate, Mozilla requires 50 other executables and libraries (many of which, in turn, require still other libraries)

13 Build Automation The sheer number of reuse code made manual management of the software dependencies is impossible Automated environment for builds are a common feature of software development Build Automation not only manage software dependencies, but also automate activities like packaging binary code, running tests and deployment A number build automation software are available: GNU Automake Apache Ant Apache Maven MSBuild Ruby Rake

14 Continuous Integration Continuous integration describes a set of best practices in software engineering  Maintain a single code repository  Automate the Build  Make the Build self-testing  Commits everyday  Automate Deployment Much of these best practices are achieved through SCM Continuous Integration is one of the cornerstones of Agile Programming

15 Subversion Introduction (1) Subversion (SVN) is a free/open-source version control system. Version 1 released in Now in version 1.4x. Manages files and directories, and the changes made to them, over time. Recover older versions of your data, or examine the history of how your data changed. “time machine” Can be used to manage any collection of files. Flexible enough to be used as software configuration management (SCM) systems.

16 Subversion Introduction (2) We will look at:  Revision  Changesets  Externals Definitions  How do Changesets and Externals Definitions help in reuse?

17 Revision (1) Commit treats changes to any number of files and directories as a single atomic transaction. You can create, delete, rename, and copy files and directories; then commit a complete set of changes as an atomic transaction. This creates a new state of the filesystem tree, called a revision. Revision is a unique natural number, incremented by 1 for each commit.

18 Revision (2) Revision numbers apply to entire trees, not individual files. Revision N represents the state of the repository filesystem after the Nth commit.

19 Changesets In SVN, a changeset is a collection of changes with a unique name -- textual edits to file contents, modifications to tree structure, or tweaks to metadata. So, revision N as not just a tree, but a changeset as well. Read the commit history ( svn log -r 9238 ) to read about the exact changeset that fixed the bug. Run svn diff to the patch itself. Run svn merge to merge specific changesets from one branch to another. See the previous figure on revision

20 Externals Definitions (1) If we want different subdirectories in a checkout to come from different locations in a repository

21 Externals Definitions (2) An externals definition is a mapping of a local directory to the URL— and ideally a particular revision—of a versioned directory. Declare externals definitions in groups using the svn:externals property. Example: third-party/sounds third-party/skins third-party/skins/toolkit -r21 svn update and commit command will take effect directly on the target external directories.

22 Applying externals definitions - an example from Plone Plone ( is a ready-to-run content management system that is built on the Zope application server, written in Python. Group a release in a “bundle” folder. Each bundle folder is nothing but a empty folder with externals definitions that point to components to assemble the release. Example:    Components: PloneLanguageTool and kupu

23 Applying changesets – FRS To develop FRS USER,BR, we select FRS USER as our baseline and add BR (block reservation) to it. The customization of FRS USER includes:  Finding components affected by feature BR in FRS DATE,USER,PAY,BR, and extracting relevant code,  Analyzing the impact of feature BR on FRS USER,  Implementing feature BR on FRS USER. If information on modifications made for PAY in BR is not available, implementation becomes more difficult.

24 Applying changesets – FRS When developing new feature, branch out (M) to isolate the changes. When the changes are committed and merged (N), the revisions from branching to merging (denote as rM:N) become the changeset for the new feature.

25 Applying changesets – FRS BR FRS Date,User,Pay Revision 43 FRS Date,User,Pay,BR Revision 58 Extract and merge changeset r43:58 svn merge -r 43:58 BR FRS User Revision 61 FRS User,BR Revision 75 Implement BR

SPC X-frame 26 Discussion MDD vs Agile Programming Can we use SVN Externals Definitions to manage XVCL?

27 References No Silver Bullet - essence and accidents of software engineering by Fred Brooks Software Configuration Management Tools by Angus K. F. Chan and Sheung-lun Hung High-level Best Practices in Software Configuration Management by Laura Wingerd & Christopher Seiwald Version Control with Subversion, bean.com/ bean.com/ and svn.plone.org Evolution of versions and configuration management, LINK LINK

28 Thank you Q&A