Em tecnologia, especialmente em informática (independentemente de plataforma), é dito de um produto que este possui compatibilidade reversa,[carece de fontes?]compatibilidade descendente[1] ou retrocompatibilidade quando é capaz de assumir o lugar de um produto mais antigo, interagindo com outros produtos que foram desenhados para funcionar com a versão anterior.[2]
A retrocompatibilidade é uma característica essencial no design de sistemas para a criação de sistemas sustentáveis, reutilizáveis e integrados. A retrocompatibilidade de um programa de software é garantida por meio de atualizações realizadas pela empresa que desenvolveu o programa. A nova versão do software deve ser capaz de interagir com o ambiente antigo, ou seja, deve ser retrocompatível com a versão anterior. A retrocompatibilidade é essencial não apenas para a continuidade do funcionamento sem interrupções, mas também para a sobrevivência do software no mercado e tornou-se uma característica essencial no design de produtos e na configuração de sistemas [3] .
Definição
A compatibilidade reversa é uma relação entre dois componentes, em vez de ser atributo de apenas um deles. Mais genericamente, os seguintes critérios precisam ser preenchidos:
Há um componente servidor "S" que provê a funcionalidade de I.
Há um componente cliente "C" que depende de S via I.
Um novo componente servidor "S2" é criado e possui uma funcionalidade maior que a de S e é exibido por uma nova interface "I2".
Todas as funções de I são também fornecidas por I2. Em outras palavras, I é um subconjunto de I2.
Quando estes critérios são preenchidos, S2 é reversamente compatível com S porque ele ainda dá suporte à interface I e portanto, o cliente C pode ser alternado para o uso de S2 e ainda operar de modo correcto.
Exemplos
Um sistema computacional é compatível reversamente se ele é capaz de funcionar com softwares ou acessórios desenhados para o sistema que deve substituir.
Outros exemplos de compatibilidade reversa em software:
O Microsoft Word 2000 possui compatibilidade reversa com o Word 97 devido ao facto de que pode ler e gravar ficheiros no formato do Word 97, entendendo-se que as características exclusivas do Word 2000 não se aplicam ao Word 97 (ou seja, não há "compatibilidade ascendente").
Acrescentando-se hardware externo apropriado, muitos consoles podem se tornar compatíveis reversamente. Isto inclui:
O Atari 5200 pode executar jogos do Atari 2600 acrescentando-se um "Atari VCS Cartridge Adapter".
O Colecovision pode executar jogos do Atari 2600 acrescentando-se o "Expansion Module #1".
O Intellivision pode executar jogos do Atari 2600 acrescentando-se o "System Changer".
A retrocompatibilidade também se aplica aos sistemas de hardware. Os sistemas de manufatura inteligente combinam equipamentos de fabricação existentes com sensores, robôs e sistemas de manuseio de materiais, utilizando conceitos e tecnologias como Sistemas Ciberfísicos, Internet das Coisas (IoT), Computação em Nuvem, entre outros. Quando um sistema de manufatura automatizado é configurado com a mais recente tecnologia de IoT, é fundamental garantir a retrocompatibilidade com o sistema atual. Para isso, é necessário estabelecer uma arquitetura bem estruturada, escalável, retrocompatível e segura, que torne a implementação de IoT viável [3].
Uma diferença importante entre a configuração de sistemas de software e a configuração de sistemas de hardware é que as instalações de hardware costumam ter uma vida útil muito mais longa, de 10 anos ou mais, em contraste com os aproximadamente três anos dos sistemas de software. Isso ressalta a relevância da retrocompatibilidade com sistemas legados, não apenas na integração de sistemas de software, mas também na integração de sistemas de hardware[3].
Sistemas e componentes retrocompativeis versus não retrocompativeis
Um estudo de caso publicado em 2023 demonstrou que, quando a retrocompatibilidade é considerada no design de um sistema, o desempenho é superior em comparação com abordagens que não a levam em conta[3]. Para provar isso, a retrocompatibilidade foi incorporada àum modelo matemático que usou configuração modular de sistemas computacionais cuja complexidade é conhecida por ser NP Completo. A configuração modular de sistemas é definida como o design de um sistema que também é construída a partir de outros componentes modularizados por meio de interfaces padronizadas. Não apenas componentes, mas também produtos podem ser integrados através de interfaces padronizadas. A pesquisa cita como exemplo um laptop com Windows, que pode projetar sua tela em uma smart TV via HDMI (com fio) ou via Miracast (sem fio). O HDMI é uma interface física, enquanto Miracast é uma interface não física. Isso demonstra que, conforme a tecnologia avança, surgem variantes das interfaces padronizadas com diferentes versões de uma mesma interface. Muitas dessas interfaces oferecem suporte à retrocompatibilidade, o que significa que uma nova versão de uma interface ainda pode ser retrocompativel.
O modelo matemático proposto pode ser amplamente aplicado a sistemas eletrônicos que frequentemente tem suas interfaces padronizadas e retrocompativeis devido a organizações de padronização como o Instituto de Engenheiros Eletricistas e Eletrônicos e a Comissão Eletrotécnica Internacional. Interfaces padronizadas permitiram que alguns sistemas mecânicos, como sistemas de freios de bicicletas e rodas, sejam facilmente atualizados para novas versões.