characteristics of structured approach to programming