Programming that produces programs with clean flow, clear design, and a degree of modularity or hierarchical structure.