20.07.2015 Views

PhD Thesis - staffweb - University of Greenwich

PhD Thesis - staffweb - University of Greenwich

PhD Thesis - staffweb - University of Greenwich

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

APPENDIX 2 : Journal Paper "Case Study : An Incremental Approach to Re-Engineeringa Legacy FORTRAN C.F.D. Code in C++", Ewer J., Knight B. and Cowell D.,Advances in Engineering S<strong>of</strong>tware, Vol. 22, pp 153-168, 19955. An appraisal <strong>of</strong> the re-engineering technique usedThe following sections detail code and project statistics, give comparativesimulation results between the legacy and new systems, and provide an appraisal <strong>of</strong> the reengineeringtechniques employed in this case-study.Statistics associated with re-engineering CWNN:The following code statistics provide a crude comparison between the legacy andnew systems. This information should be regarded as being <strong>of</strong> academic interest only andnot necessarily typical <strong>of</strong> any other or similar re-engineering projects.- The legacy system consisted <strong>of</strong> 107 source files that contained 158 routines. There were22,450 Lines-Of-Code (LOC) excluding comments.- The re-engineered system has 4 source and 13 header files and has 395 routines includingclass member functions. There are 11,250 LOC in source files and 1,400 LOC in headerfiles.The project statistics (Table 1) indicate approximate durations <strong>of</strong> the ind ividualstages used during the re-engineering. The final stage (stage 9) has not been includedbecause perfective and adaptive maintenance is ongoing. The project durations aremeasured in Person-Weeks (PW). A Person-Week is defined as 5 work days for one systemdeveloper.Stage Description Duration (PW)- Background research into un-structured mesh CFD. 6- Project planning and learning to use tools. 3(1) Ensure data consistency and make data global. 3(2) Name and algorithm clarification. 2(3) Removal <strong>of</strong> code and simplification. 3(4) Ensure consistent use <strong>of</strong> control and replace logicals. 2(5) Translate from FORTRAN to C++. 2(6) File I/O modifications. 3(7) Implement data classes to replace arrays. 4(8) Create class member functions. 4Table 1 :Project statistics.Comparative timings and run-time behaviour between the legacy and new systems:Appendix 11.2 Page 142-20 20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!