Monday, December 12, 2011

Chapter 27

Chapter 27
Change Management

CHAPTER OVERVIEW AND COMMENTS
This chapter presents an introduction to the issues associated with change management and SCM. Version control and change control are emphasized. It will not be easy to convince students of the importance of these topics, unless your course happens to include a term long project that involves interaction with a real customer. Most introductory software engineering courses are not set up this way. One way to reinforce the importance of configuration management (without a real customer) would be to change the project requirements sometime after students have begun its implementation. However, to help students maintain their sanity (these courses do  tend to be a lot of work!), I can’t recommend this in good conscience.
27.1     Software Configuration Management
Section 27.1.1 presents a useful SCM scenario that will help students to understand the elements of change management. Be certain to discuss it in class.
The elements of a configuration management system are discussed in Section 27.1.2. If time permits, you might consider expanding the discussion to provide detailed examples of each element.
Baselines and software configuration items are presented in Sections 27.1.3 and 27.1.4, respectively.  Students need to be aware that changes can occur to any SCI during the course of a project and the degree of rigor applied to change control is tied to whether or not an SCI has been baselined.
The impact of changes can have a negative ripple affect throughout a project, if they are not controlled properly. The concept of a baseline configuration item as being something that has very tightly defined change procedures is important for students to understand.
27.2     The SCM Repository
The characteristics of the SCM repository are discussed in this section. Key points to emphasize are: (1) that the repository is a database; (2) that it must be integrated with tools and with the SCM process; (3) that it should possess or be integrated with tools to provide the features noted in Section 27.2.3.
27.3     The SCM process
            It is important for students to be able to distinguish between the terms version and variant. It is also important for students to get in the habit of incorporating the version number in the naming scheme used for their SCI's.
            Section 27.3.1 advocates the use of an object-oriented approach to managing the software configuration items once they are identified. Students who are unfamiliar with the concepts of object-oriented programming and/or the use of ERDs may struggle with the concepts introduced here. It may be desirable to review some of the concepts from Chapter 8 while covering this section.
            Version control (Section 27.3.2) is arguably the most important SCM function for software product builders. Be certain to discuss the mechanics of version control. If time permits, have your students research one of the tools noted in the sidebar in this section and present their findings to the class.                      
            Change control (Section 27.3.3) is the SCM task that helps to avoid chaos within a software project. The details of processing and controlling a change request for an SCI are discussed. Students need to be familiar with each of the major steps. Having students write change requests and engineering change orders (ECO) are worthwhile assignments. The process of item check-in and check-out from the project data base might be illustrated by having students use a Unix tool like SCCS or an MS Windows tool like Visual SourceSafe. It is important for students to understand the distinction between informal change control and the formal change control required for a baseline SCI.
            If time permits, have your students research one of the tools noted in the sidebar in Section 27.3.5 and present their findings to the class.         
         Section 27.3.4 contains a list of questions that need to be answered during a configuration audit. Students might profit from the experience of doing (or observing) a configuration audit using these questions following an assignment involving a required change to one of their projects.
Section 27.3.5 suggests that software engineers develop a need to know list for every SCI and keep them up to date. This is probably the easiest and most reliable way to deal with the configuration status reporting task. 
27.4     Configuration Management for Web Engineering
It’s important to note that most CM functions remain unchanged for WebE. However, the issues noted in Section 27.4.1 are emphasized and should be discussed.
            Content management (Section 27.4.4) is introduced here for the first time in this chapter. If you have spent time in Part 3 of this book, this section should be emphasized. If time permits, have your students research one of the tools noted in the sidebar in this section and present their findings to the class.                      
27.5     SCM Standards
A wide array of military and ANSI/IEEE software configuration management standards are listed in this section. It may be worthwhile to have students do library or web research to locate the details for one of them.


No comments:

Post a Comment