Dr Paulus Lahur1
1CSIRO, Clayton, Australia
The intention of this presentation is to raise awareness in software development for reusability. It has the potential to save significant time and effort in software development within research organisation such as CSIRO. When a reusable software is developed for a certain project, other projects can also reap the benefit. In this presentation, the term reusability is applied to both the entire software as well as its parts. Thus the software can be reused for broad applications of the same type. Furthermore, its parts can also be reused as building blocks in other software.
The method for developing reusable software is in the same line of existing best practices in software development. More important than method is the mindset when designing the code. Under time constraint, the temptation is great to start coding right after one or two iterations of design. Designing for reusability means doing one more iteration and asking whether other people can reuse the software and its parts for other purposes. For example, in the case study presented here, this thought process has lead to the addition of scripting capability.
As a result, even before the software is reused by others, the benefit is already apparent to the original developer, because the software is now more flexible than had it been implemented without consideration for reusability.
Given that everybody benefits from software designed with reusability, this approach needs to be put into wider practice. Note that the study case presented here is still ongoing.
The author has been working in CSIRO as IMT Scientific Computing staff for five years.