Supported by AITO. These pages are currently maintained by Alex Potanin |
|
Tool Support for Migration of Legacy Software Systems to Object Oriented Platforms
3986 Dawnview Crescent Victoria, BC V8N5M8 Canada tel: 250-721-8788 fax: 250-721-7292 jmartin@csr.csc.uvic.ca Keywords:analysis/design frameworks language concepts software engineering migration
Abstract:The evolution of the Internet and in particular of electronic commerce on the Internet boosted the acceptance of Java as the programming language for the World Wide Web with the Java Virtual Machine (JVM) as the virtual hardware platform.In order to stay competitive in today's market place, many businesses have to move some of their mission critical legacy applications to web based and network centric platforms. Because of its wide acceptance as programming language on this kind of platforms, Java is quite obviously the language of choice for the new systems. The size and complexity of the legacy applications to be moved to the new platform usually make it infeasible to redesign and rewrite the applications from the ground up, but require selected parts of the application to be migrated incrementally to the new platform, and therefore to Java. In my research, I investigate problems that arise during the migration of legacy systems written in C to Java. By its design, Java forces the developer to program using object-oriented concepts. In contrast, C does not have native support for any object-oriented concepts. My work focuses on how automated tools can be used to aid the programmer in the migration process. Current migration tools are able to transliterate a lot of C code to Java as long as it does not make use of C language features that are not present in Java, such as pointers and unions. My objective is to provide tools that take the automation further by determining if and in what way these features were used in the implementation of structures that may be expressed more elegantly using object-oriented language features of Java. Currently, I am working on methods to discover and document extension and specialization relations among data types in C source code by analyzing casts between these data types. A migration tool will transform or aid the programmer in the transformation of these implicit hierarchies in the C source into explicit class hierarchies in Java. Other issues to be addressed will be the mapping of primitive data types, the transformation of data and function pointers, the identification of criteria to be used for grouping related functions in the C source code into Java classes, the mapping of C calling conventions to Java, and the need to explicitly specify type conversions in Java that are performed implicitly by the C compiler.
The participant will apply for the upcoming ECOOP PhD Workshop.
HTML3 JAVA
Last modified on Mon Aug 15 14:59:24 2005 |