Software Configuration management- 05MSE406 Faculty Sakthi Ganesh.M [email protected] Open...

81
Software Configuration management-05MSE406 Faculty Sakthi Ganesh.M [email protected] http://techsavy-vit.blogspot.com Open Hours: Monday 2 P.M. -4:00 P.M. Tuesday 10:00 A.M. -12:00 P.M. Cabin No. 310 A19

Transcript of Software Configuration management- 05MSE406 Faculty Sakthi Ganesh.M [email protected] Open...

Software Configuration management-05MSE406

FacultySakthi Ganesh.M

[email protected]

http://techsavy-vit.blogspot.com

Open Hours:

Monday 2 P.M. -4:00 P.M.

Tuesday 10:00 A.M. -12:00 P.M.

Cabin No. 310 A19

About googlegroups Group name: VIT.Knowledge transfer Group home page:

http://groups.google.com/group/vit-kt Group email address: vit-

[email protected] Invite more users:

http://groups.google.com/group/vit-kt/members_invite

Prerequisites Basic familiarity with programming

and modern computer systems.

Some examples rely on knowledge of basic data structures such as stacks, lists and queues.

Set theory. No other mathematical background is required.

The textbook

1. Alexis Leon, “ Software Configuration Management Handbook”, 2nd Edition, John Wiley, 1992.

Available @ main building Xerox shop(ganga Xerox ref no:12)

REFERENCE BOOK:

Software Configuration Management Strategies and IBM® Rational® ClearCase®: A Practical Introduction, 2nd Edition.

Managing Software Process, Watts S. Humphrey, Pearson Education , 2000.

Managing Global Software Projects, Gopalswamy Ramesh, 2004, TMH.

Mode of Evaluation: By Assignment, Seminars and Written Examinations.

Course Evaluation

1. Internal Exams : 50 Marks• CAT1 + CAT2 = 15%+15%• Quiz1 + Quiz2 + Quiz3 = 5%+5%+5%• Assignment/Mini Projects/Surprise

Test/Viva= 5%

2. TEE :100/2=50Marks

(Expected) Dates for CAT / Quizzes

Quiz-1 – 23rd – 27th January 2012 CAT-1 – 18th – 26th February 2012

Quiz-2 – 12th – 16th March 2012 CAT-2 – 24th March – 1st April 2012

Quiz-3 – 16th - 20th April 2012 Surprise Test / Assignment

Road map

Expertise talk Portal R&D team Product development Student view about this course

Roles played by student

Different roles played by students: Photographer Technical writer Course modulator Video grapher navigator

outcomes Monograph preparation Workshop on scm Current activates related to scm Proposal preparation Fund generator Contribution to society Trip related to our curriculum Port folio preparation initiatives

Awards

Best article Best proposal Best team

Validity function

Price distribution Student feedback video Book review Vote of thanks

Aim

To learn the basic concepts of Software Configuration Management.

Objective:To understand and apply Software

Configuration Management concepts for software development.

SCM Myths SCM is a difficult, monotonous and time-consuming activity SCM is the responsibility of management. SCM is just for developers. SCM is just for the maintenance and technical support team. SCM is only needed to get certifications. SCM tools will take care of everyone. SCM is expensive. SCM is just for the source code. SCM is changing management and defect tracking. S/w development can succeed without SCM.

About SCM What Is Software Configuration Management?

Software configuration management (SCM) is the organization of the components of a software system so that they fit together in a working order, never out of synch with each other. Those who have studied the best way to manage the configuration of software parts have more elegant responses.

Roger Pressman says that SCM is a "set of activities designed to control change by identifying the work products that are likely to change, establishing relationships among them, defining mechanisms for managing different versions of these work products, controlling the changes imposed, and auditing and reporting on the changes made.

Pressman view We think that Pressman's description is a

better description because we often view SCM as meaning software change management.

Wayne Babich describes SCM as "the art of identifying, organizing, and controlling modifications to the software being built by a programming team. It maximizes productivity by minimizing mistakes.

What Scm says: The Software Engineering Institute says

that it is necessary to establish and maintain the integrity of the products of the software project throughout the software life cycle.

Activities necessary to accomplish this include identifying configuration items/units, systematically controlling changes, and maintaining the integrity and the traceability of the configuration throughout the software life cycle.

Cont… we must remember that all project artifacts are candidates

