O que e codigo fonte? O que e codigo objeto? E software open source ? Qual a importancia desses conceitos na hora de contratar o desenvolvimento de um sistema automatizado? Codigo-fonte O arquivo que contem os comandos e rotinas que formam um programa. Este codigo e entao compilado, gerando o arquivo binario que sera executado. Ao comprar um programa qualquer, recebemos apenas os binarios, que permitem instalar e executar o programa, mas nao o codigo fonte, que permitiria altera-lo ou entender como ele funciona. Em programas comerciais, o codigo fonte e cuidadosamente guardado, mas existe um movimento crescente de desenvolvimento de softwares livres, onde o codigo fonte e distribuido junto com o programa, o que permite a qualquer um com conhecimentos de programacao alteralo, corrigir bugs ou adicionar novos recursos, desde que sejam mantidos os creditos para o criador original. O movimento de software livre inclui o Linux e a maior parte dos aplicativos desenvolvidos para ele. Codigo Objeto Codigo objeto ou arquivo objeto e o nome dado ao codigo resultante da compilacao do codigo fonte. Para cada arquivo de codigo fonte e gerado um arquivo com codigo objeto, que posteriormente e "ligado" aos outros, atraves de um linker, resultando num arquivo executavel ou biblioteca. Quem faz o codigo fonte e um programador, que tem seus dados lidos por um compilador, sendo assim transformado em codigo objeto. Tal codigo so e entendido pelo computador. Software Open Source Ja o termo codigo aberto, ou open source em ingles e tambem 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 licenca de software livre e tambem uma licenca de codigo aberto (Open Source), a diferenca esta na sua apresentacao. Tais conceitos mostram-se importantes no proprio dia a dia. Num processo de compra, por exemplo, a compra de um codigo fonte permite ao consumidor realizar modificacoes de acordo com suas vontades. Contudo, uma vez comprando apenas um codigo objeto, o comprador ficara dependente do fornecedor. Ao comprar um codigo fonte, por exemplo, se compra tambem uma independencia maior. Controlar a qualidade de sistemas de software que e um grande desafio devido a alta complexidade dos produtos e as inumeras dificuldades relacionadas ao processo de desenvolvimento, que envolve questoes humanas, tecnicas, burocraticas, de negocio e politicas. Idealmente, os sistemas de software devem nao so fazer corretamente o que o cliente precisa, mas tambem faze-lo de forma segura, eficiente e escalavel e serem flexiveis, de facil manutencao e evolucao. Por isso, a importancia de se conhecer os conceitos acima, logicamente que de maneira mais aprofundada, na hora de se contratar o desenvolvimento de um sistema automatizado, e o fato de que e a partir desses conceitos que o contratante podera saber se esta comprando um produto que lhe sera util e se sera de qualidade. Mostre graficamente os principais componentes de um computador, descrevendo sucintamente cada um desses componentes. Unidade Central de Processamento (CPU) E o elemento primordial na execucao das funcoes de um computador (circuito integrado