Questão 2
Autor: EAUFBA ADM203 | Publicado: 2011-09-18T13:43:00-07:00

O que é código fonte? O que é código objeto? E software open source ? Qual a importância desses conceitos na hora de contratar o desenvolvimento de um sistema automatizado? 

Código-fonte
&nbsp;&nbsp; O arquivo que contém os comandos e rotinas que formam um programa. Este código é então compilado, gerando o arquivo binário que será executado. Ao comprar um programa qualquer, recebemos apenas os binários, que permitem instalar e executar o programa, mas não o código fonte, que permitiria alterá-lo ou entender como ele funciona.
&nbsp;&nbsp; Em programas comerciais, o código fonte é cuidadosamente guardado, mas existe um movimento crescente de desenvolvimento de softwares livres, onde o código fonte é distribuído junto com o programa, o que permite a qualquer um com conhecimentos de programação alterálo, corrigir bugs ou adicionar novos recursos, desde que sejam mantidos os créditos para o criador original. O movimento de software livre inclui o Linux e a maior parte dos aplicativos desenvolvidos para ele.
&nbsp;&nbsp;&nbsp;&nbsp;Código Objeto

&nbsp;&nbsp;&nbsp;Código objeto ou arquivo objeto é o nome dado ao código resultante da compilação do código fonte. Para cada arquivo de código fonte é gerado um arquivo com código objeto, que posteriormente é "ligado" aos outros, através de um linker, resultando num arquivo executável ou biblioteca. Quem faz o código fonte é um programador, que tem seus dados lidos por um compilador, sendo assim transformado em código objeto. Tal código só é entendido pelo computador.

&nbsp;&nbsp;&nbsp; Software Open Source

&nbsp;&nbsp; Já o termo código aberto, ou open source em inglês é também conhecido por software livre. Trata-se de software que respeita as quatro liberdades definidas pela Free Software Foundation, inspiradas no projeto Debian, nomeadamente em "Debian Free Software Guidelines (DFSG)". Qualquer licença de software livre é também uma licença de código aberto (Open Source), a diferença esta na sua apresentação. Tais conceitos mostram-se importantes no próprio dia a dia. Num processo de compra, por exemplo, a compra de um código fonte permite ao consumidor realizar modificações de acordo com suas vontades. Contudo, uma vez comprando apenas um código objeto, o comprador ficará dependente do fornecedor. Ao comprar um código fonte, por exemplo, se compra também uma independência maior.

&nbsp;&nbsp;&nbsp; Controlar a qualidade de sistemas de software que é um grande desafio devido à alta complexidade dos produtos e às inúmeras dificuldades relacionadas ao processo de desenvolvimento, que envolve questões humanas, técnicas, burocráticas, de negócio e políticas. Idealmente, os sistemas de software devem não só fazer corretamente o que o cliente precisa, mas também fazê-lo de forma segura, eficiente e escalável e serem flexíveis, de fácil manutenção e evolução.&nbsp;&nbsp;&nbsp;&nbsp; Por isso, a importância de se conhecer os conceitos acima, logicamente que de maneira mais aprofundada, na hora de se contratar o desenvolvimento de um sistema automatizado, é o fato de que é a partir desses conceitos que o contratante poderá saber se está comprando um produto que lhe será útil e se será de qualidade.
&nbsp;&nbsp;&nbsp;