As Tecnologias da Informação nas empresas são cada vez mais utilizadas por gestores e administradores, tornando-se fator indispensável para o sucesso das operações e, muitas vezes, para a sobrevivência. Na aquisição de um software que atenderá aos setores da empresa, não basta, apenas, ter os recursos financeiros disponíveis, também é necessário saber quais os tipos de software e como eles se relacionam. Esta lição tem o objetivo de apresentar a visão geral sobre os tipos de sistemas e, também, aprenderemos como os identificar e categorizar.
Fique ligado(a), pois, nesta lição, utilizaremos os termos “programas”, “sistemas”, “algoritmos”, “softwares” e “códigos” como sinônimos, isto é, nomes diferentes para a mesma coisa.
Imagine você trabalhando em uma empresa, sendo responsável pelo setor de informática. Suponha que você precise auxiliar os gestores na aquisição de softwares, para isso, é necessário realizar várias etapas, e o ponto inicial é saber quais os tipos de softwares disponíveis e como os categorizar. Por exemplo, caso seja uma empresa que atue no ramo de comércio, uma loja de equipamentos de informática, você pode pesquisar, na internet, soluções prontas que se adequem às necessidades da empresa, no entanto isso nem sempre será possível.
Muitas empresas possuem características e modo de gestão tão específicos que é necessária a contratação de uma empresa de software house ou uma fábrica de software (a qual desenvolve e comercializa, de forma customizada, programas de computadores). Mas, mesmo contratando uma empresa especializada, você precisará de todos os conhecimentos necessários para otimizar a solicitação. E quais são as informações necessárias? O que é essencial compreender, ao contratar o desenvolvimento de um software? Vamos descobrir?
A história do sistema operacional MS-DOS representa a situação mais icônica do uso de um software desenvolvido por uma empresa para uso restrito e, em seguida, adquirido por outra, a qual deu a ele novas aplicações, o tornando o sistema base das várias versões do Windows.
Você conhece o MS-DOS? Daremos uma pausa na leitura, a fim de o conhecer! Por meio de poucos comandos, você chegará até ele, será bem rápido. Aperte, no teclado, o Windows + R, agora, digite CMD. Aparecerá uma tela preta, certo? Pronto, esse é o MS-DOS.
Voltando à história do MS-DOS, em julho de 1981, a Microsoft adquiriu o sistema operacional QDOS, renomeando-o para MS-DOS, pelo valor de US$ 50 mil da empresa Seattle Computer Products. Era um sistema simples, com muitas limitações, e operava na linguagem dos processadores 8086. A Microsoft, empresa do jovem empreendedor Bill Gates e de seu amigo Paul Allen, adquiriu o sistema devido a um contrato de desenvolvimento de um sistema operacional para a IBM (uma enorme empresa de tecnologia). O MS-DOS foi licenciado à IBM em 1981 (para a utilização no IBM PC) e tornou-se o sistema de base da maioria dos computadores pessoais.
O sistema continuou sendo aprimorado pela Microsoft, ganhando várias versões. No lançamento do Windows, em 1985, a empresa permaneceu oferecendo suporte ao MS-DOS bem como atualizações do sistema, então, a partir deste momento, as novas cópias do MS-DOS passaram a ser parte integrante do Windows. Este simples MS-DOS gerou milhões de dólares para a Microsoft.
Podemos definir software como um programa possível de ser executado em equipamentos como: computadores, celulares, tablets, smart tv ou qualquer dispositivo capaz de executar instruções codificadas necessárias para transformar dados em informações. Os softwares são criados por meio de linguagens de programação, que é um conjunto padronizado de algoritmos. As linguagens são de alto nível (entendida pelo ser humano) ou de baixo nível (linguagem de máquina).
Os softwares são divididos em duas categorias básicas: aplicativo (programas de finalidades gerais e programas de aplicações específicas) e sistemas (programas de gerenciamento de sistemas e programas de desenvolvimento de sistemas).
Observe, a seguir, esta divisão, na Figura 1.
Figura 1 - Tipos de softwares
Fonte: o autor.
#PraCegoVer: representação de uma estrutura de hierarquia. De cima para baixo, o retângulo do nível 1 está identificado como “Software” e conectado a três retângulos do nível 2, identificados como “Aplicativo”, “Sistemas” e “Embarcados”. O retângulo aplicativo está conectado a dois retângulos do nível 3, identificados como “Programas de finalidades gerais” e “Programas de aplicações específicas”. O retângulo “Sistema” está conectado a dois retângulos do nível 3, identificados como “Programas de gerenciamento de sistemas” e “Programas de desenvolvimento de sistemas”.
O software aplicativo é um conjunto de programas criados à realização de tarefas ou de processos específicos relacionados, em geral, com o processamento de dados para a geração de informações.
Os softwares aplicativos com finalidades gerais são aqueles que possuem utilização abrangente. Por exemplo: planilha eletrônica, editor de texto, navegador de internet, jogos etc. Já os de finalidades específicas são aqueles desenvolvidos a determinado segmento de trabalho, por isso, as suas funções voltam-se, especificamente, à execução de determinadas tarefas. Por exemplo:
Administrativos:
contas a pagar, folha de pagamento, controle de produção, sistema de faturamento, controle de estoque, contabilidade etc.
Automação comercial:
contas correntes, caixas automáticos, reserva de passagens etc.
Técnico-científico:
sistemas de computação algébricos, como: Maple, MatLab, Geogebra, planejamento e controle de projetos, softwares de engenharia, como: AutoCad etc.
Automação industrial:
controle de processos, máquinas e equipamentos etc.
Apoio educacional:
tutoriais online, e-learning etc.
Espaciais e científicos:
meteorológicos, comunicação, teleprocessamento etc.
Estas categorias não são taxativas, ou seja, alguns itens podem ser estendidos ou suprimidos. Nos dias atuais, alguns softwares aplicativos estão disponíveis online, prontos para serem utilizados sem a necessidade de instalação no equipamento do usuário, além de executarem, muitas vezes, várias atividades, ao mesmo tempo. Por exemplo, o YouTube é um aplicativo disponível aos mais variados fins, nele, você pode ouvir música, assistir a aulas ou a filmes, fazer comunicação síncrona (ao vivo) e assíncrona (gravação).
Os softwares de sistema são aqueles que possibilitam ao usuário interagir com o computador e os seus periféricos. Eles são encarregados de fazer a comunicação entre o computador, que só entende linguagem de máquina, e o usuário. Esses softwares são a base para que outros softwares, como os de aplicação e os de programação, funcionem, isto é, são plataformas para rodar outros softwares.
O gerenciamento de sistemas (atualização e manutenção) é subdividido em:
Firmware: programas já instalados nos chips de computador que auxiliam no funcionamento adequado do equipamento. Exemplo: BIOS na ROM.
Drives de dispositivos: programas que permitem a instalação de um dispositivo de hardware. Exemplos: webcam, impressora, mesa digitalizadora etc.
Middleware: é uma camada de software entre o código do aplicativo e a infraestrutura de tempo de execução (plataforma de hardware e sistema operacional). Exemplos: Java, Ginga, .Net etc.
Utilitários: são empregados na manutenção do computador. Exemplos: antivírus, limpador e desfragmentador de disco etc.
Sistemas operacionais: uma plataforma entre o usuário e os componentes físicos de um computador (hardware). É o sistema responsável em controlar a execução de tarefas e programas, assim como o gerenciamento da memória, dos dispositivos e arquivos. Exemplos: Windows, MacOs, Android, Linux etc.
Os sistemas de desenvolvimento de sistemas são as ferramentas usadas pelo programador no desenvolvimento de novos softwares e programas. Usam diferentes linguagens de programação (C, Java, Python, Swift etc.) e abrigam compiladores, intérpretes e depuradores. Em lições futuras, abordaremos, com mais detalhes, o que isso significa.
Os softwares embarcados são executados em computadores que controlam dispositivos. Estes, geralmente, não são considerados computadores, nem aceitam softwares instalados pelo usuário. Exemplos típicos são: fornos de micro-ondas, aparelhos de TV, carros, aparelhos de DVD, telefones celulares e reprodutores de MP3. A propriedade principal que distingue os sistemas embarcados é a certeza de que nenhum software não confiável jamais será executado nele. Você não pode baixar novas aplicações para o seu forno de micro-ondas, pois todo software está na ROM. Isso significa que não há necessidade de proteção entre as aplicações, levando a algumas simplificações. Exemplos: QNX e VxWorks (TANENBAUM, 2000). O QNX e VxWorks são tipos de memórias ROM utilizadas na indústria de informática.
O projeto de aquisição de um software depende do alinhamento entre as áreas de TI e gestão da empresa. As necessidades de negócio, muitas vezes, divergem das necessidades técnicas do software. Esse alinhamento resulta em projetos transparentes, investimentos reais próximos aos estimados em fase de orçamento e proposta, e no atendimento às funcionalidades esperadas pela equipe, pelos gestores e usuários. O processo de escolha do software, da implementação e do suporte deve ser avaliado com critérios objetivos, pois é uma tarefa complexa, exigindo a participação de várias áreas.
Sobretudo, temos que lembrar de que de nada adianta um software sem as pessoas para utilizá-lo. Portanto, em projetos de software o segredo está em envolver sempre as pessoas em todas as etapas.
Na situação do case, aqui, apresentada, levantamos a hipótese de que você é um(a) analista e precisa auxiliar a sua empresa na compra de um software adequado, então, algumas questões surgiram. Apresento algumas dicas que poderão ser úteis nesta situação. Acompanhe, a seguir:
O que, realmente, você precisa?
O software será utilizado por quanto tempo? É uma aquisição em longo prazo?
Procure fornecedores ou clientes possíveis de serem parceiros no seu campo de atuação.
Escolha soluções que tenham flexibilidade.
Verifique se o sistema que está sendo adquirido tem maturidade de plataforma, ou seja, quanto tempo ele está no mercado e como é visto por seus clientes.
Como você pode perceber, a escolha de um software não depende, somente, de suas funcionalidades, valor e necessidades atuais da empresa. Agora, como estudante do curso de Análise e Desenvolvimento de Sistemas, pense de que forma você pode responder a essas questões, ao atuar em sua área de formação.
TANENBAUM, A. S. Sistemas Operacionais Modernos. 2. ed. São Paulo: Prentice Hall, 2000.