Resumen Para Celu

  • Upload
    bonzox

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

  • 8/6/2019 Resumen Para Celu

    1/96

  • 8/6/2019 Resumen Para Celu

    2/96

    UCM is also component-based. Units of code that are

    developed and built together can be kept isolated until time tointegrate with the full codeline. Each UCM component can haveits own recommendedbaseline. A set of component baselinescan be used to define the fully integrated main product baseline(composite baseline)

    UCM is also project-based. Each codeline can have its owncustom set of development policies and can spawn new projectsby using its final baseline as a jumping off point for future

    development.

  • 8/6/2019 Resumen Para Celu

    3/96

    UCM is a layer built on Rational ClearCase to provide

    additional software configuration management features. Thesechanges include integration with ClearQuest to enforce defectand change tracking with code development through the use ofactivities. This is part of the Rational Unified Process thatdescribes the lifecycle of change management for IBMRational's software development process.

    It also gives integrators ownership of projects and streams toallow policy and feature management by project leaders and

    release engineers. UCM removes the ability/requirement thatusers manage a configuration specification for aview. UCM isused and configured via either CLIs or GUIs.

  • 8/6/2019 Resumen Para Celu

    4/96

    Contents1 PVOB

    2 Project3 Component

    4 Stream5 Baseline6 Element7 Activity

    8 External links

  • 8/6/2019 Resumen Para Celu

    5/96

    PVOBProject Versioned Object Bases store UCM metadata. All UCM structuresreside in PVOBs. All the metadata types such as projects, streams, activities,and baselines will be stored in Project VOBS.

    ProjectProjects group similar components into a code base used to build software.Project policies can be applied to enforce a process for users working withinthe project.

    ComponentOne or more components can be configured per base ClearCase VOB. Acomponent can be a part of multiple projects and streams, allowing for codereuse.

    StreamStreams are created within a project to allow users to work on contentsimultaneously in isolated environments within views. Code changesare integrated from one stream to another analogously to branches in

    base ClearCase. A stream also allows for development of severalsimultaneous releases of a roduct to take lace.

  • 8/6/2019 Resumen Para Celu

    6/96

    BaselineA baseline is applied to a set of components within a stream andserves analogously to labels in base ClearCase. Streams are configured

    with the help of Baselines, which act as a foundation or root layer forthe stream's configuration in UCM clearcase. The baseline holds theUCM Activities. Baselines apply the label on the versions.

    A recommended baseline is a set of versions that have been identifiedas stable. This baseline establishes the current starting point for the

    project; when a developer rebases or joins a project, this is thebaseline that is used as the foundation for the development (or child)stream, unless he specifies a different baseline to be used.Composite baselines are a mechanism for grouping baselines into acollection. One baseline is designated as the composite, and other

    baselines become members of the composite.

  • 8/6/2019 Resumen Para Celu

    7/96

    ElementAn element is anything that is stored in ClearCase. Here are someexamples of elements: source files, ant build files, makefiles, textfiles,

    directories, and html files

    ActivityElement versions can be grouped into an activity change set. An activitycan be enforced with ClearQuest checking criteria to allow tight

    integration of defect tracking with code development.

  • 8/6/2019 Resumen Para Celu

    8/96

    IBM Redbook: ClearCase and ClearQuest UCM

    UCM is a layer built on top of ClearCase:

    http://en.wikipedia.org/wiki/IBM_Rational_ClearCase_UCMHere is a bit of history. Base clearcase was the first product. This provided arich command line interface and dynamic views accessed through a configspec. As projects used clearcase, it became evident that groups whereadding their own scripts and process on top of clearcase to run theirdevelopment environment. This namely revolved around project set andbranching and merging. The best practices were eventually codified into

    what has now become the UCM. So, in short, the UCM attempts to giveyou higher level process capabilities out of the box than base clearcase.

    You should note though that both base clearcase and UCM are still toolboxes. You will still need to configure and customize each to fit yourbusiness needs. If you are starting out a new project, that is an excellenttime to consider starting with the UCM. If the project has been usingclearcase for some time, then moving from base clearcase will be doable

    but more difficult.

  • 8/6/2019 Resumen Para Celu

    9/96

    Here are some differences between the 2:

    Base Clearcase

    * A do it yourself toolbox* You define your own branching and merging models* You build your own scripts to manage change across branches* You will end up with more scripts

    * Managed at a lower level

    UCM

    * You define your project structure (what releases need their own

    baselines), UCM manages the branch, rebase, merge cycle for you.* UCM uses base clearcase under the covers to do everything for you(using uglified branch names)* Managed at a higher level

  • 8/6/2019 Resumen Para Celu

    10/96

    You can implement UCM using base clearcase but you won't be able todo everything (easily) you can do in base clearcase in the UCM. Buyinginto UCM is really buying into the UCM way of doing things. If you

    want to fully embrace IBM Rational, then you should seriously considerfully embracing the UCM as all their tools integrate into that model.

  • 8/6/2019 Resumen Para Celu

    11/96

    IBM Rational ClearCaseThe Rational ClearCase family consists of several software tools forsupporting SCM (Software Configuration Management ) ofsource code

    and other software development assets. It is developed by the RationalSoftware division ofIBM. ClearCase forms the base for configurationmanagement for many large and medium sized businesses and canhandle projects with hundreds or thousands of developers. A mistakeoften made is comparing Rational ClearCase with a revision control

    system, which is a feature for end users and not configuration managerswho have a focus on processes and reporting.

    ClearCase supports two kinds of use models, UCM (Unified ChangeManagement), and base ClearCase. UCM provides an out-of-the-box

    model while base ClearCase provides a basic infrastructure (uponwhich UCM is built). Both can be configured to support a wide varietyof needs. UCM is part ofRUP and therefore all process templates androles can be used from RUP.

  • 8/6/2019 Resumen Para Celu

    12/96

    ClearCase can run on a number of platforms includingAIX, z/OS,Linux, HP-UX, Solaris andWindows.[1] It can handle large binary files,large numbers of files, and large repository sizes. It handles branching,

    labeling, and versioning of directories.

    Contents1ClearCase releases2Infrastructure

    2.1

    Database Layer2.2 Server Layer2.3 Clients

    3 Views4 Configuration specifications

    5 Features6 Weaknesses7 See also8 Notes9 References

  • 8/6/2019 Resumen Para Celu

    13/96

    ClearCase releases

    Version 7.1 (December 2008) introduced a great many changes andimprovements for both the CCRC clients, a new CM Server platform (agenericWebSphere application server platform for ClearQuest), ageneric programming model for both CC/CQ, a new multi-site

    monitoring system and more.

    Version 7.1.1 (December 2009) introduced a number of new featuresand improvements including atomic commits.

    Version 7.1.2 (October 2010) introduced a number of new features andimprovements including supporting ofUbuntu,Windows 7 User

    Account Control (UAC) and smart card authentication.

    Version 7.1.2.2 (April 2011) introduced a number of new features and

    improvements including supporting ofVisual Studio 2010.

  • 8/6/2019 Resumen Para Celu

    14/96

    Infrastructure

    -Database Layer

    The database system ClearCase uses consists ofRaima databases,which, in ClearCase terminology are called VOBs (Versioned ObjectBase). Raima databases are used in thousands of embedded devicesand are chosen for their reliability. On this layer maintenance takesplace using Raima tooling. Around this layer a set of interfaces with

    accompanying tools is available to manage the physical databasesystem. Since the Raima database is not a relational database thisrequires specific Database administrator skills.

  • 8/6/2019 Resumen Para Celu

    15/96

    -Server Layer

    Before version 7 every system, so clients and servers would run the

    same ClearCase services or daemons. The most important service iscalled the Atria location Broker Daemon (ALBD) which takes care of allthe communication between stations. After version 7 the serverplatform runs Websphere Application Server with a server applicationcalled the "CM Server" which at the same time serves Rational

    ClearQuest clients and Rational ClearCase Clients via the HTTPProtocol. Before version 7 there was a webservice by which users couldaccess ClearCase via their browser but this has been discontinued. Theolder client service architecture is still supported. Before version 7 loadbalancing would be more difficult (specific services would have to run

    on specific servers) to implement after version 7 it is just a matter ofputting multiple servers in sequence.

    In a multi-site scenario every server runs ClearCase MultiSite Serverand sends packages back and forth (via any protocol available) to

    synchronize.

  • 8/6/2019 Resumen Para Celu

    16/96

    -Clients

    Traditionally ClearCase supported full/fat clients. Since version 7 the

    CCRC 'ClearCase Remote Client' is available which is based on theopen source Eclipse (software) platform. It is supplied in both fullypackaged Eclipse versions as well as a plugin-in for Eclipse and otherenvironment such as Visual Studio. Communication takes place viathe HTTP Client protocol.

    The CCRC client is now the preferred client.

  • 8/6/2019 Resumen Para Celu

    17/96

    -ViewsA distinguishing feature of ClearCase is a proprietarynetworkedfilesystem (MVFS: MultiVersion File System), which can be used to

    mount VOBs as a virtual file system through adynamic view, selectinga consistent set of versions and allowing for the production ofderived

    objects. The dynamic view allows this to map to a SoftwareConfiguration. This was a departure from the repository/sandboxmodel, allowing for the early management of artifacts (before they are

    checked in, and not limited to these first order configuration items).

    Alternatively, ClearCase supports snapshot viewswhich are just copiesof repository data specified by a config-specwhich spans one or several

    VOBs. As opposed to dynamic views, snapshot views are maintained on

    a local (OS-specific) filesystem and do not require network access.Instead, a snapshot view stores a copy of the VOB data locally on theuser's computer. Snapshot views can be used while disconnected fromthe network and later resynchronized to the VOB when a connection isreestablished. This mode of operation is similar to how the widely-used

    CVS (Concurrent Versions System) software works.

  • 8/6/2019 Resumen Para Celu

    18/96

    From the perspective of software on the client computer, a view appearsas just another file system. If new data is created in a ClearCase viewthen ClearCase will refer to the new data (files, directories, ...) as v

    iew-private to indicate it is specific to the view being used and not beingversion controlled (private) by ClearCase. This allows build systems tooperate on the same file system structure as the source code, andensures that each developer can build independently of each other. A

    view-private object can be added to source control and become aversioned element at any time, making it visible to other users.

    Each developer typically has one or more views at their disposal. It issometimes practical to share views between developers, but sharing

    branches is usually used instead. Having a branch hierarchy is oftenuseful, so an entire development project shares a common developmentbranch, while a smaller team shares a sub-branch, and each developerhas his or her own private branch. Whenever some change is deemedstable enough for a larger group, it can be merged to the parent branch.

  • 8/6/2019 Resumen Para Celu

    19/96

    Configuration specificationsUnder base ClearCase, each view is controlled by its associated

    configuration specification, commonly referred to as a config spec.This is a collection of rules (stored internally in a text file, butcompiled to a more efficient form before use) that specifies whatelements (files or directories) should be visible in a view, and whichversions of these elements. When deciding which version, if any, of

    an element should be visible, ClearCase traverses the configurationspecification line-by-line from top to bottom, stopping when amatch is found. Earlier rules always take priority over later ones.

  • 8/6/2019 Resumen Para Celu

    20/96

    #A typical configuration specification could look like this:# Show all elements that are checked out to this view, regardless any

    other rules.element * CHECKEDOUT

    # If an element has a version on the 'module2_dev_branch', then the#latest version of this branch shall be the visible version in this view.

    element * .../module2_dev_branch/LATEST

    # For all files named 'somefile', regardless of location, always show#the latest version# on the main branch.element .../somefile /main/LATEST

  • 8/6/2019 Resumen Para Celu

    21/96

    # Use a specific version of a specific file. Note: This rule must appear#before the next rule to have any effect!element /vobs/project1/module1/a_header.h

    /main/proj_dev_branch/my_dev_branch1/14

    # For other files in the 'project1/module1' directory, show versions# labeled 'PROJ1_MOD2_LABEL_1'. Furthermore, don't allow any#checkouts in this path.

    element /vobs/project1/module1/... PROJ1_MOD2_LABEL_1 -nocheckout

    # Show the 'ANOTHER_LABEL' version of all elements under the#'project1/module2' path.# If an element is checked out, then branch that element from the#currently visible version, and add it to the 'module2_dev_branch'branch.element /vobs/project1/module2/... ANOTHER_LABEL -mkbranch

    module2_dev_branch

  • 8/6/2019 Resumen Para Celu

    22/96

    A configuration specification can also reference other configurationspecifications using the 'include' statement.

    Under ClearCase UCM these config specs still exist but do not needto be maintained or edited anymore by end-users or administrators.

    FeaturesBuild auditing: The networked filesystem provided byMVFS allows for

    build auditing. Builds performed on a dynamic viewwhich use theMVFS are able to monitor and record file I/O operations performedduring the build process, and associate each such event with thecommand which triggered it. This allows ClearCase to produce a bill-of-materialswhich it calls a Configuration Record (CR) for all builds

    and enable traceabilityfor either Software Configuration Managementpurposes or as part of a largerApplication Lifecycle Managementprocess. Build auditing is performed with command-line tools such as abuilt-in make tool (omake, clearmake) or by using the clearauditcommand which can invoke a separate build tool.

  • 8/6/2019 Resumen Para Celu

    23/96

    VOB (Versioned Object Base): A repository that stores versions offile elements, directory elements, derived objects, and metadataassociated with these objects. With MultiSite, a VOB can have multiplereplicas, at different sites.

    Configuration Record: The bill-of-materials artifact produced as theresult of build auditing that contains:

    -Build procedure: The method (script, makefile, ...) that invoked thebuild

    -Inputs: All files (and their specific versions) that were used for a

    particular build.

    -Outputs: All derived object (DO) files (and any dependent DOs)produced as a result of the build.

  • 8/6/2019 Resumen Para Celu

    24/96

    The dependency information is stored in a hidden configuration recordwhich can be shown for each derived object. The configuration recordcan be used to set up another view showing all files that have been readbefore during the build time. Alternatively, you can use theconfiguration record to apply a label to the files (and versions) that

    were read during the build.

  • 8/6/2019 Resumen Para Celu

    25/96

    -Build Avoidance: Use ofMVFS (MultiVersion File System) allowsderived objects built in one dynamic view to be automatically

    "copied over" to another dynamic view requiring "exactly the same"derived object. Two derived objects are deemed to be "exactly same"if they have the same configuration record(ClearCase terminology,also called bill of materials). Shared derived objects will bephysically present on the VOB server, and not in the views that

    reference them. The process of "copying over" is called winking in inClearCase terminology. This feature requires that the clearmake oromake tools are used instead of other build systems.

  • 8/6/2019 Resumen Para Celu

    26/96

    -Unix/Windows Interoperability:VOBs hosted on *nix (Solaris,Linux,AIX, HP-UX, IRIXprimarily) servers can be accessed with

    dynamic views, snapshot views, or the new web protocol basedclient: the CCRC on Windows clients. VOBs hosted on Windowsservers can be accessed with snapshot views or CCRC from Unixclients, but not dynamic views due to the Windows server returningfile paths with backslashes as the path delimiter. There is a 3rd party

    patch[9] for Linux to enable dynamic views from Windows VOBs.

  • 8/6/2019 Resumen Para Celu

    27/96

    -Integration With OtherProducts: Other products (originally)from Rational Software, notablyClearQuest and Rational Rose,

    integrate with ClearCase. ClearCase also integrates with TextPad,Microsoft Visual Studio, Code::Blocks, NetBeans and the EclipseIDE through a plugin. There are also Emacs[10] andVim[11] pluginsavailable.

    -Space Saving: ClearCase dynamic views can save hugeamounts of space and allow for some measure of a sharedwork environment.

  • 8/6/2019 Resumen Para Celu

    28/96

    Weaknesses

    -Speed: ClearCase dynamic and snapshot views are slowerthan local filesystems, even with good networkinfrastructure. A benchmark in a study byPerforce showsthat many basic tasks take about twice as long to run using

    a ClearCase dynamic view than Perforce's SCM tools,[12]although repeated subsequent builds may rundramatically faster due to build avoidance if ClearCase'smake substitute can be used. Because MVFS requires

    server access every time a file is accessed, the performanceof the file system depends on server capacity.[citation needed]

    The ClearCase protocol relies on remote calls for mostactions which slows down even snapshot views, compared

    to more modern SCM tools that can work offline.

  • 8/6/2019 Resumen Para Celu

    29/96

    -Speed - Windows clients: ClearCase disk access performance forWindows clients used to be extremely low.[13] This depends on

    unlucky combination of a very verbose protocol combined withSamba and CIFS.[13] Replacing the windows clients' standard CIFSimplementation with NFS might increase the bandwidth approx. 2.5times, leaving it still slow but more acceptable.[13] The new CCRCclient however uses the http protocol for all operations meaning this

    is an historic argument.

    -Sensitivity to network problems: Because MVFS is essentially anonline file system, any problems with the server or network renderthe dynamic views unusable. It is not possible to work on dynamicviews offline.[citation needed], however, a snapshot view may be createdwith an identical configuration specification. If the view data fordynamic views is stored on a client host (as may be done forperformance reasons or to reduce the need for servers), ClearCase

    does not automatically handle host IP address changes.[14]

  • 8/6/2019 Resumen Para Celu

    30/96

    -Cost ofOwnership: ClearCase suffers from a high cost ofownership - licensing and renewals, administration and hardware

    requirements - compared to both free, open-source SCMs andcommercials SCMs.[12]

  • 8/6/2019 Resumen Para Celu

    31/96

    UCM for Zealots: Moving from Base Install to UCM ClearCase

    Su

    mmary: Are you thinking of moving from base CleaCase to UCM?Does your base installation support your organization's current usagemodel? Here are some points from Christian Buckley and DarrenPulsipher that you may want to consider when making the decsion tomove to UCM.

    What is Unified Change Management (UCM), and how does itapply to IBM Rational ClearCase?UCM was developed to make it much easier for people using ClearCaseto get started with an effective use model. This is because a "base"

    ClearCase installation has so much flexibility that many organizationsfind it difficult to use the application out of the box. To make ClearCasemore useful to their specific needs, they write their own scripts andprocesses. UCM was an effort to identify the most common elements ofClearCase use models, and to create objects and methods that make the

    application more effective.

  • 8/6/2019 Resumen Para Celu

    32/96

  • 8/6/2019 Resumen Para Celu

    33/96

    To begin, you should review the basic ClearCase objects that you arecurrently using. By reviewing your current objects, you'll be able to

    see the differences between your basic installation and UCM, andbetter understand what new functionally the UCM objects can bringto your ClearCase system. Most organizations making this changefind that they have written many of their own scripts to performfunctions covered by some of the UCM objects. In cases like this, it

    is okay to adopt the UCM objects. This benefits you because whenClearCase has the same functionality as your custom development,it's one less script that you have to support within the system,allowing you to spend more time concentrating on actual work.

  • 8/6/2019 Resumen Para Celu

    34/96

    Basic ClearCase ObjectsIf you already have a CM plan completed, you are almost done. If you

    don't yet have a plan, see the IBM Rational Unified Processmethodology for a template. A good CM plan will contain theworkflow in very general terms, and then a specific ClearCasemapping. If you have developed your own plan with a detailed mapof your system, then you will find that changing over to UCM should

    be fairly straightforward. At the very least you will easily be able tosee whether or not UCM is a good fit for your implementation.That's why you want to have a clear understanding of your existingobjects and your current objects -- just because UCM is availabledoes not necessarily mean that you should use it.Basically, UCM adds additional objects and workflow to the baseClearCase objects that you have already been using. So, before youembark on this change, lets first walk through some questions aboutthe current ClearCase objects you are using:

  • 8/6/2019 Resumen Para Celu

    35/96

    From the perspective of software on the client computer, a view appearsas just another file system. If new data is created in a ClearCase viewthen ClearCase will refer to the new data (files, directories, ...) as view-

    private to indicate it is specific to the view being used and not beingversion controlled (private) by ClearCase. This allows build systems tooperate on the same file system structure as the source code, andensures that each developer can build independently of each other. A

    view-private object can be added to source control and become aversioned element at any time, making it visible to other users.

    Each developer typically has one or more views at their disposal. It issometimes practical to share views between developers, but sharing

    branches is usually used instead. Having a branch hierarchy is oftenuseful, so an entire development project shares a common developmentbranch, while a smaller team shares a sub-branch, and each developerhas his or her own private branch. Whenever some change is deemedstable enough for a larger group, it can be merged to the parent branch.

  • 8/6/2019 Resumen Para Celu

    36/96

    VOBs (VersionObject Base)VOBs are just as important in UCM as they are in the base ClearCase

    use model. You will probably continue to use the same VOBstructure that is in your current system. While you may changethings around a bit to make things more efficient in UCM, you mostlikely won't need to do anything. Of course, you'll need to answersome basic questions about your VOB structure, most of which you

    may already have answered in your CM plan:How are your VOBs arranged?Do you have admin VOBs?What is the relationship between VOBs?What kind of information is contained in VOBs, and how are theirdirectories organized?

  • 8/6/2019 Resumen Para Celu

    37/96

    ViewsUCM does some interesting things with Views. They are typically

    longer-lasting than those found in base ClearCase implementations.It's important that you answer these questions about how your viewsare created and removed. In addition, your config specs aregenerated automatically in UCM, and they may not be what youexpect. It's important that you also describe your config specs so you

    understand the mappings from your old system to your new. Askyourself:Who can create views?How often are views created?Are views created automatically or manually?How long do views hang around?When are views removed?Are the config specs created automatically?Are there shared config specs?

  • 8/6/2019 Resumen Para Celu

    38/96

  • 8/6/2019 Resumen Para Celu

    39/96

    BranchesIf you are using base ClearCase without branches, then you might aswell forget reading through the questions below, because essentially

    you don't have a base ClearCase use model. If this is the case, youcan move directly to the UCM model with no mapping from yourcurrent model. In effect, you'll have to throw out whatever youcurrently have in place.If you do have branches in your model, then you have a lot of work

    to do. The branching model for UCM uses the concept of streams,which we will discuss later. Chances are your branching model willhave to be completely abandoned. On the positive side, however,your use model is probably still useable. Make sure you take the timeto understand the following questions:

    When do you create a branch type?What is your naming convention?When are elements moved to a branch?

    What is your branching strategy?

  • 8/6/2019 Resumen Para Celu

    40/96

    How many people work on the same branch?Do you have an integration branch?What do you do with the "main" branch?Do you age your branches?When are branches obsoleted or removed?

  • 8/6/2019 Resumen Para Celu

    41/96

    MergingAs with your branches, you need to spend some time understandingthe questions about merging in this section. UCM has integrationpoints and new commands to handle the merging of code from branchto branch, which is accomplished through two concepts called deliveryand rebase. Understanding why and when you merge is very important.

    Ask yourself:When is code merged? Triggered by an event? Triggered by time?

    Is code merged automatically or manually?Who is responsible for merging code?Do you allow merging from integration branches to developmentbranches?How often do you merge code from a development branch to an

    integration branch?

  • 8/6/2019 Resumen Para Celu

    42/96

    TriggersTriggers are very important in most base ClearCase systems, as theyhelp with workflow and process control. UCM does have some

    policies that include the use of ClearCase triggers. Ensure that yourCM plan describes your triggers and the VOBs that use them. It isimportant to understand:What are the triggers you use and why do you use them?What VOBs are using what triggers?

  • 8/6/2019 Resumen Para Celu

    43/96

    BasicObjects in UCMWhere base ClearCase gave us very abstract concepts like branches,labels, hyperlinks, elements, views, and VOBs, UCM provides the

    higher-level abstractions that we deal with every day to develop,integrate, and deliver products. These higher-level concepts are:

    ProjectsStreams

    ActivitiesBaselinesComponents

    If you have been using base ClearCase for some time, you willquickly find that you have these concepts already in your system,either in documentation or in scripts. Consider it a confirmation ofyour brilliance that the application now offers everything you'vecreated scripts to do -- and now it is time for you to continue to be

    smart and use what is available.

  • 8/6/2019 Resumen Para Celu

    44/96

    ProjectsA project is used to refer to a group of people working on asingle development effort. This can be a product release, a

    sub-system of a complete system, or a collection ofproducts to form a suite. A project contains oneintegration stream and zero or more development streams.This is where you -- as the CM guru -- must start planning.

    Before you start creating projects all over the place,though, you need to sit down with marketing, yoursoftware development team, QA, and your technicalwriters to determine how you want to work together.

    ClearCase commands for projects include: mkproject,lsproject, chproject, and rmproject.

  • 8/6/2019 Resumen Para Celu

    45/96

    StreamsA stream can be compared to a development branch. Thestream basically groups together specific versions of

    elements. The key differentiator between a generic branchand a stream is the additional information stored in thestream. For example, a stream contains a baseline, and aset of activities. It also contains relationships with other

    streams, such as a parent stream. The baseline, plus the setof activities, determines what versions of the elements thestream contains.

    Figure 1. Sample stream Streams flow

    I Fi h i i i A i i d A i i h

  • 8/6/2019 Resumen Para Celu

    46/96

    In Figure 1, there are two activities -- Activity1 and Activity 2 -- thathave been added to the stream. The baseline is defined by the versionsof the elements represented by the bold circles in the diagram. The twoactivities have versions of elements that represent different patterns.There are two basic types of streams: an integration stream, and adevelopment stream. There is one and only one integration stream for aproject. In very simple projects, developers can make their changesdirectly on the integration stream, and every member of the project

    working on the stream will see each other's changes as soon as they arechecked in.

    More complex projects might have one or more levels of developmentstreams originating from various baseline configurations of the

    integration stream. In this case, developers work "privately" on theirunique development stream, and project members will notimmediately see each other's work.

    O d l h l d h i k h d l

  • 8/6/2019 Resumen Para Celu

    47/96

    Once developers have completed their work on the developmentstream and are ready to share it with the rest of the project members,the development stream contents are "delivered" to the integrationstream. Think of the integration streams as where all the changes fromthe development streams come together.

    ClearCase commands for streams include: mkstream, lsstream,chstream, and rmstream

    B li

  • 8/6/2019 Resumen Para Celu

    48/96

    BaselinesA baseline represents versions of elements that are used to start astream or to rebase a stream. A simple way of looking at baselines isto compare them to labels, the difference again being that there isadditional information (including relationships) stored withbaselines. Baselines are typically the starting point for many of youractivities, such as creating streams, rebasing a stream, and so on.

    ClearCase commands for baselines include: mkbl, lsbl, chbl, rmbl,diffbl, setplevel, and cleardiffbl.

    A ti iti

  • 8/6/2019 Resumen Para Celu

    49/96

    ActivitiesAll changes to any element in a ClearCase UCM project must beassociated with an activity. An activity is the basic unit of work thatyour team members perform. It has the following components:a headline (ID)a creatora change set (set of elements that have changed)a stream with which it corresponds

    If you are using IBM Rational ClearQuest, an activity is usuallytied directly to a defect or enhancement.ClearCase commands for activities include: mkactivity, lsactivity,chactivity, and rmactivity.

    C t

  • 8/6/2019 Resumen Para Celu

    50/96

    ComponentsA component allows you to group a set of related directories and fileelements together, and then tie them to a UCM project. A componentis developed, integrated, and all of its parts released together. Allprojects must have one or more components, and components can beshared between projects. However, a component cannot spanmultiple VOBs, and the largest a component can be is the size of itsVOB. Other things to consider about components include:

    Elements cannot be moved from one component to another.An element can only exist in one component.Once you create a component, you cannot reorganize it into subcomponents.Planning your components up front is extremely important. One

    strategy is to put any elements that will be shared with other projectsinto the same component, or into groups of components.

    ClearCase commands for components include: mkcomp, lscomp, andrmcomp.

    F ld

  • 8/6/2019 Resumen Para Celu

    51/96

    FoldersA folder is basically a container for information about the project orprojects. A folder can contain other folders, as well as any number ofprojects. Chances are you probably have been using directories inyour VOB as a folder of some sort in base ClearCase. Now thatfolders are first class objects, you can use them instead.

    ClearCase commands for folders include: mkfolder, lsfolder,

    rmfolder and chfolder.

  • 8/6/2019 Resumen Para Celu

    52/96

    Delivering Activities

  • 8/6/2019 Resumen Para Celu

    53/96

    Delivering ActivitiesOnce you have finished working on an activity, you can deliver yourchanges to the default integration stream (parent stream), or to anyother stream that you choose. Streams can accept or reject changesdepending on policies that have been established for the stream.The command to deliver activities is:

    cleartool deliver -- This delivers changes to elements from a source

    stream to a target stream. The status of the delivery can be obtainedwith this command as well.

    When the deliver begins, it creates a special activity to deliver thechanges to the integration stream. This activity is created to help

    manage any possible merge conflicts and resolutions that may occur.Delivery can be accomplished in two steps, or in a single step. The firststep is to perform the merges of elements that have changed. Thesecond step confirms the changes and marks the activity as completed.

    You can force the delivery to be a one-step delivery using the complete

    flag.

    Re basing Work Areas

  • 8/6/2019 Resumen Para Celu

    54/96

    Re-basing Work AreasPeriodically, you will want to rebase your stream from theintegration streams. Remember -- your development streams usuallyhang around for a long time. Periodically, you will need to getupdates from your team members' activities. In essence, the rebasecommand in ClearCase does just that: it provides the activities (andtherefore changes) that other team members have delivered into anintegration stream.

    cleartool rebase -- Changes the configuration of the stream

    Rebasing streams is a multi-step process, much like deliveringactivities. You can have code merging from the integration stream to

    your development stream, which involves moving labels andresolving merge conflicts. Just as with the deliver command, -complete can be used to mark the automatically created activity ascompleted (in other words, force a one-step rebase).

    As a CM Manager it is best that you provide recommended

  • 8/6/2019 Resumen Para Celu

    55/96

    As a CM Manager, it is best that you provide recommendedbaselines against which developers can rebase their developmentstreams. For example, a stable build could be put into therecommended base list, enabling developers to see that they arestarting with code that was working at a given time.

    Bringing Two WorldsTogetherFor those of you using base ClearCase, many of the concepts in the

    UCM model will probably not be very different from what you havealready been doing. The key now is to map what you currently haveto what UCM offers. Then you can examine the different use modelsavailable through UCM. This is not something you can do in acouple of hours -- as we've outlined, you will need to take the time to

    build a full CM plan. You will also need to thoroughly define whatyou are using today and what you want to do with UCM.In our next two articles we will address UCM implementationplanning in much greater depth.

    Choosing between UCM and base ClearCase

  • 8/6/2019 Resumen Para Celu

    56/96

    Choosing between UCM and base ClearCaseBefore you can start to use IBM Rational ClearCase to manage theversion control and configuration needs of your developmentproject, you need to decide whether to use the out-of-the-boxUnified Change Management (UCM) process or base ClearCase.These topics describe the main differences between the twomethods from the project management perspective.The topics of this help system present conceptual and usage

    material for each method from the perspective of the projectmanager and project integrator. You get a description of how tomanage a project using UCM and how to manage a project using thevarious tools in base ClearCase.

    Differences between UCM and base ClearCase

  • 8/6/2019 Resumen Para Celu

    57/96

    Differences between UCM and base ClearCase

    Base ClearCase consists of a set of powerful tools to establish anenvironment in which developers can work in parallel on a sharedset of files, and project managers can define policies that governhow developers work together.

    UCM is one recommended method of using Rational ClearCase for

    version control and configuration management. UCM is layered onbase ClearCase. Therefore, it is possible to work efficiently in UCMwithout having to master the details of base ClearCase.

    UCM offers the convenience of an out-of-the-box solution; base

    ClearCase offers the flexibility to implement virtually anyconfiguration management solution that you deem appropriate foryour environment.

    In Figure 1 there are two activities -- Activity 1 and Activity 2 -- that

  • 8/6/2019 Resumen Para Celu

    58/96

    In Figure 1, there are two activities -- Activity1 and Activity 2 -- thathave been added to the stream. The baseline is defined by the versionsof the elements represented by the bold circles in the diagram. The twoactivities have versions of elements that represent different patterns.

    There are two basic types of streams: an integration stream, and adevelopment stream. There is one and only one integration stream for aproject. In very simple projects, developers can make their changesdirectly on the integration stream, and every member of the project

    working on the stream will see each other's changes as soon as they are

    checked in.

    More complex projects might have one or more levels of developmentstreams originating from various baseline configurations of the

    integration stream. In this case, developers work "privately" on theirunique development stream, and project members will notimmediately see each other's work.

  • 8/6/2019 Resumen Para Celu

    59/96

    Branching and creating views

    Using components to organize files

    Creating and using baselines

    Managing activities

    Enforcing development policies

    Branching and creating views

  • 8/6/2019 Resumen Para Celu

    60/96

    Branching and creating viewsBranches are used in base ClearCase to enable parallel development.Abranch is an object that specifies a linear sequence of versions of anelement. Every element has one main branch, which represents theprincipal line of development, and may have multiple subbranches,each of which represents a separate line of development. For example,a project team may use the main branch for new development workwhile using a subbranch simultaneously for fixing a bug.

    Subbranches can have subbranches. For example, a project team maydesignate a subbranch for porting a product to a different platform.The team may then decide to create a bug-fixing subbranch off thatporting subbranch. You can create complex branch hierarchies. Figure

    1 illustrates a multilevel branch hierarchy. As a project manager insuch an environment, you need to ensure that developers are workingon the correct branches. Developers work in views. Aview is a workarea for developers to create versions of elements. Each view includesa config spec, which is a set of rules that determines which versions of

    elements the view selects.

    Figure 1 Branching hierarchy in base ClearCase

  • 8/6/2019 Resumen Para Celu

    61/96

    Figure 1. Branching hierarchy in base ClearCase

    As project manager you tell developers which rules to include in

  • 8/6/2019 Resumen Para Celu

    62/96

    As project manager, you tell developers which rules to include intheir config specs so that their views access the appropriate set ofversions.

    UCM uses branches also, but you do not have to manipulate themdirectly because UCM layers streams over the branches. Astream isa Rational ClearCase object that maintains a list of activities andbaselines and determines which versions of elements appear in a

    developers view. In UCM, a multiple-stream project contains oneintegration stream, which records the shared set of elements of theproject, and multiple development streams in which developerswork on their parts of the project in isolation from the team. Theproject integration stream uses one branch. Each development

    stream uses its own branch. You can create a hierarchy ofdevelopment streams, and UCM creates the branching hierarchy tosupport those streams.

    Although most customers use Rational ClearCase to implement a

  • 8/6/2019 Resumen Para Celu

    63/96

    Although most customers use Rational ClearCase to implement aparallel development environment, UCM and base ClearCase alsosupport serial development. In base ClearCase, you implement aserial development environment by having all developers work onthe same branch. In UCM, you create a single-stream project, whichcontains one stream, the integration stream. All developers work onthe integration stream rather than on development streams. Serialdevelopment is intended only for very small project teams whose

    developers work together closely.

    As project manager of a UCM project, you need not write rules forconfig specs. Streams configure developers views to access theappropriate versions on the appropriate branches.

    Using components to organize files

  • 8/6/2019 Resumen Para Celu

    64/96

    Using components to organize filesAs the number of files and directories in your system grows, youneed a way to reduce the complexity of managing them. In UCM,you use components to simplify the organization of your files anddirectories. The elements that you group into a component typicallyimplement a reusable piece of your system architecture. Byorganizing related files and directories into components, you canview your system as a small number of identifiable components,

    rather than one large set of directories and files.

    Creating and using baselines

  • 8/6/2019 Resumen Para Celu

    65/96

    Creating and using baselinesAbaseline identifies one version of every element in one or morecomponents. You use baselines to identify the set of versions of filesthat represent a project at a particular milestone. For example, youmay create a baseline called beta1 to identify an early snapshot ofproject source files.

    Baselines provide two main benefits:

    The ability to reproduce an earlier release of a software projectThe ability to tie together the complete set of files related to aproject, such as source files, a product requirements document, adocumentation plan, functional and design specifications, and testplans

    UCM automates the creation process and provides additionalsupport for performing operations on baselines. In base ClearCase,you can create the equivalent of a baseline by creating a version label

    and applying that label to a set of versions.

    In UCM, baseline support appears throughout the user interface

  • 8/6/2019 Resumen Para Celu

    66/96

    In UCM, baseline support appears throughout the user interfacebecause UCM requires that you use baselines. When developers joina project, they must first populate their work areas with the contentsof the recommended baseline of their parent stream. This methodensures that all team members start with the same set of sharedfiles. In addition, UCM lets you set a property on the baseline toindicate the quality level of the versions that the baseline represents.Examples of quality levels include project builds without errors,

    passes initial testing, and passes regression testing. By changingthe quality-level property of a baseline to reflect a higher degree ofstability, you can, in effect, promote the baseline.

    Managing activities

  • 8/6/2019 Resumen Para Celu

    67/96

    Managing activitiesIn base ClearCase, you work at the version and file level. UCMprovides a higher level of abstraction: activities. An activity is aRational ClearCase object that you use to record the work required tocomplete a development task. For example, an activity may be tochange a graphical user interface (GUI). You may need to edit severalfiles to make the changes. UCM records the set of versions that youcreate to complete the activity in a change set. Because activities

    appear throughout the UCM user interface, you can performoperations on sets of related versions by identifying activities ratherthan having to identify numerous versions.Because activities correspond to significant project tasks, you cantrack the progress of a project more easily. For example, you can

    determine which activities were completed in which baselines. If youuse the UCM integration with IBM Rational ClearQuest, you gainadditional project management control, such as the ability to assignstates and state transitions to activities. You can then generate reportsby issuing queries such as show me all activities assigned to Pat that

    are in the Ready state.

  • 8/6/2019 Resumen Para Celu

    68/96

    In base ClearCase, you can use tools such as triggers and attributes

  • 8/6/2019 Resumen Para Celu

    69/96

    , y ggto create mechanisms to enforce development policies. UCMincludes a set of common development policies, which you can setthrough the graphic user interface (GUI) or command-line interface(CLI). You can set these policies at the project and stream levels. Inaddition, you can use triggers and attributes to create new UCMpolicies.

    ClearCase administration: The first ten things

  • 8/6/2019 Resumen Para Celu

    70/96

    gThis article provides an overview of some of the concepts andresources to help you get started with ClearCase administration.There are many resources available that address ClearCaseadministration. Finding the right information can be anoverwhelming task for administrators new to ClearCase. This articleassumes no prior knowledge of ClearCase. The first few sections ofthe article cover concepts and provide examples to help you get

    familiar with ClearCase administration. Later sections of the articlecover planning and ongoing administration activities.

    This article takes the approach of learning by experimentation. Thearticle gives a brief description for each example command and

    provides references for further details. The examples use commandline interface to illustrate greater details for deeper understanding.The article provides references to GUI wizards without going intomuch detail.

  • 8/6/2019 Resumen Para Celu

    71/96

    On Unix, this would be the superuser, UID=0, on the VOB server. On

  • 8/6/2019 Resumen Para Celu

    72/96

    pWindows, it is any user who is a member of the clearcase domaingroup.

    ClearCase provides powerful command line and graphical interfaces. Inaddition, ClearCase integrates well with Windows explorer and manyother major IDE in the market.

    ClearCase is powerful in many ways; however, a commonmisconception is to treat it as a build and release system. ClearCasedoes provide convenience utilities such as clearmake, clearaudit, oromake to facilitate integration of your build and release system withClearCase. These utilities in themselves do not make ClearCase a build

    and release system.

    Section 2: Where do I get ClearCase?

  • 8/6/2019 Resumen Para Celu

    73/96

    gLet's get started with the real product. If you already have ClearCaseinstalled and have administrative privilege, skip to the next section.If you don't already have ClearCase installed or would like to createyour own sandbox environment for experimentation, then thissection may be useful for you.There are three flavors of ClearCase: ClearCase LT, full ClearCase,and ClearCase Multisite. Refer to the Rational ClearCase LT product

    information for the differences. This article assumes you install andconfigure the full ClearCase version.

    Download the latest version of ClearCase. Extract the compressedfile and change directory to the installation image. Follow the

    Installation Guide manual for installation of ClearCase onto yourlocal system. You will need either temporary or permanent license touse ClearCase. For temporary license, submit a request to RationalSupport. For permanent license, the FAQ article contains

    instructions on how to obtain permanent licenses.

    Section 3: My first VOB and view

  • 8/6/2019 Resumen Para Celu

    74/96

    3 yClearCase stores project artifacts in a VOB. A VOB is a repository forstoring versioned project artifacts and metadata. Project artifacts aresource, binary, or other contents that is checked into ClearCase.Metadata refers to attributes, internal object references, audit trail,and other information managed by ClearCase. A VOB is a boundaryunit for managing security, performance, and Multisite. Until youactually store your project artifacts in your VOB, you can freely

    create and remove your test VOB. Let's create a VOB forexperimental purpose. The Windows installation of Clearcase comeswith a convenient Create VOB wizard in the Rational AdministrativeTools folder within the Start menu. The command line interface isavailable on both Windows and Unix.

    Before creating a VOB, you must share a directory for holding therepository. Launch \etc\SvrStor.exe to share a folderand publish the storage location.

    You can achieve the same result by sharing a folder using Windows

  • 8/6/2019 Resumen Para Celu

    75/96

    y g gexplorer and running cleartool mkstgloc command. You can findthis and other commands in the Command Reference manual.

    Using the storage location above, let's create a VOB. Use the CreateVOB wizard or type the following command:

    C:\>cleartool mkvob -tag \myFirstVOB -stgloc auto

    That's it! You have just created a VOB capable of storing projectartifacts. Let's examine the command a bit closer. The cleartoolprogram is a command-line interface utility for invoking manyClearCase controls. Both administrators and developers can use this

    program for day-to-day activities. The mkvob command is one ofmany commands supported by the cleartool program. Thiscommand requires a tag parameter and a storage location parameter

    Type the following command to see other parameters:

  • 8/6/2019 Resumen Para Celu

    76/96

    C:\>cleartool man mkvob

    The man command brings up the manual similar in content to theCommand Reference manual. You can use the man command toshow the online manual of any cleartool commands.In order to store or retrieve data, you must create a view to accessVOB elements. A view specifies the configuration or version

    selection within one or more VOBs. You can create either a snapshotview or a dynamic view. A snapshot view is a copy of files selected byyour config_spec similar to a CVS and other SCM workspace. Thismode is convenient for off-line work where network connectivity tothe ClearCase server may not be available. A dynamic view is a

    network-mapped storage similar to NFS or SMB file system. It hasthe benefit of automatic updates and more. Dynamic view doesconsume significant network bandwidth and require constantnetwork availability. It is very convenient for administrators since

    creating or deleting a dynamic view is fast

    Let's create a dynamic view to access the VOB you have just created.

  • 8/6/2019 Resumen Para Celu

    77/96

    C:\>cleartool mkview -tag myFirstView -stgloc -auto

    Similar to the VOB creation above, you must specify a storagelocation to store the view repository. The storage location for bothVOBs and Views are reserved for ClearCase to manage. As a

    ClearCase administrator, you may have to occasionally fix VOB andView repositories to recover an abnormal condition.Let's make use of the VOB and view you just created. Dynamic viewson Windows are mapped to a network drive. ClearCase by defaultuses the M: drive as root for all active dynamic views on your system.

    Directly within the view directory are mounted VOB tags.

    If you do not see the \myFirstVOB in the M:\myFirstView directory,

  • 8/6/2019 Resumen Para Celu

    78/96

    mount the VOB with the following command:C:\>cleartool mount \myFirstVOB

    Browse to the M:\myFirstView\myFirstVOB folder. This is the top-level directory for accessing and storing project artifacts. UseWindows explorer or any other shell to add files and directories inthe VOB. Refer to the mkelem manual page for more details.

    Section 4: My first UCM project

  • 8/6/2019 Resumen Para Celu

    79/96

    Unified Change Management or UCM is a set of policies andprocesses on top of base ClearCase. Prior to ClearCase version 4.0,many ClearCase shops would develop their own set of triggers andscripts to enforce policies and processes. UCM tightly integrateswith ClearCase to provide a standard set of policies and processes.Rational supports both base ClearCase and UCM mode ofoperations. UCM is an excellent solution for software development

    groups new to ClearCase or those requiring a more integratedchange management solution.

    ClearCase stores UCM metadata in a specialized VOB called projectVOB. A project VOB can store files and directories just like any other

    VOB. Let's create a project VOB using the same storage locationdefined earlier. Type the following command:

    C:\>cleartool mkvob -tag \myFirstPVOB -ucmproject -stgloc -

    au

    to

  • 8/6/2019 Resumen Para Celu

    80/96

    You can verify the association between the project VOB and the

  • 8/6/2019 Resumen Para Celu

    81/96

    component VOB by typing the following command:C:\>cleartool describe \myFirstPVOBC:\>cleartool describe \myFirstComp

    The AdminVOB hyperlink is used by ClearCase to associatecomponent VOBs to a project VOB. Now that you have a componentdefined, let's create the UCM project and stream. Type the

    following:

    C:\>cleartool mkproject -mod myFirstComp@\myFirstPVOB -in RootFoldermyUCMProject@\myFirstPVOB

    C:\>cleartool mkstream -integration -inmyUCMProject@\myFirstPVOBmyUCMProject_Integration@\myFirstPVOB

  • 8/6/2019 Resumen Para Celu

    82/96

    The processes above can be done simpler using the Create VOB wizardd h P j E l Y ddi i l VOB

  • 8/6/2019 Resumen Para Celu

    83/96

    and the Project Explorer program. You can create additional test VOBsand projects using the wizard. You can clean up your experimental

    VOBs and views later simply by removing your test VOBs and views.

    Refer to the rmvob and rmview commands for more detail

    Section 5: Rollout Plan of ClearCase to small development group

  • 8/6/2019 Resumen Para Celu

    84/96

    Now that you have some experience with ClearCase administration,let's rollout ClearCase to a small development group. The first thing

    that you need to do is to identify the following servers:

    ClearCase license serverClearCase registry server

    ClearCase VOBs and Views server

    If your organization already has a ClearCase license server and thereare sufficient licenses available, you can simply make use of it.Otherwise you need to identify a machine to host ClearCase license.

    Typical ClearCase shops combine both the license and registryservers onto one machine. For initial rollout, you can also put VOBsand Views on the same server. You can later migrate the VOBs andViews to another server if you experience performance problems.

    If your development platform is Windows, make sure all thed l hi i h Wi d d i

  • 8/6/2019 Resumen Para Celu

    85/96

    development machines are in the same Windows domain as yourVOBs and Views server. Create a clearcase_albd domain user, avobadm domain user and a clearcase domain group. Add vobadm,

    clearcase_albd, and your domain accounts to the clearcase group.

    If your development platform is Unix, make sure all thedevelopment machines are in a common NIS/NIS+ domain as your

    VOBs and Views server. Create a vobadm account and a commongroup, i.e., clearcase_users. Set vobadm primary group toclearcase_users and add all developer accounts to theclearcase_users group. I will discuss the significance of these groupsin Section 9 below. More detailed information is available in the

    Administrator's Guide for Rational ClearCase.

    .

    ClearCase comes with a site_prep program to prepare a release area forCl C li t i t ll ti Thi t f

  • 8/6/2019 Resumen Para Celu

    86/96

    ClearCase client or server installation. This program prompts forconfiguration defaults and saves the responses in a sitedefs.dat file. You

    will need to specify the license server, registry server, region, albd

    account and password (Windows only), and a few other options. Makesure the servers and accounts are correct. Make sure the region is thesame for the client and server machines

    Once the release area is ready, share the location as read-only so thateveryone can install ClearCase onto his or her machine. Be sure toremove write permission to prevent inadvertent corruption of yourrelease area. Refer to the Installation Guide for Rational ClearCasemanual for Windows or Unix for installation details.Prepare a training session for your developers. You can find typicalissues developers may experience in the Catch-22: Rookie Mistakes inClearCase article. The ClearCase community is a large and activelyhelpful group. If you run into ClearCase issue, you may find help on theClearCase discussion forums on the Rational Developer Network.

    Section 6: Configure Web interfaceP f l bili i ll l d l i N i Cl C

  • 8/6/2019 Resumen Para Celu

    87/96

    Powerful capabilities usually lead to complexity. Native ClearCaseinterface provides powerful access methods and controls fordevelopment. Many ClearCase features that are crucial for software

    development may not be necessary for other stakeholders within aproject. ClearCase provides a simple Web interface called ccwebaccess for access to the repository. This interface is convenient formanagers, document writers, or those who needing casual access to

    ClearCase. The ccweb interface reduces complexity arise duringdevelopment such as branching, merging, or defect tracability.You should allocate a dedicated machine for serving ClearCase Webservice. This machine should not be your VOB, view, or licenseserver due to resource contentions. The machine need not be very

    powerful unless you plan to have many concurrent users.Configuration of ccweb involves setting up a Web server, a statichtml virtual directory, and a cgi-bin directory. TheAdministrator'sGuide for Rational ClearCase manual provides details forconfiguring ccweb with Apache, IIS, and iPlanet Web servers.

    Section 7: Ongoing Administration and TroubleshootingO Cl C i i d ti th i d i i t ti

  • 8/6/2019 Resumen Para Celu

    88/96

    Once ClearCase is in production use, there are ongoing administrationtasks. One of the most important tasks for ClearCase administration isbackup and restore of VOB storage. Views typically do not need to be

    backed up since they can be easily recreated. Refer to the Backup andRestoring VOBs section of the Administrator's Guide for RationalClearCase manual for further details.There are many triggers that have been developed over the years tosimply ClearCase administration. Perhaps the most important one is

    the change-owner trigger to prevent administrative operations such asrmelem on elements. Change directory to the path below and type thefollowing command to create this trigger.M:\myFirstView\myFirstVOB>cleartool mktrtype -element -all -postop mkelem -nc -exec "cleartool protect -chownDOMAIN\vobadm -chgrp DOMAIN\users \"%CLEARCASE_PN%\""mkelem_postop

    This trigger is launched on the client's machine immediately after anl t i dd d A i ti f thi t i d l th f l

  • 8/6/2019 Resumen Para Celu

    89/96

    element is added. A variation of this trigger and several other usefultriggers is available in the Ten Best Triggers article.There are many ClearCase resources available to help you along the

    way. You may find answers to some frequent questions in the RationalClearCase FAQs. Rational Technical Support is another good resourceto help resolve your ClearCase issues. In addition, the CCIUG mailinglist is a very active International user group for ClearCase discussions.

    You can find answers to many technical ClearCase-related questions in

    this community.

    Section 8: Scaling and CustomizationA j t d t i th h d t

  • 8/6/2019 Resumen Para Celu

    90/96

    As your project grows you may need to increase the hardware toimprove response time. Addressing performance issues requireknowing how ClearCase works. ClearCase is inherently a client-

    server application. Rational recommends that all the clientmachines and the ClearCase servers should be on the same local 100Mbps network, preferably running full duplex. ClearCaseperformance drops drastically when the network latency is high.

    Each VOB or view consumes resource on the server. If you find thatthe server is low on hardware resource, you can scale up vertically orhorizontally. If your hardware is upgradeable, you can add morehardware to the existing server. You can also transfer load to another

    server by migrating VOBs and views to another server. Refer to theAdministrator's Guide for Rational ClearCase manual for migrationinstructions. If a VOB is large and highly used, consider splitting itinto two VOBs. Refer to the relocate command for moreinformation.

    ClearCase uses up to 7 open file handles per VOB. By defaults,

  • 8/6/2019 Resumen Para Celu

    91/96

    ClearCase allows a maximum of1024 open file handles per VOB server.If your VOB count exceeds 100 per server, consider tuning the ClearCase

    Lock Manager parameter. Refer to Technical Solutions article #704 formore details.

    You may still see performance problems even though the network andserver resources are fine. Verify that no single VOB is being overloaded.

    You can migrate elements within a VOB to another VOB to distributethe load. Use the relocate command to preserve element history. The

    Administrator's Guide also contains a chapter on using the relocatecommand to split a VOB. Refer to the Splitting VOBs with relocationchapter for more details. The Magical World ofVOB Sizing articleprovides some guidelines for VOB boundary

    Section 9: Segregation and Security ConsiderationsThere are infrastructure security and ClearCase configurations that you

  • 8/6/2019 Resumen Para Celu

    92/96

    There are infrastructure security and ClearCase configurations that youshould consider before rolling ClearCase out to large developmentgroups. If there is little or no interaction between the groups, consider

    separating the groups by ClearCase registry regions. A region is anamespace for VOBs and view tags. Separating each group by regionkeeps VOB and view listings confined to that project. For eachdevelopment group, create a separate release area with the group regionname set in the default configuration. If a VOB server hosts VOBs from

    multiple projects, all the VOBs on that server must be created in theserver's default region. Use cleartool hostinfo to display a machine'sdefault region. You may need to create a VOB tag in the group region

    whenever you create a VOB. Refer to the man page for the mktagcommand for more details.

    Separating development groups by regions provide some isolation.Since many cleartool commands allows overriding the default listing

    with a -region option, isolation by region is not strictly enforceable.

    The permissions page in the Command Reference manual describes theaccess control of administrative commands In general the superuser

  • 8/6/2019 Resumen Para Celu

    93/96

    access control of administrative commands. In general the superuser,VOB owner or vobadm are administrative users. Protect these accountswith strong password. Protect the Windows domain by monitoring

    users of clearcase and Domain Admins group. Anyone with DomainAdmins group can modify your clearcase domain group to become aClearCase administrator. Do not use autohome for the vobadm account.Do not allow automatic rlogins as vobadm from untrusted hosts.

    Assuming the administrative accounts are secured, you should restrictcheckouts for each VOB. ClearCase determines whether or not a usercan checkout based on his/her group membership and the groups inthe VOB. You can find the VOB groups using the describe command.

    You can change the VOB groups using the protectvob command.You can restrict VOB access further by protecting elements within aVOB. Use the protect command to change element permissions.

    ClearCase uses Unix-style security on files and directory. If you want tocompletely remove read browse or write access to everyone outside of

  • 8/6/2019 Resumen Para Celu

    94/96

    completely remove read, browse, or write access to everyone outside ofa group, remove others permission from the VOB root element. You caneven restrict access to just yourself by removing group and others

    permission from the VOB root element.

    Section 10: Summary

  • 8/6/2019 Resumen Para Celu

    95/96

    ClearCase is a powerful and flexible software configurationmanagement solution. ClearCase scales well to large complex

    software development projects including aerospace,telecommunications, and defense projects. ClearCase can also beconfigured with ease of use for a small development groups. Theccweb interface allows simple access to documents and other

    artifacts in ClearCase.

    The Unified Change Management provides a quick and powerfulchange set management policies. There is a wide range ofcustomizable solutions packed into ClearCase. There are many

    articles available in the Rational Developer Network to help youplan, design, and customize to fit your organization. The ClearCaseadministrator has the ultimate flexibility in configuring ClearCase tofit organizational requirements.

    In Figure 1, there are two activities -- Activity1 and Activity 2 -- thathave been added to the stream The baseline is defined by the versions

  • 8/6/2019 Resumen Para Celu

    96/96

    have been added to the stream. The baseline is defined by the versionsof the elements represented by the bold circles in the diagram. The twoactivities have versions of elements that represent different patterns.

    There are two basic types of streams: an integration stream, and adevelopment stream. There is one and only one integration stream for aproject. In very simple projects, developers can make their changesdirectly on the integration stream, and every member of the project

    working on the stream will see each other's changes as soon as they are

    checked in.

    More complex projects might have one or more levels of developmentstreams originating from various baseline configurations of the

    integration stream. In this case, developers work "privately" on theirunique development stream, and project members will notimmediately see each other's work.