—documents, graphical models, prototypes, code, and any internal or external deliverable that can undergo change.

In SW PM terminology, a configuration item might be a proposal/estimate or bid, project plan, risk management plan, quality assurance plan, CM plan itself, test plan, system requirements specification, system design document, review metric, code, test result, tool (editors, compilers, CASE), and so on.

There are basic objects and aggregate objects to be configured. The number of relationships among them reflects the complexity of the configuration task.

Why SCM Software project managers pay attention to the planning and

execution of configuration management, an integral task, because it facilitates the ability to communicate status of documents and code as well as changes that have been made to them.

High-quality released software has been tested and used, making it a reusable asset and saving development costs.

Reused components aren't free, though—they require integration into new products, a difficult task without knowing exactly what they are and where they are.

CM enhances the ability to provide maintenance support necessary once the software is deployed. If software didn't change, maintenance wouldn't exist. Of course, changes do occur.

The National Institute of Standards and Technology (NIST) says that software will be changed to adapt, perfect, or correct it. Pressman points out that new business, new customer needs, reorganizations, and budgetary or scheduling constraints may lead to software revision.

Who is involved in SCM Virtually everyone on a software project is affected by

SCM. From the framers of the project plan to the final tester, we rely on it to tell us how to find the object with the latest changes.

During development, when iterations are informal and frequent, little needs to be known about a change except what it is, who did it, and where it is.

In deployment and baselining, changes must be prioritized, and the impact of a change upon all customers must be considered. A change control board (CCB) is the governing body for modifications after implementation.

Importance of SCM Poor configuration mgmt often causes the most frustrating

software problem. Missing source code. Changed component libraries. Inability to track why, when and who made the change. Difficult in finding out why programs that were working suddenly

stopped working.

Important role is Analysis Design Development Testing and maintance by ensuring through configuration mgmt

audits

Cont… The key role of SCM is to control change activity so that

problem can be avoided.

Status accounting information is used by project leaders and managers to keep the project under control.

SCM is not easy: one has to do lot of work to keep an SCM system good shape, but the effort is worth it. Only when problems begin to crop up do users realize the importance of SCM.

Benefits of SCM: SCM system has several benefits,

S/W development productivity Easier handling of software complexity Improved security Higher software reuse Lower s/w maintains costs. Better quality assurance. Reduction of defects and bugs Faster problem identification and bug fixes. Process-dependent development rather than person-

dependent development and assurance.

The Four Basic Requirements for an SCM

Identification control audit status accounting

Cont.. Identification -Each software part is labeled so that it

can be identified. Furthermore, there will be different versions of the software parts as they evolve over time

Control—In the context of configuration management, "control" means that proposed changes to a CI are reviewed and, if approved, incorporated into the software configuration.

Auditing—Auditing an SCM system means that approved requested changes have indeed been implemented.

Status accounting—Reports and documentation produced by the status accounting function are the auditable entries.

The symptoms of our software development malaise Software development has traditionally suffered from

producing end products with a definite lack of inherent quality. The symptoms of this quality lack are listed here:

Software development projects are often delivered late and over budget.

Often the delivered product does not meet customer requirements and is never used.

Software products simply do not work right.

As we look into the symptoms of our software development malaise, five principal issues related to software development arise.

Lack of Visibility Lack of control Lack of traceability Lack of monitoring Uncontrolled change

SCM Auditing Benefits to V&V

Comparison of new baseline to previous baseline Assurance that standards have been met Audit trail of the testing process (verification, validation, and

acceptance) of the software system Documentation of experience with technical aspects of system

engineering or software engineering

SCM Status Accounting Benefits to V&V

Logging and tracking of incident reports Publication of CCB minutes

SCM Identification Benefits to V&V

Automatic preparation of release notes List of changed software modules Definition of development baseline Generation of incident reports Definition of operational baseline Control of the configuration item identification Management of CCB meetings Prioritization of test and incident issues Establishment of turnover dates Approval of audit and test reports Approval of incident report resolutions

The minimum features for SCM tools SCM Tools

The minimum features for SCM tools are closely related to the task of handling the different product deliverables produced within the project software engineering process.

Tool requirements and selection criteria are based on a series of features that provide a consistent look and feel with state-of-the-art software development environments.

