The foundations of reusability: Successful experience and important conclusions from planning and scheduling of space operations
NASA's Office of Space Communications is sponsoring a combined technical and management initiative to dramatically decrease the cost of preparing for and conducting space operations. The authors present their successful experience and important conclusions from producing generalized and readily reusable solutions and systems for planning and scheduling applications. While generality by itself should enable reuse, generality alone may not produce the desired cost savings. Generality achieved by accumulating numerous special cases within a software system often increases the complexity of the software to the extent that maintenance costs overtake development savings. Because of this phenomenon, the authors have insisted on simplicity, as well as generality, to achieve cost-effective operation reusability. Simplicity and generality can be accomplished simultaneously when the basic 'Building Blocks' for a problem domain, in this paper, planning and scheduling, are discovered and implemented with reuse in mind. The Building Blocks for planning and scheduling are described. The authors also present examples of how these Building Blocks have accommodated various scenarios that were previously treated as mission-peculiar. Two case histories are presented to demonstrate operational reusability and cost effectiveness.