2 Configuration Management Configuration Management is the process of managing components of an infrastructure and items related to provided services. The relevant items are identified, documented, registered, controlled and tracked. Configuration items (CIs), their attributes and the interrelationships between them are recorded in a Configuration Management Database (CMDB). The CMDB is therefore a logical representation of the components in an IT infrastructure. Items that should be under the control of Configuration Management include hardware, software, communications equipment and associated documentation.
3 Scope of Configuration Management Planning: Defining the purpose, scope, objectives, data strategy, policies, roles & responsibilities and procedures for CM Configuration Identification: Identifying the attributes that define every aspect of a configuration item. Change Control: Ensuring that only authorized and identifiable CIs are accepted and recorded. Configuration Status Accounting: The reporting of all the current and historical data concerned with each CI throughout its life cycle. Configuration verification: Periodic cross checks to ensure that approved changes are implemented
4 Software Configuration Management (SCM) Version control: Versioning is the making of copies of data at some meaningful point in order to return to that point at a later date, if necessary. Configuration control: Implies a higher level of abstraction than version control. The SCM tool must have some knowledge of which versions from a set of components comprise a specific build. Process management: Deals with the grouping and manipulation of versions of software assets as they progress through the software development lifecycle. Problem tracking: Entails recording enhancement/change requests or defect reports and correlating these with the resolution of the request.
5 ClearCase UCM + ClearQuest ClearCase » »ClearCase is a leading enterprise SCM solution. It simplifies the process of change in large development environments. It handles version control, parallel development, workspace management, process configurability, and build management. Unified Change Management » »Unified Change Management (UCM) is IBM Rational’s “best practices” process for managing change from requirements to release. UCM is enabled by ClearCase and ClearQuest, and simplifies development by raising the level of abstraction to manage changes in terms of activities. ClearQuest » »The ClearQuest provides activity-based change and defect tracking. It can managed all types of change requests, including defects, enhancement, and documentation changes.
6 ClearCase Terminology Element are control objects that include a version tree. A version is a specific revision of an element. By versioning, we make copies of the data at some meaningful point in order to be able to return to that point at a later stage, if necessary. 0 1 2 3 0 1 2 0 1 2 0 1 src.chdr.htest.clib.c Version tree of element Element Specific version
7 ClearCase Terminology (cont’d) ClearCase Terminology (cont’d) A versioned object base (VOB) is a repository that stores versions of file elements, directory elements, derived objects, and metadata associated with these objects. A view, which is represented as a directory, provides access to a specific version of one or more elements in a VOB. It provides a workspace in which you can work on assignments in isolation from other developers.
8 ClearCase Terminology (cont’d) ClearCase Terminology (cont’d) At check out, ClearCase enables you to get a private and editable copy of a specific element and manage changes to your projects. When you check in an element, a new version of it is added to the VOB.
9 UCM Terminology U nified C hange M anagement simplifies development by raising the level of abstraction to manage changes in terms of activities, rather than manually tracking individual files and elements. Any change made to any (ClearCase-stored) file or element must, under UCM rules, be made in the context of a task defined in ClearQuest. Technically, ClearQuest displays and manages these tasks as change request tickets, but ClearCase actually is the tool that enables task-driven change control.
10 UCM Terminology (cont’d) UCM Terminology (cont’d) A UCM Project is a logical unit that is mapped to the development structure of an application or system. These projects contain the configuration information (example: components, activities, policies) needed to manage and track the work on a specific Application of a development effort. These UCM project configurations are stored within a storage structure called Project Version Object Base (PVOB). C … activity stream baseline
11 UCM Terminology (cont’d) UCM Terminology (cont’d) A component is a group of file and directory elements (example: source code, scripts, documentations) that are versioned together and stored within a Version Object Base (VOB). A VOB is the ClearCase propriety file structure to host one or more components. A project team develops, integrates, and releases a component as a unit. 1 2 1 2 1 element version component
12 UCM Terminology (cont’d) UCM Terminology (cont’d) An activity is an object that records the set of files or elements (change set) that a developer creates or modifies to complete and deliver a development task, such as a new feature. The activity title usually indicates the cause of the change and is linked to a change request (CR) in ClearQuest. change set activity
13 UCM Terminology (cont’d) UCM Terminology (cont’d) A work area is a development environment associated with a change. In UCM, a work area consists of a view and a stream. The developer will create a “view” to the element to be changed in their own private development stream.
14 UCM Terminology (cont’d) UCM Terminology (cont’d) A stream is a ClearCase UCM object that maintains a list of activities and baselines and determines which versions of elements appear in your view. In UCM, streams are layered. Each stream will represent GOES-R Algorithm promotional paths: Development, Test, Integration, Release.
15 UCM Terminology (cont’d) UCM Terminology (cont’d) In most projects, each developer has a private work area, which consists of a development stream and a corresponding development view. The development stream maintains a list of the developer’s activities and determines which versions of elements appear in the developer’s view. Configuration Manager will designate a development stream as required to be a shared work area for several developers who are working on the same feature.
16 UCM Terminology (cont’d) UCM Terminology (cont’d) A baseline identifies one version of each element in a component that represents the integrated or merged work of team members. It represents a version of a component at a particular stage in project development. As we progress up the steams hierarchy, a Project Integrator’s role is to create the recommended baselines and make changes to their attributes in order to reflect project milestones. A baseline is the means of communication between team members, allowing them to share new changes developed in the development streams. When developers join a project, a development stream is automatically created with the last recommended baseline defining the versions of directories and file elements. Alternatively, developers can join a project at a specific stream level (example: during a firefight), in which case they populate their work areas with the specific stream’s recommended baselines. This practice ensures that all members of a project team start with the same set of files. baseline
17 CM Process dev test Product testdev DEV_INT INT AWG developer streamAIT developer streamIntegration stream Release Stream Deliver routine Rebase routine Product stream
18 Major Release Project Model Major Release Project Model New projects must be created off the latest recommended baseline in the UCM The release and integration stream must remain locked for all users, except for the Project Integrators. All code changes made by developers in their private work area will automatically be captured in activities assigned to them within ClearQuest. When checking-out a file in ClearCase, developers will be prompted, within ClearQuest, either to identify their work activity, or to create a new work item that will be attached to the related change record. Developers must deliver their new or modified code to the product stream if they wish to have their code changes included in the next build. When this build starts, the streams involved will be locked. A new baseline must be established and recommended immediately following a successful build. All Development streams must be updated with the latest recommended baseline. Any defects found when testing in Test streams, will be determined as a defect and brought back to the development stream.
19 Project management CM Process Roles and Responsibilities CM Repositories Workspace Management Project Development Policies
20 CM Process Roles Configuration Manager is responsible for defining the ClearCase project infrastructure and SCM policies that will apply to the software development process. Project Integrator is responsible for producing and managing the internal and external releases for the project. Developer creates, modifies, and tests development objects according to the development policies established in the organization, and the specific SCM policies adopted by the project. Tester works in the Test streams. The Developer delivers the recommended baseline from the Development stream to the product stream. After a successful build, the Tester will perform the necessary Tests. When this action is successful a new baseline is created and delivered to the next promotional level. The same process is repeated until delivering is ready for integration.
21 Configuration Manager’s Responsibilities Define development components Define access control Define General Policies Creating the CM repositories Backups and Recovery General ClearCase Maintenance User Management
22 Project Integrator’s Responsibilities Identifying Build Candidates: The integrator will establish and enforce the deadlines for submission of code changes to the product stream. Establishing Integration Baselines: The project integrator will identify and announce project baselines based on the results of the integration tests. Establishing External Releases: The project integrator will promote a stable baseline on the release stream at the completion of a project milestone.
23 Developer’s Responsibilities Developer’s Responsibilities Creating Development Views A view is needed to access the CM repositories. Working with Configuration Items »Adding elements to source control »Checking out elements to modify »Checking in elements to create new versions Promoting Changes: The developer must resolve any conflicts with code previously submitted to the product stream. This is accomplished by a rebase operation before promoting his changes.
24 CM Repositories Available Machines orbit170L~195L(except172L, 175L and 182L), orbit199L VOB Root /home/pub/ClearCase/STAR/GOES-R/Products/AIT_Framework View Storage Location /net/orbit190l/home/pub/ClearCase/views In general, views should be considered temporary, volatile storage. The VOB is the permanent and reliable storage. Frequent check-ins will minimize the risk of work lost through a system failure. View- private objects that have not yet been placed under source control are the highest risk for loss.
27 Project Development Policies Project Development Policies Developers must rebase their development streams before delivering to the production stream. Developers can not deliver work to the product stream while some files are checked out in the development stream. Developers may deliver to target streams other than the product stream. Rebase can not be done with checkout in the view.