Другие варианты определений к слову :

2. Освобождение мышцы от напряжения, то есть расслабление мышцы специальными приёмами, например, массажем.

4. Устройство, освобождающее что-либо: в частности, приспособление для стрельбы из блочного лука.

Жизненный цикл успешной компьютерной программы может быть очень долгим; изменения в программе бывают разными — от исправления ошибки до полного переписывания. В большинстве случаев название программы остаётся тем же, изменяется подназвание — так называемая версия.

Версия программы может быть целым числом (Corel Draw 11), последовательностью чисел (JDK 1.0.3), годом (Windows 2000) или текстом (Embarcadero Delphi XE). В любом случае, система версионирования выбирается по нескольким критериям:

  • Поддержка той или иной системы со стороны ПО для разработки (компилятора, системы контроля версий и т. д.).
  • Частота выхода новых версий и их «сырость». Сложная программа, выпускаемая раз в несколько лет и перед выпуском проходящая всеобъемлющее тестирование, может именоваться как «Microsoft Word 97 SP2», в то время как в программе с частыми малостабильными выпусками приходится вводить более сложную нумерацию.
  • Степень совместимости сетевых протоколов, документов или надстроек сторонних разработчиков — например, «старшая» версия увеличивается с каждым изменением ABI или API.
  • Маркетинговые соображения.

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

Содержание

Схемы нумерации [ править | править код ]

Последовательные номера [ править | править код ]

Изначально программы нумеровались числами 1, 2, 3 и т. д. — аналогично изданиям книг. Также последовательные номера могут быть основаны на каком-то техническом счётчике (например, номер версии в системе управления версиями).

Ныне последовательными номерами обозначают редко выпускаемые программы, которые выходят уже стабильными. Например, Corel Draw 11, Windows 10. У таких программ мелкие сервисные изменения обычно «заметаются под ковёр», не изменяя видимой версии (меняя лишь техническую, доступную, например, из меню «О программе»). Крупные изменения с новой функциональностью, но не тянущие на новый продукт, как правило, обозначают десятичной дробью (Windows 8.1).

Десятичная дробь [ править | править код ]

Исторически первый способ нумерации, разделяющий малые и серьёзные изменения.

Номер версии является десятичной дробью в американском формате (через точку). Например, первая версия получает номер 1.0, следующая за ней — 1.1, с небольшим изменением — 1.11, создаётся новый продукт с новой функциональностью — 2.0. Чем сильнее увеличивается дробь, тем более значимо изменение. Разработчики порой перескакивают, например, от версии 2.0 сразу к 2.5, чтобы обозначить добавление нескольких значимых функций в программу, но их недостаточно, чтобы изменить главный номер версии (Turbo Pascal 5.0 → 5.5).

Для предварительных, неофициальных версий применяют числа меньше 1: скажем, 0.1 или 0.9.

Сравнение версий идёт по правилам десятичных дробей: 0.9 Последовательность чисел [ править | править код ]

Этот способ принят, например, в Windows API. Версия состоит из нескольких чисел (как правило, трёх), разделённых точкой: например, 1.5.2. Первое из них — старшая версия (major), второе — младшая (minor), третья — мелкие изменения (maintenance, micro).

При увеличении одного из чисел все идущие после него сбрасываются до нуля: 1.0.0, 1.0.1, 1.0.2, 1.1.0, 1.2.0, 1.2.1, 2.0.0… Последний ноль может опускаться: 1.0.0 = 1.0.

Библиотеки Unix используют схему версионирования current.revision.age. Current — текущий номер API, revision — счётчик версий в пределах одного API, age — разница между последней и первой версиями поддерживаемого API [1] .

Для определения старшинства версий сравнивают сначала старшие версии, потом младшие, потом микро- как целые числа: 1.1.0 = 1.1 [2] .

Опять-таки, 1.0 считается первой официальной версией; 0.1 или 0.9 — предварительными выпусками.

Буква в качестве младшей версии [ править | править код ]

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

Указание стадии разработки [ править | править код ]

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

Например, 2.0 alpha1 Алфавитно-цифровое название [ править | править код ]

Чаще всего применяется ПО с долгой историей и редко выходящими версиями (Windows Vista).

Если счётчик версий зашёл слишком далеко и надо его сбросить, также используются алфавитные коды: Adobe Photoshop 7.0 Дата [ править | править код ]

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

Разработчики проекта Wine также сначала использовали даты при нумерации версий, они указывали год, месяц и день выпуска: «Wine 20040505». Сейчас Wine использует «стандартную» нумерацию выпусков, последняя версия 2010 года имеет номер 1.2. Компания Ubuntu Linux использует похожую схему нумерации, например, выпуск октября 2010 года пронумерован как Ubuntu 10.10. Аналогичная схема на текущий период используется компанией Microsoft для нумерации обновлений Windows 10, хотя у них номер версии обычно на 1 меньше номера месяца, например, Fall Creators Update (1709) вышел 17 октября 2017 года, а April 2018 Update (1803) не смотря на номер "03" в названии вышло в апреле 2018.

