1 goes-r awg products processing framework configuration management yunhui zhao

27
1 GOES-R AWG Products GOES-R AWG Products Processing Framework Processing Framework Configuration Configuration Management Management Yunhui Zhao Yunhui Zhao

Upload: bruno-loveridge

Post on 14-Dec-2015

227 views

Category:

Documents


0 download

TRANSCRIPT

1

GOES-R AWG Products GOES-R AWG Products Processing Framework Processing Framework

Configuration Configuration ManagementManagement

Yunhui ZhaoYunhui Zhao

2

Configuration Configuration ManagementManagement

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 Scope of Configuration ManagementManagement

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 Software Configuration Management (SCM)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 + ClearCase UCM + ClearQuestClearQuest

ClearCaseClearCase» 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 TerminologyClearCase Terminology

Element Element are control objects that include a version tree.are control objects that include a version tree. A A version version is a specific revision of an element. By versioning, we is a specific revision of an element. By versioning, we

make copies of the data at some meaningful point in order to be 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.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.c hdr.h test.c lib.c

Version tree of element

Element

Specific version

7

ClearCase Terminology ClearCase Terminology (cont’d)(cont’d)

A A versioned object base (VOB) versioned object base (VOB) is a is a repository that stores versions of repository that stores versions of file file elementselements, , directory elementsdirectory elements, , derived objectsderived objects, , and and metadata metadata associated with these objects.associated with these objects.

A A viewview, which is represented as a directory, , which is represented as a directory, provides access to a specific version of one or provides access to a specific version of one or more elements in a VOB. It provides a more elements in a VOB. It provides a workspace in which you can work on workspace in which you can work on assignments in isolation from other assignments in isolation from other developers.developers.

8

ClearCase Terminology ClearCase Terminology (cont’d)(cont’d)

At At check out, check out, ClearCaseClearCase enables you to get a enables you to get a private and editable copy of a specific element private and editable copy of a specific element and manage changes to your projects.and manage changes to your projects.

When you When you check incheck in an element, a new an element, a new version of it is added to the VOB.version of it is added to the VOB.

9

UCM TerminologyUCM Terminology

UUnified nified CChange hange MManagement simplifies development by anagement simplifies development by raising the level of abstraction to manage changes in raising the level of abstraction to manage changes in terms of activities, rather than manually tracking terms of activities, rather than manually tracking individual files and elements. Any change made to any individual files and elements. Any change made to any (ClearCase-stored) file or element must, under UCM (ClearCase-stored) file or element must, under UCM rules, be made in the context of a task defined in rules, be made in the context of a task defined in ClearQuest. Technically, ClearQuest displays and ClearQuest. Technically, ClearQuest displays and manages these tasks as change request tickets, but manages these tasks as change request tickets, but ClearCase actually is the tool that enables task-driven ClearCase actually is the tool that enables task-driven change control.change control.

10

UCM Terminology UCM Terminology (cont’d)(cont’d)

A A UCM Project UCM Project is a logical is a logical unit that is mapped to the unit that is mapped to the development structure of an development structure of an application or system. These application or system. These projects contain the projects contain the configuration information configuration information (example: components, (example: components, activities, policies) needed to activities, policies) needed to manage and track the work manage and track the work on a specific Application of a on a specific Application of a development effort. These development effort. These UCM project configurations UCM project configurations are stored within a storage are stored within a storage structure called Project structure called Project Version Object Base Version Object Base (PVOB). (PVOB).

C

…activity

stream

baseline

11

UCM Terminology UCM Terminology (cont’d)(cont’d)

A A componentcomponent is a group of file and is a group of file and directory elements (example: source directory elements (example: source code, scripts, documentations) that are code, scripts, documentations) that are versioned together and stored within a versioned together and stored within a Version Object Base (VOB). A VOB is Version Object Base (VOB). A VOB is the ClearCase propriety file structure to the ClearCase propriety file structure to host one or more components. A host one or more components. A project team develops, integrates, and project team develops, integrates, and releases a component as a unit.releases a component as a unit.

1

2

1

2

1

element

versioncomponent

12

UCM Terminology UCM Terminology (cont’d)(cont’d)

An An activityactivity is an object that is an object that records the set of files or records the set of files or elements (change set) that a elements (change set) that a developer creates or modifies to developer creates or modifies to complete and deliver a complete and deliver a development task, such as a development task, such as a new feature. The activity title new feature. The activity title usually indicates the cause of usually indicates the cause of the change and is linked to a the change and is linked to a change request (CR) in change request (CR) in ClearQuest. ClearQuest.

change set

activity

13

UCM Terminology UCM Terminology (cont’d)(cont’d)

A A work areawork area is a is a development environment development environment associated with a change. In associated with a change. In UCM, a work area consists of UCM, a work area consists of a view and a stream. The a view and a stream. The developer will create a “view” developer will create a “view” to the element to be changed to the element to be changed in their own private in their own private development stream. development stream.

