Por diversas vezes encontramos os termos software, programa e sistema usados como se significassem a mesma coisa.
Já parou para pensar sobre isso? sabe quais as diferenças e semelhanças?
Como diferenciamos software x programa x sistema?
Nesse texto eu explico a diferença desses três termos, que apesar de serem usados intercambiavelmente, não significam a mesma coisa.
O que é um programa?
Segundo Tanenmbaum, um computador digital é uma máquina que pode resolver problemas para as pessoas executando instruções fornecidas.
Uma sequência de instruções que descreve como realizar uma tarefa é chamada programa.
Segundo Puga, um programa é um conjunto de instruções que dizem ao computador o que deve ser feito.
Dessa forma, um programa nada mais é do que um conjunto de instruções que servem para dizer ao nosso computador o que ele deve fazer.
O que é um software?
Segundo Pressman, um software é um composto por:
-um conjunto de instruções ( ou seja, aqueles programas que falamos no item anterior) que, quando executadas, produzem a função e o desempenho desejados;
-estruturas de dados que possibilitam que os programas manipulem corretamente as informações;
-documentos que descrevem a operação e o uso dos programas.
Segundo Sommerville
-Software não é apenas o programa, mas também toda a documentação associada e os dados de configuração para fazer com que eles operem corretamente.
Assim, podemos pensar em software como algo mais abstrato, intangível, não palpável que envolve não só as instruções para o computador propriamente ditas, mas todas as informações para fazê-lo funcionar.
De forma geral, um Bom Software (de boa qualidade) é aquele que entrega as funções e desempenho que o usuário espera. Além disso, ele deve ser manutenível, usável, dentre outras características de qualidade.
O que é um sistema?
Se um programa é um conjunto de instruções e software é um conjunto de instruções + documentação e dados, como diferenciar sistema?
Segundo, Sommerville: um sistema é um conjunto de componentes inter-relacionados que funcionam juntos para atingir um certo objetivo. Essa definição de sistema é conhecida em algumas outras áreas como engenharia de sistemas e outras.
Exemplos de sistemas que encontramos no nosso dia a dia:
– sistemas de computador;
– sistemas operacionais;
– sistema educacional;
– sistema de governo;
– sistema de abastecimento;
– sistema bancário;
– sistema elétrico, etc.
Quando falamos de um sistema de software estamos falando de mais do que um único componente (mais do que um único programa ou software).
O sistema é formado por um determinado número de programas separados e arquivos de configurações para eles, podendo incluir documentação específica para descrever a estrutura do sistema, documentação de usuário, etc;
O fato de um sistema ter documentação é uma das principais diferenças entre desenvolvimento amador (sem documentação) e profissional (outros vão usar, então precisa de explicação em bons documentos).
Resumindo
Software x Programa x Sistema são termos muitas vezes usados de forma intercambiável, porém que para a computação, e em especial Engenharia de Software, possuem significados bem diferentes.