Это важная вещь, так как они всё время путаются. Что же делать? Думал я - думал, и наконец придумал. Ну, придумал-то я давно, ещё несколько месяцев назад для библиотек, здесь только немного изменил...
Во-первых, надо обеспечить неизменность конкретной версии программы. Как у физических вещей. Например, номер (серия) транзистора или микросхемы однозначно их определяет. Транзистор мы менять не можем, даже если очень хочется. Если хочется - тогда надо разрабатывать новую серию. Или статья в газете или журнале (да и любое литературное произведение). Его же нельзя менять - произведение. Можно только писать новое. "Рукописи не горят". А программы - ещё как горят, если есть исходный текст.
Итак, любой более-менее законченный вариант программы обзываем версией и больше его не меняем. Если хотим изменить - делаем новую версию, на основе этой (копируем, а потом уже редактируем копию).
Называть версию можно по-разному. Общепринятый вариант - номер версии и номер подверсии (два числа через точку). При незначительном изменении меняем номер подверсии, при значительном - номер версии. Два этих номера вместе обычно и называют "версией".
Я думаю, в информации о версии обязательно должна присутствовать также дата её "фиксации", то есть дата, после которой её уже нельзя редактировать.
Итак, вводим понятия: программа, программный комплекс, версия, номер версии, информация о версии, дата фиксации версии.
Информация о версии - это некая структура из нескольких пунктов:
- номер версии;
- номер подверсии;
- дата фиксации;
- время фиксации (час, минута);
- вид версии (в разработке или законченная);
- ...
Можно добавить ещё что-нибудь.
Вид (тип) версии нужен для того, чтобы можно было иметь новую версию в процессе разработки.
Во-вторых - о программном комплексе. Возникли у меня некоторые неудобства в логике, и я его придумал. Более обще - это разбиение крупного объекта на несколько более мелких. Чтобы при изменении только одного - или нескольких - мелких объектов можно было менять их версии, а не создавать новую версию большого объекта.
Конкретно - о программном комплексе. Назовём так систему из нескольких работающих вместе программ (или других объектов). У каждой программы есть версия, есть версия и у программного комплекса. "Исходный текст" версии программного комплекса не состоит из исходных текстов всех программ, это просто перечисление версий всех входящих в него программ. Версии программ хранятся отдельно - каждая в своём каталоге - и, при необходимости, из них собирается версия программного комплекса.
* * *