{"id":357,"date":"2018-07-26T05:17:40","date_gmt":"2018-07-26T05:17:40","guid":{"rendered":"http:\/\/csp8.epgpbooks.inflibnet.ac.in\/?post_type=chapter&#038;p=357"},"modified":"2018-08-08T06:39:35","modified_gmt":"2018-08-08T06:39:35","slug":"software-change-management","status":"publish","type":"chapter","link":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/chapter\/software-change-management\/","title":{"rendered":"Software Change Management"},"content":{"raw":"<div>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>SOFTWARE CHANGE MANAGEMENT<\/strong><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Software change management is a process of identifying changes that are to be done in the software. It facilitates and controls making changes to the software for the effective development of the project.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>LEARNING OBJECTIVES\u00a0<\/strong><\/p>\r\n\r\n<ul>\r\n \t<li style=\"text-align: justify\">To have a birds-eye view of the entire IT infrastructure<\/li>\r\n \t<li style=\"text-align: justify\">To respond, manage and track requests for IT changes using standardized procedures<\/li>\r\n \t<li style=\"text-align: justify\">Assess the cost of proposed changes before they are incurred.<\/li>\r\n \t<li style=\"text-align: justify\">Have fewer changes that are aborted, or fail.<\/li>\r\n \t<li style=\"text-align: justify\">Increase productivity of key personnel through decreased urgent changes.<\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>Quotes\u00a0<\/strong><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">You work for an organization that is spending millions of dollars on a very important new process that will completely change how you work, and who you work with and require you to think about your job in a totally new way. The success of the company depends on you and your co-workers.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Nestle executive in a 2002 interview with CIO magazine the executive summarized what the company had learned. <em>\u201cNo major software implementation is really about software. It\u2019s about change management. When you move to SAP, you are changing the way people work. You are challenging principles, their beliefs and the way they have done things for many years\u201d<\/em><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>CHANGE MANAGEMENT\u00a0<\/strong><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Change management is a planned approach to integrating change which includes formal processes for assessing the impact of the change on both the people it affects and the way they do their jobs. The application of techniques gains acceptance and understanding of the change and change in behavior takes advantage of the new functionality. Change is the interplay among various forces that are involved in growing something new. Deep change comes only through real\u00a0<span style=\"font-size: 1em;text-align: initial\">growth i.e. through learning and unlearning. 70% of all change initiatives fail due to failure to address human component of change.<\/span><\/p>\r\n\r\n<\/div>\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Implementation of large scale business transformation initiatives, like SAP, by nature result in significant and fundamental change such as;<\/p>\r\n&nbsp;\r\n<ul>\r\n \t<li>Changes in the job of the people<\/li>\r\n \t<li>Change in job and work content.<\/li>\r\n \t<li>Change in the people you work with.<\/li>\r\n \t<li>The tools (systems, reports, etc.) of the job and how people interface with them change.<\/li>\r\n \t<li>Implementing the initiative requires additional, unfamiliar work, maybe in unfamiliar locations.<\/li>\r\n \t<li>New skills, behaviors will be required.<\/li>\r\n \t<li>Employee assignment.<\/li>\r\n \t<li>Controls (over process and information) will change.<\/li>\r\n \t<li>Change in information that is provided, accessed, and shared.<\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Change management helps determine how people will react to these changes, and therefore, the ultimate success of the transformation of the vision, knowledge, &amp; responsibility.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>Software Change Management <\/strong>is also called software configuration management (SCM). It is an umbrella activity that is applied throughout the software process. The goal is to maximize productivity by minimizing mistakes caused by confusion when coordinating software development. SCM identifies, organizes, and controls modifications to the software being built by a software development team. SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest.<\/p>\r\n&nbsp;\r\n\r\nSCM is initiated when the project begins and terminates when the software is taken out of operation. View of SCM from various roles\r\n\r\n&nbsp;\r\n\r\n\u25e6\u00a0<strong>Project manager <\/strong>- an auditing mechanism.\r\n\r\n\u25e6\u00a0<strong>SCM manager <\/strong>- a controlling, tracking, and policy making mechanism.\r\n\r\n\u25e6\u00a0<strong>Software engineer <\/strong>- a changing, building and access control mechanism.\r\n\r\n\u25e6\u00a0<strong>Customer <\/strong>- a quality assurance and product identification mechanism.\r\n\r\n<\/div>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong><span style=\"text-align: initial;font-size: 1em\">Software Configuration\u00a0<\/span><\/strong><\/p>\r\n\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n\r\nThe output from the software process makes up the software configuration:\r\n<ul>\r\n \t<li><strong>Computer programs <\/strong>(both source code files and executable files).<\/li>\r\n \t<li style=\"text-align: justify\"><strong>Work products <\/strong>that describe the computer programs. (documents targeted at both technical practitioners and users)<\/li>\r\n \t<li><strong>Data <\/strong>(contained within the programs themselves or in external files).<\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\">The major danger to a software configuration is change. <em>First Law of System Engineering <\/em>states \"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.\"<\/p>\r\n&nbsp;\r\n\r\n<strong>Origins of Software Change\u00a0<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Software change originated when errors detected in the software need to be corrected. New business or market conditions dictate changes in product requirements or business rules. Software changes occur when new customer needs demands modification of data produced by information systems, functionality delivered by products, or services delivered by a computer - based system. Reorganization or business growth\/downsizing causes changes in project priorities or software engineering team structure. Budgetary or scheduling constraints cause a redefinition of the system or product.<\/p>\r\n&nbsp;\r\n\r\n<strong>Configuration Management System - Elements\u00a0<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>Configuration elements <\/strong>include a set of tools coupled with a file management (e.g., database) system that enables access to and management of each software configuration item.<\/p>\r\n<p style=\"text-align: justify\"><strong>Process elements <\/strong>comprises of a collection of procedures and tasks that define an effective approach to change management for all participants.<\/p>\r\n<p style=\"text-align: justify\"><strong>Construction elements <\/strong>consist of a set of tools that automate the construction of software by ensuring that the proper set of valid components (i.e., the correct version) is assembled.<\/p>\r\n<p style=\"text-align: justify\"><strong>Human elements <\/strong>are a set of tools and process features used by a software team to implement effective SCM.<\/p>\r\n&nbsp;\r\n\r\n<strong>Baseline for SCM<\/strong>\r\n\r\n<\/div>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><span style=\"text-align: initial;font-size: 1em\">The baseline for SCM concept focuses on helping practitioners to control change without seriously impeding justifiable change.<\/span><\/p>\r\n\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong><em>IEEE Definition<\/em><\/strong><em>: <\/em>A specification or product that has been formally reviewed and agreed upon, and that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">It is a milestone in the development of software and is marked by the delivery of one or more Computer Software Configuration Items (CSCIs) that have been approved as a consequence of a formal technical review.<\/p>\r\n&nbsp;\r\n\r\n<strong>Baseline Process\u00a0<\/strong>\r\n\r\n&nbsp;\r\n\r\nThe baseline process involves the following;\r\n\r\n&nbsp;\r\n\r\n1)\u00a0 A series of software engineering tasks produces a CSCI.\r\n\r\n2) The CSCI is reviewed and possibly approved.\r\n<p style=\"text-align: justify\">3) The approved CSCI is given a new version number and placed in a project database (i.e., software repository).<\/p>\r\n4) A copy of the CSCI is taken from the project database and examined\/modified by a software engineer.\r\n\r\n5) The baseline of the modified CSCI goes back to Step #2.\r\n\r\n&nbsp;\r\n\r\n<strong>Automated SCM Repository\u00a0<\/strong>\r\n\r\n<\/div>\r\n<p style=\"text-align: justify\"><img class=\"aligncenter size-full wp-image-361\" src=\"http:\/\/csp8.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1.png\" alt=\"\" width=\"700\" height=\"415\" \/><\/p>\r\n<p style=\"text-align: justify\"><strong style=\"text-align: justify;font-size: 1em\"><span style=\"text-align: initial;font-size: 1em\">Functions of an SCM Repository<\/span><\/strong><\/p>\r\n\r\n<ul>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Data integrity <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It validates entries, ensures consistency, cascades modifications.<\/span><\/li>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Information sharing <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It shares information among developers and tools, manages and controls multi-user access.<\/span><\/li>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Tool integration <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It establishes a data model that can be accessed by many software engineering tools, controls access to the data.<\/span><\/li>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Data integration <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It allows various SCM tasks to be performed on one or more CSCIs.<\/span><\/li>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Methodology enforcement <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It defines an entity-relationship model for the repository that implies a specific process model for software engineering.<\/span><\/li>\r\n \t<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Document standardization <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It defines objects in the repository to guarantee a standard approach for creation of software engineering documents.<\/span><\/li>\r\n<\/ul>\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n\r\n<strong>Primary Objectives of the SCM Process\u00a0<\/strong>\r\n\r\n&nbsp;\r\n\r\nThe Primary Objectives of the SCM Process includes;\r\n<ul>\r\n \t<li>Identification of all items that collectively define the software configuration.<\/li>\r\n \t<li>Manage changes to one or more of these items.<\/li>\r\n \t<li>Facilitate construction of different versions of an application.<\/li>\r\n \t<li>Ensure the software quality is maintained as the configuration evolves over time.<\/li>\r\n \t<li>Provide information on changes that have occurred<strong>. <\/strong><\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n<strong>SCM<\/strong>\r\n\r\n&nbsp;\r\n\r\nSoftware change management focuses on addressing the following issues;\r\n<ul>\r\n \t<li>How does a software team identify the discrete elements of a software configuration?<\/li>\r\n \t<li>How does an organization manage the many existing versions of a program (and its documentation) in a manner that will enable change to be accommodated efficiently?<\/li>\r\n \t<li>How an organization control changes does before and after software is released to a customer?<\/li>\r\n \t<li>Who has responsibility for approving and ranking changes?<\/li>\r\n \t<li>How can we ensure that changes have been made properly?<\/li>\r\n \t<li><span style=\"font-size: 1em;text-align: initial\">What mechanism is used to apprise others of changes that are made?<\/span><\/li>\r\n<\/ul>\r\n<\/div>\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n\r\n<strong>SCM TASKS\u00a0<\/strong>\r\n\r\n&nbsp;\r\n\r\n<img class=\"aligncenter size-full wp-image-360\" src=\"http:\/\/csp8.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS.png\" alt=\"\" width=\"492\" height=\"292\" \/>\r\n\r\n<\/div>\r\n&nbsp;\r\n\r\n<span style=\"text-align: initial;font-size: 1em\">\u2022 Concentric layers (from inner to outer)<\/span>\r\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Identification<\/span><\/p>\r\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Change control<\/span><\/p>\r\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Version control<\/span><\/p>\r\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Configuration auditing<\/span><\/p>\r\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Status reporting<\/span><\/p>\r\n<span style=\"text-align: initial;font-size: 1em\">\u2022 CSCIs flow outward through these layers during their life cycle.<\/span>\r\n\r\n<span style=\"text-align: initial;font-size: 1em\">\u2022 CSCIs ultimately become part of the configuration of one or more versions of a software application or system.<\/span>\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n\r\n<strong>Identification Task\u00a0<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Identification separately names each CSCI and then organizes it in the SCM repository using an object-oriented approach. Objects start out as basic objects and are then grouped into aggregate objects. Each object has a set of distinct features that identifies it such as a name that is unambiguous to all other objects, a description that contains the CSCI type, a project identifier, and change and\/or version information, a list of resources needed by the object and object realization (i.e., the document, the file, the model, etc.)<\/p>\r\n\r\n<\/div>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong><span style=\"text-align: initial;font-size: 1em\">Change Task\u00a0<\/span><\/strong><\/p>\r\n\r\n<div style=\"text-align: justify\">\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object. A change request is submitted to a configuration control authority, which is usually a change control board (CCB). The request is evaluated for technical merit, potential side effects, overall impact on other configuration objects and system functions, and projected cost in terms of money, time, and resources.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">An engineering change order (ECO) is issued for each approved change request. It describes the change to be made, the constraints to follow, and the criteria for review and audit. The baseline CSCI is obtained from the SCM repository where access control governs which software engineers have the authority to access and modify a particular configuration object. The Synchronization control helps to ensure that parallel changes performed by two different people don't overwrite one another.<\/p>\r\n&nbsp;\r\n\r\n<strong>Version Control Task\u00a0<\/strong>\r\n\r\n&nbsp;\r\n<p style=\"text-align: justify\">Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of objects in the SCM repository. Required version control capabilities include;<\/p>\r\n\r\n<ul>\r\n \t<li>A <strong>SCM repository <\/strong>that stores all relevant configuration objects.<\/li>\r\n \t<li>A <strong style=\"text-align: initial;font-size: 1em\">version management <\/strong><span style=\"text-align: initial;font-size: 1em\">capability that stores all versions of a configuration object (or enables any version to be constructed using differences from past versions).<\/span><\/li>\r\n \t<li>A \u00a0<strong style=\"text-align: initial;font-size: 1em\">make \u00a0facility \u00a0<\/strong><span style=\"text-align: initial;font-size: 1em\">that \u00a0enables \u00a0the \u00a0software \u00a0engineer \u00a0to \u00a0collect \u00a0all \u00a0relevant\u00a0<\/span><span style=\"text-align: initial;font-size: 1em\">configuration objects and construct a specific version of the software.<\/span><\/li>\r\n \t<li><strong style=\"text-align: initial;font-size: 1em\">Issues tracking <\/strong><span style=\"text-align: initial;font-size: 1em\">(bug tracking) <\/span><strong style=\"text-align: initial;font-size: 1em\">capability <\/strong><span style=\"text-align: initial;font-size: 1em\">that enables the team to record and track the status of all outstanding issues associated with each configuration object.<\/span><\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\">The SCM repository maintains a change set. It serves as a collection of all changes made to a baseline configuration and is used to create a specific version of the software. It captures all changes to all files in the configuration along with the reason for changes and details of who made the changes and when the changes were made.<\/p>\r\n&nbsp;\r\n\r\n<strong>Configuration Auditing Task<\/strong>\r\n\r\n<\/div>\r\n<p style=\"text-align: justify\">Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made. It complements the formal technical review and is conducted by the SQA group. It addresses the following questions<\/p>\r\n\r\n<ul style=\"text-align: justify\">\r\n \t<li>Has the change specified in the ECO been made? Have any additional modifications been incorporated?<\/li>\r\n \t<li>Has a formal technical review been conducted to assess technical correctness?<\/li>\r\n \t<li>Has the software process been followed, and have software engineering standards been properly applied?<\/li>\r\n \t<li>Has the change been \"highlighted\" and \"documented\" in the CSCI? Have the change data and change author been specified? Do the attributes of the configuration object reflect the change?<\/li>\r\n \t<li>Have SCM procedures for noting the change, recording it, and reporting it been followed?<\/li>\r\n \t<li>Have all related CSCIs been properly updated?<\/li>\r\n<\/ul>\r\n&nbsp;\r\n<p style=\"text-align: justify\">A configuration audit ensures that the correct CSCIs (by version) have been incorporated into a specific build and all the documentation is up-to-date and consistent with the version that has been built.<\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\"><strong>Status Reporting Task<\/strong><\/p>\r\n&nbsp;\r\n<p style=\"text-align: justify\">Configuration status reporting (CSR) is also called status accounting. It provides information about each change to those personnel in an organization with a need to know. It addresses the questions and answers what happened, who did it, when did it happen, and what else will be affected. The sources of entries for configuration status reporting occurs when each time a CSCI is assigned new or updated information, each time a change is approved by the CCB and an ECO is issued and each time a configuration audit is conducted. The configuration status report is placed in an on-line database or on a website for software developers and maintainers to read. It is given to management and practitioners to keep them appraised of important changes to the project CSCIs.<\/p>\r\n&nbsp;\r\n\r\n&nbsp;\r\n\r\n<strong>Web Links<\/strong>\r\n<ul>\r\n \t<li>https:\/\/www.prosci.com\/change-management\/what-is-change-management<\/li>\r\n \t<li>https:\/\/www.mindtools.com \u203a Project Management \u203a Change Management<\/li>\r\n \t<li>https:\/\/hbr.org\/topic\/change-management<\/li>\r\n<\/ul>\r\n&nbsp;\r\n\r\n<strong>Supporting &amp; Reference Materials<\/strong>\r\n<ul>\r\n \t<li>David Tuffley \u201cSoftware Configuration Management: A how to guide for project staff\u201d, create space independent publishing platform, 2011.<\/li>\r\n \t<li>Pankaj Jalote, \u201cAn Integrated Approach to Software Engineering\u201d, Second Edition, Springer Verlag, 1997.<\/li>\r\n \t<li>Ian Sommerville, \u201cSoftware Engineering\u201d, Sixth Edition, Addison Wesley, 2000.<\/li>\r\n \t<li>https:\/\/files.ifi.uzh.ch\/rerg\/amadeus\/teaching\/courses\/software_engineering_hs07\/folien\/ch23- SCM-addendum.pdf<\/li>\r\n<\/ul>","rendered":"<div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>SOFTWARE CHANGE MANAGEMENT<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Software change management is a process of identifying changes that are to be done in the software. It facilitates and controls making changes to the software for the effective development of the project.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>LEARNING OBJECTIVES\u00a0<\/strong><\/p>\n<ul>\n<li style=\"text-align: justify\">To have a birds-eye view of the entire IT infrastructure<\/li>\n<li style=\"text-align: justify\">To respond, manage and track requests for IT changes using standardized procedures<\/li>\n<li style=\"text-align: justify\">Assess the cost of proposed changes before they are incurred.<\/li>\n<li style=\"text-align: justify\">Have fewer changes that are aborted, or fail.<\/li>\n<li style=\"text-align: justify\">Increase productivity of key personnel through decreased urgent changes.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>Quotes\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">You work for an organization that is spending millions of dollars on a very important new process that will completely change how you work, and who you work with and require you to think about your job in a totally new way. The success of the company depends on you and your co-workers.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Nestle executive in a 2002 interview with CIO magazine the executive summarized what the company had learned. <em>\u201cNo major software implementation is really about software. It\u2019s about change management. When you move to SAP, you are changing the way people work. You are challenging principles, their beliefs and the way they have done things for many years\u201d<\/em><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>CHANGE MANAGEMENT\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Change management is a planned approach to integrating change which includes formal processes for assessing the impact of the change on both the people it affects and the way they do their jobs. The application of techniques gains acceptance and understanding of the change and change in behavior takes advantage of the new functionality. Change is the interplay among various forces that are involved in growing something new. Deep change comes only through real\u00a0<span style=\"font-size: 1em;text-align: initial\">growth i.e. through learning and unlearning. 70% of all change initiatives fail due to failure to address human component of change.<\/span><\/p>\n<\/div>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Implementation of large scale business transformation initiatives, like SAP, by nature result in significant and fundamental change such as;<\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li>Changes in the job of the people<\/li>\n<li>Change in job and work content.<\/li>\n<li>Change in the people you work with.<\/li>\n<li>The tools (systems, reports, etc.) of the job and how people interface with them change.<\/li>\n<li>Implementing the initiative requires additional, unfamiliar work, maybe in unfamiliar locations.<\/li>\n<li>New skills, behaviors will be required.<\/li>\n<li>Employee assignment.<\/li>\n<li>Controls (over process and information) will change.<\/li>\n<li>Change in information that is provided, accessed, and shared.<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Change management helps determine how people will react to these changes, and therefore, the ultimate success of the transformation of the vision, knowledge, &amp; responsibility.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>Software Change Management <\/strong>is also called software configuration management (SCM). It is an umbrella activity that is applied throughout the software process. The goal is to maximize productivity by minimizing mistakes caused by confusion when coordinating software development. SCM identifies, organizes, and controls modifications to the software being built by a software development team. SCM activities are formulated to identify change, control change, ensure that change is being properly implemented, and report changes to others who may have an interest.<\/p>\n<p>&nbsp;<\/p>\n<p>SCM is initiated when the project begins and terminates when the software is taken out of operation. View of SCM from various roles<\/p>\n<p>&nbsp;<\/p>\n<p>\u25e6\u00a0<strong>Project manager <\/strong>&#8211; an auditing mechanism.<\/p>\n<p>\u25e6\u00a0<strong>SCM manager <\/strong>&#8211; a controlling, tracking, and policy making mechanism.<\/p>\n<p>\u25e6\u00a0<strong>Software engineer <\/strong>&#8211; a changing, building and access control mechanism.<\/p>\n<p>\u25e6\u00a0<strong>Customer <\/strong>&#8211; a quality assurance and product identification mechanism.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong><span style=\"text-align: initial;font-size: 1em\">Software Configuration\u00a0<\/span><\/strong><\/p>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p>The output from the software process makes up the software configuration:<\/p>\n<ul>\n<li><strong>Computer programs <\/strong>(both source code files and executable files).<\/li>\n<li style=\"text-align: justify\"><strong>Work products <\/strong>that describe the computer programs. (documents targeted at both technical practitioners and users)<\/li>\n<li><strong>Data <\/strong>(contained within the programs themselves or in external files).<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">The major danger to a software configuration is change. <em>First Law of System Engineering <\/em>states &#8220;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.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Origins of Software Change\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Software change originated when errors detected in the software need to be corrected. New business or market conditions dictate changes in product requirements or business rules. Software changes occur when new customer needs demands modification of data produced by information systems, functionality delivered by products, or services delivered by a computer &#8211; based system. Reorganization or business growth\/downsizing causes changes in project priorities or software engineering team structure. Budgetary or scheduling constraints cause a redefinition of the system or product.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Configuration Management System &#8211; Elements\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>Configuration elements <\/strong>include a set of tools coupled with a file management (e.g., database) system that enables access to and management of each software configuration item.<\/p>\n<p style=\"text-align: justify\"><strong>Process elements <\/strong>comprises of a collection of procedures and tasks that define an effective approach to change management for all participants.<\/p>\n<p style=\"text-align: justify\"><strong>Construction elements <\/strong>consist of a set of tools that automate the construction of software by ensuring that the proper set of valid components (i.e., the correct version) is assembled.<\/p>\n<p style=\"text-align: justify\"><strong>Human elements <\/strong>are a set of tools and process features used by a software team to implement effective SCM.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Baseline for SCM<\/strong><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><span style=\"text-align: initial;font-size: 1em\">The baseline for SCM concept focuses on helping practitioners to control change without seriously impeding justifiable change.<\/span><\/p>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong><em>IEEE Definition<\/em><\/strong><em>: <\/em>A specification or product that has been formally reviewed and agreed upon, and that thereafter serves as the basis for further development, and that can be changed only through formal change control procedures.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">It is a milestone in the development of software and is marked by the delivery of one or more Computer Software Configuration Items (CSCIs) that have been approved as a consequence of a formal technical review.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Baseline Process\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>The baseline process involves the following;<\/p>\n<p>&nbsp;<\/p>\n<p>1)\u00a0 A series of software engineering tasks produces a CSCI.<\/p>\n<p>2) The CSCI is reviewed and possibly approved.<\/p>\n<p style=\"text-align: justify\">3) The approved CSCI is given a new version number and placed in a project database (i.e., software repository).<\/p>\n<p>4) A copy of the CSCI is taken from the project database and examined\/modified by a software engineer.<\/p>\n<p>5) The baseline of the modified CSCI goes back to Step #2.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Automated SCM Repository\u00a0<\/strong><\/p>\n<\/div>\n<p style=\"text-align: justify\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-361\" src=\"http:\/\/csp8.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1.png\" alt=\"\" width=\"700\" height=\"415\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1.png 700w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1-300x178.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1-65x39.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1-225x133.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/TSP-Launch-1-350x208.png 350w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/p>\n<p style=\"text-align: justify\"><strong style=\"text-align: justify;font-size: 1em\"><span style=\"text-align: initial;font-size: 1em\">Functions of an SCM Repository<\/span><\/strong><\/p>\n<ul>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Data integrity <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It validates entries, ensures consistency, cascades modifications.<\/span><\/li>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Information sharing <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It shares information among developers and tools, manages and controls multi-user access.<\/span><\/li>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Tool integration <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It establishes a data model that can be accessed by many software engineering tools, controls access to the data.<\/span><\/li>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Data integration <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It allows various SCM tasks to be performed on one or more CSCIs.<\/span><\/li>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Methodology enforcement <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It defines an entity-relationship model for the repository that implies a specific process model for software engineering.<\/span><\/li>\n<li style=\"text-align: justify\"><strong style=\"text-align: initial;font-size: 1em\">Document standardization <\/strong><span style=\"text-align: initial;font-size: 1em\">\u2013 It defines objects in the repository to guarantee a standard approach for creation of software engineering documents.<\/span><\/li>\n<\/ul>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p><strong>Primary Objectives of the SCM Process\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>The Primary Objectives of the SCM Process includes;<\/p>\n<ul>\n<li>Identification of all items that collectively define the software configuration.<\/li>\n<li>Manage changes to one or more of these items.<\/li>\n<li>Facilitate construction of different versions of an application.<\/li>\n<li>Ensure the software quality is maintained as the configuration evolves over time.<\/li>\n<li>Provide information on changes that have occurred<strong>. <\/strong><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>SCM<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p>Software change management focuses on addressing the following issues;<\/p>\n<ul>\n<li>How does a software team identify the discrete elements of a software configuration?<\/li>\n<li>How does an organization manage the many existing versions of a program (and its documentation) in a manner that will enable change to be accommodated efficiently?<\/li>\n<li>How an organization control changes does before and after software is released to a customer?<\/li>\n<li>Who has responsibility for approving and ranking changes?<\/li>\n<li>How can we ensure that changes have been made properly?<\/li>\n<li><span style=\"font-size: 1em;text-align: initial\">What mechanism is used to apprise others of changes that are made?<\/span><\/li>\n<\/ul>\n<\/div>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p><strong>SCM TASKS\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-360\" src=\"http:\/\/csp8.epgpbooks.inflibnet.ac.in\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS.png\" alt=\"\" width=\"492\" height=\"292\" srcset=\"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS.png 492w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS-300x178.png 300w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS-65x39.png 65w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS-225x134.png 225w, https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-content\/uploads\/sites\/53\/2018\/07\/SCM-TASKS-350x208.png 350w\" sizes=\"auto, (max-width: 492px) 100vw, 492px\" \/><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p><span style=\"text-align: initial;font-size: 1em\">\u2022 Concentric layers (from inner to outer)<\/span><\/p>\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Identification<\/span><\/p>\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Change control<\/span><\/p>\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Version control<\/span><\/p>\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Configuration auditing<\/span><\/p>\n<p style=\"padding-left: 30px\"><span style=\"text-align: initial;font-size: 1em\">\u2022 Status reporting<\/span><\/p>\n<p><span style=\"text-align: initial;font-size: 1em\">\u2022 CSCIs flow outward through these layers during their life cycle.<\/span><\/p>\n<p><span style=\"text-align: initial;font-size: 1em\">\u2022 CSCIs ultimately become part of the configuration of one or more versions of a software application or system.<\/span><\/p>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p><strong>Identification Task\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Identification separately names each CSCI and then organizes it in the SCM repository using an object-oriented approach. Objects start out as basic objects and are then grouped into aggregate objects. Each object has a set of distinct features that identifies it such as a name that is unambiguous to all other objects, a description that contains the CSCI type, a project identifier, and change and\/or version information, a list of resources needed by the object and object realization (i.e., the document, the file, the model, etc.)<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong><span style=\"text-align: initial;font-size: 1em\">Change Task\u00a0<\/span><\/strong><\/p>\n<div style=\"text-align: justify\">\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Change control is a procedural activity that ensures quality and consistency as changes are made to a configuration object. A change request is submitted to a configuration control authority, which is usually a change control board (CCB). The request is evaluated for technical merit, potential side effects, overall impact on other configuration objects and system functions, and projected cost in terms of money, time, and resources.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">An engineering change order (ECO) is issued for each approved change request. It describes the change to be made, the constraints to follow, and the criteria for review and audit. The baseline CSCI is obtained from the SCM repository where access control governs which software engineers have the authority to access and modify a particular configuration object. The Synchronization control helps to ensure that parallel changes performed by two different people don&#8217;t overwrite one another.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Version Control Task\u00a0<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Version control is a set of procedures and tools for managing the creation and use of multiple occurrences of objects in the SCM repository. Required version control capabilities include;<\/p>\n<ul>\n<li>A <strong>SCM repository <\/strong>that stores all relevant configuration objects.<\/li>\n<li>A <strong style=\"text-align: initial;font-size: 1em\">version management <\/strong><span style=\"text-align: initial;font-size: 1em\">capability that stores all versions of a configuration object (or enables any version to be constructed using differences from past versions).<\/span><\/li>\n<li>A \u00a0<strong style=\"text-align: initial;font-size: 1em\">make \u00a0facility \u00a0<\/strong><span style=\"text-align: initial;font-size: 1em\">that \u00a0enables \u00a0the \u00a0software \u00a0engineer \u00a0to \u00a0collect \u00a0all \u00a0relevant\u00a0<\/span><span style=\"text-align: initial;font-size: 1em\">configuration objects and construct a specific version of the software.<\/span><\/li>\n<li><strong style=\"text-align: initial;font-size: 1em\">Issues tracking <\/strong><span style=\"text-align: initial;font-size: 1em\">(bug tracking) <\/span><strong style=\"text-align: initial;font-size: 1em\">capability <\/strong><span style=\"text-align: initial;font-size: 1em\">that enables the team to record and track the status of all outstanding issues associated with each configuration object.<\/span><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">The SCM repository maintains a change set. It serves as a collection of all changes made to a baseline configuration and is used to create a specific version of the software. It captures all changes to all files in the configuration along with the reason for changes and details of who made the changes and when the changes were made.<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Configuration Auditing Task<\/strong><\/p>\n<\/div>\n<p style=\"text-align: justify\">Configuration auditing is an SQA activity that helps to ensure that quality is maintained as changes are made. It complements the formal technical review and is conducted by the SQA group. It addresses the following questions<\/p>\n<ul style=\"text-align: justify\">\n<li>Has the change specified in the ECO been made? Have any additional modifications been incorporated?<\/li>\n<li>Has a formal technical review been conducted to assess technical correctness?<\/li>\n<li>Has the software process been followed, and have software engineering standards been properly applied?<\/li>\n<li>Has the change been &#8220;highlighted&#8221; and &#8220;documented&#8221; in the CSCI? Have the change data and change author been specified? Do the attributes of the configuration object reflect the change?<\/li>\n<li>Have SCM procedures for noting the change, recording it, and reporting it been followed?<\/li>\n<li>Have all related CSCIs been properly updated?<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">A configuration audit ensures that the correct CSCIs (by version) have been incorporated into a specific build and all the documentation is up-to-date and consistent with the version that has been built.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><strong>Status Reporting Task<\/strong><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Configuration status reporting (CSR) is also called status accounting. It provides information about each change to those personnel in an organization with a need to know. It addresses the questions and answers what happened, who did it, when did it happen, and what else will be affected. The sources of entries for configuration status reporting occurs when each time a CSCI is assigned new or updated information, each time a change is approved by the CCB and an ECO is issued and each time a configuration audit is conducted. The configuration status report is placed in an on-line database or on a website for software developers and maintainers to read. It is given to management and practitioners to keep them appraised of important changes to the project CSCIs.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p><strong>Web Links<\/strong><\/p>\n<ul>\n<li>https:\/\/www.prosci.com\/change-management\/what-is-change-management<\/li>\n<li>https:\/\/www.mindtools.com \u203a Project Management \u203a Change Management<\/li>\n<li>https:\/\/hbr.org\/topic\/change-management<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p><strong>Supporting &amp; Reference Materials<\/strong><\/p>\n<ul>\n<li>David Tuffley \u201cSoftware Configuration Management: A how to guide for project staff\u201d, create space independent publishing platform, 2011.<\/li>\n<li>Pankaj Jalote, \u201cAn Integrated Approach to Software Engineering\u201d, Second Edition, Springer Verlag, 1997.<\/li>\n<li>Ian Sommerville, \u201cSoftware Engineering\u201d, Sixth Edition, Addison Wesley, 2000.<\/li>\n<li>https:\/\/files.ifi.uzh.ch\/rerg\/amadeus\/teaching\/courses\/software_engineering_hs07\/folien\/ch23- SCM-addendum.pdf<\/li>\n<\/ul>\n","protected":false},"author":4,"menu_order":37,"template":"","meta":{"_acf_changed":false,"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":["dr-r-baskaran"],"pb_section_license":""},"chapter-type":[],"contributor":[58],"license":[],"class_list":["post-357","chapter","type-chapter","status-publish","hentry","contributor-dr-r-baskaran"],"part":3,"_links":{"self":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapters\/357","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/wp\/v2\/users\/4"}],"version-history":[{"count":6,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapters\/357\/revisions"}],"predecessor-version":[{"id":426,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapters\/357\/revisions\/426"}],"part":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapters\/357\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/wp\/v2\/media?parent=357"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/pressbooks\/v2\/chapter-type?post=357"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/wp\/v2\/contributor?post=357"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/ebooks.inflibnet.ac.in\/csp8\/wp-json\/wp\/v2\/license?post=357"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}