Computer-Aided Maintenance for Embedded Real-time Software.

Abstract : Army software systems get more complex as Army hardware gets more sophisticated. Life cycle costs for these systems are expected to exceed $35 billion over the life of current systems. Current software development and maintenance practice will soon be insufficient; hence, to keep pace, computer-aided methods must be adopted. One such method, computer-aided prototyping, improves software development and benefits costly software maintenance, by taking advantage of automation and decreasing costly human involvement. In computer-aided prototyping, software prototypes written in a specification language are translated into some high-level programming language, like Ada, compiled, and demonstrated to the customer. Based on customer comments, the prototype is quickly updated and demonstrated to the customer again. This iterative process continues until the customer and designer agree on the prototype design. The prototype is then used as the baseline version of the final system. Change-merging is a formal method which allows multiple design teams to work on different enhancements to the same prototype. These enhancements can be made independently and combined automatically using our change-merging algorithm. As long as the independent enhancements do not conflict with one another, the result of the change-merge is a prototype with the capability of all the enhancements. This method is applied to the maintenance of different versions of existing systems by making enhancements to the baseline version and automatically integrating these changes into each fielded version. This will drastically reduce the time required to update software systems in the field.