Entenda o Que é Software e Conheça os Diferentes Tipos Existentes

Tempo de leitura: 12 minutos

Computadores e celulares estão cada vez mais presentes em nossas vidas, mas você sabe o que é um software? Desenvolvido em 1948, começou a se inovar a partir da década de 1960, popularizando se até adquirir a importância que tem hoje.

Neste artigo vou falar sobre o software e os diferentes tipos existentes, continue lendo e saiba mais sobre:

História dos Softwares

Afinal, o Que são os Softwares?

Diferença Entre Softwares e Programas

Tipos de Softwares

Arquitetura

Execução

Qualidade e Confiabilidade

História dos Softwares

O trabalho de Ada Lovelace para o mecanismo analítico de Charles Babbage do século XIX é considerado a fundação da disciplina, embora os esforços de ambos matemáticos permanecessem teóricos apenas, já que a tecnologia dos dias de Babbage se mostrou insuficiente para construir seu computador.

A primeira teoria sobre software foi proposta por Alan Turing em seu ensaio de 1935, On Computable Numbers.

Os primeiros programadores de computador usaram código binário para instruir os computadores a realizar várias tarefas. Assim, tinham que inserir longas cadeias de código binário para informar ao computador quais dados armazenar.

Além disso, tinham que carregar as informações em computadores usando vários mecanismos tediosos, incluindo chaves de apertar ou furos em posições pré-definidas em cartões e carregar esses cartões perfurados em um computador. Se um único erro fosse cometido, todo o programa poderia ter que ser recarregado desde o início.

O primeiro software contendo memória eletrônica foi executado com êxito, em 1948, na universidade de Manchester. Escrito por Tom Kilbum ficou conhecido como bebê.

De fato, a inovação popular no desenvolvimento de linguagens de computador começou a partir do final da década de 1950. Nesta época começaram a se desenvolver as linguagens como Fortran, COBOL e BASIC.

Essas linguagens permitiram que os programas fossem especificados de forma abstrata; independente dos detalhes precisos da arquitetura de hardware do computador. No entanto, foram destinadas apenas para a especificação de cálculos numéricos.

Shareware e Freeware

Nos primórdio da informática os softwares eram gratuitos e livremente distribuídos em formato de código fonte, pois havia poucos computadores e o valor real estava na máquina e não nos programas. Mais tarde com o crescimento da indústria de tecnologia da informação ele começou a ser vendido separadamente.

As empresas do setor começaram a buscar mecanismos de proteção de propriedade intelectual como direitos autorais e patentes, para se defender da acirrada concorrência e garantir suas vantagens competitivas.

Com a expansão da microinformática popularizaram-se alternativas de comercialização e distribuição de software em código binário e, portanto, impossíveis de serem modificados: shareware e freeware.

Os softwares shareware são gratuitos por um período de tempo definido por seu proprietário. Após este tempo, ele deixa de funcionar ou opera em modalidade restrita.

Os softwares freeware podem ser usados e distribuídos gratuitamente, sem limitação de tempo. O freeware não impõe nenhum pagamento ao seu autor, para seu uso. Algumas vezes é adotado como parte de uma estratégia de marketing para promover produtos complementares.

Afinal, o Que são os Softwares?

O software é a parte lógica do computador tem como função fornecer instruções para o hardware. É um agrupamento de comandos escritos em uma linguagem de programação para criar ações dentro do programa e permitir seu funcionamento.

Uma coleção de dados ou instruções de computador que lhe dizem como trabalhar, em contraste com o hardware físico do qual o sistema é construído, que realmente realiza o trabalho.

Cada ação é determinada por uma sequência e cada sequência se agrupa para formar o programa em si. Estes comandos se unem, criando um programa complexo.

Em ciência da computação e engenharia de software, o software de computador é toda informação processada por sistemas de computador, programas e dados. Todo software precisa de um hardware para ser usado, não sendo possível a utilização de um sem o outro.

Linguagem dos Softwares

A maioria dos softwares é escrita em linguagens de programação de alto nível, que são mais fáceis e mais eficientes para os programadores usarem, porque são mais próximas que as linguagens de máquina das linguagens naturais.

Idiomas de alto nível são traduzidos para linguagem de máquina, usando um compilador ou um interpretador ou ainda uma combinação dos dois.

