1.1 Software: definições, contextos e história

“No mundo moderno, tudo é software.” (VALENTE, 2019)

“O mundo moderno não poderia existir sem o software.” (SOMMERVILLE, 2011)

Mas afinal, o que é software?

Muito se confunde software com programa de computador. “Softwares são programas de computador e documentação associada.” (SOMMERVILLE, 2011) Já um programa de computador é composto por linhas de código, dados e regras de negócio que permitem um computador resolver problemas ou executar tarefas.

“Muitas pessoas pensam que software é simplesmente outra palavra para programas de computador. No entanto, quando falamos de engenharia de software, não se trata apenas do programa em si, mas de toda a documentação associada e dados de configurações necessários para fazer esse programa operar corretamente.” (SOMMERVILLE, 2011)

“Um bom software deve prover a funcionalidade e o desempenho requeridos pelo usuário; além disso, deve ser confiável e fácil de manter e usar.” (SOMMERVILLE, 2011)

E, como surgiram os primeiros softwares?

A máquina analítica foi o primeiro computador mecânico de uso geral, idealizado pelo matemático inglês Charles Babbage em 1837 e foi concebida para realizar cálculos automáticos complexos via cartões perfurados. Em 1843, ao traduzir um artigo sobre a máquina analítica, Ada Lovelace adicionou notas detalhadas, incluindo um método para calcular números de Bernoulli, considerado o primeiro programa de computador da história.

Os primeiros softwares “executáveis" surgiram na metade do século XX como instruções manuais, em código de máquina, para programar computadores como o ENIAC (Electronic Numerical Integrator and Computer) criado entre 1943 a 1946, durante a Segunda Guerra Mundial, com o objetivo principal de acelerar cálculos balísticos complexos para o exército dos EUA.

As primeiras linguagens de programação evoluíram de códigos binários para linguagens de alto nível. O Plankalkül (1942-1945) é considerado a primeira linguagem de alto nível, enquanto Assembly (1947) simplificou o código de máquina. FORTRAN (1957) foi criada pela IBM e se tornou a primeira linguagem comercial de alto nível amplamente adotada.

Com o avanço das linguagens de programação, o ser humano passou a escrever instruções de forma mais fácil, e assim os softwares começaram a escalar. Começaram a surgir sistemas operacionais, aplicações empresariais, etc. Além disso, avanços em compiladores, sistemas operacionais e práticas de engenharia também foram fundamentais.

Para Valente (2019), empresas de qualquer tamanho dependem dos mais diversos sistemas de informação para automatizar seus processos. Governos também interagem com os cidadãos por meio de sistemas computacionais, por exemplo, para coletar impostos ou realizar eleições. Empresas vendem, por meio de sistemas de comércio eletrônico, uma gama imensa de produtos, diretamente para os consumidores. Software está também embarcado em diferentes dispositivos e produtos de engenharia, incluindo automóveis, aviões, satélites, robôs, etc. Sommerville (2011), acrescenta ainda que, a área de entretenimento, incluindo a indústria da música, jogos de computador, cinema e televisão, faz uso intensivo de software.

Para Sommerville (2011) há dois tipos de produtos de software:

- Produtos genéricos: sistemas stand-alone produzidos por uma empresa e vendidos no mercado para qualquer cliente interessado. Incluem também as chamadas aplicações verticais, projetadas para um nicho específico, como sistemas para bibliotecas, sistemas para contabilidade, sistemas para clínicas médicas, etc.

- Produtos sob encomenda: são sistemas encomendados por um cliente em particular. A empresa desenvolve o sistema com base nas especificações desse cliente.

Bibliografia:

Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020.

SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.