Previous [ 1] [ 2] [ 3] [ 4] [ 5] [ 6] [ 7] [ 8] [ 9] [ 10] [ 11] [ 12] [ 13] [ 14]

@

Journal of Information Science and Engineering, Vol. 22 No. 2, pp. 337-356 (March 2006)

Process and Planning Support for Iterative Porting*

Pradeep Varma
IBM India Research Laboratory
Block 1, Indian Institute of Technology
Hauz Khas, New Delhi 110016, India
E-mail: pvarma@in.ibm.com

We present a general framework for software maintenance activities such as porting. The framework comprises a software engineering process with tool-based planning support. The process is designed to be iterative, with individual iterations identifying and fixing distinct porting issues and building and testing of software taking place regularly through the iterations. Overall planning of the iterations is formalized as path- planning problem in an abstract Cartesian space of program versions characterized by dialect variables. An optimal solution to the problem is derived based on its translation to a restricted Integer Linear Program capturing the problem constraints as a set of simultaneous linear equations. The solution allows individual dialect vertices to be visited more than once, but not the same edge, thereby ruling out looping behaviour. Problems without solution are identified as infeasible. Reliability of the software engineering process is enhanced by the ability to characterize program testability in different parts of the Cartesian space and to guide planned migration through more testable spaces while identifying the corresponding (effort) tradeoffs. Iteration planning uses the overall plan and related post-processor support to allow user latitude in local decisions and in fine-tuning the overall plan.

Keywords: reliable software engineering process, iterative software maintenance, software porting, planning, testability, analyze, fix, test, debug, quality assurance

Full Text () Retrieve PDF document (200603_07.pdf)

Received July 1, 2005; accepted November 24, 2005.
Communicated by Sung Shin.
*The preliminary version of this paper was presented at the Software Engineering Track of the ACM Symposium on Applied Computing, Santa Fe, New Mexico, March 13-17, 2005.