an abstract representation of all possible sequences of events (paths) in the execution through a  component  or system.
models all executions of a program by describing control structures
the specific problem the software you;re working on is trying to solve