System software consists of several programs that directly control, integrate and manage the individual hardware components of a computer system. These include operating systems, device drivers, middleware, utility software and shells/windowing systems. System software provides an interface between the user and computer components and insulates applications programmers from hardware details. Application software includes programs designed for end users, such as word processors, database programs and spreadsheets. It resides above system software.