Numerical computation forms a substantial part of the total of world computing, and, as a result, large amounts of money are spent on the production, modification and maintenance of scientific software. A methodology based on an abstract data-type technique for algorithmic design has the potential to reduce numerical software development costs. This paper describes the abstract data-type development of GEM2, a package for solving two-dimensional single/coupled real/complex elliptic partial differential equations using the global-element method. We show that the abstract design of the GEM2 package, together with the use of an extensible implementation language (Algol 68), yields a family of packages able to handle a variety of problems but based on a single source code. Development and maintenance costs are reduced by this approach; we show that, at least in this case, run time efficiency is unimpaired.