  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.
