Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc.

Size: px
Start display at page:

Download "Chapter 1 GETTING STARTED. SYS-ED/ Computer Education Techniques, Inc."

Transcription

1 Chapter 1 GETTING STARTED SYS-ED/ Computer Education Techniques, Inc.

2 Objectives You will learn: Features of a well designed SCM. Safety. Stability. Control. Auditability. Reproducibility. Traceability. Scalability. VCS: Version Control Strategy concepts. UCM: Unified Change Management concepts. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page i

3 1 Features of a Good SCM Given the complexity of development, there are a variety of ways to enhance development efforts and software asset management through SCM. The attributes that a good SCM system should possess are: Safety Stability Control Auditability Reproducibility Traceability Scalability 1.1 Safety The primary purpose of a SCM system is to keep software assets - design models, source code, test cases, documentation - safe from corruption, unintentional damage, unauthorized access, and unexpected disasters. The foundation for ensuring this: Secure access Reliable recovery Those who can view or change software assets must be only those persons explicitly authorized to do so. The ability to recover work lost in the event of an authorized user's mistake, such as the accidental deletion or overwriting of source code files. 1.2 Stability A stable development environment, both for the team and for individual developers, is indispensable. The two essential elements of stability are: Stable work areas Individual control over when and what new code is introduced into a work area SCM systems can destabilize individual work areas when others check in new code. Developers should be able to leave work and return at any future point knowing that the data on their desktops has not been altered without their consent. A developer who has been working on their own for several weeks should first have enough control over their environment to decide when they are ready to introduce new code into their environment as well as the team's environment. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 1

4 1.3 Control A major role of a SCM system is to help manage change throughout the development lifecycle. Integrating contributions from diverse development teams requires a system which can control: Who works on a change request. How changes flow from development to integration. Who can work on a particular development stream. The SCM solution also has to be sufficiently flexible to allow a whole team to work on a common branch of code, or allow individual members of the team to work on private branches. In the case of private branches are desired, the system will require the ability to control the flow of changes between those private branches and the projects integration area. 1.4 Auditability Developing software is an iterative, complex process that requires a comprehensive approach to information gathering and accounting in order to accurately understand what has transpired. Auditability refers to the ability to answer the who, what, when, and where questions about a specific version or configuration of the software release at any time. It also must be able to highlight the differences between releases. Build engineers, managers, and developers must have ready answers to common queries: Did component foo.y get modified according to the latest requirement? Who made a change to line of version 3.2.4? Were all the top priority bugs fixed for the patch release, and who checked them in? SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 2

5 1.5 Reproducibility Among the many changes made over the course of a project, not all are for the better. Sometimes, previous versions are superior to the latest. It will be a requirement to be able to efficiently reproduce a previous configuration to get a project back on track. Reproducibility in the context of software development requires: The ability to reproduce the configuration of the entire development environment, including tools, tests and documentation at any point in the project lifecycle. The ability to automatically recreate not only the files used in a build, but also the directory structure and the entire name space. 1.6 Traceability SCM systems will require effective traceability, which involves the ability to: Identify the version of a released product deployed at a customer site, in a way that makes it possible for the SCM system to easily re-create the development environment - code, documentation, use cases - required to rebuild, test, and/or run that version. Trace backward from a specific software version to the change request and/or requirements that were implemented to realize that version. 1.7 Scalability As the foundation for a development platform, the SCM system must support projects of any scope. It must scale to support large teams from start to finish. A scalable SCM system should be: Configurable and functional when few controls are necessary. Versatile to manage growth. Able to support geographically distributed teams, telecommuters, and/or outsourced team members. Scalability also implies that reasonable performance standards should be achieved. Increasing demands on an SCM system should not compromise reliability or impede basic operations. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 3

6 2 Integrated Strategies 2.1 Version Control Strategy Version control and 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. Versioning can be implemented in various ways, depending on the specific tool chosen. Some tools use a full-copy versioning model, which means that they store a complete copy of the new version of the artifact being versioned. Other tools use some form of delta versioning, which means that they only store the difference between succeeding versions of the artifact. 2.2 Configuration Control Strategy Configuration control implies a higher level of abstraction than version control. The SCM tool must have knowledge of which versions from a set of artifacts comprise a specific build. A release is a specific configuration of a product. It is a logical organization, or mapping, of all managed artifacts that are related to an application or a product. A release does not affect the physical location of a managed artifact. It provides a logical view of the managed artifacts that must be built, tested, and distributed together. 2.3 Process Management Strategy Process management deals with the grouping and manipulation of versions of software assets as they progress through the software life cycle. This will typically involve change management, approval levels, and production control. A process enforces a specific level of control on the various product configurations and releases. Early in a product's lifecycle loose controls may be utilized applied in order that versions of artifacts may be created without any approval or test process being applied. Later in the development process, it more stringent process will be applied in order to ensure the quality of the product. When the product enters the maintenance phase, the most stringent process control available will be applied in order to assure that unwanted bugs or uncontrolled changes to the product. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 4

