O que é um software? Exemplos!
O software é um conjunto de instruções, dados ou programas usados para operar computadores e executar tarefas específicas. É o oposto do hardware, que descreve os aspectos físicos de um computador. O software é um termo genérico usado para se referir a aplicativos, scripts e programas que são executados em um dispositivo. Pode ser considerado como a parte variável de um computador, enquanto o hardware é a parte invariável.
O que é um software?
As duas principais categorias de software são softwares de aplicativos e software do sistema. Um aplicativo é um software que preenche uma necessidade específica ou executa tarefas. O software do sistema é projetado para executar o hardware de um computador e fornece uma plataforma para aplicativos executados em cima.
Leia também
Outros tipos de software incluem software de programação, que fornece aos desenvolvedores de software de ferramentas de programação; Middleware, que fica entre software e aplicativos do sistema; e software de driver, que opera dispositivos de computador e periféricos.
Software inicial foi escrito para computadores específicos e vendido com o hardware que correu. Na década de 1980, o software começou a ser vendido em disquetes e, posteriormente, em CDs e DVDs. Hoje, a maioria dos softwares é adquirida e baixada diretamente pela Internet. O software pode ser encontrado em sites de fornecedores ou sites de provedor de serviços de aplicativo.
Quais os tipos de software?
Entre as várias categorias de software, os tipos mais comuns incluem os seguintes:
1. Software de aplicação
O tipo mais comum de software, software de aplicativo é um pacote de software de computador que executa uma função específica para um usuário ou, em alguns casos, para outro aplicativo. Um aplicativo pode ser autônomo, ou pode ser um grupo de programas que executam o aplicativo para o usuário. Exemplos de aplicativos modernos incluem Office Suites, software gráfico, bancos de dados e programas de gerenciamento de banco de dados, navegadores da Web, processadores de texto, ferramentas de desenvolvimento de software, editores de imagens e plataformas de comunicação.
2. Software de sistema
Esses programas de software são projetados para executar os programas de aplicativos e hardware de um computador. O software do sistema coordena as atividades e funções do hardware e do software. Além disso, controla as operações do hardware do computador e fornece um ambiente ou plataforma para todos os outros tipos de software funcionar. O sistema operacional é o melhor exemplo de software do sistema; Ele gerencia todos os outros programas de computador. Outros exemplos de software do sistema incluem o firmware, tradutores de linguagem de computador e utilitários do sistema.
3. Software de driver
Também conhecido como drivers de dispositivo, este software geralmente é considerado um tipo de software de sistema. Os drivers de dispositivos controlam os dispositivos e os periféricos conectados a um computador, permitindo que eles executem suas tarefas específicas. Cada dispositivo que é conectado a um computador precisa de pelo menos um driver de dispositivo para funcionar. Exemplos incluem software que vem com hardware não padrão, incluindo controladores de jogos especiais, bem como o software que permite hardware padrão, como dispositivos de armazenamento USB, teclados, fones de ouvido e impressoras.
4. Middleware
O termo middleware descreve software que media entre o software de aplicativo e sistema ou entre dois tipos diferentes de software de aplicativo. Por exemplo, o middleware permite que o Microsoft Windows fale com o Excel e o Word. Também é usado para enviar uma solicitação de trabalho remoto a partir de um aplicativo em um computador que tenha um tipo de sistema operacional, para um aplicativo em um computador com um sistema operacional diferente. Também permite que aplicativos mais recentes funcionem com os legados.
5. Software de programação
Os programadores de computadores usam software de programação para escrever código. Programação de software e ferramentas de programação permitem desenvolvedores para desenvolver, escrever, testar e depurar outros programas de software. Exemplos de software de programação incluem montadores, compiladores, depuradores e intérpretes.
Conceito do software na prática
Todo o software fornece as instruções e computadores de dados precisam trabalhar e atender às necessidades dos usuários. No entanto, os dois tipos diferentes – software de aplicativo e software do sistema – funcionam de maneiras distintas.
1. Software de aplicativo
O software de aplicativo consiste em muitos programas que executam funções específicas para usuários finais, como redações de relatórios e sites de navegação. Os aplicativos também podem executar tarefas para outros aplicativos. Aplicações em um computador não podem ser executadas por conta própria; Eles exigem o sistema operacional de um computador, junto com outros programas de software de sistema de suporte, para funcionar.
Esses aplicativos desktop são instalados no computador de um usuário e usam a memória do computador para realizar tarefas. Eles ocupam espaço no disco rígido do computador e não precisam de uma conexão com a Internet para o trabalho. No entanto, os aplicativos de desktop devem aderir aos requisitos dos dispositivos de hardware em que eles são executados.
Aplicativos da Web, por outro lado, exigem apenas acesso à Internet ao trabalho; Eles não confiam no software de hardware e sistema para serem executados. Consequentemente, os usuários podem iniciar aplicativos da Web de dispositivos que possuem um navegador da Web. Como os componentes responsáveis pela funcionalidade do aplicativo estão no servidor, os usuários podem iniciar o aplicativo do Windows, Mac, Linux ou qualquer outro sistema operacional.
2. Software de sistema
O software do sistema fica entre o hardware do computador e o software do aplicativo. Os usuários não interagem diretamente com o software do sistema, conforme ele é executado em segundo plano, lidando com as funções básicas do computador. Este software coordena o hardware e o software de um sistema, para que os usuários possam executar softwares de aplicativos de alto nível para executar ações específicas. O software do sistema executa quando um sistema de computador inicializa e continua funcionando enquanto o sistema estiver ligado.
Desenvolvimento e implementação de software
O ciclo de vida de desenvolvimento de software é uma estrutura que os gerentes de projeto usam para descrever as etapas e tarefas associadas ao projeto de software. Os primeiros passos do ciclo de vida de design estão planejando o esforço e analisando as necessidades dos indivíduos que usarão o software e a criação de requisitos detalhados. Após a análise inicial dos requisitos, a fase de design tem como objetivo especificar como cumprir os requisitos do usuário.
O próximo passo é a implementação, onde o trabalho de desenvolvimento é concluído e, em seguida, o teste de software acontece. A fase de manutenção envolve quaisquer tarefas necessárias para manter o sistema em execução.
O design do software inclui uma descrição da estrutura do software que será implementada, modelos de dados, interfaces entre os componentes do sistema e potencialmente os algoritmos que o engenheiro de software será usado.
O processo de design de software transforma os requisitos do usuário em um formulário que os programadores de computadores podem usar para fazer a codificação e implementação de software. Os engenheiros de software desenvolvem o projeto de software iterativamente, adicionando detalhes e corrigindo o design à medida que o desenvolvem.
Tipos de design de software
Os diferentes tipos de design de software incluem os seguintes:
1. Projeto arquitetônico
Este é o design fundamental, que identifica a estrutura geral do sistema, seus principais componentes e seus relacionamentos uns com os outros usando ferramentas de design arquitetônico.
2. Projeto de alto nível
Esta é a segunda camada de design que se concentra em como o sistema, junto com todos os seus componentes, pode ser implementado em formas de módulos suportados por uma pilha de softwares. Um design de alto nível descreve as relações entre o fluxo de dados e os vários módulos e funções do sistema.
3. Design detalhado
Esta terceira camada de design concentra-se em todos os detalhes de implementação necessários para a arquitetura especificada.
Como manter a qualidade do software?
Medidas de qualidade de software se o software atender aos seus requisitos funcionais e não funcionais.
Requisitos funcionais identificam o que o software deve fazer. Eles incluem detalhes técnicos, manipulação de dados e processamento, cálculos ou qualquer outra função específica que especifique o que um aplicativo pretende realizar.
Requisitos não funcionais – Também conhecidos como atributos de qualidade – determinam como o sistema deve funcionar. Requisitos não funcionais incluem portabilidade, recuperação de desastres, segurança, privacidade e usabilidade.
O teste de software detecta e resolve problemas técnicos no código-fonte de software e avalia a usabilidade geral, o desempenho, a segurança e a compatibilidade do produto para garantir que ele atenda aos seus requisitos.
As dimensões da qualidade do software incluem as seguintes características:
Acessibilidade. O grau em que um grupo diversificado de pessoas, incluindo indivíduos que exigem tecnologias adaptativas, como reconhecimento de voz e lupa de tela, podem usar confortavelmente o software.
Compatibilidade. A adequação do software para uso em uma variedade de ambientes, como com diferentes operadores operacionais, dispositivos e navegadores.
Eficiência. A capacidade do software para se apresentar bem sem desperdiçar energia, recursos, esforço, tempo ou dinheiro.
Funcionalidade. Capacidade de software de realizar suas funções especificadas.
Instalação. A capacidade do software a ser instalado em um ambiente especificado.
Localização. Os vários idiomas, fusos horários e outros recursos que um software pode funcionar.
Mantenabilidade. Quão facilmente o software pode ser modificado para adicionar e melhorar recursos, corrigir erros, etc.
Desempenho. Quão rápido o software é executado sob uma carga específica.
Portabilidade. A capacidade do software a ser facilmente transferida de um local para outro.
Confiabilidade. A capacidade do software de executar uma função necessária sob condições específicas para um período de tempo definido sem erros.
Escalabilidade. A medida da capacidade do software de aumentar ou diminuir o desempenho em resposta a mudanças em suas demandas de processamento.
Segurança. A capacidade do software de proteger contra acesso não autorizado, invasão de privacidade, roubo, perda de dados, software malicioso, etc.
Testabilidade. Quão fácil é testar o software.
Para manter a qualidade do software, uma vez implantada, os desenvolvedores devem adaptá-lo constantemente para atender aos novos requisitos do cliente e lidar com problemas que os clientes identificam. Isso inclui melhorar a funcionalidade, corrigir bugs e ajustar o código de software para evitar problemas. Quanto tempo dura um produto no mercado depende da capacidade dos desenvolvedores de acompanhar esses requisitos de manutenção.
Manutenção de software
Quando se trata de realizar manutenção, existem quatro tipos de alterações que os desenvolvedores podem fazer, incluindo:
Corretivo. Os usuários geralmente identificam e relatam bugs que os desenvolvedores devem corrigir, incluindo erros de codificação e outros problemas que mantêm o software de atender seus requisitos.
Adaptativo. Os desenvolvedores devem fazer alterações regularmente em seu software para garantir que ele seja compatível com a alteração de ambientes de hardware e software, como quando uma nova versão do sistema operacional sai.
Perfectivo. Essas são mudanças que melhoram a funcionalidade do sistema, como melhorar a interface do usuário ou ajustar o código de software para melhorar o desempenho.
Preventivo. Essas alterações são feitas para evitar o software de falhar e incluir tarefas, como reestruturação e otimização de código.
Licenciamento e patentes de Software
Uma licença de software é um documento juridicamente vinculativo que restringe o uso e a distribuição de software.
Normalmente, as licenças de software fornecem aos usuários o direito a uma ou mais cópias do software sem violar os direitos autorais. A licença descreve as responsabilidades das partes que entram no contrato e podem fazer restrições sobre como o software pode ser usado.
Os termos e condições de licenciamento de software geralmente incluem o uso justo do software, as limitações de responsabilidade, garantias, isenções de responsabilidade e proteções se o software ou seu uso infringem os direitos de propriedade intelectual dos outros.
Licenças normalmente são para software proprietário, que continua sendo propriedade da organização, grupo ou indivíduo que o criou; ou para software livre, onde os usuários podem executar, estudar, alterar e distribuir o software. O Open Source é um tipo de software onde o software é desenvolvido colaborativamente, e o código-fonte está disponível gratuitamente. Com licenças de software de código aberto, os usuários podem executar, copiar, compartilhar e alterar o software semelhante ao software livre.
Nas últimas duas décadas, os fornecedores de software se afastaram de vender licenças de software em uma base única para um modelo de assinatura de software-as-a-service. Os fornecedores de software hospedam o software na nuvem e disponibilizam-se aos clientes, que pagam uma taxa de assinatura e acessa o software pela Internet.
Embora os direitos autorais possam impedir que os outros copiem o código de um desenvolvedor, um copyright não pode impedi-los de desenvolver o mesmo software independentemente sem copiar. Uma patente, por outro lado, permite que um desenvolvedor impeça outra pessoa usando os aspectos funcionais do software que um desenvolvedor afirma em uma patente, mesmo que essa outra pessoa desenvolva o software de forma independente.
Em geral, o software mais técnico é, mais provável pode ser patenteado. Por exemplo, um produto de software pode ser concedido uma patente se criar um novo tipo de estrutura de banco de dados ou aprimorar o desempenho geral e a função de um computador.
Ficou alguma dúvida? Deixem nos comentários suas perguntas!
Sobre o autor
Quando André entrou na faculdade em 2004, notebooks eram ainda muito caros. Para anotar as informações, buscou opções, encontrando no Palm Zire 72 um aparelho para ajudá-lo a registrar informações das aulas. Depois, trocou por um modelo de celular com teclado, Qtek quando o 2G e o 3G ainda engatinhavam no Brasil. Usou o conhecimento adquirido na pesquisa de diferentes modelos para prestar consultoria em tecnologia a diversas empresas que se adaptavam para o mundo digital. André passou ainda por um Samsung Omnia, um Galaxy Note II, e hoje continua um entusiasta de smartphones, compartilhando neste site tudo que aprendeu.
Veja também
5 motivos para atualizar aplicativos instalados
Como remover o root do Android e jailbreak do iPhone?
Como configurar o meu aparelho?
Como atualizar meu Android? Tem versão mais nova para meu telefone?