



















Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An overview of software configuration management, focusing on version control and configuration of files and environments. It covers the concepts of configuration, versioning, baselining, and branching, as well as the tools and challenges associated with version control systems like rcs, cvs, and modern alternatives. It also discusses the importance of managing external libraries and files, and the role of package managers in software deployment.
Typology: Study notes
1 / 27
This page cannot be seen from the preview
Don't miss anything!




















modules internal logical files test stubs and scaffoldings software components user manual FAQs getting started guides tutorials external documentation requirements design test plan internal documentation refers to the overall set of elements that comprise a software product (" configuration items ") Configuration environmental conditions necessary for product function (e.g., external libraries, files, etc) environmental conditions required to develop the software (e.g., software tools) These are lists of conditions. More generally, includes Configuration of the files. Configuration of the development environment. Configuration of the deployment environment. Three concepts of configuration Configuration Monday, November 30, 2009 11:28 AM Docsity.com
requirements change - > design changes - > components change - > documentation changes The basic problem: " things change " manages changes via versions. creates baselines. eliminates version skew. Software configuration management: Change Monday, November 30, 2009 11:32 AM Docsity.com
Configurations form a version tree : Version trees Monday, November 30, 2009 11:46 AM Docsity.com
serves as a basis and reference for further changes. has a simple version number, e.g., 2. A baseline version of the software: is fully tested and ready for release (whether actually released or not) has the property that all components are "in sync" as far as describing the same product. and sometimes Baselining Monday, November 30, 2009 11:42 AM Docsity.com
caller and callee component function and documentation component function and design or requirements happens when components must be updated together A version skew occurs when two configuration items in one configuration refer to different versions of the product. Challenge of software configuration management: version skew Version skew Monday, November 30, 2009 11:34 AM Docsity.com
1.0, 1.1, 1.2... first version and fixes 2.0, 2.1, 2.2... second version and fixes ... Normal development is a linear process: 1.2, 1.2.1.0 (custom), 1.2.1.1, 1.2.1.2, ... A branch occurs when some entity requests an experimental or custom change. Normal development continues, ignoring the branch version branches Branches Monday, November 30, 2009 11:50 AM Docsity.com
it cannot be charged for, its source is available to everyone, it cannot be incorporated into any product for which there is a charge. Software is "free" if See the Gnu Public License. So, one cannot "pay" for free software. Free software simplified more people can work on it. more people can use it. more completely debugged and verified. Justification for free software Software itself is always free, but programmers' time is still worth money. customize free software support free software they've written write new free software So, pay programmers to In other words, custom branches feed programmers! Business model for free software Free software: source is available, free. Open source: source is available for people to review and change, but that may not be free. Free versus open source The Free Software Movement Simplified Monday, November 30, 2009 3:21 PM Docsity.com
ensuring that components change together when appropriate. constructing and maintaining new baselines managing changes to baselines ensuring an orderly progress from a change to its verification (through testing) tracking the state of a configuration as it is incrementally verified. Version control refers to: revision control: does a component change? version control: does a baseline change? change control: is a change reasonable? Three concepts Version control Monday, November 30, 2009 1:33 PM Docsity.com
maintain revision history for a single file. store changes, not contents. reverse-differential form : latest version plus changes needed to go backward. reference implementation: Revision Control System (RCS) Revision control tools rcs - l file # lock a file so only you can change it. co file # get a copy of file co - u1.2 file # get a copy of revision 1. co - l file # get a copy and lock co - l2.3 file # get a copy of revision 2.3 and lock it. ci file # put a copy into the revision history ci - u file # put a copy and retain one for yourself ci - l file # put a copy and keep it locked rlog file # list revision history Inside RCS: RCS properties Revision control tools Monday, November 30, 2009 1:44 PM Docsity.com
works on single files manages the state of a single file. very useful for prototyping! RCS properties Docsity.com
designed around text files; versions of binary files are inefficient to record. line-oriented mechanisms for recording differences; does not work well with auto-formatting. Limits of RCS/CVS/SVN version control Limits of version control Monday, November 30, 2009 3:07 PM Docsity.com
Web-based. Upon a subscription model. Source code is closed. (And/or the configuration is exceedingly complex) => web site can argue for a monopoly. More modern source control github sourceforge codeplex Examples ... More modern source control Wednesday, November 07, 2012 5:00 PM Docsity.com
Into the software. Into the configuration. It goes somewhere. You can run, but you can't hide complexity. Basic principle of configuration Wednesday, November 07, 2012 5:04 PM Docsity.com
The process of creating a runnable copy of a software project. Input: a configuration for the software. Output: a runnable copy. Deployment: Deployment Wednesday, November 07, 2012 10:21 AM Docsity.com