software can also be described as a collection of routines, rules and symbolic languages that direct the functioning of the hardware . software is capable of performing specific tasks,as opposed to hardware which only perform mechanical tasks that they are mechanically designed for. practical computer systems divide software systems into three major groups: