Explain the concept of top-down design for a program.
Top down Design:
A top-down approach is fundamentally breaking down a system to gain insight into its compositional sub-systems. In a top-down approach an overview of the system is first formulated, specifying but not detailing any first-level subsystems. Every subsystem is then refined in greater detail, sometimes in many additional subsystem levels, until the whole specification is decreased to base elements. In short the top down approach means decomposing of the solution procedure into subtasks. This approach produces a readable and modular code that can be easily understood and maintained.