Page 113 - DCAP305_PRINCIPLES_OF_SOFTWARE_ENGINEERING
P. 113

Unit 5: Software Project Planning



            Identification                                                                        Notes
            Identifying the individual components and configurations is a prerequisite for controlling their
            evolution.
            Reliable identification helps avoid the following problems:
               •  “This program worked yesterday. What happened?”
               •  “I cannot reproduce the error in this configuration.”

               •  “I fixed this problem long ago. Why did it reappear?”
               •  “The online documentation does not match the program.”
               •  “Do we have the latest version?”

            Change Tracking
            Change tracking keeps a record of what was done to which component for what reason, at what
            time, and by whom. It helps answer the following questions:

               •  “Has this problem been fixed?”
               •  “Which bug fixes went into this copy?”
               •  “This seems like an obvious change. Was it tried before?”
               •  “Who is responsible for this modification?”
               •  “Were these independent changes merged?”

            Version Selection and Baselining
            Selecting the right versions of components and configurations for testing and baselining can be
            difficult. Machine support for version selection helps with composing consistent configurations
            and with answering the following questions:
               •  “How do I configure a test system that contains my temporary fixes to the last baseline,
                 and the released fixes of all other components?”
               •  “Given a list of fixes and enhancements, how do I configure a system that incorporates
                 them?”
               •  “This enhancement would not be ready until the next release. How do I configure it out
                 of the current baseline?”
               •  “How exactly does this version differ from the Baseline?”
            Software Manufacture
            Putting  together  a  configuration  requires  numerous  steps  such  as  pre-  and  post  processing,
            compiling, linking, formatting, and regression testing. SCM systems must automate that process
            and at the same time should be open for adding new processing programs. To reduce redundant
            work, they must manage a cache of recently generated components.
            Automation avoids the following problems:

               •  “I just fixed that. Was something not recompiled?”
               •  “How much recompilations will this change cost?”
               •  “Did we deliver an up-to-date binary version to the customer?
               •  “I wonder whether we applied the processing steps in the right order.”
               •  “How exactly was this configuration produced?”
               •  “Were all regression tests performed on this version?


                                             LOVELY PROFESSIONAL UNIVERSITY                                   107
   108   109   110   111   112   113   114   115   116   117   118