Os softwares podem ser diferenciados pelo seu formato e distribuição. O tipo de software que é de fácil acesso e que
um desenvolvedor pode fazer alteração em seu código-fonte, além de poder distribuir essa versão alterada do
software, desde que o programador respeite as licenças daquela aplicação, é conhecido como