Sobre Espécies e Software: O Que é um Gráfico de Dependência?

Os softwares são o que há de mais semelhante aos seres vivos.

Com o desenvolvimento de tecnologias de maior nível de engenharia o homem se viu diante da imbricação de informação em seus desenvolvimentos. Os sistemas de informação se tornaram o coração de suas criações. Toda a dinâmica essencialmente migrou da estrutura física para a informação (software). Os modos de desenvolvimento para organizar essa informação ficaram mais sofisticados e isso se refletiu na estrutura dos sistemas. Por isso, através da análise da estrutura de um sistema, é possível inferir o método utilizado em sua constituição.

Em postagens anteriores mostramos que a lógica das nossas últimas tecnologias começa a se parecer cada vez mais com as formas do Sistema Natural (seres vivos e suas relações), o resultado é surpreendentemente positivo em comparação, o que justifica a inferência ao design na história de criação dos organismos biológicos.


Por Cornelius Hunter

Um artigo recente na revista BIO-Complexity, de autoria de Winston Ewert, usa uma abordagem de gráfico de dependência para modelar as relações entre as espécies. Essa ideia é inspirada na ciência da computação, que faz grande uso de gráficos de dependência para empacotamento de software e otimização da arquitetura de software.

Aplicativos de software complicados geralmente usam uma grande variedade de rotinas de software de baixo nível. Essas rotinas foram desenvolvidas, testadas e armazenadas em módulos para uso por aplicativos de alto nível. Quando isso acontece, o aplicativo herda o software de nível inferior e tem dependência desses módulos.

Um diagrama de design

Tais aplicativos são escritos em linguagens legíveis por humanos, como Java. Eles então precisam ser traduzidos para linguagem de máquina. A ferramenta de compilação executa a conversão e a ferramenta de compilação monta o resultado, juntamente com as rotinas de nível inferior, em um programa executável. Essas ferramentas usam gráficos de dependência para modelar o software, essencialmente criando um diagrama de projeto ou um blueprint que mostra as dependências, especificando os diferentes módulos de software que serão necessários e como eles estão conectados juntos.

Os gráficos de dependência também ajudam no design de software. Como eles fornecem um modelo da arquitetura de software, eles são úteis para projetar arquiteturas desacopladas e promover a reutilização de software.

Os gráficos de dependência também são usados ​​pelas chamadas equipes de “DevOps” para auxiliar no tempo de implantação no sequenciamento e na instalação dos módulos corretos para aplicativos corporativos.

Um modelo falhado

O que Ewert desenvolveu é um modelo para explicar o padrão de similaridades em diferentes organismos que imita como as aplicações de computador herdam o software de uma gama diversificada de módulos de nível inferior. Espécies parecem também usar módulos de nível mais baixo que executam uma gama diversificada de aplicações biológicas. Ewert estudou especificamente como os genomas incorporam várias famílias de genes que se agrupam em uma ampla gama de módulos genéticos e como os módulos genéticos alimentam uma gama diversa de genomas.

Superficialmente, à distância, o padrão de uso do módulo pode parecer similar à árvore evolucionária tradicional. Mas esse modelo falhou repetidamente à medida que os cientistas estudavam os caracteres das espécies mais de perto. A pesquisa inicial de Ewert sugere que os gráficos de dependência, por outro lado, poderiam fornecer um modelo muito superior¹ das relações entre as espécies e seu fluxo de informações genéticas.

Nota do tradutor ¹: Desconfio muito sobre ser “muito superior” ao modelo de árvore. Penso que os dois modelos tenham que ser combinados para que se satisfaça a melhor explicação. Em todo caso, como vimos no último texto, a configuração dos genomas, seja por dependência ou herança (árvore), favorecem a inferência ao design. Uma árvore evolutiva deveria apresentar ainda uma outra configuração.


Original: Cornelius Hunter. Of Species and Software: What Is a Dependency Graph? August 3, 2018.


1 Trackback / Pingback

  1. O Design Inteligente Faz Previsões ou Retrodições? » Portal TDI Brasil +

Faça um comentário

Seu e-mail não será publicado.


*