SlideShare a Scribd company logo
1 of 50
Download to read offline
SOFTWARE
CONFIGURATION
MANAGEMENT
Some Sources
• Ahmad K. Shuja, Jochen Krebs. IBM Rational Unified
Process Reference and Certification Guide—Solution
Designer. IBM Press, 2008.
• Bellagio, David E. Milligan, Tom J. Software
Configuration Management Strategies and IBM®
Rational® ClearCase® Second Edition A Practical
Introduction. Addison Wesley Professional, 2005.
• Aiello, Bob. Sachs, Leslie. Configuration Management
Best Practices. Addison Wesley Professional, 2011.
• Kemper, Chris; Oxley, Ian. Foundation Version Control for
web developers. Friendsfot Apress, 2012.
• Londoño & Lozano, EAFIT University, 2010.
Before…..
Think about relation between:
Before…
We must remember always…
Software is bounded only by the
limits of the human imagination.
Uncontrolled and undirected,
imagination can quickly give rise
to nightmare
Definition
Software Configuration Management (SCM) is a
software-engineering discipline comprising the tools
and techniques (processes or methodology) that a
company uses to manage change to its software
assets.
Software Configuration
Management is how you control
the evolution of a software project
IEEE Standard 828 (1983, 1998, 2005,
2008, 2012).
http://standards.ieee.org/findstds/standard/828-2012.html
The minimum required contents of a Software
Configuration Management Plan (SCMP)
are established, and the specific activities to
be addressed and their requirements for any
portion of a software product's life cycle are
defined.
IEEE Standard 828.
SCM constitutes a good engineering
practice for all software projects, whether
phased development, rapid prototyping, or
ongoing maintenance.
It enhances the reliability and quality of
software by (next..)
IEEE Standard 828
1. Providing structure for identifying and controlling
documentation, code, interfaces, and databases
to support all life-cycle phases
2. Supporting a chosen development/maintenance
methodology that fits the requirements,
standards, policies, organization, and
management philosophy
3. Producing management and product information
concerning the status of baselines, change
control, tests, releases, audits, etc
According with SWEBOK 2014
http://www.computer.org/portal/web/swebok Chapter 6
Configuration management (CM) is the discipline
of identifying the configuration of a system at
distinct points in time for the purpose of
systematically controlling changes to the
configuration, and maintaining the integrity and
traceability of the configuration throughout the
system life cycle.
Come back to IEEE 828
http://www.computer.org/portal/web/swebok Chapter 6
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 change processing and implementation
status, and verify compliance with specified
requirements
According with
SWEBOK 2014
IEEE Standard 828.
Configuration:
• The configuration of a system is the functional
and physical characteristics of hardware or
software as set forth in technical
documentation or achieved in a product.
• It can also be thought of as a collection of
specific versions of hardware, firmware, or
software items combined according to specific
build procedures to serve a particular purpose
Some CM standards and models
• IEEE 828
• IEEE 1704 (1997)
• IEEE 12207 Software Life Cycle Processes
• CMMI
• NTC-ISO-10007 como Administración de la
calidad – Directrices para la Administración de la
Configuración…
Configuration Item
 Any selected artifact (file) or set of selected artifact to
manage its configuration and be treated as a single entity.
Example:
code, executable objects, scripts, documents, etc.
 An aggregation of hardware, software or both kinds of
components, designated for configuration management
and treated as one entity in the management process
(IEEE Std 610.12).
 An aggregation of work products selected for configuration
