push button, send product - Configuration, Version, and Release - - PowerPoint PPT Presentation

push button send product
SMART_READER_LITE
LIVE PREVIEW

push button, send product - Configuration, Version, and Release - - PowerPoint PPT Presentation

push button, send product - Configuration, Version, and Release Management Sommerville, Chapter 29 Instructor: Peter Baumann email: p.baumann@jacobs-university.de tel: -3178 "Good, Fast, Cheap: office: room 88, Research 1


slide-1
SLIDE 1

320312 Software Engineering (P. Baumann)

“push button, send product”

  • Configuration, Version,

and Release Management

Instructor: Peter Baumann email: p.baumann@jacobs-university.de tel:

  • 3178
  • ffice:

room 88, Research 1 Sommerville, Chapter 29

"Good, Fast, Cheap: Pick any two (you can't have all three)."

  • - from RFC 1925
slide-2
SLIDE 2

2 320312 Software Engineering (P. Baumann)

Symptoms of the Change Chaos

  • Problems of identification and tracking:
  • “This program worked yesterday.

What happened?”

  • “I fixed this error last week.

Why is it back?”

  • “Where are all my changes

from last week?”

  • “This seems like an obvious fix.

Has it been tried before?”

  • “Who is responsible for this change?”
  • Problems of version selection:
  • “Has everything been compiled?

Tested?”

  • “How do I configure for test,

with my updates and no others?”

  • “How do I exclude this

incomplete/faulty change?”

  • “I can’t reproduce the error

in this copy!”

  • “Exactly which fixes went

into this configuration?”

  • “Oh shoot. I need to merge 250 files!”
slide-3
SLIDE 3

3 320312 Software Engineering (P. Baumann)

  • Software delivery problems:
  • “Which configuration does this customer have?”
  • “Did we deliver a consistent configuration?”
  • “Did the customer modify the code?”
  • “The customer skipped the previous two releases. What happens if we send him the

new one?”

…familiar to anyone who has worked in software development.

More Chaos ….

slide-4
SLIDE 4

4 320312 Software Engineering (P. Baumann)

Definition

  • Software Configuration Management (SCM)

= the discipline of controlling the evolution of software systems

  • SCM indispensable for large, long-lived software!
slide-5
SLIDE 5

5 320312 Software Engineering (P. Baumann)

Three Classic CM Problems

  • Configuration management must address at least the following key

problems:

  • The double maintenance problem

Prevent the occurrence of multiple copies of the same file that must be independently updated.

  • The shared data problem

Allow two or more developers with access to the same file/data.

  • The simultaneous update problem

Prevent file clobbering from two developers updating the same file at the same time.

slide-6
SLIDE 6

6 320312 Software Engineering (P. Baumann)

Versions

Data base (vault) Workspace (sandbox)

1.3 1.2 1.1 2.1 2.2 Fix.1 Par.1 Par.2

Change cycle:

  • 1. checkout
  • 2. modify copy in workspace
  • 3. checkin

Revision-of Variant-of

2.3 2.3

checkout

2.3

checkin

slide-7
SLIDE 7

7 320312 Software Engineering (P. Baumann)

Versions: Terminology

  • Version ::= revision | variant
  • Revision:

A software object that was created by modifying an existing one

  • Variant:

Two software objects sharing an important property, differing in others

  • user interface, platform, algorithms, data structures, user groups, …
slide-8
SLIDE 8

8 320312 Software Engineering (P. Baumann)

Using Deltas to Reduce Version Space

Data base (vault) Workspace (sandbox)

2.2

1.1 1.2 1.3 2.1

Fix.1 Par.1 Par.2

A delta is a difference between two revisions. Can be computed in forward or backward direction on checkin. Used to regenerate one revision from another.

2.3 2.3

checkout

2.3

checkin

2.2

slide-9
SLIDE 9

9 320312 Software Engineering (P. Baumann)

Merging of Versions

  • line based produces too many false conflicts
  • Full semantic merging not practical
  • Structural merges (smart merges)
  • Ex: developer A changes identifiers, developer B changes code using the old
  • identifiers. Now what?
  • research stage
slide-10
SLIDE 10

10 320312 Software Engineering (P. Baumann)

Version Selection For Configuration

Compiler Back End Lexical Analysis Syntactic Analysis Semantic Analysis Optimization Code Generation System Model Version Groups Baseline

slide-11
SLIDE 11

12 320312 Software Engineering (P. Baumann)

  • Release:

a version that has been made available to user / client

  • Configuration:

combination of components into a system according to case-specific criteria

  • Baseline:

a static reference point for any configurable items in your project

  • does not imply that baseline is "perfect". It is only stating, in an example of software