Outra forma de escrever um software é em linguagem assembly de baixo nível. Ela tem forte correspondência com as instruções de linguagem de máquina do computador e é traduzida em linguagem de máquina usando um montador.

Composição do Software

Um software é composto por diversas funções, bibliotecas e módulos gerando um programa executável ao final do processo. Este quando executado, recebe algum tipo de entrada de dados (input), processa as informações segundo uma série de algoritmos ou sequência de instruções lógicas e libera uma saída (output) como resultado desse processamento.

Um software bem desenvolvido é criado pela área da engenharia de software. Incluí não apenas o programa de computador em si, mas também manuais, especificações e configurações.

Diferença Entre Softwares e Programas

O software é um conjunto de programas; o programa é um código ou um conjunto de instruções que executa alguma tarefa em seu computador.

O Software Como um Programa de Computador

Um programa de computador é composto por uma sequência de instruções. Esta sequência é interpretada e executada por um processador ou por uma máquina virtual. Em um programa correto e funcional, essa sequência segue padrões específicos que resultam em um comportamento desejado.

Entretanto, ele pode ser executado por qualquer dispositivo capaz de interpretar e executar as instruções de que é formado.

Quando um software está representado como instruções que podem ser executadas diretamente por um processador, dizemos que está escrito em linguagem de máquina. Sua execução também pode ser intermediada por um programa interpretador, responsável por interpretar e executar cada uma de suas instruções.

Uma categoria especial e notável de interpretadores são as máquinas virtuais, como a máquina virtual Java, que simulam um computador inteiro, real ou imaginário.

A Construção de um Programa de Computador

Programas de computador são escritos em linguagem de programação, pois estas foram projetadas para aproximar-se das linguagens usadas por seres humanos. Raramente a linguagem de máquina é usada para desenvolver um programa.

Atualmente existe uma quantidade muito grande de linguagens de programação, dentre as mais populares no momento são Java, Visual Basic, C, C++, PHP, dentre outras.

Tipos de Softwares

Todo computador moderno tem uma variedade de programas, que fazem diversas tarefas. Cada um destes programas foi criado com um software diferente. No entanto, cada um destes softwares segue as especificações de diferentes tipos que podem ser:

Software de Sistema

Um conjunto de informações processadas pelo sistema interno de um computador que permite a interação entre usuários e periféricos do computador através de uma interface gráfica. Seu objetivo é separar usuário e programador de detalhes do computador que esta sendo usado.

Inclui o firmware, drivers de dispositivo, sistema operacional e uma interface gráfica que, em conjunto, permitem ao usuário interagir com o computador e seus periféricos.

Software de Programação

Um conjunto de ferramentas que permitem ao programador desenvolver sistemas informáticos usando linguagens de programação e um ambiente visual de desenvolvimento integrado.

Inclui entre outros editores de texto, compiladores, intérpretes, linkers, depuradores e ambientes de desenvolvimento integrado.

Software de Aplicativo

Podem ter uma abrangência de uso de larga escala, muitas vezes em âmbito mundial; nestes casos, os programas tendem a ser mais robustos e mais padronizados. No entanto, os programas escritos para um pequeno mercado têm um nível de padronização menor.

Os softwares de aplicação permitem aos usuários uma ou mais tarefas específicas, em qualquer campo de atividade, que pode ser automatizado no computador. Além disso, pode abranger diversas áreas de atividades como, arquitetura, contabilidade, educação e medicina.

Inclui entre outros; aplicações de controle e sistemas de automação industrial, aplicação de informática para escritório; educacional, de negócios, banco de dados, telecomunicações, vídeo games, médico e software de cálculo numérico e simbólico.

Software Livre

Este tipo de software dá liberdade ao utilizador, permitindo que ele o estude modifique e compartilhe com outras pessoas. Para isso é necessário que ele tenha acesso ao código fonte e possa mudá-lo conforme as suas necessidades.

Arquitetura

A arquitetura de um sistema de software é uma metáfora, análoga a arquitetura de um edifício.

A arquitetura de software, é sobre fazer escolhas estruturais fundamentais que são caras de mudar uma vez implementadas. Escolhas de arquitetura de software incluem opções estruturais especificas de possibilidades no design dos softwares.