При использовании дат в нумерации версий следует использовать схему ISO «год-месяц-день» (это упрощает сравнение версий на старшинство), причём дефис можно опускать.

Внутренние версии [ править | править код ]

Часто программа имеет как торговое название, так и внутреннюю версию, составленную по всем правилам. Например, Java SE 5.0 имеет внутреннюю версию 1.5.0, Windows 7 — версию 6.1 [3] . Различные сборки файлов Windows могут называться, например, 6.1.7600.16385.

Подобные технические версии сравнивают с солдатским жетоном [2] . Как и на поле боя, они нужны в экстренных случаях — когда программа работает не так и нужно связаться с разработчиком.

Экзотические схемы [ править | править код ]

Дональд Кнут нумерует версии системы компьютерной вёрстки Τ Ε Χ последовательными приближениями числа π <displaystyle pi > : 3.0 Значение номеров версий [ править | править код ]

Версия 1.0 как ключевой этап разработки [ править | править код ]

Коммерческие программы, как правило, начинают нумеровать свои версии с 1.0. Считается даже, что версия 1.0 исключительно сыра и поэтому нужно как можно быстрее дойти до 1.2 или даже до 2.0.

В бесплатных и свободных программах 1.0 считается моментом, когда программа признана готовой к широкому применению неспециалистами. При этом первоначальные версии программы нумеруются как 0.1, 0.2 и т. д. FreeDOS пришёл к версии 1.0 в 2006 году — когда DOS уже практически нигде не использовался. Эмулятор игровых автоматов MAME никогда не дойдёт до версии 1.0, поскольку история игровых автоматов продолжается и поныне.

Маркетинг и суеверия [ править | править код ]

Коммерческому ПО, чтобы название лучше смотрелось, приходится подключать маркетологов. Например, в странах Азии распространена тетрафобия, поэтому в номерах версий избегают цифры 4. В Европе число 13 считается несчастливым, его или пропускают, или заменяют на X3.

Если история программы очень длинна, её иногда приходится сбрасывать: Adobe Photoshop 7.0 foreskin — «крайняя плоть» [4] .

Пропуски в версиях [ править | править код ]

Иногда разработчик пропускает номер версии, чтобы не отставать от конкурентов или других продуктов той же компании: например, Microsoft Access перепрыгнул сразу от 2.0 к 7.0. Netscape Communicator пропустил пятую версию, так как Internet Explorer добрался уже до 6.0; к тому же версию 5.0 в User-Agent’ах застолбили тестовые выпуски браузера Mozilla Suite.

В Sun Solaris отбросили первую цифру: 2.8 и 2.9 в маркетинговых материалах именовались 8 и 9; Java SE 1.5.0 и 1.6.0 — как Java 5 и 6. Slackware Linux в 1999 году прыгнул от версии 4 сразу к 7.

Microsoft Windows 10 выходит после 8.1.

PHP перескакивает от 5 к 7, причиной объявлено то, что версия 6 оказалась распиаренной, но нереализуемой, и многие из её нововведений были присоединены к 5-й ветке [5] .

Алгоритмы определения старшинства версий [ править | править код ]

Часто нужно программно определять, какая из двух версий старше — например, «пузыри» поддерживаются в Windows начиная с 2000 [6] , а в более ранних версиях надо поступать другими способами. Такая проверка делается по довольно сложным правилам: например, если версия — десятичная дробь, сначала требуется сравнить целые части как числа; если они равны, то дробные — как строки. Если версия — тройка или четвёрка чисел, то сравнивают числа по одному, пока не будет зафиксировано неравенство.

Поскольку чрезмерно сложные алгоритмы чреваты ошибками [7] , а модульные тесты писать не всегда есть время, часто обходятся упрощёнными вариантами: например, строят с помощью битовых полей длинное число (1.2.3.4 → 0102030416); либо сравнивают версии как строки в лексикографическом порядке. Первое не сработает, если одно из чисел перейдёт за 256 (1.0.257 01010016), второе — если выйдет версия 10 (9.5 «10.0»).

Иногда подобные упрощения играют злую шутку: в первые годы популярности Windows выяснилось, что множество программ некорректно проверяли версию ОС, отказываясь работать под 4.0. Поэтому Windows 95 и Windows 98 имели внутренние версии 3.95 и 3.98 [8] .

