separation of concerns
Putting each kind of decision, such as input, rules and output, in its own part of the code.
Separation of concerns divides a program so that each part handles one kind of decision; a change to that kind of decision then touches only that part, which can be tested alone.
See also