Structured Design: Fundamentals of a Discipline of Computer Program and Systems Design