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