Интернет магазин китайских планшетных компьютеров



Компьютеры - Нумерация версий программного обеспечения - Схемы нумерации

22 января 2011


Оглавление:
1. Нумерация версий программного обеспечения
2. Схемы нумерации
3. Значение номеров версий
4. Алгоритмы определения старшинства версий
5. Применение схем нумерации ПО в других сферах культуры



Для отслеживания изменений программного обеспечения было создано большое количество схем присвоения номеров версиям программного обеспечения.

В некоторых схемах последовательные идентификаторы используются для определения значимости перемен между стадиями разработки: эти перемены классифицируются по уровням значимости. Решение о том какую последовательность изменить между стадиями разработки основано на значимости перемен на последней стадии разработки, например в схеме, с версией, состоящей из последовательности 4 чисел, первое число может быть прибавлено только тогда когда код полностью переписан, в то время как четвертое число изменяется при незначительных переменах в интерфейсе или документации. Эта практика позволяет пользователям, оценить, насколько было протестировано в реальных условиях данное программное обеспечение. Если изменения сделаны, например, между 1.3rc4 и продукционным выпуском 1,3, то этот выпуск, где предполагается уровень тестирования производственного класса, на самом деле содержит изменения, которые не обязательно были испытаны в реальных условиях. Такой подход обычно допускает применение третьего уровня нумерации, но не применять этот уровень строгости к изменениям в их число: 1.3.1, 1.3.2, 1.3.3, 1.3.4,… 1.4.1 и т. д.

В более поздних релизах, главное число увеличивается, когда происходят значительные переходы в функциональности, второстепенное число прибавляется только тогда, когда были добавлены незначительные функции или внесены исправления. Номер версии изменяется, если исправлены все мелкие неполадки. Для типичного программного продукта используются следующие номера: 0.9, 0.9.1, 0.9.2, 0.9.3, 1.0, 1.0.1, 1.0.2, 1.1, 1.1.1, 2.0, 2.0.1, 2.0.2, 2.1, 2.1.1, 2.1.2, 2.2, и т. д. Разработчики порой перескакивают от версии 5.0 сразу к 5.5, для того чтобы обозначить добавление нескольких значимых функций в программе, однако их не достаточно, чтобы изменить главный номер версии, тем не менее такие скачки все же неуместны.

Другой подход использования главных и второстепенных номеров версий заключается в добавлении буквенно-цифровой последовательности, определяя тем самым стадию разработки релиза: «альфа», «бета», «релиз-кандидат». Серия версий с использованием этого подхода может выглядеть следующим образом: если к версиям 0.5, 0.6, 0.7, 0.8, 0.9 добавляются новые функции их можно назвать — 1.0b1, 1.0b2, еще плюс новые функции — 1.0b3, затем версия становится 1.0rc1. Если версия 1.0rc1 достаточно стабильна, то она становится 1.0, однако если в 1.0rc1 обнаруживаются ошибки, которые необходимо исправить она будет иметь номер 1.0rc2 и т. д. Важной характеристикой этого подхода является соблюдение идентичности стадий разработки версий. Нельзя вносить никаких изменений между последней бета-версией и первым релиз кандидатом или последним релиз кандидатом и готовым продуктом. Если вы это сделали, необходимо выпустить другую версию на более низкой стадии разработки.

Иногда присутствие человеческого фактора в создании номеров версий приводит к ошибкам в изменении версий. Например, разработчики могут изменить последовательность между версиями, даже если одна строчка кода не была переписана, лишь для того чтобы создать ложное впечатление, что были внесены значительные изменения.

Другие схемы передают значение на отдельных последовательностях:

major.minor]

or

major.minor]

Опять же, в этих примерах отличия «существенных» от «незначительных» изменений, даются произвольно и по усмотрению автора, как то, что означает «build» или как «revision» отличается от «minor change». Аналогичные проблемы относительной значимости изменений и номенклатуры версий существуют в сфере книгоиздания, где Номер издания или название может быть выбран на основе различных критериев.

В большинстве проприетарного программного обеспечения, первая официальная версия программного продукта имеет версию 1.

Последовательные номера

Изначально программы нумеровались числами 1, 2, 3 и т. д. — аналогично изданиям книг. Впрочем, этой нумерации оказалось мало: приходится разделять малые и крупные изменения. Для этого есть несколько способов нумерации.

В схемах управления версиями, основанных на последовательной нумерации, каждому выпуску программы присваивается уникальный идентификатор, который состоит из одной или нескольких последовательностей чисел или букв. В общем случае это так, однако, схемы широко варьируются в количестве последовательностей, в смысле отдельных последовательностей, в способах увеличения значений.

