BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Quatro décadas de Engenharia de Software, e as mudanças estão chegando?

Quatro décadas de Engenharia de Software, e as mudanças estão chegando?

Favoritos

Em seu último blog, Jean Bezivin, professor emérito da Universidade de Nantes, reconstituiu a história da Engenharia de Software nas últimas quatro décadas o que o levou a ver mudanças radicais chegando. Jean percebeu três grandes rupturas que aconteceram na Engenharia de Software:

A primeira ruptura foi discutida na reunião da OTAN de Garmisch em outubro de 1968. O surgimento de sistemas complexos nos obrigou a perceber que o período do desenvolvedor individual (e isolado) havia acabado, e que o alvo eram "grandes sistemas de mais de 30.000 instruções, produzidos por mais de 25 desenvolvedores, em mais de 6 meses de tempo de desenvolvimento, com mais de um nível de gestão".

A segunda ruptura importante pôde ser observada no início dos anos 80 com a mudança do paradigma procedural para a programação orientada a objeto.

A terceira ruptura foi provocada pela iniciativa MDA da OMG em Novembro de 2000.

Cada ruptura parece ser caracterizada por alguma inadequação das práticas utilizadas com os problemas que a nossa indústria tentava resolver. Por exemplo, linguagens orientadas a objeto surgiram quando o paradigma procedural não conseguia facilmente descrever situações do mundo real, permitindo a reutilização de software em larga escala, ou permitindo o desenvolvimento de arquiteturas de software estáveis.

Hoje, ele vê novos fatores emergentes que têm o potencial de redefinir a Engenharia de Software. Por exemplo, "o programador usuário final", a especialização das tarefas na Engenharia de Software, a chegada rápida no mercado de grandes quantidades de aplicações de software nas chamadas lojas de aplicativos (Apple, Google, etc), a crescente diversidade de soluções tecnológicas e a necessidade de criar aplicações interoperáveis a um custo razoável, as novas evoluções tecnologias (por exemplo, a computação em nuvem). Para ele, estamos caminhando para um contexto em que:

haverá um número grandioso de aplicações que interagem em rápida evolução, muitas vezes desenvolvidas por pessoas diferentes em línguagens diferentes, e normalmente não serão desenvolvidas em um ciclo de vida clássico de desenvolvimento de software. Cada uma dessas aplicações tem um modelo de dados específico, um modelo de estado e um modelo de eventos.

A fim de prever essa(s) ruptura (s) que estão chegando, ele dá algumas dicas:

O que não varia e que pode ser notado nas práticas e nas rupturas da tecnologia é tudo que está frequentemente relacionado com questões de línguagens [como] ... o núcleo teórico e prático da Engenharia de Software é a Engenharia da Linguagem.

Ele conclui sua mensagem fornecendo alguns direcionamentos potenciais para a evolução das linguagens de programação:

A chave [...] provavelmente encontra-se na colaboração entre desenvolvedores e programadores usuários finais, mas será que precisamos inventar uma Engenharia de Software específica e um conjunto de práticas para os usuários finais?

Línguagens textuais são muito importantes, mas muitas das linguagens visuais estão surgindo e algumas linguagens oferecem uma sintaxe abstrata com várias sintaxes concretas, algumas vezes textuais, tabulares ou visuais. Essas línguagens são definidas não somente por suas gramáticas, mas também por metamodelos, esquemas, ontologias, etc.

Mais do que inventar novas linguagens, a dificuldade estará em estabelecer precisas e operacionais relações semânticas entre todas essas DSLs que irão constituir o núcleo das novas práticas de Engenharia de Software do século 21. Interoperabilidade de linguagens, de qualquer forma, ainda será uma parte importante do cenário atual.

Estamos diante de uma evolução da Engenharia de Software há muito tempo esperada ? Se sim, quando tudo isso começou ? Qual será a visão da Engenharia de Software daqui a 5 anos ?

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT