1.8 Os avanços da Engenharia de Software com o surgimento da Internet

Sommerville (2011) afirma que, o desenvolvimento de sistemas baseados em Web gerou importantes avanços nas linguagens de programação e reuso de software.

1.8.1 Como surgiu a Internet?

Durante a Guerra Fria (1947 a 1991) o governo dos EUA precisavam de uma forma de comunicação que fosse descentralizada e à prova de ataques. A primeira versão da internet foi a ARPANET, criada pelo departamento de defesa dos EUA. Ela conectava computadores de universidades e permitia troca de dados à distância.

O grande salto da internet veio entre os anos 1970 a 1980, com o surgimento do protocolo TCP/IP, que permitiu conectar várias redes diferentes criando um padrão universal.

Entre os anos de 1980 a 1990 a internet se expandiu. Primeiro foram as universidades, depois as empresas e depois o público em geral que passaram a utilizá-la. A internet que usamos hoje surgiu com Tim Bernes-Lee, que criou o protocolo HTTP, HTML e navegadores.

1.8.2 O impacto da Internet na Engenharia de Software

Com o avanço da internet, sistemas Web poderiam ser acessados através de um navegador, levando ao desenvolvimento de uma enorme quantidade de novos produtos de software que ofereciam serviços inovadores e que eram acessados através da internet. (SOMMERVILLE, 2011)

O software era implantado em um servidor Web. Isso ajudou a reduzir custos, uma vez que se tornou muito mais barato alterar e atualizar o software, além de economizar com o desenvolvimento de interface de usuário. Consequentemente, muitas empresas mudaram seus sistemas de software para a Web.

A internet também ajudou a desenvolver a ideia de software como serviço. "Foi proposto que o software normalmente não executará em computadores locais, e sim em “nuvens computacionais” acessadas pela Internet. (…) Uma nuvem computacional consiste em um grande número de sistemas computacionais interligados, os quais são compartilhados entre vários usuários. Os usuários não compram o software, mas pagam de acordo com o uso.” (SOMMERVILLE, 2011)

A computação em nuvem (cloud computing) consiste na disponibilização de recursos computacionais, como servidores, armazenamento e bancos de dados, pela internet, permitindo a implantação de sistemas escaláveis, flexíveis e com boa relação custo-benefício, sem a necessidade de gerenciar infraestrutura física.

No entanto, essa mudança na organização de software causou mudanças na maneira como os sistemas Web são projetados (SOMMERVILLE, 2011). Por exemplo:

- O reúso de software tornou-se a abordagem dominante para a construção de sistemas Web;
- Sistemas Web devem ser desenvolvidos e entregues incrementalmente;
- Interfaces de usuários são restringidas pela capacidade dos navegadores;

Os conceitos de engenharia de software também são aplicados a sistemas Web por meio de processos estruturados, como: definição de requisitos, projeto de sistemas, implementação, testes, implantação e manutenção. Essas práticas garantem que os sistemas Web sejam escaláveis, confiáveis, seguros e de fácil manutenção.

Construir sistemas Web é aplicar princípios de engenharia de software em um ambiente distribuído.

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.