management and treated as a single entity in the
process(CMMI).
Software Configuration:
• Physic and functional features of the software
exposed in a technical documentation or
reached in a product (IEEE)
• Set of controlled configuration items, at a given
moment of time (CMMI)
Versions and Variants
One version is an instance of a configuration item
or a system that differs in some form of another
instance.
Predecessor - Successor
Record
The variants are equivalent versions in
functionality but differ in hardware or software
environment
Phase Version
• Pla 1.0 1.1
• Req 1.0 1.1 1.2
• Ana 1.0 1.1
• MD 1.0 1.1
• Cod 1.0 1.1 1.2 1.3
LB 0.0.1
1.3
1.2
1.4
LB 0.0.2
• Branching
• Build
• Release
• Delta
• Build: Combination of components of a system in
executable components in a target configuration.
• Release: More than just the executable code, it
includes installation files, data, settings, release notes
and manuals. They are created for external use
• Delta: it is used to recover the history of an item.
Difference between the new version and the previous.
Baseline
Specification or product that has been formally reviewed
and approved, provides a basis for future development and can only
be changed through a formal change control.
IN OUT
Controlled
Enviroments
LB 0.0.1
Power
Factor
Correction
Baselines are used to track
the software configuration
at a discrete point in time
About Baselines – RUP
A baseline is a 'snapshot' in time of one version of each work
product in the project repository. It provides an official
standard on which subsequent work is to be based,
and to which only authorized changes can be made.
After an initial baseline is established every subsequent
change to a baseline is recorded as a delta until the next
baseline is set.
The three main reasons for creating baselines are
reproducibility, traceability, and reporting.
Rule of Baselines
baselines should be created
at the end of each project
iteration
SCM Best Practices
• Identify and store artifacts in a secure repository.
• Control and audit changes to artifacts.
• Organize versioned artifacts into versioned components.
• Organize versioned components and subsystems into
versioned subsystems.
• Create baselines at project milestones.
• Record and track requests for change.
SCM Best Practices
• Organize and integrate consistent sets of versions using
activities.
• Maintain stable and consistent workspaces.
• Support concurrent changes to artifacts and components.
• Integrate early and often.
• Ensure reproducibility of software builds.
Be Careful
SCM component is a set of related files
and directories that are versioned,
shared, built, and baselined as a
single unit
¿?
Be Careful
Be Careful
Change request management involves tracking
requests for changes to a software system.
These requests can result from defects found
by a testing organization, defects reported by
customers, enhancement requests from the
field or customers, or new ideas produced
internally.
SCM Tools
• SCM tools are software tools that automate and facilitate
the application of the SCM best practices.
• It is unrealistic to try to maintain effective SCM without an
SCM tool.
• The goal of successful SCM is to allow as much change as
possible while still maintaining control of the software.
SCM tools help automate tedious, manual, and error-prone
pieces of the SCM process, and can ensure that your
project can support all of the SCM best practices.
SCM Tools Examples
• CVS
• Subversion
• Bugzilla
• Mantis
• IBM Rational ClearCase
• GIT
SCM Tools Examples (web–Collaborative!)
• GitHub
• GoogleCode
• Gforge
• Jazz
• Microsoft Team Foundation Server
• …
SCM Tools Basic Functions
• To maintain a library or repository of files
• To create and store multiple versions of files
• To provide a mechanism for locking (to enforce
serialized change to any given file)
• To identify collections of file versions
• To extract/retrieve versions of files from the
repository
Basic operations (Note: check-in - commit)
SCM Process
• A process defines the steps by which you perform a specific
task or set of tasks. An SCM process is the way SCM is
performed on your project specifically, how an SCM tool is
applied to accomplish a set of tasks.
• A key mistake most people make is to assume that an SCM
tool will, in and of itself, solve their SCM problems or support
their SCM requirements. How you apply the SCM tool to
your development environment is called the usage
model, or SCM process. It is this model or process that will
in part determine how successfully you address your SCM
issues.
Unified Change Management
• is a software-configuration management process for software
development that spans the development life cycle,
managing change to requirements, design models,
documentation, components, test cases, and source code
• Fundamental to UCM is the unification of the activities
used to plan and track project progress with the artifacts
being changed
• Implementation of the UCM model is realized by both process
and tools
UCM Process
Source: Chapter 3 - Bellagio, David E. Milligan, Tom J. Software Configuration
Management Strategies and IBM® Rational® ClearCase® Second Edition A
Practical Introduction. Addison Wesley Professional, 2005
Unified Change Management
UCM was derived from observed best practices in thousands of
development organizations that demonstrated a capability to
develop software in a robust, scalable, and repeatable way. By
automating these best practices, UCM provides value to a
development organization in many ways, but four areas are key:
• Abstraction: we work best on higher-level tasks
• Communication: about individual activities, relieving
developers of the burden of remembering the specific
files and versions they created to fulfill activities on
which they worked
Unified Change Management
• Stability: the project progresses in a known, controlled
way with markers placed along the way to denote
intermediate stable points
• Control: mechanisms to assist in managing the flow of
changes from a developer's isolated development
stream to a project-integration area or to other
developers; tracking, managing, and controlling the
flow of changes from the project's integration area or
from other developer's streams; and assisting in
integrating those changes
UCM Process Overview
A new role…
The configuration manager is familiar with an organization's
configuration and change-management processes and with the
SCM tools being used. The configuration manager is
responsible for creating and maintaining the physical
infrastructure necessary to implement the design. This
primarily involves creating and maintaining repositories and
importing existing files and directories. (In some organizations
the configuration manager is also responsible for things such as
disk space allocation, network resources, and backup strategies
as they relate to SCM data. The process described here
allocates these activities to the system administrator.)
The Architect: Defining the Implementation Model
The Configuration Manager: Setting Up the SCM Environment
The Project Manager: Managing a Project
The Developer: Joining a Project and Doing Development
The Integrator: Integration, Build, and Release
Finally
UCM provides the software-configuration management tools and
processes to achieve effective, efficient software development. It does
this by building upon a model that unifies the activities and artifacts
upon which projects are built and progress. This model serves to raise
the level of abstraction at which development is done; to provide
stability for projects and individual contributors; to manage, track, and
control the flow of changes in a project; and, finally, to provide facilities
for automated project metrics as well as real-time communication
about a project's activities and artifacts. You have seen that the UCM
process can be described in terms of five roles: the architect, the
configuration manager, the project manager, the developer, and the
integrator.
IEEE 828 propose a structure for a SCM Plan; it must
constains:
Introduction
Describes the purpose of the plan, the scope of its
application, the key terms and references
SCM Management
Who - Indicates the responsibilities and authority to carry
out the activity plan
SCM Activities
How - Indicates all activities to be performed in the
application to the project
SCM Shedule
When - Indicates the required coordination of SCM
activities with other activities in the project
SCM Resources
What - Indicates the tools, human and physical
resources to implement the plan
SCM Maintance Plan
Indicates how the plan will be maintained during its
application
IEEE-828 SCM Plan
Introducción
Describir el sistema o los ítems de configuración a los cuales se les
aplica el plan, además el propósito del plan y los documentos
relacionados y aplicables en orden de prioridad
Políticas y procedimientos
Incluir los elementos de la administración de la configuración que
estén acordados. Se deben definir las políticas, organización y las
responsabilidades, criterios para selección de los IC y la frecuencia y
control de los informes.
Identificación de la configuración
Se recomienda elaborar un árbol de la familia de IC con las
especificaciones, convención de numeración, las líneas base por ser
establecidas.
Control de la configuración
Indicar la organización, composición y téminos de JC y su relación
con otras juntas. Además se debe especificar los procedimientos
para el control de cambios.
Recuento del estado de la configuración
Definir los procedimientos para recolectar los registros y como se
deben mantener los datos necesarios para producir informes.
Auditoría de la Configuración
Se debe incluir la lista de auditorías a realizar, los procedimientos de
auditorias y las autoridades y disciplinas involucradas.
Plan según propuesta de NTC-ISO 10007
You must remember…
• SCM is a strategic practice oriented to products, projects and
organization, helping to reduce the chaos.
• With tools only, we can only achieve to automate processes, so the
organization obtain low-quality products faster
• SCM allows the improvement of product quality, understanding and
knowing how it should be implemented in projects (it is a critical
success factor).
• Tools are used to benefit the SCM implementation, but have it without
having done a previous training, without defined policies and without
established metrics, is a practice that leads to the automation of chaos.

