Modular programming and the divide and conquer methodology