software configuration management - moodle

22
1 Software Configuration Management Fernando Brito e Abreu ([email protected]) Universidade Nova de Lisboa (http://www.unl.pt) QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR) Software Engineering / Fernando Brito e Abreu 2 17-May-05 SWEBOK: the 10 Knowledge Areas Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality

Upload: others

Post on 25-Oct-2021

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Configuration Management - Moodle

1

Software Configuration Management

Fernando Brito e Abreu ([email protected])Universidade Nova de Lisboa (http://www.unl.pt)QUASAR Research Group (http://ctp.di.fct.unl.pt/QUASAR)

Software Engineering / Fernando Brito e Abreu 217-May-05

SWEBOK: the 10 Knowledge AreasSoftware RequirementsSoftware DesignSoftware ConstructionSoftware TestingSoftware MaintenanceSoftware Configuration ManagementSoftware Engineering ManagementSoftware Engineering ProcessSoftware Engineering Tools and MethodsSoftware Quality

Page 2: Software Configuration Management - Moodle

2

Software Engineering / Fernando Brito e Abreu 317-May-05

SummaryDeliverables and Their DependenciesWhat is Configuration Management ?Identification OrganizationModificationIEEE C.M. Model

What Must A C.M. Plan Include?C.M. In Project ControlC.M. Tools

Software Engineering / Fernando Brito e Abreu 417-May-05

Software DeliverablesExamples

requirements specificationdesign modelsource code moduletest batteryuser manualexecutable program...

Called “configuration items” in this context

Page 3: Software Configuration Management - Moodle

3

Software Engineering / Fernando Brito e Abreu 517-May-05

defA.inc defB.inc defBibS.inc defBibD.inc bibliotecaD.src moduloA.src principal.src moduloB.src bibliotecaS.src moduloA.obj moduloB.obj principal.obj bibliotecaS.obj bibliotecaD.obj. bibliotecaS.slib bibliotecaD.dlib executavel.exe

Deliverable Dependencies

Deliverables are not independent from each other; Dependencies are known but seldom enforced!

Software Engineering / Fernando Brito e Abreu 617-May-05

What Is Configuration Management?Set of mechanisms and activities that allows software deliverables to be:

identified (know which is which)organized (know their interdependencies)modified under control (who, why, when)

Must be a part of the development processalong all phases of the life-cycle

Page 4: Software Configuration Management - Moodle

4

Software Engineering / Fernando Brito e Abreu 717-May-05

CM along the lifecycle (in RUP)

Configuration Mgmt

Management

Environment

Business Modeling

Requirements

Analysis and Design

Implementation

Test

Deployment

Preliminary Iteration(s)

Iter.#1

Process Disciplines

Supporting Disciplines

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Elaboration TransitionInception Construction

Software Engineering / Fernando Brito e Abreu 817-May-05

Identification: Naming and Versions

Unique identifiers must be assigned to:Each deliverableEach baselineEach version (either of deliverables or baselines)

a deliverable id can be composed of name + version number

There must be an explicit convention for versions and deliverables identifiers.

Page 5: Software Configuration Management - Moodle

5

Software Engineering / Fernando Brito e Abreu 917-May-05

Organization:Baselines

Baseline - set of deliverables that define a particular version of a system or subsystemA baseline is often called a configurationThe minimum number of deliverables in a baseline are those needed to allow:

independent reusecorrective and evolutive maintenance

Software Engineering / Fernando Brito e Abreu 1017-May-05

Organization:Branches

Are used when a product is to be deployed in multiple target platformsRequire diachronic traceability mechanisms :

storage and manipulation of “deltas”forward and backward reversing facilities

GreekGreek::•• diadia -- throughthrough•• kronoskronos -- timetime

Page 6: Software Configuration Management - Moodle

6

Software Engineering / Fernando Brito e Abreu 1117-May-05

Other examples of CM tools

Software Engineering / Fernando Brito e Abreu 1217-May-05

Modification:Check-in

First version of deliverables is built in the “sandbox”Kids, Soldiers or Cats?

Check-in allows deliverables to be put under CMUsually requires information on:

Who is doing / who authorized the check-inWho validated / verified the deliverableWhich is the updated version of the related deliverablesWhen the check-in event took place

Page 7: Software Configuration Management - Moodle

7

Software Engineering / Fernando Brito e Abreu 1317-May-05

Software Engineering / Fernando Brito e Abreu 1417-May-05

Modification:Check-out

Check-out puts copies of deliverables in the sandbox (they are supposed to be checked-in again ...)Usually requires information on:

Who did the check-outWho authorized the check-outWhy is the check-out requiredWho will be in charge of the deliverableWhen the check-out event took place

“Read-only” check-out should be free from the previous constraints!

Page 8: Software Configuration Management - Moodle

8

Software Engineering / Fernando Brito e Abreu 1517-May-05

Modification: Check-out (continued)Checking-out an already checked-out deliverable

optimistic strategy: probability of this occurrence is small, so the deliverable is locked upon the first request

the second partner must wait until the lock is released (when the first checks-in the required deliverable)this strategy is rigid but simple

pessimistic strategy: probability of this occurrence is not neglectable, so we must allow it

merging conflicts must be solved laterflexible but more complex

in both cases, partners should be notified: email is often used to do that when a partner is not logged on

Software Engineering / Fernando Brito e Abreu 1617-May-05

Modification:Conflict resolution

When two or more instances of the same deliverable are checked-out, a merging mechanism is required upon next check-in:

Differences must be identified and conciliatedMost differences can be merged automatically (no conflicts)Some conflicts request human intervention

The same happens when we want to collapse two, or more, branches

Page 9: Software Configuration Management - Moodle

9

Software Engineering / Fernando Brito e Abreu 1717-May-05

Modification:Authorization

Responsible must have experience and authority!

Modifications are only authorized with appropriate fundament, usually through an appropriate form -request for modifications or improvements (RFI).

These forms should be distributed to final users

Users should be notified of the request follow-up (acceptation, postponement, refusal)

An Intranet can be used to submit requests [Monteiro99]

CM responsible should only allow a definitive change to a baseline if all interrelated deliverables are adequately modified (synchronic traceability enforcement)

Software Engineering / Fernando Brito e Abreu 1817-May-05

Modification:Request for Improvements Checklist

Which is the effort and cost required?How complex is the change and what is the technological risk?Are the components to be changed highly coupled with others?What is likely to happen if the changes is not implemented properly or not implemented at all?What is the relative importance of this change when compared with other pending requests?Who will make the change?

Page 10: Software Configuration Management - Moodle

10

Software Engineering / Fernando Brito e Abreu 1917-May-05

IEEE C.M. Library ModelDeliverables, while being developed and modified frequently, are kept in the Dynamic Library (“sandbox”)Deliverables are "promoted" to the Controlled Library, when they are ready for V&V actions and integrationOperational components or full-system versions to installin the final client are "freezed" (in the Static Library)

Dynamic library(sandbox)

Controlledlibrary

Staticlibrary

Check-in

Check-out

ClientInstallation

Freezingactions

V&VactionsDeliverable

modification

•• ANSI/IEEE Standard 1042ANSI/IEEE Standard 1042

Software Engineering / Fernando Brito e Abreu 2017-May-05

What Must a CM Plan / System Include?Tasks definition and responsibilities

Selected tools, techniques and methodologies Synchronic traceability mechanisms

dependenciesexecutables automatic generation

Diachronic traceability mechanismsbranchesdeltas

Page 11: Software Configuration Management - Moodle

11

Software Engineering / Fernando Brito e Abreu 2117-May-05

What Must a CM Plan / System Include?Register and storage procedures (“check-in” and “check-out”)Modification and distribution procedures of deliverables (who authorizes, when and how?)Updating strategy of catalogs of deliverablesStandards for documentation (to enforce reuse)Procedures for security copiesProcedures for delivery generation

Software Engineering / Fernando Brito e Abreu 2217-May-05

The Support of CM in Project ControlPutting modules under a configuration management mechanism, managed by staff members distinct from developers enables project management control!Examples:

the percentage of modules, specified in detailed design, which were finished is easily verifiable, therefore avoiding the “90% syndrome” by allowing an evaluation of the real completion compared to the previewed one;defects and failures in modules are registered because module modification implies their check-in in configuration management, which usually must be justified.

Page 12: Software Configuration Management - Moodle

12

Software Engineering / Fernando Brito e Abreu 2317-May-05

Concluding Remarks ...During all project life-cycle we need to keep an updated library with all deliverables produced

CM guarantees their integrity and consistency

It must be possible to trace all change requests back to requirements

CM is often seen by team members as a monotonous task that restricts individual freedom!

A strong commitment (not just involvement) is needed by upper management to guarantee its adequate adoption

Software Engineering / Fernando Brito e Abreu 2417-May-05

Without Configuration Management...

... we loose the synchronic anddiachronic traceability

Page 13: Software Configuration Management - Moodle

13

Software Engineering / Fernando Brito e Abreu 2517-May-05

CM ToolsTools can and must be used for automation of most CM workThere are many CM tools availableThe most complex (and expensive) CM tools allow large development teams, distributed over several sites

Software Engineering / Fernando Brito e Abreu 2617-May-05

CM Tools: Characteristics (1) Interface Type: textual, menus or GUI?

Configuration items supported: source code (always) and all other types of deliverables (requirements specifications, analysis and design documents, manuals, test plans, etc ?

Repository: normal file system, relational or OO database?

For integration purposes, the “openness” of the repository is a must!

Page 14: Software Configuration Management - Moodle

14

Software Engineering / Fernando Brito e Abreu 2717-May-05

Tools: Characteristics (2) Configuration Control: association of deliverables in aggregates (baseline), that can (or cannot) be frozen and to which a version identifier is given?

Access Control: mutual exclusion in the access of configuration items?

This problem occurs when, for instance, two programmers want to simultaneously modify the same configuration item;

some tools send a notification (mail) to the user who tries to access an item under use by somebody else;

new breakthroughs are envisaged due to recent results of cooperative work research.

Software Engineering / Fernando Brito e Abreu 2817-May-05

Tools: Characteristics (3) Generation Control: automation of executables generation process based on dependencies and triggering actions between configuration items?

Support for evolution?Identification of modifications ("deltas") on a given item;

ability to revert modifications (reverse diachronic traceability).

Support for distribution: allow configuration items to be spread in several machines in a network?

Support for integration: with tools as editors, code analyzers, analysis and design tools, test tools, etc?

Page 15: Software Configuration Management - Moodle

15

Software Engineering / Fernando Brito e Abreu 2917-May-05

C.M. Tools Web LinksMKS SourceIntegrity (http://www.mks.com/products/scm/sipro/)PVCS Version Manager (http://www.hallogram.com/intersolv-pvcs/manager/index.html)Microsoft SourceSafe (http://www.ralgi.com/products/vss/sourcesafe.html )JavaSafe (http://www.javasoft.com/marketing/collateral/java_safe_ds.html )Sablime (http://www.bell-labs.com/project/sablime/index.html )CCC/Harvest (http://www.platinum.com/products/appdev/cccharps.htm )Continuus/CM ( http://www.cwi.com/products/productsBB.html )SCM (http://www.unipress.com/cat/scm.html )

More info: http://www.loria.fr/~molli/cm-index.html

Software Engineering / Fernando Brito e Abreu 3017-May-05

Page 16: Software Configuration Management - Moodle

16

Software Engineering / Fernando Brito e Abreu 3117-May-05

Software Engineering / Fernando Brito e Abreu 3217-May-05

Page 17: Software Configuration Management - Moodle

17

Software Engineering / Fernando Brito e Abreu 3317-May-05

Software Engineering / Fernando Brito e Abreu 3417-May-05

Page 18: Software Configuration Management - Moodle

18

Software Engineering / Fernando Brito e Abreu 3517-May-05

Other examples of CM toolsPVCS (Polytron Version Control System)

ESE System (Evolution Support Environment System),

SySL

EPOS CASE

SODOS System

PACT

SCCS - Source Code Control System (AT&T)UNIX standardMainly code targetedtextual interface

Software Engineering / Fernando Brito e Abreu 3617-May-05

Examples of ToolsRCS - Revision Control System (GNU)

freely available from GNU for UNIX environmentsimprovement over SCCSstill textual interfacesupports any kind of text files (source code, manuals, test data)

CVS - Concurrent Version System (GNU)also produced by GNUextends RCS by allowing concurrent file manipulation

Page 19: Software Configuration Management - Moodle

19

Software Engineering / Fernando Brito e Abreu 3717-May-05

Examples of ToolsCMS/AIT - Configuration Management System / Action Item Tracking

Produced by CIMware Technologies Inc. (USA)Uses an Oracle repository

CMS - Configuration Management SystemProduced by Workgroup Technologies (USA)Uses a modified version of RCS

Software Engineering / Fernando Brito e Abreu 3817-May-05

Examples of ToolsSMS

Produced by Intasoft Inc. (UK)Source code control facilities using a preprocessorMenu interfaceAvailable for PCs, UNIX and VAX/VMS.

ADC / Aide-de-ChampProduced by SMDS / Software Maintenance & Development Systems Inc (USA)Configuration items and their interrelations are stored in a database supporting the Entity-Relationship model.

Page 20: Software Configuration Management - Moodle

20

Software Engineering / Fernando Brito e Abreu 3917-May-05

Examples of Tools

SABLIME Project Administration SystemProduced at AT&T Bell LaboratoriesAllows code and documentation management.Information about requests for modifications, their rationale and actions for their implementation can be stored in association with target files.Allows to generate reports and historical metrics about modifications.

Software Engineering / Fernando Brito e Abreu 4017-May-05

Examples of ToolsCCC/Manager

Produced by Softool Corporation (USA)Available for DEC, IBM, Sun, HP, Harris and PCs.

CMF - Configuration Management FacilityProduced by Expertware (USA)

TEAMNETProduced by TeamOne Systems Inc. (USA)Has a fusion mechanism that allows conflict resolutionAllows to freeze versionsTextual and menu interfaces

Page 21: Software Configuration Management - Moodle

21

Software Engineering / Fernando Brito e Abreu 4117-May-05

Examples of Tools in EnvironmentsAMPLIFY CONTROL

Produced by CaseWare Inc ( http://www.cwi.com) Graphical interfaces for Motif, Sunview and OpenviewObject-oriented repository with SQL query facilities

CMZProduced in CERN (http://www.cern.ch)Suports development in C and FortranLibrary management is integrated with code edition and testAvailable for Apollo, IBM VM/CMS, IBM MVS, IBM RS/6000, VAX/VMS, Ultrix, Gould UTX, Cray Unicos, Sun, SGI, HP/UX, etc

Software Engineering / Fernando Brito e Abreu 4217-May-05

Examples of Tools in EnvironmentsDSEE - DOMAIN Software Engineering Environment

originally developed for Apollo workstations (now HP)distributed software development supportallows concurrent operation and different target generation

VAXSETenvironment for Digital’s VMSCMS - Code Management System - code libraries and configuration controlMMS - Module Management System - similar with UNIX makeIntegrated with other modules (eg: Language Sensitive Editor, Source Code Analyzer, Test Manager)PCA - Performance and Coverage Analyzer

Page 22: Software Configuration Management - Moodle

22

Software Engineering / Fernando Brito e Abreu 4317-May-05

Bibliography[Bab86] W.A. Babich, Software Configuration

Management, Coordination for Team Productivity, Addison-Wesley, 1986.

[Ber92] H.R. Berlack, Software Configuration Management, John Wiley & Sons, 1992.

[Buc96] F.J. Buckley, Implementing Configuration Management: Hardware, Software, and Firmware, second ed., IEEE Computer Society Press, 1996.

[Con98] R. Conradi and B. Westfechtel, “Version Models for Software Configuration Management,”ACM Computing Surveys, vol. 30, iss. 2, June 1998.

[Dar90] S.A. Dart, Spectrum of Functionality in Configuration Management Systems, Software Engineering Institute, Carnegie Mellon University, 1990.

[IEEE828-98] IEEE Std 828-1998, IEEE Standard for Software Configuration Management Plans, IEEE, 1998.

[IEEE12207.0-96] IEEE/EIA 12207.0-1996//ISO/IEC12207:1995, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology - Software Life Cycle Processes, IEEE, 1996.

[Mid97] A.K. Midha, “Software Configuration Management for the 21st Century,” Bell Labs Technical Journal, vol. 2, iss. 1, Winter 1997, pp. 154-165.

[Moo98] J.W. Moore, Software Engineering Standards: A User’s Roadmap, IEEE Computer Society, 1998.

[Pau93] M.C. Paulk et al., “Key Practices of the Capability Maturity Model, Version 1.1,” technical report CMU/SEI-93-TR-025, Software Engineering Institute, Carnegie Mellon University, 1993.

[Pre04] R.S. Pressman, Software Engineering: A Practitioner’s Approach, Sixth ed, McGraw-Hill, 2004.

[Roy98] W. Royce, Software Project Management, A United Framework, Addison-Wesley, 1998.

[Som05] I. Sommerville, Software Engineering, seventh ed., Addison-Wesley, 2005.

Software Engineering / Fernando Brito e Abreu 4417-May-05

Related standards(IEEE730-02) IEEE Std 730-2002, IEEE

Standard for Software Quality Assurance Plans, IEEE, 2002.

(IEEE828-98) IEEE Std 828-1998, IEEE Standard for Software Configuration Management Plans, IEEE, 1998.

(IEEE1028-97) IEEE Std 1028-1997 (R2002), IEEE Standard for Software Reviews, IEEE, 1997.

(IEEE12207.0-96) IEEE/EIA 12207.0-1996//ISO/ IEC12207:1995, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology - Software Life Cycle Processes, IEEE, 1996.

(IEEE12207.1-96) IEEE/EIA 12207.1-1996, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology-Software Life Cycle Processes - Life Cycle Data, IEEE, 1996.

(IEEE12207.2-97) IEEE/EIA 12207.2-1997, Industry Implementation of Int. Std. ISO/IEC 12207:95, Standard for Information Technology-Software Life Cycle Processes - Implementation Considerations, IEEE, 1997.

(ISO15846-98) ISO/IEC TR 15846:1998, Information Technology - Software Life Cycle Processes -Configuration Management, ISO and IEC, 1998.