Common data structures associated with procedurally-oriented software,
such as Fortran COMMON blocks, are translated into object-oriented (OO)
classes. Procedurally-oriented software modules are reduced in complexity
by extracting an appropriate number of sub-modules from the original
source code so that the original module and each extracted module is
below a predetermined complexity level, if possible. The original module
and extracted modules are assigned to an object-oriented class based upon
a measure of each modules' association to the respective class' data
members, where the assigned modules are then translated into
object-oriented methods. This approach greatly reduces overall system
development time and costs by automatically generating maintainable
object-oriented code based upon translated procedurally-oriented source
code. Man-hours are further saved by automatically documenting the newly
generated object-oriented classes and by automatically generating test
suite files for use in verifying and troubleshooting the automatically
generated object-oriented classes.