More Related Content

What's hot

Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementChandan Chaurasia
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design pptfarazimlak
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1Abdul Basit
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGSaqib Raza
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5Mohammad Faizan
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)uma sree
 
Software maintenance
Software maintenance Software maintenance
Software maintenance Rajeev Sharan
 
A Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementA Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementMd Mamunur Rashid
 
Event management by using cloud computing
Event management by using cloud computingEvent management by using cloud computing
Event management by using cloud computingLogesh Waran
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration ManagementPratik Tandel
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)Er. Shiva K. Shrestha
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration ManagementRajesh Kumar
 
RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.Aparna Nayak
 

What's hot (20)

Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software architecture design ppt
Software architecture design pptSoftware architecture design ppt
Software architecture design ppt
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 
REQUIREMENT ENGINEERING
REQUIREMENT ENGINEERINGREQUIREMENT ENGINEERING
REQUIREMENT ENGINEERING
 
Software quality
Software qualitySoftware quality
Software quality
 
Software Metrics
Software MetricsSoftware Metrics
Software Metrics
 
Software maintenance Unit5
Software maintenance  Unit5Software maintenance  Unit5
Software maintenance Unit5
 
Spm unit2
Spm unit2Spm unit2
Spm unit2
 
SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)SQA - chapter 13 (Software Quality Infrastructure)
SQA - chapter 13 (Software Quality Infrastructure)
 
