Software Configuration Management
What are Software Configuration Management Best Practices?
The best practices of Software Configuration Management are as follows
• Identify and store artifacts in a secure repository
• Control and audit changes to artifacts
• Organize artifacts into versioned components
• Components reduce complexity
• It is easier to identify the quality level of a particular component baseline than that of numerous individual files
• Instantiating a physical component object in a tool helps institutionalize component sharing and reuse
• Mapping logical design components to physical SCM components helps preserve the integrity of software architectures
• Create baselines at project milestones
• Record and track requests for change
• Organize and integrate consistent sets of versions using activities
• Maintain stable and consistent workspaces
• Support concurrent changes to artifacts and components
• Integrate early and often
• Ensure reproducibility of software builds
What are the problems of not using Software Configuration Management (SCM)?
Multiple people have to work on software that is changing More than one version of the software has to be supported ie: Released systems, Custom configured systems, System(s) under development
What is a Software Configuration Management tool?
Software tools that automate and facilitate the application of the Software Configuration Management best practices.
What are Software Configuration Management processes?
The way SCM is performed on your project, specifically how an SCM tool is applied to accomplish a set of tasks
How can Software Configuration Management followed without tools?
Using File Copies to Support Early SCM – Storing backup versions of the software system – Storing intermediate working versions, of certain files or of all the files that make up the system, during the development process
How can we use Shared Copy Approach for Software Configuration Management?
An additional copy of the entire system directory structure can be created to store the latest versions of the software.
What are the Problems of not using Software Configuration Management tools?
The copy-over problem, which causes versions of files to be lost Recovery from inappropriate changes made to the common code is difficult or impossible The number of uncontrolled copies of files makes it difficult to determine where the latest version really exists
What is a Version?
A specific instance of a baseline or configuration item is known as Version.
What is Configuration?
Configuration is a collection of all the elements of a baseline and a description of how they fit together.
What is Baseline?
One or more software configuration items that have been formally reviewed and agreed upon and serve as a basis for further development
What baselines are required to be defined and managed?
Typically aligned with major milestones. Applies to documents as well as code.
How is the current software configuration defined?
A snapshot of everything the product has produced at some point in time.
Who must approve changes to baselines?
Usually the Change Control Board (CCB) must approve changes to baselines.
What is the responsibility of Configuration Control Board?
Group with the responsibility for reviewing and approving changes to baselines
How are baselines verified?
By reviews, inspections, and the testing of code
How and when are baselines created and physically controlled?
Through the use of document control systems, code control tools, and procedures to prevent the making of unapproved changes
Are baselines tied to project milestones?
Many are, but during coding many may not be tied to project milestones
What is Software Configuration Item?
A collection of software elements treated as a unit for the purposes of Software Configuration Management
What are the components of clear case?
Version Control Workspace Management Build Management Process Control
What is Version Control?
Version Control allows different projects to use the same source files at the same time It isolates work that is not ready to be shared by the rest of the project. It isolates work that should never be shared. It allows software engineers to continue development along a branch even when a line of development is frozen.
What is the use of Version Control?
Allows different projects to use the same source files at the same time Isolates work that is not ready to be shared by the rest of the project Isolates work that should never be shared Allows software engineers to continue development along a branch even when a line of development is frozen
What is the use of workspace?
Software engineers need a consistent and reproducible workspace area (a sandbox) in which they can develop and debug their code. They need to be able to share project files while shielding the project from the instability of their evolving code
What is Change Control?
Proposed changes to baselines must have some level of review. The impact of proposed changes must be identified and understood. When appropriate the approval of the CCB, key managers and project members must be obtained Approved changes must be properly implemented After changes are made all affected parties must be notified
What is UCM (Unified Change Management)?
It unifies the activities used to plan and track project progress with the artifacts being changed.
What is a view?
A way of seeing the objects in one or more VOBs (Versioned Object Base) Version selection is based on user-defined rules
What are the types of Views?
There are two types of views. They are Dynamic View: VOB objects are displayed from the VOB cache Snapshot View: VOB objects are copied to the client.
What is a view?
Selects versions of VOB directories and Files. It enables developers to work in parallel.
What are the different types of checkouts used in modern Software Configuration Management tools?
Modern Software Configuration Management tools support both reserved and unreserved checkouts.
What is the tool which supports Component-based Development?
ClearCase UCM is the tool which support component -based development.
What is Activity-based Configuration Management?
Configuration Management based on task, defect and enhancement is known as Activity-based Configuration Management.
What is the basic concept of ClearCase UCM?
The ClearCase UCM is working on the following two basic concepts activity-based SCM and component management
What are the SCM activities?
The SCM activities are: management and planning of the SCM process, software configuration identification, software configuration control, software configuration status accounting, software configuration auditing, and software release management and delivery.
What is a Software Build?
A build is an operational version of a system or part of a system that demonstrates a subset of the capabilities to be provided in the final product. A build comprises one or more implementation elements (often executable), each constructed from other elements, usually by a process of compilation and linking of source code.
What is build report?
Build Reports list all the files, their location, and incorporated changes that make up a build for a specific version of the software
What are the configuration audit findings?
The Configuration Audit Findings identify a baseline, any missing required artifacts, and incompletely tested or failed requirements.