BT

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

por jean-Jacques Dubray , traduzido por Marcelo Costa em 22 Nov 2010 |

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 ?

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

Esse futuro já foi há 10 anos atrás by Bruno Laturner

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.
Web, SOA.

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?
Desenvolvimento Ágil.

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.
Domain-Driven Design.


Só mesmo duvido do futuro das linguagens visuais (e IDEs RAD). Enquanto não resolverem o problema de manutenabilidade deles, não dá para ter algo a longo prazo com qualidade.

Concordo com você Bruno by Flavio Cattapan

Acho que o Jacques ta meio isolado, será que ele não tem internet ? rs

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber menssagens dessa discussão

2 Dê sua opinião

Conteúdo educacional

Feedback geral
Bugs
Publicidade
Editorial
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2013 C4Media Inc.
Política de privacidade
BT