Para satisfazer a necessidade de confiabilidade, pode se optar por ter várias cópias do programa redundantes e independentemente produzidas e executar essas cópias em hardware independente enquanto os resultados da verificação cruzada.

Os usuários costumam ver as coisas de maneira diferente dos programadores. As pessoas que usam computadores modernos de uso geral costumam ver três camadas de software executando uma variedade de tarefas: plataforma, aplicativo e software do usuário.

Softwares de Plataforma

Inclui o firmware, drivers de dispositivo, um sistema operacional e normalmente, uma interface de usuário que, no total, permite que um usuário interaja com o computador e seus periféricos.

Softwares de Aplicação

Incluem suítes de escritório e videogames, é frequentemente adquirido separado do hardware do computador. Às vezes, os aplicativos são empacotados com o computador, mas isso não altera o fato de que eles são executados como aplicativos independentes. Embora geralmente sejam adaptados para plataformas especificas.

Software Escrito Pelo Usuário

O desenvolvimento do usuário final adapta os sistemas para atender às necessidades específicas dos usuários. Inclui modelos de planilhas e modelos de processadores de texto. Até mesmo os filtros de email são um tipo de software de usuário. Os usuários o criam por si próprios e ignoram sua importância.

Execução

O software deve ser carregado no armazenamento do computador (como o disco rígido ou a memória), depois o computador pode executá-lo. Isso envolve a passagem de instruções do software aplicativo, através do software do sistema, para o hardware que recebe a instrução como código de máquina.

Cada instrução faz com que o computador execute uma operação – movendo dados, realizando uma computação ou alterando o fluxo de controle das instruções.

O movimento de dados é de um lugar na memória para outro. Às vezes, envolve a movimentação de dados entre a memória e os registros que permitem o acesso de dados em alta velocidade na CPU.

Mover dados, especialmente grandes quantidades, pode ser caro. Então, isso às vezes é evitado usando ponteiros para dados. As computações incluem operações simples, como incrementar o valor de um elemento de dados variáveis. Computações mais complexas podem envolver muitas operações e elementos de dados juntos.

Qualidade e Confiabilidade

A qualidade do software é muito importante, especialmente para softwares comerciais e de sistema, como o Microsoft Office, o Microsoft Windows e o Linux. Se o software estiver com defeito (com bugs), ele pode excluir o trabalho de uma pessoa, travar o computador e fazer outras cosas inesperadas.

Falhas e erros são chamados de bugs, que são descobertos durante os testes alfa e beta. O software também pode ser vítima do que é conhecido como envelhecimento do software, a degradação progressiva do desempenho resultante de uma combinação de erros invisíveis.

Muitos bugs são descobertos e eliminados por meio de testes de software. No entanto, estes testes raramente eliminam todos os erros, alguns programadores dizem que “todo programa tem pelo menos mais um bug” (Lei de Lubarsky).

Conclusão

Hoje existe todo tipo de software desempenhando as mais diversas funções. Podem ser softwares complexos como os grandes sistemas desenvolvidos para resolver questões empresariais ou ainda softwares menores como os plugins que ampliam ou modificam a funcionalidade de outro software e aplicativos.

Os softwares desenvolveram grande importância na informática e fazem parte do dia a dia de todos nós. Novos softwares são desenvolvidos com a finalidade de ajudar em diferentes atividades facilitando a nossa vida.

Referências:

  1. Wikipédia, Software, disponível neste link.
  2. Wikipédia, Software, disponível neste link.
  3. Wikipédia, Software, Architecture disponível neste link.
  4. Significados, Significado de Software, disponível neste link.
  5. Yure Pacievitch, Infoescola, disponível neste link.
  6. Wikipédia History of Software, disponível neste link.
  7. Cezar Taurion, Notícias Uol, História do Software disponível em: <https://noticias.uol.com.br/mundodigital/softwarelivre/2004/09/15/ult2449u3.jhtm>.
  8. Yahoo Respostas, Qual a diferença entre software, programas e aplicativos, disponível em: <https://br.answers.yahoo.com/question/index?qid=20080916074029AArlmQ7>.

Imagem Pixabay.

Comments

comments