Поскольку основная часть системы написана на java, то результат представлен в виде промежуточного байт-кода (файлы .class). Часто используются jar-файлы, которые являются по сути обычными zip-архивами, содержащими тот же байт-код. Байт-код по своей структуре близок к ассемблеру и может быть прочитан и даже изменён. По меньшей мере можно использовать такие метрики, как объём нового/изменённого кода, количество новых классов, количество новых/изменённых методов и т.п. При желании можно попробовать восстановить исходный java-код или проанализировать сам байт-код: грубые расхождения между заявленной стоимостью работ и реальными затратами выйдут наружу.
Вот
здесь дан пример того, как командой javap, применённой к class-файлу, получить текст байт-кода.
Получить
примерный исходный код java можно с помощью
JD или
CFR или другим декомпилятором java.
С PHP и SQL вообще проблем быть не должно, они открытые. Нужен лишь человек, способный дать оценку "нововведениям".