Software Configuration Management: File and Environment Control, Study notes of Software Engineering

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

2012/2013

Uploaded on 04/23/2013

ashakiran
ashakiran 🇮🇳

4.5

(27)

261 documents

1 / 27

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
modules
internal logical files
test stubs and scaffoldings
software components
user manual
FAQs
getting started guides
tutorials
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
Configuration Page 1
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b

Partial preview of the text

Download Software Configuration Management: File and Environment Control and more Study notes Software Engineering in PDF only on Docsity!

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