An SCM tool must have multiuser support, an intuitive graphical user interface, conformity to the organization's development environment, scalability, flexibility in integrating other software development tools, ease of setup, modifiable models, process management, extensive support for the development phase, and management of nondevelopment objects

Basic selection criteria includes the following: Multiuser support Interactive GUI Conforming to the org development environment Scalability Flexibility in intergrity Other s/w development tool Easy of setup Modifiable models Process management Extensive support for the development phase Permission mgmt.

SCM toolsName of Tool Description and Company Internet Address

AllChange 2000

ClearCase

SEIntaSoft

Rational (formerly

PureAtria)

http://www.intasoft.net/

http://www.rational.com/products/clearcase

CCC/Harvest, CCC/Manager, CCC QuikTrak

Computer Associates (formerly Platinum

ca.com/products/ccm/

SDLC phases Project startup Requirement analysis and requirement specification System analysis System design Development/coding and unit testing System/integration testing Acceptance testing Implementation Project windup Maintenance retirement

Project startup Study the project proposal and contract document,estimation

work paper,and other document available. Obtain clarification on matters such as scope,contractual

obligation and client participation in the project. Define the operational process for the project. Decide the format and standards Doc the project plan Plan,design and implementation the SCM Ensure that the required hardware and software are in place. Test the environment. Obtain the workspace, mechine and infrastructure req for the

team mamber.

System analysis Study the approved RDD Generate alternative Evaluate alternative Select an alternative Determine system req with respect to reliability Discuss the proposed system with client

High level design Study the SAD and ensure the requirement are understood so

that HLD doc can be properly written. Understood the features and capabilties of H/W and s/w

environment in which the proposed system is to be implemented.

Study standards & guideline Establish design objectives,constraints, and guideline with

respect to useability. System component list. User interface design Pgm and the interface definition b/w pgm Screen and report definition Screen navigation detail Help screen and msg

Low level design In this phase

Copy of lib Common routines Pgm skeletons to be finalised

Major task Write specification for the pgm in the system

Coding & unit testing Study the LLD doc,test case and data Include additional test case if needed Code the pgm per the pgm specification Finalize all error and help msg Conduct unit testing Record the test result Dignose and fix the error Update the defect logs Consolidate test results and finding and record them

apprpriately

System testing Carry out system tests according for alpa test,beta testing Record the test result Log the test errors Diagnose and fix the errors Update the defect logs initiative corrective action as applicable Perform regression testing Consolidate and report test result and finding

Acceptance testing Provide support to the client in conducting the acceptance test. Ensure that doc-related tests are completed. Record acceptance test results Log acceptance test errors. Diagnose and fix errors Update the defect logs. Revisit earlier phases of the SDLC as required I order to fix the

error Perform regression testing Prepare a report summarizing the test result

implementation The software product is turned over to the customer or client or

installed at client site. The mem of the development team will be supervise the

installation incase of large project. In case of shrink-wrapped project the customer will install Incase of large project the installation team with the end user

install the system and trains once the system is up and running and the users are familiar with the product

The imp is finished. The maintance team will take care of it.

Project maintance & retairement.

windup Carry out project end appraisal Release project team members and h/w and s/w resources Return client supplied products, if any Ensure the avilabilty of project doc copies in library

SCM tool

http://www.accurev.com/evalkit/intro.html

Install AccuRev & Metadata

Run AccuRev_Evaluation_Kit.exe from your download environment (ex c:\temp). This will create a directory called Accurev_Stage.

In the AccuRev_Stage folder, Run the AccuRev installer (AccuRevInstall.exe).

On the Choose Install Type screen select the Typical install option. On the Select License Key File screen choose the keys.txt file that was

saved during the registration. On the License Agreement screen select the "I accept the terms of the

License Agreement" option. To install the metadata, double-click

Set_AccuRev_Evaluation_Env.exe in the AccuRev_Stage folder

Start AccuRev Welcome to your new development environment. Today you and your team will

release version 1.0 of the eval project. All engineers are in full swing, wrapping up their changes and tests to the project in order to hit the release deadline.

An AccuRev Depot has been placed in your AccuRev environment that will be a representation of your project.

Now that the pieces are in place, let's start development. Start the AccuRev client by running the AccuRev shortcut created on your desktop. Login as evalUser1 without a password (Note: Login is case sensitive) You are now in the AccuRev GUI. Let's open up the StreamBrowser for the

evalDepot. The AccuRev StreamBrowser™ provides a unique visual representation as well as graphical control of all work in progress for your entire global development organization. This eliminates the hand-scripted and error-prone process of maintaining your hierarchy outside of the SCM system.

Open StreamBrowser from Menu bar - View > Streams. The evalDepot will open automatically because there is only one depot set up in the evaluation kit. When you have more than one depot you will have to select a depot from a dialog box that pops up.

3. Project Overview & Topics The StreamBrowser is configured for project development across multiple release paths. Existing Evaluation Setup AccuRev Depot with full code-base evalDepot 2 Users evalUser1

evalUser2 1 Group Manager Current & Future Development Streams

Component Code StreamsCommon Code StreamWeb Server Feature StreamWorkspaces for both users (w/full code updates)Snapshots

AccuWork Fully functional Issue Tracking System5 AccuWork Issues

Issue 1. fix unix & win file specs -> /src/file/specIssue 2. fix traverse issues -> /src/html/elementIssue 3. fix getopt long engine for comp 01 -> /comp01/src/getoptIssue 4. fix common helloworld program -> /commonIssue 5. fix time bugs -> /src/time

Change Packages Fully functional ITS (Issue Tracking System) integration

Potential SCM Problem Classes Multiple developer syndrome Multiple releases Product family Requirements change Schedule change Software changes Staff changes System/user documentation change SCM Staffing

Multiple developer syndrome—When you have a project that requires more than one developer, there is the problem with multiple people working on one product base.

This could be a test plan, requirements specification, or code.

Effort is wasted when two or more people work on the same file and then save it. Without SCM control, the last person to save the file has those changes saved.

All the other changes are lost. The simplistic method of locking a file while one person reads it prevents others from simultaneously working on the file.

Multiple releases—Enhancements to the base product should result in additional releases of the product containing the latest changes.

Once the second release is available, some users are on an earlier release.

Having an SCM makes managing those releases possible.

When bugs are reported, changes must be made across all impacted releases. As new features become available in the product, they must be made available to all current users, no matter what the release date.

Product family—As products are built that offer the same capabilities across a heterogeneous set of hardware platforms, both the common and the platform-specific software bases must be managed.

If a product operates on four versions of Windows, three versions of Unix, Red Hat Linux, and FreeBSD the user manual may be significantly the same.

But there is a different installation process for all nine platforms.

Without SCM, nine individual manuals must be written and maintained.

With SCM, one documentation configuration item with nine versions will suffice, with the differences being only the installation procedure.

Requirements change—The first law of systems engineering is that no matter where we are in the system life cycle, the system/software will change, and the desire to change it will persist throughout the life cycle.

Dealing with this change represents a major management challenge.

Having an SCM in place will ease the management of these changes to the requirements of the products that will occur.

An SCM allows the easy identification of feature sets that group the requirements satisfied by a release or version of the product. These feature sets are tracked through development to delivery.

Schedule change—As requirements change, so must the schedule. Mapping the feature sets for release to the schedule allows project managers to more accurately estimate the effort required for generating that next release.

Having the SCM in place allows the project manager to look at historic effort levels in getting out releases. This is an enormous aid in estimating the "what if" scenarios that result from taking on new product users or providing customized solutions to other clients.

Software changes—No product developer has the luxury to write code once and forget about it. Along with requirements and schedules, the software being developed changes in response to those other changes.

Software is not static. That is its inherent power. It can be changed, so it will be changed. SCM systems track those changes so that, if the wrong change is made, a previous working version is available.

This capability alone has saved enormous amounts of time as developers have tried out specific solutions that did not work in the product environment and were able to rapidly back up to a working version.

Staff changes—In the best of organizations, people get promoted, take other jobs, and leave. When that happens in the midst of a development project, not just the technology knowledge goes out the door. The long-learned knowledge of how things are done is also gone.

So when a replacement person is brought on board, they may know the technology, but without a documented SCM process, they will have no real idea how to do product development.

SCM provides the framework and knowledge base of what has gone on before in the project. A new staff member has one place to go to understand the "how" of the organization's development process and the "what" of the project to date.

System/user documentation change—No product developer has the luxury to produce in a technology or tool vacuum.

All product developers use hardware microcode, operating systems, tools, and documentation that are not under their control.

When a major operating system change occurs (e.g., the next "best" release of Windows), an SCM will allow tracing all the CIs, components, and subcomponents that are impacted by that change. The change is isolated, and the amount of effort required to respond to the change can be estimated. This provides a responsible schedule for an upgrade based on situations beyond the organization's control.

SCM Staffing On any given project, a few engineers or developers specialize in and become your SCM experts. While they are the gurus, everyone on your project will be a user of the product that they select, develop, and maintain.

It is better to have a few highly experienced people than a large number of inexperienced people. These experienced few must be able to see congruence between software products and perceive what is missing from a software product.We can group the characteristics and abilities needed by the four SCM functions:

identification control Auditing status accounting.

Identification Ability to see partitions Ability to see relationships Some technical ability System engineering orientation Programming

Control Ability to evaluate benefits versus cost System viewpoint (balance of technical/managerial,

user/buyer/seller) An appreciation of what is involved in engineering a software

change

Auditing Extreme attention to detail Ability to see congruence Ability to perceive what is missing Extensive experience with technical aspects of system

engineering or software engineering

Status Accounting Ability to take notes and record data Ability to organize data Some technical familiarity System engineering orientation Programming

5 Keys to Automating Configuration

Management for Application Infrastructure Discovery and mapping—What application element and

software assets do I have in my environment? How are they configured, item by item?

Change monitoring—Inform management not only about the applications that have changed, but tell them how they have changed.

Release Management—Sometimes called ‘provisioning,’ this relates to the ability to model configuration changes to the application infrastructure and then deploy those changes consistently across all phases of the application life-cycle.

Auditing and Reporting—Show the business that IT supports corporate governance initiatives, not only at the server and network level, but also at the critically important application layer.

Integration with the IT environment—

Insure that the tools for configuration management of the application infrastructure work seamlessly with your problem management system or your configuration management database.

Benefits & Summary.  The major benefits of a configuration management solution for

application infrastructure relate to reducing complexity and promoting compliance for IT.

  By transforming today’s manual, error-prone tasks into a sequence of automated processes, your IT team will see benefits in:

  Improving the productivity of your IT Infrastructure Team, by upwards of 50% and enabling them to spend more time on new initiatives rather than fire-fighting

   Accelerating time-to-value for applications by 25%

· Improving the quality and uptime of your applications by reducing the key elements that cause most of today’s outages

·

  Providing comprehensive best practices and compliance reports to management and stakeholders.

With today’s IT struggling to meet increasing demands without headcount increases, a configuration management solution for application infrastructure offers important sources of value.

More important, IT can begin to understand the dependencies between, say, how the data base is configured and its impact on the application server.  Thus, application configuration problems can be averted before they arise.

To accomplish CI steps Purpose and benefits of CI Impact of CI selection Effects of selecting too many CIs

Web link:

Source: http://www.cmcrossroads.com

Web Link:

http://www.scmgalaxy.com/cm-concept/what-is-software-configuration-management.html

Configuration Identification

CI Process involves selection,designation and description.

IEEE defines CI as“is the process whereby a system is separated into uniquely identifiable components for the purpose of SCM.Software under control is usually divided into CIs also known as CSCIs.

Checklist for selection Designation CI description

SCM Advance concept

Introduction Version control System building Release management Interface control Subcontractor control Software lib

intro

We will be discussing about some important functions such as

Interface control Subcontractor control s/w lib

Version control

A version is a intitial release or re-release of a cI

It’s a instant of system that differs in some way from other instances

A version is usually accompanied by version description document(VDD)

A VDD is not normally required for each building or internal release of CI

Version control

Benefits Prevent unauthorized access and modification

to files. Traces the evolution of a file from inception to

the current state. Roll back to a previous version of a given filess

in case of a problem or debugging Compare two version of a file, highlighting

differences to see what changes are made Provide mechanism for locking, forcing

serialized change to any given file

cont

create branch that allows for parallel concurrent development and the ability to combine the changes made different people to a single file at later stage of merging

maintain an instant audit trail on every file: version, modified date, modifiers and any additional amount of meta data your system provides for and that you choose to implement

System building

The building activity combines the correct versions of s/w items, using the appropriate config data, into an executable program for delivery to a customer or other recipient such as developer, tester and QAs

Repeatability & reproducibility

Release mgmt

The term release is used in this context to refer to the distribution of s/w configuration item outside the development activity