Группа исследователей, специализирующихся на биологической эволюции, применила инструменты для анализа развития природной экосистемы для рассмотрения эволюции открытого проекта Debian.
Использовав накопившиеся с 1993 года данные о числе, составе и взаимосвязи пакетов во всех релизах Debian GNU/Linux, было проанализировано изменение таких параметров, как зависимости между пакетами и проблемы с совместимостью приложений. Также была отслежена история жизни пакетов, учитывающая такие события как добавление новых пакетов и дистрибутив и удаление устаревших. Для моделирования проявления зависимостей и несовместимостей был использован метод установки пакетов в случайном порядке, что позволяло накопить статистику по наиболее частым зависимостям и несовместимостям между пакетами.
После проведения анализа было выявлено несколько интересных тенденций. Например, модульность системы росла экспоненциально до момента выхода релиза Debian 3.0 (Woody), после чего произошел резкий перелом - модульность дистрибутива стабилизировалась на одном уровне для всех последующих релизов. Подобная стабилизация произвела большое влияние на функциональность, определяющую степень успешности установки случайно выбранных пакетов - начиная с выпуска Debian 3.1 (Sarge) данный показатель стал существенно увеличиваться.
В качестве причины такого поведения предполагается появление большого временного разрыва между выпущенными в то время релизами (до Debian 3.0 релизы выходили преимущественно раз в год, в то время как между выходом версий 3.0 и 3.1 прошло три года, а между 3.1, 4.0, 5.0 и 6.0 - по два года). Со временем также наблюдается рост размера и числа модулей ("кластеров" пакетов, интенсивно связанных зависимостями). Поскольку эта тенденция сохранятся, число конфликтов между "кластерами" пакетов сокращается, но число конфликтов между отдельными пакетами в "кластере" - возрастает.
В результате проведения эксперимента было показано, что существует определённый компромисс между повторным использованием кода (зависимости пакетов) и возникновением несовместимостей программных пакетов. Для моделирования процесса определения данного компромисса оказались пригодны стандартные биологические модели в которых зависимости между пакетами выглядели как взаимодействие хищников и жертв, а конфликты между пакетами сопоставлялись с биологическими видами, находящимися в условиях соперничества, исключающего взаимоотношения.
В целом, ключевой особенностью модульности является возможность установки большего числа программ в системе, так как конфликты между отдельными модулями (кластерами пакетов) сокращаются, а ситуация когда конфликт может заблокировать установку и работу целого модуля становится всё более редкой.