it is a set of one or more programs designed to control the operations and extend the processing capabilities of computer system.
a collection of programs designed to operate, control and extend the processing capabilities of the computer itself
- describes the most important structures of the software system - identifies software system's components and connectors - defines relationships between these elements