Top Down And Bottom Up Approach In Software Engineering