1 / 35

Software Engineering (CSI 321)

Software Engineering (CSI 321). Software Configuration Management. SCM: Concepts and Definitions. SCM is the discipline for systematically controlling the changes that take place in the evolution of software systems. SCM is an umbrella activity that is applied throughout the software process.

ceciliai
Download Presentation

Software Engineering (CSI 321)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering (CSI 321) Software Configuration Management

  2. SCM: Concepts and Definitions • SCM is the discipline for systematically controlling the changes that take place in the evolution of software systems. • SCM is an umbrella activity that is applied throughout the software process. • SCM activities are developed to – • Identify change • Control change • Ensure that change is being properly implemented, and • Report change to others who may have an interest

  3. SCM: Concepts and Definitions • SCM is a set of activities that have been developed to manage change throughout the life cycle of computer software. • SCM can be viewed as a software quality assurance (SQA) activity that is applied throughout the software process.

  4. SCM: Concepts and Definitions • IEEE Definition • “ Configuration management is the process of identifying & defining the items in the system, controlling the changes to these items throughout their life cycle, recording and reporting the status of items and change requests, and verifying the completeness and correctness of items”

  5. SCM: Concepts and Definitions “SCM is the discipline of identifying the configuration of a system at discrete points in time for purposes of systematically controlling changes to this configuration and maintaining the integrity and traceability of this configuration throughout the system life cycle.” - ”Bersoff, Henderson and Siegel”

  6. SCM: Why is it important? • If you don’t control change, it controls you. And that’s never good… • It is very easy for a stream of uncontrolled changes to turn a well-run project into chaos. • That’s why, SCM is an essential part of good project management and solid software engineering practice.

  7. SCM: Why is it important? • Poor configuration management or lack of it often causes the most frustrating software problems. Examples- missing source code, an inability to determine what happened to a particular program or data, an inability to track why, when, who made a change, and difficulty in finding out why programs that were working suddenly stopped working. These type of problems are frustrating and difficult to fix. • A difficult bug that was fixed suddenly reappears • A program that was working mysteriously stopped working • A developed & tested feature is missing

  8. SCM: Why is it important? • SCM helps reduce these problems by coordinating the work & effort of many different people working on a common project. • SCM plays an important role in the software development process –analysis, design, development, testing, and maintenance –by ensuring that what was designed is what was built. • SCM system should be carefully designed, properly implemented, and practiced systematically and willingly.

  9. What is a “software configuration”? programs documents The pieces data

  10. What is a “software configuration”? • Software Configuration: May be defined as the functional and physical characteristics of the software as set forth in technical documentation or achieved in a product. • A software development project produces the following items: • Programs • Documentation • Data These items are collectively called a softwareconfiguration.

  11. Bersoff’s First Law of System Engineering • “No matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle.”

  12. A SCM Scenario: roles & responsibilities • A typical CM operational scenario involves- • Project Manager • In charge of a software group, ensures that the product is developed within a certain time frame & budget, sees SCM as an auditing mechanism • Configuration Manager • In charge of the CM procedures & policies, sees SCM as a controlling, tracking & policy making mechanism • Software Engineer • Responsible for developing & maintaining the software product, sees SCM as a changing, building & access control mechanism • Customer • Uses the product, sees SCM as a quality assurance mechanism

  13. SCM: The Process • What are the major functional elements of Software Configuration Management?, or • What are the major activities of SCM? • Basically there are four major activities of SCM – • Configuration Identification • Configuration Change Control • Configuration Status Accounting • Configuration Auditing

  14. [1] Configuration Identification • Configuration identification is the process of selecting the configuration items (CIs) for a system and recording their functional and physical characteristics in technical documentation. • Configuration identification is the process whereby a system is separated into uniquely identifiable components for the purpose of SCM. • Goals – • Ability to identify the components of a system throughout its life cycle • Provide traceability between the software and related products

  15. [1] Configuration Identification • How many Configuration Items (CIs) should be selected for system? Select too many CIs ? Select too few CIs ? • Selection of CIs needs to be correct: You should not select more nor less than what is necessary. • But, there is no magic formula ! • No fixed rules governs CI selection or dictate the optimum number of CIs for a particular system. • Selection of CIs is a management decision based on experience and good judgment.

  16. [2] Configuration (Change) Control • Configuration control is the element of configuration management consisting of the evaluation, coordination, approval or disapproval, and implementation of changes to configuration items. • Of the SCM functions, configuration control is performed most often and is perhaps the most visible element of configuration management. • Configuration control involves a lot of people and a lot of procedures, making it difficult to manage. • Configuration control activities will increase as the project evolves. • An orderly change process is necessary to ensure that only approved changes are implemented into any software.

  17. [2] Configuration (Change) Control Configuration Change Control Steps: The following steps mentioned here are generic & will vary from one company to another and even from one project to another – • Change Initiation • Change classification • Change evaluation/analysis • Change disposition • Change implementation • Change verification • Baseline change control

  18. [3] Configuration Status Accounting • Status Accounting is an element of configuration management that consists of the recording & reporting of information needed to effectively manage a software system and its characteristics. This information includes – • A listing of approved configuration identifications • Status of proposed changes to the configuration • Implementation status of approved changes • Status of pending or open change requests and problem reports

  19. [3] Configuration Status Accounting • Status Accounting is the record-keeping element of SCM. • Status Accounting provides access to accurate, timely information about a product & its documentation throughout product life cycle. • Status Accounting plays a vital role in the efficient management and control of projects by providing the necessary information to project management & project team. • Status Accounting records are the means for SCM to report the state of the software product’s development to: • The project management • The company management • The customer

  20. [4] Configuration Auditing • Configuration Auditing verifies that the software product is built according to the requirements, standards, or contractual agreement. • Once the software has been designed, developed, and tested, it is necessary to establish that the software product has been built in accordance with the requirements and that the software is correctly represented in the documentation that is shipped along with the software. • A configuration audit is a check to verify that the product package contains all of the components it is supposed to contain & performs as promised. • Configuration audits are performed after software integration & testing.

  21. Software Maintenance vs. SCM • Software Maintenance: A set of activities that occur after delivery of the software. • SCM: Begins when a software project begins and lasts till the software is taken out of operation.

  22. Baseline Definition: “A specification or product that has been formally reviewed and agreed upon, that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.” -- IEEE Std. 610.12-1990

  23. Baseline • The configuration of software at a discrete point in time is known as a baseline. • A baseline is an SCM concept that helps us control change. • A baseline is a set of software configuration items (SCIs) and the relationship between them. So, once a baseline is established, the CIs in the baseline can be changed only through a formal change management procedure. • A baseline is analogous to the kitchen doors(IN-OUT) in the restaurant.

  24. Baseline • The most common software baselines: • System Specification • Software Project Plan • Software Requirements Specification • User Manual • Design Specification • Source Code Listing • Test Plan and Procedures; test cases and recorded results • Operational and Installation Manuals • Standards and Procedures for Software Engineering

  25. Configuration Item (CI) • Define(IEEE) : A CI is an aggregation of hardware or software or both that is designated for configuration management and is treated as a single entity in the configuration management process. • To identify, control, and manage change, one must first identify which items in the project will be subject to change. So we must first identify the items that we plan to control and manage. These items are called configuration items(CIs) • The SCM system is supposed to record the functional & physical properties of these CIs

  26. Configuration Item (CI) • A variety of items, in addition to code, are controlled by SCM. Software items with the potential to become CIs include plans, specifications and design documentation, testing materials, software tools, source and executable code, code libraries, data & data dictionaries, and documentation for installation, maintenance, operations, and software use. • Forexample, if a system contains several programs, each program & its related documentation and data might be designated a CI.

  27. CI Examples • System specification • Project plan • SCM plan • Software requirements specification • User manual • System Design Document • Program Source Code • System Test Plan • Operation and installation manuals • Executable program • Database Design Documents • Software tools • Maintenance documents • Standards and procedures for SE

  28. SCM database/Repository • The characteristics of each CI and their interdependencies with one another are recorded in the SCM database (Repositories in the case of SCM tools). • SCM database is used to record all relevant information related to configurations. The principle functions of such a database are to assist in assessing the impact of system changes and to provide information about the SCM process. • In addition to the details about the CIs, the database contains information about change requests(which are also CIs), their status, and information regarding the review & audit process.

  29. Version control • Version Control (VC) is a means to identify and manage configuration items(CIs) as they change over time, usually provided by a software tool designed for configuration management. • VC combines procedure & tools to manage different versions. • VC is simply the automated act of tracking the changes of a particular file over time. • VC gives the ability to trace the history of all CIs in a system and to re-create any previous version of a file. • Concurrent Versions System(CVS) is a widely used tool for version control.

  30. Change Control • Change Control is the identification and tracking of changes to CM-controlled CIs. • Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object. • The Change Control process begins with a Change Request (CR) , leads to a decision to Make or reject the request for change, and Culminates with a controlled update of the SCI that is to be changed.

  31. Version Control vs. Change Control • Are version control and change control the same thing? • Answer is “no” • Version control can be viewed as an SCM function that occurs as a consequence of change control.

  32. Change Request • Change Request (CR) is a formal document that is prepared for a request to change a specification in accordance with the CM plan change procedure. • Change Request(CR) is a request to make a change or modification. • A change request form(paper or electronic) is used to initiate a change and contains the details of the change such as the name of the change originator, item to be changed, and other details of changes.

  33. Release • Release: A configuration management(CM) action whereby a particular version of software is made available for a specific purpose. • A release is a version that is distributed (outside the development activity) to customers • A release consists of more than just the executable code. It includes installation files, data files, setup programs, and electronic & paper documentation. • A release includes new functionality or features or some fixes for the faults found by customers, developers, or testers

  34. Version • Version:is an instance of a system that differs, in some way, from the other instances. • Once baselined, a version can not be changed without creating a new version • New versions of the system may have additional functionality or different functionality • Some versions can be functionally equivalent but may be designed for different hardware and/or software environments. They are called Variants.

  35. Build • Build: A version of software that meets a specified subset of the requirements that the completed software will meet.

More Related