development, that the current version of the code is locked down so it can be verified and validated (tested)

  • Beware: used with various connotations; see

http://projectmanagement.ittoolbox.com/documents/popular-q-and-a/meaning-of-baseline-in- the-software-project-1480 for a discussion

Configuration: Terminology

slide-12
SLIDE 12

13 320312 Software Engineering (P. Baumann)

Configuration Models

  • Three major models:
  • Composition Model
  • Configuration = set of software objects
  • - module oriented aspect
  • Change Set Model
  • Configuration = bundle of changes
  • - dynamic aspect
  • Long Transaction Model
  • Configuration = all changes are isolated into transactions
  • - collaborative aspect
  • Common understanding:

configuration = selection (according to some individual criteria) of components from repository which together make up a release

slide-13
SLIDE 13

14 320312 Software Engineering (P. Baumann)

Ex: Furniture Configuration

  • Available product parts are combined into the variety of products offered
  • Sample configuration:
  • Configuration name

"Table MySweetHome"

  • Enumeration of elements,

plus their pertaining versions (components, user documentation, …)

  • Process description:

how to generate & package

  • Responsible employee

Table top TT1 Bolts B1..B4 Legs L1..L4 Instructions: Attach Legs L1 with Bolts B1 to TT1; ...

slide-14
SLIDE 14

15 320312 Software Engineering (P. Baumann)

Configurations in rasdaman

  • Operating systems:
  • Linux, Solaris, HP-UX, DEC Tru64, AIX, ...
  • Compilers
  • (gcc 2.95) / gcc 3.3 / gcc 4 / ...
  • Database systems:
  • Oracle, DB2, Informix, PostgreSQL, MySQL
  • With or without debug (internal test version)
  • Release timeline:

..., 3.6, 5.0, 5.1pre, 5.1, 5.2, 6.0, 6.1; 7.0; 8.0, 8.1, 8.5, 9.0

slide-15
SLIDE 15

16 320312 Software Engineering (P. Baumann)

  • 4. Reconfiguration:

select according to … + variants by attribute (e.g. platform=Unix)

  • 5. Time machine:

select according to … + ignore everything after a cutoff date.

  • 6. New Release:

select according to … + the newest, stable versions that are associated with a given configuration of change requests

Rule-Based Configuration Building

(sample roles)

  • 1. Baseline (aka "default"):

no versions, no selection needed

  • 2. Developer:

select all version checked out by me, + the newest revision on main branch for others.

  • 3. Cautious Developer:

select last baseline + all version checked out by me + all versions checked in by me

[ versions | configurations ]

slide-16
SLIDE 16

17 320312 Software Engineering (P. Baumann)

  • SVN (subversion)  CVS  RCS [Tichy, 80s]  SCCS
  • GUI frontends: RapidSVN, TortoiseSVN
  • Some svn commands:
  • svn import http://yourhost/svn/repos myproject myproject
  • Don't forget the last argument, or else all of the files in myproject will be dumped into the main SVN repository

directory... at the top of the hierarchy

  • svn checkout http://yourhost/svn/repos/myproject/trunk
  • d myproject
  • svn status myfile.cc
  • svn update myfile.cc
  • svn diff myfile.cc
  • svn commit myfile.cc
  • diff, tkdiff

Tools: svn & friends

slide-17
SLIDE 17

18 320312 Software Engineering (P. Baumann)

Tools: make

  • "make": controls generation of derivatives from their prerequisites
  • Configuration rule base: (i) builtin, (ii) Makefile, makefile
  • Rule format:

target: prerequisites how-to-generate

$@ Full name of current target $? current dependencies out-of-date $< source file of current dependency

  • Macro: aka variable
  • SRC = myclass1.cc myclass2.cc
  • gcc –o $(OBJECTS) ...
slide-18
SLIDE 18

19 320312 Software Engineering (P. Baumann)

Multi-Step Generation

  • Makefile can contain any number of rules
  • Advantage: update only when needed

server : server.o socket.o database.o /home/xyz1234/Messages/libmsg.a cc -o server server.o socket.o database.o \ /home/xyz1234/Messages/libmsg.a server.o : server.c cc -c server.c socket.o : socket.c cc -c socket.c database.o : database.c cc -c database.c

continuation line

slide-19
SLIDE 19

20 320312 Software Engineering (P. Baumann)

How Make Sees Your Project

slide-20
SLIDE 20

21 320312 Software Engineering (P. Baumann)

Summary

  • Configuration Management

for controlling change through life cycle

  • Version/revision/variant, release/configuration
  • svn, git
  • diff
  • Rule-based code generation
  • make
  • also used for configuration