Two types of software systems:
procedural: plug and chug
transactional: states and transitions
. . . but, of course, most systems are composites.