Как измерить зрелость программного компонента путем обработки номеров версий?

Я пытаюсь реализовать метрику, которая описывает, насколько зрелым / стабильным является программный компонент, глядя на то, сколько версий было сделано из него за определенный период времени (или с начальной даты).

Больше версий будет указывать на менее зрелый / стабильный компонент. Но это не будет точным: если смотреть на больший промежуток времени, компонент мог иметь много изменений в начале, но совсем немного в последнее время. Это указывает на стабильный компонент. Кроме того, нумерация версий, вероятно, должна быть учтена. Изменение с "1.4" на "2.0" должно быть более значительным, чем изменение с "1.4.1" на "1.4.2".

В двух словах: более старые изменения должны иметь меньшее значение, большее увеличение номера версии должно иметь большее значение.

Существует ли отраслевая стандартная весовая функция, которая позволила бы достичь желаемого результата в соответствии с этими критериями? Или я должен попытаться создать свой собственный?

1 ответ

Посмотрите на Семантическое Версионирование:

Given a version number MAJOR.MINOR.PATCH, increment the:  

MAJOR version when you make incompatible API changes,  
MINOR version when you add functionality in a backwards-compatible manner, and  
PATCH version when you make backwards-compatible bug fixes.  
Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Кроме того, я использую четвертое число REVISION, которое представляет собой SVN-ревизию пакета сборки, созданного из исходного кода этой ревизии. Я обновляю версии сборки моих компонентов с этим номером во время сборки, например:

2.0.3.xyz

Надеюсь это поможет.

Другие вопросы по тегам