7 2.4 Problem Tracking Strategy Problem tracking entails recording enhancement/change requests or defect reports and correlating these with the resolution of the request. Reports can include a listing of the sources involved in the change. These change sets can then create released products containing only the features and fixes desired. Problem tracking and change control provides the capability for managing and controlling the development process. SCM tools with integrated problem tracking allow reported problems, design changes to be tracked and retain information about the lifecycle of each. A defect track record is used to record each reported problem. A change request track record is used to record each proposed design change. The information recorded about defects and change requests enables reports to be generated on the who, what, when, why, and where of modifications. It also provides details where a particular defect or change request is in the development cycle, and where the release is in the development cycle. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 5

8 3 IBM Rational Team Unifying Platform The IBM Rational Team Unifying Platform is a scalable SCM solution that allows organizations to start small with a SCM solution which provides the foundation to efficiently grow while migrating to an enterprise SCM solution. IBM Rational ClearCase LT IBM Rational ClearQuest Version Control Detect and Change Tracking IBM Rational ClearCase Change Management Solution Software Asset Management Version control Advanced Build Management Dynamic Views Detect and Change Tracking IBM Rational ClearCase Change Management Solution Enterprise Edition Software Asset Management Version control Advanced Build Management Dynamic Views Detect and Change Tracking Multiple Site Support Single Server Distributed Servers Replicated Servers Individual Workgroups Medium Large Teams Global Teams IBM Rational Team Unifying Platform IBM Rational Software delivers a scalable SCM solution that begins with ClearCase LT. It provides for a transition to enterprise-scale ClearCase and ClearCase MultiSite It integrates with IBM Rational Software's full suite of development productivity tools: IBM Rational ClearQuest UCM: Unified Change Management Change and defect tracking tool. IBM Rational's activity1-based process for change management. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 6

9 3.1 ClearCase LT ClearCase LT is the entry-level version of ClearCase. It supports basic SCM functions and processes and can be deployed right out of the box. Running on a single server, ClearCase LT versions the elements in the software development lifecycle. It tracks changes and maintains histories and enforces the organization's development process through scripted rules. ClearCase LT provides developers with the capability to roll back to previous builds, baselines, or configurations. ClearCase LT supports parallel development through automatic branching, which enables multiple developers to design, code, and test software from a common code base. A diff/merge technology is used for automatically merging parallel branches. 3.2 ClearCase ClearCase is an enterprise SCM which simplifies the process of change in large development environments by controlling requirements, models, source code, documentation, and test scripts. ClearCase handles version control, parallel development, workspace management, process configurability, and build management. It also provides advanced build auditing and a Web interface for universal data access. Scripted rules are used for managing and enforcing the organization's development process. 3.3 ClearCase MultiSite ClearCase MultiSite enables parallel development across geographically distributed teams. It provides automated, error-free replication of project databases and transparent access to software elements and artifacts. ClearCase MultiSite facilitates distributed development across both networked and non-networked sites with update mechanisms to support both network and tape transfers. It is reliable and automatically resends information during network failures and recovers repositories in the event of system failure. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 7

10 4 Unified Change Management UCM - Unified Change Management is IBM Rational's best practices" process for managing change from requirements to release. UCM defines a consistent, activity-based change management process that structures the efforts of the software development team into a defined, repeatable process. UCM is enabled by all versions of ClearCase and ClearQuest, and simplifies development by raising the level of abstraction to manage changes in terms of activities, rather than manually tracking individual files. An activity is automatically associated with its change set, which encapsulates the project artifact versions used to implement the activity. UCM enables structured parallel development with consistent policies and practices and can be implemented in ClearCase with or without ClearQuest. With UCM, workgroups can automate and accelerate the steps required to: Create and maintain developer work areas. Associate activities or components with specific software change sets. Integrate project changes. Create and manage component baselines. Use metrics to stay abreast of project status. SYS-ED/COMPUTER EDUCATION TECHNIQUES, INC. (Rational ClearCase - 6.7) Ch 1: Page 8