14

UCM Terminology UCM Terminology (cont’d)(cont’d)

A A streamstream is a ClearCase UCM is a ClearCase UCM object that maintains a list of object that maintains a list of activities and baselines and activities and baselines and determines which versions of determines which versions of elements appear in your view. In elements appear in your view. In UCM, streams are layered. Each UCM, streams are layered. Each stream will represent GOES-R stream will represent GOES-R Algorithm promotional paths: Algorithm promotional paths: Development, Test, Integration, Development, Test, Integration, Release. Release.

15

UCM Terminology UCM Terminology (cont’d)(cont’d)

In most projects, each developer has a private work In most projects, each developer has a private work area, which consists of a area, which consists of a development streamdevelopment stream and a and a corresponding development view. The development corresponding development view. The development stream maintains a list of the developer’s activities stream maintains a list of the developer’s activities and determines which versions of elements appear in and determines which versions of elements appear in the developer’s view.the developer’s view.Configuration Manager will designate a development Configuration Manager will designate a development stream as required to be a shared work area for stream as required to be a shared work area for several developers who are working on the same several developers who are working on the same feature. feature.

16

UCM Terminology UCM Terminology (cont’d)(cont’d)

A A baselinebaseline identifies one version of each element in a identifies one version of each element in a component that represents the integrated or merged work component that represents the integrated or merged work of team members. It represents a version of a component of team members. It represents a version of a component at a particular stage in project development. As we at a particular stage in project development. As we progress up the steams hierarchy, a Project Integrator’s progress up the steams hierarchy, a Project Integrator’s role is to create the recommended baselines and make role is to create the recommended baselines and make changes to their attributes in order to reflect project changes to their attributes in order to reflect project milestones. milestones.

A baseline is the means of communication between team A baseline is the means of communication between team members, allowing them to share new changes members, allowing them to share new changes developed in the development streams.developed in the development streams.

When developers join a project, a development stream is When developers join a project, a development stream is automatically created with the last recommended automatically created with the last recommended baseline defining the versions of directories and file baseline defining the versions of directories and file elements. elements.

Alternatively, developers can join a project at a specific Alternatively, developers can join a project at a specific stream level (example: during a firefight), in which case stream level (example: during a firefight), in which case they populate their work areas with the specific stream’s they populate their work areas with the specific stream’s recommended baselines. This practice ensures that all recommended baselines. This practice ensures that all members of a project team start with the same set of members of a project team start with the same set of files.files.

baseline

17

CM ProcessCM Process

dev dev test

Producttestdevdev

DEV_INT

INT

AWG developer stream AIT developer stream Integration stream

Release Stream

Deliver routine

Rebase routine

Product stream

18

Major Release Project Major Release Project ModelModel

New projects must be created off the latest recommended baseline in the UCM 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 release and integration stream must remain locked for all users, except for

the Project Integrators. the Project Integrators. All code changes made by developers in their private work area will automatically 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 be captured in activities assigned to them within ClearQuest. When checking-out a file in ClearCase, developers will be prompted, within ClearQuest, either to 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 identify their work activity, or to create a new work item that will be attached to the related change record.the related change record.

Developers must deliver their new or modified code to the product stream if they 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, wish to have their code changes included in the next build. When this build starts, the streams involved will be locked.the streams involved will be locked.

A new baseline must be established and recommended immediately following a A new baseline must be established and recommended immediately following a successful build.successful build.

All Development streams must be updated with the latest recommended All Development streams must be updated with the latest recommended baseline.baseline.

Any defects found when testing in Test streams, will be determined as a defect Any defects found when testing in Test streams, will be determined as a defect and brought back to the development stream.and brought back to the development stream.

19

Project managementProject management

CM Process Roles and ResponsibilitiesCM Process Roles and Responsibilities CM RepositoriesCM Repositories Workspace ManagementWorkspace Management Project Development PoliciesProject Development Policies

20

CM Process RolesCM Process Roles

Configuration ManagerConfiguration Manager is responsible for defining the is responsible for defining the ClearCase project infrastructure and SCM policies that will apply to the ClearCase project infrastructure and SCM policies that will apply to the software development process. software development process.

Project IntegratorProject Integrator is responsible for producing and managing the is responsible for producing and managing the internal and external releases for the project.internal and external releases for the project.

DeveloperDeveloper creates, modifies, and tests development objects creates, modifies, and tests development objects according to the development policies established in the organization, according to the development policies established in the organization, and the specific SCM policies adopted by the project. and the specific SCM policies adopted by the project.

TesterTester works in the Test streams. The Developer delivers the works in the Test streams. The Developer delivers the recommended baseline from the Development stream to the product recommended baseline from the Development stream to the product stream. After a successful build, the Tester will perform the necessary stream. After a successful build, the Tester will perform the necessary Tests. When this action is successful a new baseline is created and Tests. When this action is successful a new baseline is created and delivered to the next promotional level. The same process is repeated delivered to the next promotional level. The same process is repeated until delivering is ready for integration. until delivering is ready for integration.