Software maintenance
Software maintenance Software maintenance
Software maintenance
 
Ch25 configuration management
Ch25 configuration managementCh25 configuration management
Ch25 configuration management
 
Sqa plan
Sqa planSqa plan
Sqa plan
 
A Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration ManagementA Brief Introduction to Software Configuration Management
A Brief Introduction to Software Configuration Management
 
Case tools
Case tools Case tools
Case tools
 
Event management by using cloud computing
Event management by using cloud computingEvent management by using cloud computing
Event management by using cloud computing
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Introduction To Software Configuration Management
Introduction To Software Configuration ManagementIntroduction To Software Configuration Management
Introduction To Software Configuration Management
 
RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.RMMM-Risk Management,Mitigation and Monitoring.
RMMM-Risk Management,Mitigation and Monitoring.
 

Similar to software configuration management

SE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementSE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementAmr E. Mohamed
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Raj vardhan
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)Amr E. Mohamed
 
Unit 6 Software Configuration Management
Unit 6 Software Configuration ManagementUnit 6 Software Configuration Management
Unit 6 Software Configuration ManagementKanchanPatil34
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.pptdivyammo
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.pptdivyammo
 
Configuration Managment Powerpoint
Configuration Managment PowerpointConfiguration Managment Powerpoint
Configuration Managment PowerpointJeannine Jacobs, MS
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2Rupesh Vaishnav
 
Software engineering
Software engineeringSoftware engineering
Software engineeringnimmik4u
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt23017156038
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdfkumari36
 
Lecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementLecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementAchmad Solichin
 
DevOps Practices in a Nutshell
DevOps Practices in a NutshellDevOps Practices in a Nutshell
DevOps Practices in a NutshellFibonalabs
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOpsAbdullah al Mamun
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deepFáber D. Giraldo
 

Similar to software configuration management (20)

Fa10 mcs-005
Fa10 mcs-005Fa10 mcs-005
Fa10 mcs-005
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
Voyager scm
Voyager scmVoyager scm
Voyager scm
 
SE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration ManagementSE2_Lec 22_Software Configuration Management
SE2_Lec 22_Software Configuration Management
 
Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2Introduction To Software Concepts Unit 1 & 2
Introduction To Software Concepts Unit 1 & 2
 
SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)SE2018_Lec 21_ Software Configuration Management (SCM)
SE2018_Lec 21_ Software Configuration Management (SCM)
 
Unit 6 Software Configuration Management
Unit 6 Software Configuration ManagementUnit 6 Software Configuration Management
Unit 6 Software Configuration Management
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.ppt
 
Mod5-SCM.ppt
Mod5-SCM.pptMod5-SCM.ppt
Mod5-SCM.ppt
 
Configuration Managment Powerpoint
Configuration Managment PowerpointConfiguration Managment Powerpoint
Configuration Managment Powerpoint
 
Intoduction to software engineering part 2
Intoduction to software engineering part 2Intoduction to software engineering part 2
Intoduction to software engineering part 2
 
SE
SESE
SE
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
Week_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.pptWeek_01-Intro to Software Engineering-1.ppt
Week_01-Intro to Software Engineering-1.ppt
 
Unit 1.pdf
Unit 1.pdfUnit 1.pdf
Unit 1.pdf
 
softwareMaintenance.pdf
softwareMaintenance.pdfsoftwareMaintenance.pdf
softwareMaintenance.pdf
 
Lecture 06 Software Configuration Management
Lecture 06 Software Configuration ManagementLecture 06 Software Configuration Management
Lecture 06 Software Configuration Management
 
DevOps Practices in a Nutshell
DevOps Practices in a NutshellDevOps Practices in a Nutshell
DevOps Practices in a Nutshell
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
 
Software configuration management in deep
Software configuration management in deepSoftware configuration management in deep
Software configuration management in deep
 

More from Fáber D. Giraldo

ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??Fáber D. Giraldo
 
Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Fáber D. Giraldo
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Fáber D. Giraldo
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsFáber D. Giraldo
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software EngineeringFáber D. Giraldo
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...Fáber D. Giraldo
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software ProcessFáber D. Giraldo
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Fáber D. Giraldo
 
Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration IntroductionFáber D. Giraldo
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)Fáber D. Giraldo
 

More from Fáber D. Giraldo (20)

ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??ISO 29119 and Software Testing - now what??
ISO 29119 and Software Testing - now what??
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...Applying a software TeleCare prototype in a real residences for older people ...
Applying a software TeleCare prototype in a real residences for older people ...
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Teamwork in Software Engineering Projects
Teamwork in Software Engineering ProjectsTeamwork in Software Engineering Projects
Teamwork in Software Engineering Projects
 
Project Planning in Software Engineering
Project Planning in Software EngineeringProject Planning in Software Engineering
Project Planning in Software Engineering
 
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
PhD Proposal - A Framework for evaluating the quality of languages in MDE env...
 
SEMAT
SEMATSEMAT
SEMAT
 
The SEI Approach
The SEI ApproachThe SEI Approach
The SEI Approach
 
The Agile Movement
The Agile MovementThe Agile Movement
The Agile Movement
 
Introduction to RUP & SPEM
Introduction to RUP & SPEMIntroduction to RUP & SPEM
Introduction to RUP & SPEM
 
Introduction to Software Process
Introduction to Software ProcessIntroduction to Software Process
Introduction to Software Process
 
Code Inspection
Code InspectionCode Inspection
Code Inspection
 
Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects Workflows adaptations for security management through MDD and Aspects
Workflows adaptations for security management through MDD and Aspects
 
Continuous Integration Introduction
Continuous Integration IntroductionContinuous Integration Introduction
Continuous Integration Introduction
 
Patterns Overview
Patterns OverviewPatterns Overview
Patterns Overview
 
L software testing
L   software testingL   software testing
L software testing
 
I software quality
I   software qualityI   software quality
I software quality
 
software metrics (in spanish)
software metrics (in spanish)software metrics (in spanish)
software metrics (in spanish)
 
CMMI
CMMICMMI
CMMI
 

