PROGRAM DESIGN METHODS