Software configuration management in deep
-
Upload
faber-d-giraldo -
Category
Engineering
-
view
75 -
download
1
Transcript of Software configuration management in deep
SOFTWARE CONFIGURATION MANAGEMENT
In Deep
Sources• Mario E. Moreira. Adapting Configuration Management for
Agile Teams - Balancing Sustainability and Speed. Wiley,2010. ISBN: 9780470746639.
• Bob Aiello and Leslie Sachs. Configuration ManagementBest Practices - Practical Methods that Work in the RealWorld. Addison-Wesley, 2011. ISBN-13: 978-0-321-68586-5.
Configuration Management (CM)• CM is an engineering and management discipline
that focuses on the management of change.• CM enables change with its core attributes of
identifying configuration items, controllingchanges to items, auditing on the baseline ofitems, and reporting on the items.
• The basis for a CM process includes a set offunctions that improve the integrity and quality ofcode, tools, documents, designs, and virtuallyany item that an organization desires to manage.
Why CM ??• Because the organization in which the product
team lives is following an industry frameworkor standard (see below). These frameworks orstandards include a CM component becausethey recognize the importance of CM toorganizations.
• It is important to review any framework orstandard so that you understand the impact anddetails when implementing CM.
Why CM ??• Institute of Electrical and Electronics Engineers (IEEE).• IEEE 828— 2012 Standard for Software Configuration Management
Plans• International Organization for Standardization (ISO).
• ISO 10007—Quality Management Systems—Guidelines forConfiguration Management
• ANSI/ITAA EIA-649-A—National Consensus Standard forConfiguration Management
• ISO/IEC/IEEE 12207 and 15288• Information Technology Infrastructure Library (ITIL) CM.• Capability Maturity Model Integration (CMMI) CM (process area in
level 2).
CM comprises four fundamental valuesor components
Identify• By identifying CIs, you establish a baseline of
software-related items where you can thencontrol, audit, and report the changes occurringto this baseline.
• CIs may include the product deliverables and thecorresponding plans, requirements,specifications, designs, source code,executables, tools, system information (i.e.,software & hardware platforms, etc.), and testcases, etc.
The component of identification may be divided into four sub-processes:
• Detect.• Name.• Acquire.• Baseline.
Identify• Detect: it refers to defining and identifying the CIs that
make up your product. This is more than just sourcecode. This may be web pages, documents, or evenrequirements.
• Name: it refers to developing a nomenclature that isunique, unambiguous, and traceable to easily identifyand locate the CIs. This typically evolves into namingconventions.
• Acquire: it is the process of collecting the CIs under CMcontrol.
• Baseline: it is the process of establishing a cohesive andmeaningful set of CIs.
CM comprises four fundamental valuesor components
Control: is the ability to control changes to allconfiguration items (CIs) in your product
The sub-processes of Control are
• version control,
• change control,
• build management,
• and release engineering
Control in resume
Control
• Version control refers to the versioning ofconfiguration items.
• Changes are typically controlled by a ‘versioncontrol process and all changes are versionedincrementally.
• Modern version control processes typically areintegrated with tools with version controlcapabilities.
Control• Change: it refers to an effective means of proactively
controlling changes to a product.
• An effective way of facilitating control over changes to aproduct is to implement a Change Control Board (CCB).
• The CCB represents interests of the project managerand all groups who may be affected by the change tothe software baseline. The CCB authorizes theestablishment of a software baseline, reviews andauthorizes changes to a baseline, and approves thecreation of products (via releases) from a softwarebaseline.
Control• Build: it refers to a standard repeatable and measurable
build and release packaging process.
• Release: it refers to a controlled way of acquiringapproval for release deliverables, installing andconfiguring the product into production therebyestablishing the production baseline, and making theproduct generally available to the customer.
CM comprises four fundamental valuesor components
Audit
• Ability to ensure correctness, completeness,and consistency of baselines.
• This helps us ensure the integrity of the productunder development so that it can be determined ifthe actual configuration of the product andchanges therein are aligned with the physical andfunctional specification that were agreed upon.
• In other words, is what we said we wouldchange actually what was changed and werethere any unauthorized changes?
CM comprises four fundamental valuesor components
Report
• It is the ability to record and report the status ofcomponents surrounding projects.
• This is a form of communication that helps usunderstand what has changed, the evolution ofchanges, and the status of CM in general.
Report
The primary benefit of reporting is that it affords anopportunity to systematically collect the dataneeded, record the data in a measurable,meaningful, and repeatable way, and then reporton the data to the appropriate personnel forimprovement opportunities.
CM Practices• Planning
• Version control
• Change control
• Build management
• Release
• Problem Management Practice
• Audit
• Report Practice
Planning Practice
It focuses on establishing a common approach forhow CM will be implemented consistently andeffectively on a product line and projects therein.
Version control
It is a CM practice that combines a sequentialnumbering scheme for artifacts within the samelineage as they are changed and a repositoryand tool which automates the management ofarchiving the artifacts and their changes using acheck-out/check-in process.
Version control• CM version control technology is perceived to be core
and critical to the job function of a CM professional’swork and they believe it is critical to maintain the sourcecode of the product.
• Version control is typically the first technology that aproduct team wants and it is the first tool implemented.
• Some of the CM professional’s work revolves aroundinstalling, improving, and maintaining the version controltechnology.
• By having a CM control mechanism of change, this helpsavoid one engineer overwriting changes made by another.
Change control
• It is a practice that is used to proactivelymanage changes to a baseline orenvironment.
• This typically includes defining the baselines forcontrol, establishing a Change Control Board(CCB) who authorize the establishment of andchanges to a baseline, defining CCB conductguidelines, and defining repeatable changecontrol processes to manage changes to thebaseline(s).
Build management• It is the process of identifying source code
(preferably in a CM version control system), andthrough some means of compilation orgeneration (via a compiler, linker, IDE, etc.)produces a set of executables and other fileswhich can be used to perform a run-timefunction that represents a deployable product inpart or in whole.
• These executables and deliverables form the basisfor the product release and are the income-producing assets for software companies.
Release
• It is a common and highly valued practice in CMthat focuses on managing changes intoproduction.
• This typically includes defining a releasemigration infrastructure and a repeatable releaseprocess, which may include identifying baselines,attaining approvals from the CCB or customer,and installing deliverables into production (e.g.,on servers or onto media)
Problem Management Practice
• It focuses on managing and resolvingproblems in a project, product, ororganizational lifecycle.
• A ‘‘problem’’ may be divided into (but not limitedto) types such an issue, a defect, andnoncompliance.
• This practice typically includes establishing aproblem management infrastructure and arepeatable problem management process totrack problems to closure.
Audit
• It is used to determine the integrity of baselinesand to assess compliance to CM policy,processes, and technology usage.
• This typically includes defining a repeatable auditprocess to assess compliance, recommendimprovements, and report audit results.
Report Practice
The Report practice focuses on communicating thestatus of CM tasks to the team and management.
Questions?
Thanks!!