We can classify the software applications for mathematical problems after some criteria:
Actual CAS (Computer Algebra Systems) like Mathematica, Maple, Reduce, Axiom, MathCAD are general problem solvers which permit symbolic computations, and, also, numerical computations (especially in the case when an analytic solution can not be found) of the problem solutions. To design a CAS for any mathematical problem is a very hard task. The base idea in the actual CAS is to construct a kernel which solve any simple problem and to use special library functions and procedures for more complicated problems. These packages of dedicated function can be seen as problem dedicated software.