Похожие ухищрения применялись в User-Agent’е браузера Opera при переходе с версии 9.64 на 10.00. Это вызвано тем, что некоторые сайты, реагирующие на User-Agent, либо сравнивали номера как строки (10.0 [9] . Разработчикам пришлось использовать запись Opera/9.80 вместо Opera/10.00, а настоящий номер версии добавить в конце UserAgent’а [10] . Планировалось, что к 11-й версии UserAgent примет привычный вид, однако это ухищрение использовалось вплоть до перехода на движок Blink (начало 2013 — при том, что переход на 10-ю версию произошёл ещё в 2009 году).

В PHP имеется специальная функция version_compare() для определения старшинства версий [11] .

Версия программного обеспечения нумеруется согласно схеме A.B.C.D, где:

  • A — мажорная версия (major version) программного обеспечения;
  • B — минорная версия (minor subversion, промежуточная версия) программного обеспечения;
  • C — релиз (release) программного обеспечения;
  • D — сборка (build) программного обеспечения. Также может использоваться простой номер программного обеспечения — A.B (например, при указании в эксплуатационных, рекламных и маркетинговых документах, на веб-сайте и т.д.).

Мажорная версия программного обеспечения

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

Первая мажорная версия продукта = 1. Мажорная версия продукта может быть = 0 в версии для внутреннего использования и тестирования в рамках компании, а также программы бета — тестирования нового продукта.

Изменения в сопровождении продукта

  • При переходе на новую мажорную версию может быть: изменен весь спектр документации;
  • изменены все маркетинговые материалы (включая листовки, краткие описания, информацию на сайте и проч.);
  • изменен дизайн продуктов;
  • введена новая позиция в прайс-листе.

Правила использования номера

При составлении ряда общих маркетинговых документов (листовок, перечня продукта, прайс-листов) допускается сокращение полного номера версии продукта до номера версии.

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

Вопрос перехода на новую мажорную версию решается руководством компании, отделом маркетинга и разработки.

Минорная версия программного обеспечения

Изменение номера минорной версии программного обеспечения происходит при:

  • введении в продукт новой функциональности, ведущей к программной несовместимости с старой версией (несовместимость на уровне данных);
  • изменений в схеме функционирования продукта (прежде всего — с точки зрения пользователя);
  • значительных изменений (расширения, добавления новой) функциональности, появления в продукте новых конкурентных преимуществ.

Первая минорная версия = 0 (версия 1.0 – первый выход продукта на рынок). При выходе новой версии продукта нумерация минорной версии сбрасывается в нулевое значение.

Изменения в сопровождении продукта

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

Минорная версия продукта может отражаться в части маркетинговых материалов, информации на сайте.

При выходе новой минорной версии должны информироваться партнеры компании, список изменений публикуется на сайте.

Правила использования номера

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

Релиз программного обеспечения

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

Нумерация релизов продукта начинается с 0 (версия 1.0.0 — первый выход продукта на рынок.).

При выходе новой промежуточной версии продукта нумерация релиза сбрасывается в нулевое значение.

При этом возможен выпуск релизов для предыдущих промежуточных версий продукта (по тем или иным техническим причинам, для поддержки пользователей).

Изменения в сопровождении продукта

Изменения, вошедшие в продукт, должны отображаться в документе "Замечания по версии" (Release Notes) и, возможно, в электронной документации (руководство пользователя).

Новый релиз размещается на сайте в разделе "Скачать" (Download), обновляется текущая версия дистрибутива. Отдел технической поддержки рекомендует пользователям совершить переход на данную версию. Возможна информационная рассылка пользователям по линии техподдержки и партнерам компании. Также, возможно создание установочных файлов, предназначенных специально для обновления программного обеспечения в пределах релиза.

Правила использования номера

В любых документах, передающихся пользователю и не описанных выше (описание файлов на сайте в разделе "Скачать" (Download), документ "Замечания по версии", информационные рассылки по линии техподдержки) полная версия продукта сокращается до номера релиза (3.1.5).

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

Номер сборки программного обеспечения

Изменение номера сборки программного обеспечения происходит при любой новой сборке продукта (компиляции программного обеспечения для внутренних целей).

Нумерация сборок продукта начинается с 1 (0.0.0.1 — первая сборка прототипа продукта). Номер сборки может сбрасываться при выходе новой версии продукта (по решению отдела разработки).

Изменения в сопровождении продукта

Изменений в сопровождении продукта не происходит.

Правила использования номера

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

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

Вопрос создания нового билда решается отделом разработки совместно с отделом тестирования.

Статья взята отсюда: http://www.free-lance.ru/users/shupruta/upload/fileqZud2j.pdf (к сожалению ссылка больше не работает)

Совет по нумерации версий ПО найденный в интернете:

Весь процесс делю на чекпоинты. При достижении очередного чекпоинта увеличивается минорный номер. Проект имеет пометку dev Как только достигается заявленный функционал и начинается бета-тестирование — пометка dev убирается, увеличивается мажорный номер, минорный обнуляется и появляется пометка RC. Номера RC увеличиваются в процессе тестирования (на практике крайне редко доходит до трех. Обычно RC1, гораздо реже добавляется RC2) Как только система проходит все тесты и достигает заявленного функционала — то релиз. Можно писать ТЗ на дальнейшее расширение функциональности и начинать все заново.

Some rights reserver, 2013 — Sergey Poterianski