Десятичная дробь

Номер версии является десятичной дробью в американском формате. Например, первая версия получает номер 1.0, следующая за ней — 1.1, с небольшим изменением — 1.11. После серьёзного дописывания выходит версия 1.5, после чего — 2.0. Сравнение версий идёт по правилам десятичных дробей: 1.01 < 1.1 = 1.10 < 1.11 < 1.2 = 1.20.

Последовательность чисел

Этот способ принят, например, в Windows API. Версия состоит из нескольких чисел, разделённых точкой. При увеличении одного из чисел все идущие после него сбрасываются до нуля: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0… Числа сравниваются целиком: 1.1.0 < 1.2.0 < 1.10.0 < 1.11.0 < 1.20.0. Последний ноль может опускаться.

Иногда четвёртым числом идёт номер сборки со сквозной нумерацией. Эта цифра может увеличиваться на единицу с каждым выпуском, либо браться из какого-нибудь технического счётчика.

Буква в качестве младшей версии

Иногда вместо третьего числа применяется буква. Так, когда в DotA 6.42 нашли ошибку, новой версии дали название 6.42b. Это значит: игра остаётся той же, с тем же расположением препятствий и тем же балансом, но с исправленной ошибкой. Дальнейшие исправления ошибок именуются 6.42c, 6.42d и т. д.

Указание стадии разработки

Если разработчику приходится полагаться на внештатных тестеров, в версии может указываться уровень зрелости программы: альфа-версия, бета-версия, релиз-кандидат, окончательный выпуск, исправление ошибок.

Например, 2.0 alpha1 < 2.0 alpha2 < 2.0 beta < 2.0 rc1 < 2.0 < 2.0 sr1.

Существуют разные схемы обозначения стадий разработки. Например, третье число может означать:

  • 0 — альфа
  • 1 — бета
  • 2 — релиз-кандидат
  • 3 — публичный релиз

Например:

  • 1.2.0.1 вместо 1.2-a
  • 1.2.1.2 вместо 1.2-b2
  • 1.2.2.3 вместо 1.2-rc3
  • 1.2.3.0 вместо 1.2-r
  • 1.2.3.5 вместо 1.2-r5

Между сериями 1.0 и 2.6.x ядро Linux использовало нечётные номера для бета-версий, и чётные — для стабильных. Например, Linux 2.3 был серией в разработке, а Linux 2.4 — серией стабильных релизов, в которую перерос Linux 2.3. В номере релиза Linux kernel сначала писался номер второстепенной версии, а затем номер релиза в возрастающем порядке. Например Linux 2.4.0 → Linux 2.4.22. После релиза 2.6 в 2004 году Linux больше не использует эту систему, теперь цикл релиза намного короче. Сейчас они просто увеличивают третье число, используя при необходимости четвёртое.

Такая же система «чёт-нечет» используется некоторыми другими продуктами с длинным циклом разработки, такими как GNOME.

Алфавитно-цифровое название

Чаще всего применяется ПО с долгой историей и редко выходящими версиями. Например: Adobe Photoshop CS2, Windows Vista.

Иногда в дополнение к обычной версии используется алфавитно-цифровое подназвание: Ubuntu 9.04 Jaunty Jackalope.

Дата

Год выпуска применяется чаще всего в ПО с редко выходящими версиями, например: Windows Server 2003.

Разработчики проекта Wine также сначала использовали даты при нумерации версий, они указывали год, месяц и день релиза: «Wine 20040505». Сейчас Wine использует «стандартную» нумерацию релизов, последняя версия 2010 года имеет номер 1.2. Компания Ubuntu Linux использует похожую схему нумерации, например релиз октября 2010 года пронумерован как Ubuntu 10.10. Здесь следует отметить, что при использовании дат в нумерации версий необходимо использовать схему ISO, то есть сначала указывается год, затем месяц, а потом день, причем дефис можно опускать.

Внутренние версии

Часто программа имеет как торговое название, так и внутреннюю версию, составленную по всем правилам. Например, Java SE 5.0 имеет внутреннюю версию 1.5.0, Windows 7 — версию 6.1.

Экзотические схемы

Дональд Кнут нумерует версии системы компьютерной вёрстки ΤΕΧ последовательными приближениями числа \pi~: 3.0 < 3.1 < 3.14 и т. д. Номер последнего стабильного релиза — 3.141592653. Версии другого детища Дональда Кнута языка METAFONT нумеруются приближениями к числу e. В частности, версия за март 2008 года имела номер 2.718281.

SuSE Linux начал счёт версий с 4.2, как отсылка на известную книгу Дугласа Адамса.



Просмотров: 6768


<<< Недокументированные возможности