Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
Chapter 17Software Configuration Management
O O
Software Configuration Management
Object-Oriented
SoftwareConstruction
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge, , p g gg(based on Bruegge & Dutoit, Kniesel)
Outline of the Lecture
Software Configuration Management (SCM)M ti ti Wh ft fi ti t?Motivation: Why software configuration management?Activities and roles in software configuration management
Terminology and MethodologyTerminology and MethodologyWhat are Configuration Items, Baselines, etc. ?What goes under version control?
SCM Approaches
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 2
Why Software Configuration Management ?
The problem:Multiple people have to work on software that is changingMore than one version of the software has to be supported
Released systemsCustom configured systems (different functionality)Custom configured systems (different functionality)System(s) under development… for different machines and operating systems
Need for coordination
Software Configuration Management l i ft tmanages evolving software systems
controls the costs involved in making changes to a systemdisciplines and techniques of initializing, evaluating and controlling changep q g, g g gto software products during and after the software engineering process
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 3
Software-Development: Difficulties and Problems
HAdd promotion Add promotion
calculationcalculationNew platformNew platform
Bug 849Bug 849Bug 527Bug 527 New customer New customer
Is requirement#462 impl. In
current release ?
How many level 1 bugsstill exist?
Analyst Project Manager
Bug 98Bug 98
Bug 179Bug 179
New GUI New GUI buttonbutton
ppNew web designNew web design
gg
Bug 251Bug 251
New customer New customer transactiontransaction
Bug 348Bug 348Analyst Project Manager
H f ll I did ’t Wh d thi b ildDoes bug#784 tillHopefully I didn’t
miss a file.Why does this build
not work?#784 still
exist?
Build 3Build 3
B ild 2B ild 2Build 2Build 2 Build 1Build 1
Tester
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 4
TesterDeveloper Integrator
SCM Activities
Configuration item identification modeling of the system as a set of evolving components
Promotion managementis the creation of versions for other developers
R l tRelease managementis the creation of versions for the clients and users
Branch managementBranch managementis the management of concurrent development
Variant managementis the management of versions intended to coexist
Change management is the handling approval and tracking of change requestsis the handling, approval and tracking of change requests
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 5
SCM Roles
Configuration ManagerIdentifies configuration itemsDefines procedures for creating promotions and releases
Change control board memberA j t h tApproves or rejects change requests
DeveloperCreates promotions triggered by change requests or normal development C eates p o ot o s t gge ed by c a ge equests o o a de e op e tactivitiesChecks in changes and resolves conflicts
AuditorAuditorSelects/evaluates promotions to be released Ensures consistency and completeness of releasesy p
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 6
Terminology and Methodology
What areConfiguration ItemsBaselinesVersions, Revisions and Releases
The usage of the terminology presented here is not strict but varies for g gydifferent configuration management systems.
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 7
Terminology: Configuration Item (CI)
An aggregation of hardware and / or softwareTreated as a single entity in the configuration management processg y g g
Software configuration items are not only program code segments but ll t f d t di t d l tall type of documents according to development, e.g.
all type of code filesdrivers for testsd e s o testsanalysis or design documentsuser or developer manualssystem configurations (e.g. version of compiler used)
In some systems not only software but also hardware configurationIn some systems, not only software but also hardware configuration items (CPUs, bus speed frequencies) exist!(Integration with Product Data Management PDM)
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 8
Finding Configuration Items (CIs)
Large projects typically produce thousands of entities (files, documents, ...) which must be uniquely identified.
But not every entity needs to be configured all the time. Issues:Wh t S l ti f CI (Wh t h ld b d?)What: Selection of CIs (What should be managed?)When: When do you start to place an entity under configuration control?
Starting too early introduces too much bureaucracyStarting too late introduces chaos
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 9
Finding Configuration Items (continued)
Very similar to object modelingItems follows subsystem decompositionyUse techniques similar to object modeling for finding CIs
An entity naming scheme should be defined so that related documents have related names.
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 10
Configuration Identification is similar to Object Identification
“Th j t” CI
“The project” CI
“The project” CI
promote()
release()
Models Subsystems Documents
Object Model Dynamic Model . . . .RAD ODDy
Database User InterfaceDatabase User Interface . . . .
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 11
Code Data Unit Test. . . . . . . .
“The project”
Terminology: Baseline
Selected project stateA ifi ti d tA specification or product
formally reviewed and agreed to by responsible managementth b i f f th d l tserves as the basis for further development
can be changed only through formal change control procedures
Examples: Baseline A: The API of a program is completely defined; the bodies of theBaseline A: The API of a program is completely defined; the bodies of the
methods are empty.Baseline B: All data access methods are implemented and tested;
programming of the GUI can startprogramming of the GUI can start.Baseline C: GUI is implemented, test-phase can start.
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 12
More on Baselines
As systems are developed, a series of baselines is developed, usually after a review (analysis review, design review, code review, system testing, client acceptance, ...)
Developmental baseline (RAD, SDD, Integration Test, ...)Goal: Coordinate engineering activitiesGoal: Coordinate engineering activities.
Functional baseline (first prototype, alpha release, beta release)Goal: Get first customer experiences with functional system.
( )Product baseline (product)Goal: Coordinate sales and customer support.
Many naming schemes for baselines exist (1.0, 6.01a, ...)y g ( , , )3 digit scheme:
7 5 5
Release(Customer) Version Revision
(Developer)
7.5.5
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 13
(Customer)(Developer) (Developer)
Version vs. Revision vs. Release
Version:An initial release or re-release of a configuration item Associated with a complete compilation or recompilation of the item.Different versions have different functionality.
Revision: Change to a version that corrects only errors in the design/codeg y gDoes not affect the documented functionality.
R lRelease: The formal distribution of an approved version or revision.
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 14
SCM: The Fundament of the Development Process
Analysis Design Implementation Test Maintenance
Software Configuration Management
Collect and Manage Information
to create, maintain, and extend Software
Source code HTML/XML files RequirementsSource codeBinariesDocumentation
HTML/XML filesBitmaps & JPEGscgi, java scripts
RequirementsModelsTest scripts
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 15
Documentation cgi, java scripts Test scripts
Basic SCM-Approaches: General Scenario
Development-and
SCM-Tools
Developer
Files
RepositoryWorking Environment
Repository
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 16
SCM-Approach: "Vault Model"
Development-t ltools
Developer
WorkingEnvironment
Copies ofSource-Files
SCM-Tools
Developer
ProblemsDevelopment tools can not directly access the repository
Repository
Development tools can not directly access the repositorymany private versions outside the repositoryno central control of private copies by the SCM system(no global locking)
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 17
(no global locking)possible data loss by concurrent updates (lost changes)
SCM-Approaches: "Standard Repository"
Development-Tools
Developer ...API
IdeaAll development tools directly access the repository via a given interface
Repository
(API describes a "standard")Problems
All tools must be adapted to this standard
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 18
All tools must be adapted to this standard... every time the standard is modified / extended
SCM-Approach: "Virtual File System" (VFS)
Development- /
/
Developer
Tools/
...
VFS VFS
...
real file system
......
Idea
real file systemvirtuel file system
IdeaIntercept all I/O - operations of the operating system (open, read, write)and bypass them to the repository
Advantagestransparence, because the repository is shown as a regular directory tree
seamless integration with existing standard software
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 19
seamless integration with existing standard softwareuser does not have to change his mode of operation
ClearCase® Architecture
Applications with file accessApplications with file accessApplications with file accessApplications with file access
MultiversionFile System
File system of Windows / UNIXFile system of Windows / UNIXFile system of Windows / UNIXFile system of Windows / UNIXClearCase MVFSClearCase MVFSClearCase MVFSClearCase MVFS
ClearCase VOBClearCase VOBnonnon--versionedversioned
filesfiles
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 20
ClearCase VOBClearCase VOBfilesfiles
SCM: The Fundament of the Development Process
Analysis Design Implementation Test Maintenance
Software Configuration Management
V i C l B ild MVersion Control Build Management
Workspace Management Process Control
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 21
Workspace Management (1)
Setup and maintenance of a personal working environmentset of needed objects
Sources, Binaries, ...... for a certain task
bug fixing development of a new functionality or an extensionbug fixing, development of a new functionality or an extension
Approachesunconstrained:
no well-defined working environment neededhierarchical sub-environments:hierarchical sub-environments:
existing application areas can be copied and changed locallychange sets:
Original version of an object + set of changes of this objectrule-based environments:
needed objects are defined via rules
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 22
Workspace Management: Hierarchical Sub-Environments
Principlecopy - modify - merge child 4 = parent 2
parent 1
child 1 child 2 child 3 child 5 child 6child 1 child 2 child 3 child 5 child 6
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 23
Workspace Management: Change Sets
Grouping of changes that base on each othere.g. bug fixesoften used for the organization of on development lineat the end of a development process the cumulated changes are released as a new version (patch bundles service release / pack)as a new version (patch bundles, service release / pack)
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 24
SCM: The Fundament of the Development Process
Analysis Design Implementation Test Maintenance
Software Configuration Management
V i C l B ild MVersion Control Build Management
Workspace Management Process Control
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 25
Version Control (1): Branching
Branching Graph ModelRepresentation of the most arc.cimportant development lines and change sets
1
2
31
V1_maintenanceV1
new_gui bug=239
symbolic names for better comprehension and simpler references
3
7
2
3
1
2
bug=248
bug=267V1.1
every branch has additional administrative annotations
symbolic name
7
134
5
bug=268
bug=301V1.2
symbolic namereference to a branch pointcomments
18V2
...
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 26
Version Control (2): Merging
Problemmerging happens automatically,
...x=0
basis version
if shared acestor exists of two filesis known
...x=0
...x=1
...
Version A Version Bx=0...
x=1...
...?
Version A Version B
experimental resultsin approx. 90% of all cases the merging can is done without user
x=?...
pp % g ginteractionapprox. 1% of all merges was erroneous, most of these were detected becaus of syntax errorsbecaus of syntax errors
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 27
Versioning of folders
/usr/src/proj /usr/src/proj
gui_src gui_doc gui
schedulesrc doc
schedule
arc c zbuf c plan docarc.c zbuf.c plan.doc
arc.c zbuf.c plan.doc
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 28
Version Control (3): Possible Extensions
Labelssymbolic names arc.c arc.doc
(hyperlink)
design forAttributes
additional commentsH li k
1
2
3
change_req=218(attribute)
1
2
3
RLS1
RLS2
design_for
Hyperlinksrelationships
triggers
3
7
RLS1(label)
3 RLS2
triggers ECA-rules
Change Sets
7
Annotations (on code level)Namespaces...
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 29
SCM: The Fundament of the Development Process
Analysis Design Implementation Test Maintenance
Software Configuration Management
V i C l B ild MVersion Control Build Management
Workspace Management Process Control
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 30
Build Management (1)
Management of all information necessary for the reproducible creation of derived objects
necessary data:correct versions of all source files and other derived objectsnames and versions of all used tools all parameter adjustments
resulting properties of build managementderived objects can be used by different users at the same time (binary sharing)onl the essential operations for the creation of a deri ed object m st be carried o tonly the essential operations for the creation of a derived object must be carried out (minimal rebuilding)a bill-of-materials list can automatically created which lists all needed components
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 31
Build Management (2)
Problems with conventional toolsthe "normal" make tool does not support binary sharinginsufficient BOM list prevents binary sharing, because it can not be decided if really "everything" related to the object is identicalminimal rebuilding requires analysis of dependencies for which specializedminimal rebuilding requires analysis of dependencies for which specialized solutions (incremental compilers) exist, but no solution which can be generalized to an inhomogeneous build process
Solution in ClearCaseThe VFS tracks all I/O accesses by the compilers and other tools and y pthereby collects and logs all directly and indirectly referenced objects
clearmake is responsible for this taskclearmake is responsible for this taskintegrated into IDEs (e.g. Eclipse, WebSphere Studio)
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 32
SCM: The Fundament of the Development Process
Analysis Design Implementation Test Maintenance
Software Configuration Management
V i C l B ild MVersion Control Build Management
Workspace Management Process Control
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 33
Process Control
Development process encompasses analysis, design, implementation and maintenance of a software product
SCM is just a part of this processId tifi ti f blIdentification of problemsIsolation of Problems,Definition of proceduresCreation of time tablesOrganization of (automatic) testing
t f ft timeasurement of software properties
tools to automate the development processes: workflow managertools to automate the development processes: workflow manageraction-response conceptworking on a task may influence or start other tasks
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 34
Unified Change Management (Rational/IBM)
Summary
Software Configuration Management (SCM)Configuration Items, BaselinesgWhat goes under version control?Fundament of the Development Process
Version ControlWorkspace ManagementBuild ManagementBuild ManagementProcess Control
SCM Approaches
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 35
Spare
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 36
Subversion – Alternative for Version Control
Open-source tool for software versioning'real' rename, move, copy (in contrast to CVS)y ( )directories, renaming and file metadata is versionedatomic commitsrobust network layer (WebDAV DeltaV)based on DBMS (BerkleyDB) or file-based repositoryB h / t i t t tiBranches / tags in constant timeclean text / binary handlingconcept for user and access rightsconcept for user and access rights
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 37
Subversion Architeture for a VFS
Client Interface
gui client
cmd line client
dev toolsintegration
file systemintegration
Client Library
Client Interface
Repository Access
dav svn
ApacheInternet
R it I t f
Apachemod_dav
mod_dav_svnsvnservemod_svn
Subversion Repository
Repository Interface
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 38
Berkeley DB
VFS Open-Source SolutionApache + Subversion + WebDAVp
ClientsLinux: davfs2 file system driverWindows: Novell Netdrive
Branch/Versionsdi tl i ibldirectly visible
RestrictionsSynchronization of changesSy c o at o o c a gesOnly support for auto-versioningno view support
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 39
ClearCase Summary
ClearCase Pros Industrial strength Excellent merge toolsExcellent merge tools Good GUI on Windows Proven reliability Scales up wellScales up well
ClearCase Cons Heavyweight server and clientHeavyweight server and client Very steep learning curve for users All merges are server based
Merges over high latency links are slowg g yVery expensive Weak GUI on Unix platforms Server communication is RPC based so anything over a high latency link is slowy g g yHigh administration overhead
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 40
Subversion Summary
Subversion ProsWidespread IDE support ,editor and file system / tool integrations
Eclipse: http://www.polarion.org/index.php?page=overview&project=subversiveWindows Explorer: http://tortoisesvn.tigris.org/
lightweight server and client Quick learning curve for users (many similarities with cvs)Fast and efficient on the network
Flexible architectureFlexible architecture Low administration overhead
S b i CSubversion Cons Merge tracking is currently completely manual Weak support for checking out part of a repository (Views)pp g p p y ( )supports only version controlTransparent work on the repository is limitedN h i f d i d bj t
Armin B. Cremers, Tobias Rho, Daniel Speicher & Holger Mügge (based on Bruegge & Dutoit) ObjectOriented Software Construction 41
No sharing of derived objects