software configuration management
-
Upload
faber-d-giraldo -
Category
Technology
-
view
4.999 -
download
1
description
Transcript of software configuration management
SOFTWARE CONFIGURATION MANAGEMENT
Some Sources• Ahmad K. Shuja, Jochen Krebs. IBM Rational Unified
Process Reference and Certification Guide—SolutionDesigner. IBM Press, 2008.
• Bellagio, David E. Milligan, Tom J. SoftwareConfiguration Management Strategies and IBM®Rational® ClearCase® Second Edition A PracticalIntroduction. Addison Wesley Professional, 2005.
• Aiello, Bob. Sachs, Leslie. Configuration ManagementBest Practices. Addison Wesley Professional, 2011.
• Kemper, Chris; Oxley, Ian. Foundation Version Control forweb 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 thelimits of the human imagination.Uncontrolled and undirected,imagination can quickly give riseto 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 SoftwareConfiguration Management Plan (SCMP) areestablished, and the specific activities to beaddressed and their requirements for anyportion of a software product's life cycle aredefined.
IEEE Standard 828.
SCM constitutes a good engineeringpractice for all software projects, whetherphased development, rapid prototyping, orongoing maintenance.
It enhances the reliability and quality ofsoftware by (next..)
IEEE Standard 8281. Providing structure for identifying and controlling
documentation, code, interfaces, and databasesto support all life-cycle phases
2. Supporting a chosen development/maintenancemethodology that fits the requirements,standards, policies, organization, andmanagement philosophy
3. Producing management and product informationconcerning the status of baselines, changecontrol, tests, releases, audits, etc
According with SWEBOK 2004http://www.computer.org/portal/web/swebok/html/ch7#INTRO
Configuration management (CM) is the disciplineof identifying the configuration of a system atdistinct points in time for the purpose ofsystematically controlling changes to theconfiguration, and maintaining the integrity andtraceability of the configuration throughout thesystem life cycle.
According withSWEBOK 2004
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 laConfiguració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 ofcomponents, designated for configuration managementand treated as one entity in the management process(IEEE Std 610.12).
An aggregation of work products selected for configurationmanagement and treated as a single entity in theprocess(CMMI).
Software Configuration:
• Physic and functional features of the softwareexposed in a technical documentation orreached in a product (IEEE)
• Set of controlled configuration items, at a givenmoment 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 - SuccessorRecord
The variants are equivalent versions infunctionality but differ in hardware or softwareenvironment
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.31.2
1.4
LB 0.0.2
• Branching• Build• Release• Delta
• Build: Combination of components of a system inexecutable components in a target configuration.
• Release: More than just the executable code, itincludes installation files, data, settings, release notesand 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.
BaselineSpecification or product that has been formally reviewedand approved, provides a basis for future development and can onlybe changed through a formal change control.
IN OUT
ControlledEnviroments
LB 0.0.1
PowerFactorCorrection
Baselines are used to track the software configuration at a discrete point in time
About Baselines – RUPA baseline is a 'snapshot' in time of one version of each work
product in the project repository. It provides an officialstandard on which subsequent work is to be based,and to which only authorized changes can be made.After an initial baseline is established every subsequentchange to a baseline is recorded as a delta until the nextbaseline is set.
The three main reasons for creating baselines arereproducibility, 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 intoversioned 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 filesand directories that are versioned,shared, built, and baselined as asingle unit
¿?
Be Careful
Be Careful
Change request management involves trackingrequests for changes to a software system.These requests can result from defects foundby a testing organization, defects reported bycustomers, enhancement requests from thefield or customers, or new ideas producedinternally.
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 anSCM tool.
• The goal of successful SCM is to allow as much change aspossible while still maintaining control of the software.SCM tools help automate tedious, manual, and error-pronepieces of the SCM process, and can ensure that yourproject 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 enforceserialized change to any given file)
• To identify collections of file versions
• To extract/retrieve versions of files from therepository
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 isperformed on your project specifically, how an SCM tool isapplied to accomplish a set of tasks.
• A key mistake most people make is to assume that an SCMtool will, in and of itself, solve their SCM problems or supporttheir SCM requirements. How you apply the SCM tool toyour development environment is called the usagemodel, or SCM process. It is this model or process that willin part determine how successfully you address your SCMissues.
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 activitiesused to plan and track project progress with the artifactsbeing changed
• Implementation of the UCM model is realized by both processand tools
UCM Process
Source: Chapter 3 - Bellagio, David E. Milligan, Tom J. Software ConfigurationManagement Strategies and IBM® Rational® ClearCase® Second Edition A Practical Introduction. Addison Wesley Professional, 2005
Unified Change ManagementUCM was derived from observed best practices in thousands of
development organizations that demonstrated a capability todevelop software in a robust, scalable, and repeatable way. Byautomating these best practices, UCM provides value to adevelopment organization in many ways, but four areas are key:
• Abstraction: we work best on higher-level tasks
• Communication: about individual activities, relievingdevelopers of the burden of remembering the specificfiles and versions they created to fulfill activities onwhich they worked
Unified Change Management• Stability: the project progresses in a known, controlled
way with markers placed along the way to denoteintermediate stable points
• Control: mechanisms to assist in managing the flow ofchanges from a developer's isolated developmentstream to a project-integration area or to otherdevelopers; tracking, managing, and controlling theflow of changes from the project's integration area orfrom other developer's streams; and assisting inintegrating those changes
UCM Process Overview
A new role…The configuration manager is familiar with an organization's
configuration and change-management processes and with theSCM tools being used. The configuration manager isresponsible for creating and maintaining the physicalinfrastructure necessary to implement the design. Thisprimarily involves creating and maintaining repositories andimporting existing files and directories. (In some organizationsthe configuration manager is also responsible for things such asdisk space allocation, network resources, and backup strategiesas they relate to SCM data. The process described hereallocates 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
FinallyUCM provides the software-configuration management tools and
processes to achieve effective, efficient software development. It doesthis by building upon a model that unifies the activities and artifactsupon which projects are built and progress. This model serves to raisethe level of abstraction at which development is done; to providestability for projects and individual contributors; to manage, track, andcontrol the flow of changes in a project; and, finally, to provide facilitiesfor automated project metrics as well as real-time communicationabout a project's activities and artifacts. You have seen that the UCMprocess can be described in terms of five roles: the architect, theconfiguration manager, the project manager, the developer, and theintegrator.
IEEE 828 propose a structure for a SCM Plan; it mustconstains:
IntroductionDescribes the purpose of the plan, the scope of its application, the key terms and references
SCM ManagementWho - Indicates the responsibilities and authority to carry out the activity plan
SCM ActivitiesHow - Indicates all activities to be performed in the application to the project
SCM SheduleWhen - Indicates the required coordination of SCM activities with other activities in the project
SCM ResourcesWhat - Indicates the tools, human and physical resources to implement the plan
SCM Maintance PlanIndicates 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.
Identif icación de la configuración
Se recomienda elaborar un árbol de la familia de IC con las especif icaciones, 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 especif icar los procedimientos para el control de cambios.
Recuento del estado de la configuraciónDefinir los procedimientos para recolectar los registros y como se deben mantener los datos necesarios para producir informes.
Auditoría de la ConfiguraciónSe 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 theorganization obtain low-quality products faster
• SCM allows the improvement of product quality, understanding andknowing how it should be implemented in projects (it is a criticalsuccess factor).
• Tools are used to benefit the SCM implementation, but have it withouthaving done a previous training, without defined policies and withoutestablished metrics, is a practice that leads to the automation of chaos.