Nos dias atuais, um software tem os mesmos parâmetros de um hardware (por exemplo, um custo elevado, uma necessidade de processos para controlar a qualidade, uma necessidade de procedimentos de validação, um escopo de utilização, etc.). Um software tem uma característica adicional, a de ser difícil diagnosticar um mal funcionamento.