Um software é composto por módulos, instruções, bibliotecas, que gera um programa executável que lê dados denominados “entradas” ou inputs ao final do processo de desenvolvimento, e este, quando executado, recebe algum tipo de “entrada” de dados (input), processa as informações e libera uma “saída” (output) como resultado deste processamento.