Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo...

25
Introduction to Configuration Management Leonardo Gresta Paulino Murta [email protected]

Transcript of Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo...

Page 1: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Introduction to Configuration Management

Leonardo Gresta Paulino [email protected]

Page 2: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 2

From the beginning…

• 50s

– CM used in the production of military air planes, weapons, and space

rockets

• 60s e 70s

– Born of SCM (S = Software)

– Still focus on military applications

• 80s e 90s

– Civil uses of CM (MIL à EIA, IEEE, ISO, etc.)

– First international standards on CM

– Assimilation by non-military organizations

Page 3: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 3

Some standards• AFSCM 375-1 (1962)

– Only consider hardware• MIL Std 483 (1971)

– Starts to consider software• DOD Std 2167A (1985)

– Consolidates previous standards• MIL Std 973 (1992, 1993, 1995)

– Widely used in governmental contracts– Deprecated in 2000

• EIA 649 (1998, 2004)– Substitutes MIL Std 973– Compatible to ISO 12207

Page 4: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 4

Some standards• IEEE Std 828 (1983, 1990, 1998, 2005, 2012)

– Discusses about the conception of CM plan– Main reference for non-military organizations

• IEEE Std 1042 (1987)– Guide to apply IEEE Std 828– Very complete and detailed standard about CM– Reaffirmed in 1993– Deprecated in 2000

• ISO 10007 (1995, 2003)– Based on MIL Std 973– Satisfies ISO 9000

Page 5: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 5

Some standards• ISO 12207

– CM process based on• IEEE Std 828• IEEE Std 1042• ISO 10007

• CMMI– Process area at level 2

• MPS.BR– Process at level F

Page 6: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 6

Some books

• “Software Configuration Management Handbook” – Alexis Leon (2004)

• “Software Configuration Management” – Jessica Keyes (2004)

• “Configuration Management Principles and Practice” – Anne Hass (2002)

• “Software Configuration Management Patterns: Effective Teamwork, Practical Integration” – Stephen Berczuk e Brad Appleton (2002)

Page 7: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 7

Some websites• http://www.cmcrossroads.com

– CM community on the web• http://www.bradapp.net/acme

– Branching patterns• http://dblp.uni-trier.de/db/conf/scm

– Main CM conference– From 1988 to 2005

• https://dblp.uni-trier.de/db/conf/msr/– Conference on repository mining– Since 2004

• https://dblp.org/db/conf/csmr/index.html– Software analytics (SANER = CSMR +WCRE)– Since 1997

• https://dblp.uni-trier.de/db/conf/icsm/– Software Maintenance– Since 1993

Page 8: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 8

Anti-definitions• CM is not (only) version control• CM is not content management (take a look on product data

management)• CM is not backup• CM does not avoid changes• CM is not only for large and complex systems• CM is not only for large and distributed teams

Page 9: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 9

Definitions• Wayne Babich

– “Configuration management is the art of identifying, organizing, and controlling modifications to the software being built by a programming team. The goal is to maximize productivity by minimizing mistakes.”

• Susan Dart– “Software CM is a discipline for controlling the evolution of software

systems.”• Steve McConnell

– “Configuration management is the practice of handling changes systematically so that a system can maintain its integrity over time.”

• Walter Tichy– “Software configuration management (SCM) is the discipline of controlling

the evolution of complex software systems.”

Page 10: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 10

Definitions• Jacky Estublier

– “It is the discipline that enable us to keep evolving software products under control, and thus contributes to satisfying quality and delay constraints.”

• IEEE Std 610– “A discipline applying technical and administrative direction and

surveillance to: identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report changes processing and implementation status, and verify compliance with specified requirements.”

Page 11: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 11

Definitions

• ISO 10007

– “Technical and organizational activities comprising: configuration

identification; configuration control; configuration status accounting;

configuration auditing.”

• ISO 12207

– “The Configuration Management Process is a process of applying

administrative and technical procedures throughout the software life cycle

to: identify, define, and baseline software items in a system; controlmodifications and releases of the items; record and report the status of the

items and modification requests; ensure the completeness, consistency, and correctness of the items; and control storage, handling, and delivery of

the items.”

Page 12: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 12

Definitions• CMMI

– “The purpose of Configuration Management (CM) is to establish and maintain the integrity of work products using configuration identification, configuration control, configuration status accounting, and configuration audits.”

• MPS.BR– “The purpose of Configuration Management process is establish and

maintains the integrity of all work products of a process or projectand make them available to all stakeholders”

Page 13: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 13

CM focus• Control the evolution of– Project work products– Process work products

• Source of information to other processes– Historical data for measurement and analysis– Bug reports for causal analysis

Page 14: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 14

Perspectives

Identification Control Status accounting Auditing Release

Issue tracking Version control Build management

Processes (management perspective):

Systems(developmentperspective):

Page 15: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 15

Challenges

• Complex projects in terms of size, sophistication, and

technologies

• Huge teams, usually distributed geographically

• Execution requirements for different hardware and software

platforms

• Support for different languages and cultures

• Different flavors to manage cost/benefit demands (e.g., desktop,

standard, professional, and enterprise)

Page 16: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 16

Challenges• Increasing speed in communication among clients about

defects in the product• Need to reduce the development time to fix defects to

keep the company reputation and comply to Service Level Agreement (SLA) contracts

• Necessity to deal with the inevitable chaos related to the creative activity of software development, using methods and tools to maximize productivity and minimize defects

Page 17: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 17

Problems due to the absence of CM• Source-code loss

• Libraries fail unexpectedly

• Difficult to understand what happened with a program or its parts

• Difficult to establish when changes were made, why, and by whom

Page 18: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 18

Problems due to the absence of CM• Requirements already elicited

suddenly disappear• Requirements already implemented

disappear from the source-code• Impossibility to match the executable

program version with its source-code version

Page 19: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 19

Evolution of CM techniques• Small systems, developed by only one person, are less

dependent of CM• When the system size and development team grow,

communication problems arise

[Leon, 2000] Communications breakdown problem

Page 20: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 20

Evolution of CM techniques• Software artifacts are shared by multiple

developers• Changes made by other developers are not well

communicated, leading to version incompatibilities

C1 C2 C3 C4 C5

[Leon, 2000] Shared data problem

Page 21: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 21

Evolution of CM techniques• A naïve solution consists on creating multiple

copies of the shared artifacts• This may lead to lack of control over copies • Leading to rework to implement the same

requirements and fix the same defects in different copies

C1 C2 C3 C4 C5C3’

[Leon, 2000] Multiple maintenace problem

Page 22: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 22

Evolution of CM techniques• Shared repository as a solution• Back to the shared data problem• Work loss due to lack of concurrency control over

the shared repository

C1 C2 C3’ C4 C5C3’’

C3

[Leon, 2000] Simultaneous update problem

Page 23: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 23

Evolution of CM techniques• Concurrency control over shared repository

• Methods and tools to support the whole CM process

• Productivity gain due to the enforcement of discipline together with reduction of rework

• Side effect may be the increasing bureaucracy required by the CM process

Page 24: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Leonardo Murta Introduction to Configuration Management 24

CM Benefits• Increasing organizational memory

• Development more dependent to the process (less dependency to individuals)

• Control over the software development and its evolution

• Traceability within different abstraction levels of the same entity (requirement, analysis, design, code, and executable program)

• Documentation about the software evolution

Page 25: Introduction to Configuration Managementleomurta/courses/cm/lecture2.pdf · 2020-02-03 · Leonardo Murta Introduction to Configuration Management 19 Evolution of CM techniques •Small

Introduction to Configuration Management

Leonardo Gresta Paulino [email protected]