21

Configuration Manager’s Configuration Manager’s ResponsibilitiesResponsibilities

Define development componentsDefine development components Define access controlDefine access control Define General PoliciesDefine General Policies Creating the CM repositoriesCreating the CM repositories Backups and RecoveryBackups and Recovery General ClearCase MaintenanceGeneral ClearCase Maintenance User ManagementUser Management

22

Project Integrator’s Project Integrator’s ResponsibilitiesResponsibilities

Identifying Build Candidates:Identifying Build Candidates: The integrator The integrator will establish and enforce the deadlines for will establish and enforce the deadlines for submission of code changes to the product stream. submission of code changes to the product stream.

Establishing Integration Baselines:Establishing Integration Baselines: The The project integrator will identify and announce project project integrator will identify and announce project baselines based on the results of the integration tests. baselines based on the results of the integration tests.

Establishing External Releases:Establishing External Releases: The project The project integrator will promote a stable baseline on the integrator will promote a stable baseline on the release stream at the completion of a project release stream at the completion of a project milestone. milestone.

23

Developer’s Developer’s ResponsibilitiesResponsibilities

Creating Development Views Creating Development Views

A view is needed to access the CM repositories.A view is needed to access the CM repositories.

Working with Configuration ItemsWorking with Configuration Items» Adding elements to source controlAdding elements to source control» Checking out elements to modifyChecking out elements to modify» Checking in elements to create new versionsChecking in elements to create new versions

Promoting Changes: Promoting Changes:

The developer must resolve any conflicts with code previously The developer must resolve any conflicts with code previously submitted to the product stream. This is accomplished by a submitted to the product stream. This is accomplished by a rebase operation before promoting his changes. rebase operation before promoting his changes.

24

CM RepositoriesCM Repositories

Available MachinesAvailable Machinesorbit170L~195L(except172L, 175L and 182L), orbit199Lorbit170L~195L(except172L, 175L and 182L), orbit199L

VOB RootVOB Root /home/pub/ClearCase/STAR/GOES-R/Products/AIT_Framework/home/pub/ClearCase/STAR/GOES-R/Products/AIT_Framework

View Storage LocationView Storage Location/net/orbit190l/home/pub/ClearCase/views/net/orbit190l/home/pub/ClearCase/views

In general, views should be considered temporary, volatile storage. In general, views should be considered temporary, volatile storage. The VOB is the permanent and reliable storage. Frequent check-ins The VOB is the permanent and reliable storage. Frequent check-ins will minimize the risk of work lost through a system failure. View-will minimize the risk of work lost through a system failure. View-private objects that have not yet been placed under source control private objects that have not yet been placed under source control are the highest risk for loss.are the highest risk for loss.

25

Workspace Workspace ManagementManagement

View Naming ConventionView Naming Convention

Stream Naming ConventionStream Naming Convention

Naming conventionNaming convention ExampleExample

<usrid>_<project_name>_<task><usrid>_<project_name>_<task> yzhao_GOESR_Land_LST_devyzhao_GOESR_Land_LST_dev

Naming conventionNaming convention exampleexample

<usrid>_<task><usrid>_<task> yzhao_Land_LST_devyzhao_Land_LST_dev

26

Workspace Workspace Management (cont’d)Management (cont’d)

Task Naming ConventionTask Naming Convention

Baseline Naming ConventionBaseline Naming Convention

Task typeTask type Naming conventionNaming convention exampleexample

DevelopmentDevelopment <AWG>_<product>_dev<AWG>_<product>_dev Land_LST_devLand_LST_dev

IntegrationIntegration <AWG>_<product>_int<AWG>_<product>_int Land_LST_intLand_LST_int

Test Test <AWG>_<product>_test<AWG>_<product>_test Land_LST_testLand_LST_test

BuildBuild <AWG>_<product>_build<AWG>_<product>_build Land_LST_buildLand_LST_build

Naming conventionNaming convention exampleexample

<usrid>_<project_name>_<task>_<date>_<time><usrid>_<project_name>_<task>_<date>_<time> yzhao_goesr_Land_LST_dev_081125_123007yzhao_goesr_Land_LST_dev_081125_123007

27

Project Development Project Development PoliciesPolicies

Developers must rebase their development streams Developers must rebase their development streams before delivering to the production stream. before delivering to the production stream.

Developers can not deliver work to the product stream Developers can not deliver work to the product stream while some files are checked out in the development while some files are checked out in the development streamstream..

Developers may deliver to target streams other than Developers may deliver to target streams other than the product streamthe product stream..

Rebase can not be done with checkout in the view.Rebase can not be done with checkout in the view.