Recently uploaded

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 

Recently uploaded (20)

Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 

software configuration management

  • 2. Some Sources • Ahmad K. Shuja, Jochen Krebs. IBM Rational Unified Process Reference and Certification Guide—Solution Designer. IBM Press, 2008. • Bellagio, David E. Milligan, Tom J. Software Configuration Management Strategies and IBM® Rational® ClearCase® Second Edition A Practical Introduction. Addison Wesley Professional, 2005. • Aiello, Bob. Sachs, Leslie. Configuration Management Best Practices. Addison Wesley Professional, 2011. • Kemper, Chris; Oxley, Ian. Foundation Version Control for web developers. Friendsfot Apress, 2012. • Londoño & Lozano, EAFIT University, 2010.
  • 4. Before… We must remember always… Software is bounded only by the limits of the human imagination. Uncontrolled and undirected, imagination can quickly give rise to nightmare
  • 5. Definition Software Configuration Management (SCM) is a software-engineering discipline comprising the tools and techniques (processes or methodology) that a company uses to manage change to its software assets.
  • 6. Software Configuration Management is how you control the evolution of a software project
  • 7. IEEE Standard 828 (1983, 1998, 2005, 2008, 2012). http://standards.ieee.org/findstds/standard/828-2012.html The minimum required contents of a Software Configuration Management Plan (SCMP) are established, and the specific activities to be addressed and their requirements for any portion of a software product's life cycle are defined.
  • 8. IEEE Standard 828. SCM constitutes a good engineering practice for all software projects, whether phased development, rapid prototyping, or ongoing maintenance. It enhances the reliability and quality of software by (next..)
  • 9. IEEE Standard 828 1. Providing structure for identifying and controlling documentation, code, interfaces, and databases to support all life-cycle phases 2. Supporting a chosen development/maintenance methodology that fits the requirements, standards, policies, organization, and management philosophy 3. Producing management and product information concerning the status of baselines, change control, tests, releases, audits, etc
  • 10. According with SWEBOK 2014 http://www.computer.org/portal/web/swebok Chapter 6 Configuration management (CM) is the discipline of identifying the configuration of a system at distinct points in time for the purpose of systematically controlling changes to the configuration, and maintaining the integrity and traceability of the configuration throughout the system life cycle.
  • 11. Come back to IEEE 828 http://www.computer.org/portal/web/swebok Chapter 6 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 change processing and implementation status, and verify compliance with specified requirements
  • 13. IEEE Standard 828. Configuration: • The configuration of a system is the functional and physical characteristics of hardware or software as set forth in technical documentation or achieved in a product. • It can also be thought of as a collection of specific versions of hardware, firmware, or software items combined according to specific build procedures to serve a particular purpose
  • 14. Some CM standards and models • IEEE 828 • IEEE 1704 (1997) • IEEE 12207 Software Life Cycle Processes • CMMI • NTC-ISO-10007 como Administración de la calidad – Directrices para la Administración de la Configuración…
  • 15. Configuration Item  Any selected artifact (file) or set of selected artifact to manage its configuration and be treated as a single entity. Example: code, executable objects, scripts, documents, etc.  An aggregation of hardware, software or both kinds of components, designated for configuration management and treated as one entity in the management process (IEEE Std 610.12).  An aggregation of work products selected for configuration management and treated as a single entity in the process(CMMI).
  • 16. Software Configuration: • Physic and functional features of the software exposed in a technical documentation or reached in a product (IEEE) • Set of controlled configuration items, at a given moment of time (CMMI)
  • 17. Versions and Variants One version is an instance of a configuration item or a system that differs in some form of another instance. Predecessor - Successor Record The variants are equivalent versions in functionality but differ in hardware or software environment
  • 18. Phase Version • Pla 1.0 1.1 • Req 1.0 1.1 1.2 • Ana 1.0 1.1 • MD 1.0 1.1 • Cod 1.0 1.1 1.2 1.3 LB 0.0.1 1.3 1.2 1.4 LB 0.0.2
  • 19. • Branching • Build • Release • Delta
  • 20. • Build: Combination of components of a system in executable components in a target configuration. • Release: More than just the executable code, it includes installation files, data, settings, release notes and manuals. They are created for external use • Delta: it is used to recover the history of an item. Difference between the new version and the previous.
  • 21. Baseline Specification or product that has been formally reviewed and approved, provides a basis for future development and can only be changed through a formal change control. IN OUT Controlled Enviroments LB 0.0.1 Power Factor Correction
  • 22. Baselines are used to track the software configuration at a discrete point in time
  • 23. About Baselines – RUP A baseline is a 'snapshot' in time of one version of each work product in the project repository. It provides an official standard on which subsequent work is to be based, and to which only authorized changes can be made. After an initial baseline is established every subsequent change to a baseline is recorded as a delta until the next baseline is set. The three main reasons for creating baselines are reproducibility, traceability, and reporting.
  • 24. Rule of Baselines baselines should be created at the end of each project iteration
  • 25. SCM Best Practices • Identify and store artifacts in a secure repository. • Control and audit changes to artifacts. • Organize versioned artifacts into versioned components. • Organize versioned components and subsystems into versioned subsystems. • Create baselines at project milestones. • Record and track requests for change.
  • 26. SCM Best Practices • Organize and integrate consistent sets of versions using activities. • Maintain stable and consistent workspaces. • Support concurrent changes to artifacts and components. • Integrate early and often. • Ensure reproducibility of software builds.
  • 27. Be Careful SCM component is a set of related files and directories that are versioned, shared, built, and baselined as a single unit ¿?
  • 29. Be Careful Change request management involves tracking requests for changes to a software system. These requests can result from defects found by a testing organization, defects reported by customers, enhancement requests from the field or customers, or new ideas produced internally.
  • 30. SCM Tools • SCM tools are software tools that automate and facilitate the application of the SCM best practices. • It is unrealistic to try to maintain effective SCM without an SCM tool. • The goal of successful SCM is to allow as much change as possible while still maintaining control of the software. SCM tools help automate tedious, manual, and error-prone pieces of the SCM process, and can ensure that your project can support all of the SCM best practices.
  • 31. SCM Tools Examples • CVS • Subversion • Bugzilla • Mantis • IBM Rational ClearCase • GIT
  • 32. SCM Tools Examples (web–Collaborative!) • GitHub • GoogleCode • Gforge • Jazz • Microsoft Team Foundation Server • …
  • 33. SCM Tools Basic Functions • To maintain a library or repository of files • To create and store multiple versions of files • To provide a mechanism for locking (to enforce serialized change to any given file) • To identify collections of file versions • To extract/retrieve versions of files from the repository
  • 34. Basic operations (Note: check-in - commit)
  • 35. SCM Process • A process defines the steps by which you perform a specific task or set of tasks. An SCM process is the way SCM is performed on your project specifically, how an SCM tool is applied to accomplish a set of tasks. • A key mistake most people make is to assume that an SCM tool will, in and of itself, solve their SCM problems or support their SCM requirements. How you apply the SCM tool to your development environment is called the usage model, or SCM process. It is this model or process that will in part determine how successfully you address your SCM issues.
  • 36. Unified Change Management • is a software-configuration management process for software development that spans the development life cycle, managing change to requirements, design models, documentation, components, test cases, and source code • Fundamental to UCM is the unification of the activities used to plan and track project progress with the artifacts being changed • Implementation of the UCM model is realized by both process and tools
  • 37. UCM Process Source: Chapter 3 - Bellagio, David E. Milligan, Tom J. Software Configuration Management Strategies and IBM® Rational® ClearCase® Second Edition A Practical Introduction. Addison Wesley Professional, 2005
  • 38. Unified Change Management UCM was derived from observed best practices in thousands of development organizations that demonstrated a capability to develop software in a robust, scalable, and repeatable way. By automating these best practices, UCM provides value to a development organization in many ways, but four areas are key: • Abstraction: we work best on higher-level tasks • Communication: about individual activities, relieving developers of the burden of remembering the specific files and versions they created to fulfill activities on which they worked
  • 39. Unified Change Management • Stability: the project progresses in a known, controlled way with markers placed along the way to denote intermediate stable points • Control: mechanisms to assist in managing the flow of changes from a developer's isolated development stream to a project-integration area or to other developers; tracking, managing, and controlling the flow of changes from the project's integration area or from other developer's streams; and assisting in integrating those changes
  • 41. A new role… The configuration manager is familiar with an organization's configuration and change-management processes and with the SCM tools being used. The configuration manager is responsible for creating and maintaining the physical infrastructure necessary to implement the design. This primarily involves creating and maintaining repositories and importing existing files and directories. (In some organizations the configuration manager is also responsible for things such as disk space allocation, network resources, and backup strategies as they relate to SCM data. The process described here allocates these activities to the system administrator.)
  • 42. The Architect: Defining the Implementation Model
  • 43. The Configuration Manager: Setting Up the SCM Environment
  • 44. The Project Manager: Managing a Project
  • 45. The Developer: Joining a Project and Doing Development
  • 46. The Integrator: Integration, Build, and Release
  • 47. Finally UCM provides the software-configuration management tools and processes to achieve effective, efficient software development. It does this by building upon a model that unifies the activities and artifacts upon which projects are built and progress. This model serves to raise the level of abstraction at which development is done; to provide stability for projects and individual contributors; to manage, track, and control the flow of changes in a project; and, finally, to provide facilities for automated project metrics as well as real-time communication about a project's activities and artifacts. You have seen that the UCM process can be described in terms of five roles: the architect, the configuration manager, the project manager, the developer, and the integrator.
  • 48. IEEE 828 propose a structure for a SCM Plan; it must constains: Introduction Describes the purpose of the plan, the scope of its application, the key terms and references SCM Management Who - Indicates the responsibilities and authority to carry out the activity plan SCM Activities How - Indicates all activities to be performed in the application to the project SCM Shedule When - Indicates the required coordination of SCM activities with other activities in the project SCM Resources What - Indicates the tools, human and physical resources to implement the plan SCM Maintance Plan Indicates how the plan will be maintained during its application IEEE-828 SCM Plan
  • 49. Introducción Describir el sistema o los ítems de configuración a los cuales se les aplica el plan, además el propósito del plan y los documentos relacionados y aplicables en orden de prioridad Políticas y procedimientos Incluir los elementos de la administración de la configuración que estén acordados. Se deben definir las políticas, organización y las responsabilidades, criterios para selección de los IC y la frecuencia y control de los informes. Identificación de la configuración Se recomienda elaborar un árbol de la familia de IC con las especificaciones, convención de numeración, las líneas base por ser establecidas. Control de la configuración Indicar la organización, composición y téminos de JC y su relación con otras juntas. Además se debe especificar los procedimientos para el control de cambios. Recuento del estado de la configuración Definir los procedimientos para recolectar los registros y como se deben mantener los datos necesarios para producir informes. Auditoría de la Configuración Se debe incluir la lista de auditorías a realizar, los procedimientos de auditorias y las autoridades y disciplinas involucradas. Plan según propuesta de NTC-ISO 10007
  • 50. You must remember… • SCM is a strategic practice oriented to products, projects and organization, helping to reduce the chaos. • With tools only, we can only achieve to automate processes, so the organization obtain low-quality products faster • SCM allows the improvement of product quality, understanding and knowing how it should be implemented in projects (it is a critical success factor). • Tools are used to benefit the SCM implementation, but have it without having done a previous training, without defined policies and without established metrics, is a practice that leads to the automation of chaos.