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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>PhD</strong> <strong>Thesis</strong> by John Ewer.interface and dynamic visualisation indicate that Object Oriented design and the event drivenparadigm are necessary implementation strategies. These architectural changes are desirablefrom the point <strong>of</strong> view <strong>of</strong> the final delivery system but they have large implications for theapproach used and difficulties to overcome in order to re-engineer the legacy s<strong>of</strong>tware into anappropriate form.In order to perform the s<strong>of</strong>tware reverse engineering <strong>of</strong> the legacy s<strong>of</strong>tware it was necessary toidentify the complete calling architecture, common procedural code and code duplication as wellas any "inline" methods. The full design and algorithmic methods used within the legacy s<strong>of</strong>twarehad to be extracted for use in the new system in the most concise and self-consistent formpossible to support extended research.It was also necessary to determine if the legacy s<strong>of</strong>tware contained any computational objectswhich could be created within the new system to encapsulate concepts, related data andmethods. The creation <strong>of</strong> abstract types provided significant flexibility and ease <strong>of</strong> maintenancewithin the target system. There was also an improvement in general code clarity when objectshad intuitive and self-consistent meanings. Often the use <strong>of</strong> alternative data structures couldsupport lateral research thinking because new ways <strong>of</strong> problem solving become apparent due tothe nature <strong>of</strong> the objects themselves. The potential problem <strong>of</strong> using objects was the potentiallysignificant overheads that have been noted in some Object Oriented (OO) implementations[ANGUS91] [DUBOIS-PELERIN93]. It has already been noted that performance is frequentlyan important consideration when choosing a CFD code and it is vital that the imposition <strong>of</strong>Object Orientation should not drastically affect performance. Angus et al [ANGUS94] hadnoticed quite a large overhead for Object Orientation when applied to lower "processing" levels<strong>of</strong> a "flutter analysis" simulation code. Their approach to overcoming these overheads was tokeep the lower levels using simple data structures but to group the simple structures andmethods at quite a high level <strong>of</strong> the calling architecture so that the performance hit <strong>of</strong> ObjectOrientation was minimal. Such an approach was considered for the re-engineering <strong>of</strong> the legacyCFD code but there are a number <strong>of</strong> potential Object Oriented exploitations that would not bepossible with this half-way house re-structuring. Care was taken to avoid the potential problems[WEBSTER] <strong>of</strong> using an Object Oriented development by investigating the possible problems3-39

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

Saved successfully!

Ooh no, something went wrong!