VisualFoundation supports two different design approaches: the optimize approach and the specify approach. The optimize approach lets the program search for the best reinforcement pattern while the specify approach let you input a specific reinforcement pattern for the program to check.