stepwise refinement
Java
A divide and conquer approach to programming, in which a complex problem is recursively divided into smaller, more manageable, sub-problems. This approach to program design is often used with structured programming languages.