"Make everything as simple as possible, but not simpler." Who are we to argue with Einstein? In this paper we discuss a strategic approach to problem solving and its application to complex situations. The strategy is termed "problem domain reduction" and has been successfully applied to the development and testing of a simulator for modeling slack line flow for use in an on-line leak detection system. While the concept of problem domain reduction is not new, it is a powerful strategic tool in the development of reasonably complex simulators and/or systems. The strategy allows you to focus on the essential and discard the unimportant. In doing so, insight into the underlying mechanisms is revealed whilst reducing the risk of being deceived by inconsequential artefacts. In this paper we describe the problem domain reduction process; the selection of suitable test cases and tools to assist in analysis and verification within the reduced domain; the development of prototype simulators (which in itself is a problem domain reduction); the interplay between development and testing and finally the incremental development leading to a full domain solution. Although the primary focus will be on the development of a simulator capable of modeling slack line flow, we will also discuss other areas where problem domain reduction has been utilized successfully to highlight the wide application of the strategy.
Firstly it is important to understand that the strategy of Problem Domain Reduction is nothing new: it is used, without reference to the name of the strategy, in many areas of application, by many people - every day. When faced with a complex problem, one's natural instinct is to simplify the problem. However, one has to avoid over-simplification as this will often lead to erroneous solutions to the problem. Formalizing the approach in the context of the development and analysis of a hydraulic simulator is beneficial, not least when one needs to provide a development plan with time scales and milestones. The first hurdle to overcome is often to justify the strategy. The strategy of Problem Domain Reduction can be broken down into a few simple steps:
Comprehension: Understanding the problem
Reduction: Reducing the problem domain
Solution: Solving the problem in the reduced domain
Testing: Testing the solution in the reduced domain
Extension: Extending the solution back to the full problem domain
Each of these steps may be extended to include sub-steps depending on the nature of the problem, but the core strategy remains unaltered.
The justification for using such an approach is that it provides clear and measurable steps on the development plan. Furthermore, it provides testing at the earliest opportunity in the development plan and therefore a key milestone. The frustration with this strategy is that success in testing in the reduced domain does not mean that the development is nearing completion - only that the most significant development has been successfully achieved.