Software System Design based on Patterns for Newton-Type Methods
This work addresses the challenge for researchers and engineers who need to develop original optimization techniques, offering a reusable framework that reduces development time and errors, though it is incremental in applying design patterns to a specific domain.
The authors tackled the problem of inefficient and error-prone development of custom optimization methods by proposing a novel methodology based on design patterns to simplify and accelerate scientific software creation, resulting in a highly reusable optimization framework for Newton-type methods as measured by Martin's metric.
A wide range of engineering applications uses optimisation techniques as part of their solution process. The researcher uses specialized software that implements well-known optimisation techniques to solve his problem. However, when it comes to develop original optimisation techniques that fit a particular problem the researcher has no option but to implement his own new method from scratch. This leads to large development times and error prone code that, in general, will not be reused for any other application. In this work, we present a novel methodology that simplifies, fasten and improves the development process of scientific software. This methodology guide us on the identification of design patterns. The application of this methodology generates reusable, flexible and high quality scientific software. Furthermore, the produced software becomes a documented tool to transfer the knowledge on the development process of scientific software. We apply this methodology for the design of an optimisation framework implementing Newton's type methods which can be used as a fast prototyping tool of new optimisation techniques based on Newton's type methods. The abstraction, reusability and flexibility of the developed framework is measured by means of Martin's metric. The results indicate that the developed software is highly reusable.