Nesta aula você vai saber o que é software, conhecendo também uma perspectiva não convencional.
Um software é um conjunto de programas de computadores, em suas diversas formas (código fonte, objeto, executável, APIs, scripts, etc.) e toda a sua documentação associada.
Um programa é um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real.Os produtos de software podem ser desenvolvidos para um cliente em particular (Software personalizado, sob encomenda) ou para o mercado geral (Software genérico ou COTS – Commercial Off-The Shelf).
O software é um produto conceitual e lógico. Isto significa que o software não é um produto material, ele um produto ou artefato virtual. Ele apenas existe na mente das pessoas envolvidas com o seu desenvolvimento e utilização.
Exemplo
Para exemplificar esta perspectiva de software como artefato, vejamos o exemplo exemplo de um programa trivial que, com pequenas alterações no programa, mas sem alterar a essência do algoritmo, pode ser visto como aplicações de software de distintas. Vejamos o seguinte trecho de interação entre o usuário (U) e o sistema (S).
S: Forneça um número:
U: 5.3
S: Você deve digitar apenas números inteiros:
U: 5
S: Forneça outro número:
U: 8
S: O resultado é -3
Observando a interação do usuário com o sistema podemos concluir que o software realizou uma subtração. Assim, a funcionalidade deste software é realizar subtrações de dois números inteiros. Vejamos, agora o algoritmo que está por trás deste software.
escreva("Forneça um Número:");Vejamos agora o que acontece se modificarmos as linhas 1, 6 e 9 deste algoritmo para
leia A;
enquanto A não for inteiro faça
escreva(Você deve digitar apenas números inteiros:)
leia A;
escreva("Forneça outro Número:");
leia B;
C = A - B;
escreva("O resultado é ", C);
escreva("Forneça o valor de venda");
escreva("Forneça o valor de compra");
escreva("O lucro é",C);
Para o programador muito pouca coisa mudou, mas para o usuário deste sistema este software agora é visto como uma aplicação de cálculo de lucros de vendas. As alterações no programa foram bastante pequenas, mas produziu um efeito significativo. A perspectiva de software como artefato deve considerar como o usuário vê a aplicação. Os modelos conceituais da funcionalidade do software são distintos. Desta forma, temos software distintos com aplicações em domínios distintos. O programa nos fornece uma visão de funcionamento. O usuário possui apenas a visão de funcionalidade.
Podemos modificar as mesmas linhas do programa para:
escreva("Salário Bruto");
escreva("Descontos");
escreva("Salário líquido,C);
que produz um novo software.
Como este exemplo podemos entender melhor que embora o software seja um programa, ele precisa ser considerado como um artefato. Nestes exemplos, temos artefatos virtuais diferentes para programas com um mesmo algoritmo.
Para maiores informações, consulte o material de aula (em PDF).
Comentários
Ótimo texto.