Modeling of complex systems for such areas as control or, diagnosis is sometimes mathematically unmanageable due to non-linearities or lack of sufficient knowledge about the system. Data driven models, such as neural networks, are often very successful with these cases. There are problems, however, where the data themselves are very sparse and cannot be relied on to build intrinsic models. These are the types of problems we are addressing. If some prior knowledge about the system exists, it is typically possible to cast it in the form of fuzzy rules. Most uncertainty about the system is then relegated to the definition of all relevant membership functions. The parameters which define these membership functions can then be coded into a "chromosome" string, and a genetic algorithm can be applied to improve the quality of the membership functions. The fitness measure is provided by the closeness in match between the results of the fuzzy modeling system and any data obtained from the real system. This technique differs from data driven models such as neural networks in the fact that very few data points are required to achieve good generalization. As an example, we have applied this technique to a diagnostic problem. Given sensor readings from a panel that is subject to stresses and given, a few fault instances on the same panel, we build and refine a fuzzy system that can locate new surface faults with good accuracy.