Home | CV | Research | Publications   


Recently, software engineering (SE) researchers have devoted more attention to the development of computational science and engineering (CSE) software. CSE software addresses critically important problems. In CSE software, Fortran is still widely used. Due to the growing complexity of the problems being addressed through CSE, the procedural programming style available in a language like Fortran 77 is no longer sufficient. As a result, many developers have begun using an object-oriented (OO) approach to effectively implement the complex data structures used by CSE software. By including full support fo OO constructs, the Fortran 2003 language standard has influenced the advent of several OO CSE packages.

One important problem faced by the maintainers of CSE software is the lack of adequate documentation, specifically documentation of the design. The lack of documentation may cause other problems during software evolution. For instance, without knowledge of the original design, software maintainers may not be able to ensure that as the software evolves it continues to conform to the original plan.

Existing reverse engineering tools either do not support OO Fortran or, for those that do (e.g., Doxygen), they do not provide the full set of documentation required by developers. Therefore, we developed a tool ForUML that automatically reverse engineers the necessary design documentation based on UML diagrams from OO Fortran code.

ForUML will provide the following benefits to CSE developers who use OO Fortran (the target of our work):
  1. The extracted UML class diagrams should support software maintenance throughout the software development process; and
  2. Tool support should reduce training time and speed up the learning curve for applying SE practices in CSE software development. For instance, ForUML will help developers perform refactoring activities by allowing them to evaluate the results of the refactoring visually via UML diagrams rather than manually via code inspection.
Download ForUML