- Software versioning
- Методология изменения версий продукта программного обеспечения
- Обозначение стадии разработки
- Разделение последовательностей
- Номера последовательностей
- Приращение последовательности
- Использование дат в версиях
- Схема нумерации версий TeX
- Схема Apple
- Другие схемы
- Скрытые номера версий
- Предварительные версии продуктов программного обеспечения
- Нечетные числа в обозначении версий для разработки релиза
- Apple и нечетные числа
- Версия 1.0 как ключевой этап разработки
- История программ
- Как не отставать от конкурентов
- Суеверия
- Как преодолеть маркетинговые трудности
- Значимость нумерации версий в разработке программного обеспечения
- Как рекламщики узнают, какие приложения вы используете
- Какая информация позволяет отследить ваше Android-устройство
- Рекламный идентификатор — ожидание
- Рекламный идентификатор — реальность
- Борьба с навязчивой рекламой
- «НомеРА» — первая социальная сеть участников дорожного движения
- Что же представляет собой приложение?
- Нумерация версий программного обеспечения
- Содержание
- Схемы нумерации
- Последовательные номера
- Десятичная дробь
- Указание стадии разработки
- Внутренние версии
- Экзотические схемы
- Версия 1.0 как ключевой этап разработки
- Маркетинг и суеверия
- Пропуски в версиях
- Алгоритмы определения старшинства версий
- Применение схем нумерации ПО в других сферах культуры
- Примечания
Software versioning
Методология изменения версий продукта программного обеспечения
Software versioning — это процесс создания уникальных имен или номеров для различных версий продуктов программного обеспечения.
При имеющейся категории номера версии (главная, второстепенная), номера обычно выставляются в возрастающем порядке и соответствуют новым разработкам в программном обеспечении. На начальном уровне отслеживанием постепенно появляющихся версий электронной информации занимается система управления версиями, позволяющая хранить несколько версий одного и того же документа, при необходимости, возвращаться к более ранним версиям, определяя, кто и когда сделал то или иное изменение и многое другое. Вместе с тем для отслеживания изменений программного обеспечения было создано большое количество схем присвоения номеров версиям.
Каждой стадии разработки программного обеспечения соответствует уникальный идентификатор, который состоит из последовательности номеров или букв. В некоторых схемах последовательные идентификаторы используются для определения значимости перемен между стадиями разработки: эти перемены классифицируются по уровням значимости. Решение о том какую последовательность изменить между стадиями разработки основано на значимости перемен на последней стадии разработки, например в схеме, с версией, состоящей из последовательности 4 чисел, первое число может быть прибавлено только тогда когда код полностью переписан, в то время как четвертое число изменяется при незначительных переменах в интерфейсе или документации.
В более поздних релизах, главное число (major) увеличивается, когда происходят значительные переходы в функциональности, второстепенное число (minor) прибавляется только тогда, когда были добавлены незначительные функции или внесены исправления. Номер версии изменяется, если исправлены все мелкие неполадки. Для типичного программного продукта используются следующие номера: 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 и т.д. Важной характеристикой этого подхода является соблюдение идентичности стадий разработки версий. Нельзя вносить никаких изменений между последней бета-версией и первым релиз кандидатом или последним релиз кандидатом и готовым продуктом. Если вы это сделали, необходимо выпустить другую версию на более низкой стадии разработки.
Известные примеры буквенно-цифровых версий — Macromedia Flash MX, Adobe Photoshop CS2.
Иногда присутствие человеческого фактора в создании номеров версий приводит к ошибкам в изменении версий. Например, разработчики могут изменить последовательность между версиями, даже если одна строчка кода не была переписана, лишь для того чтобы создать ложное впечатление, что были внесены значительные изменения.
Обозначение стадии разработки
Для присвоения альфа или бета статуса релизам, которые еще не достаточно стабильны для практического применения, существуют схемы, где в первой последовательности используется ноль. Он ставится третьим числом в тех случаях, когда планируется еще тестировать версию или версия годна только для внутреннего применения.
Разделение последовательностей
При публикации последовательности могут быть разделены знаками препинания. Выбор знаков препинания и их использования зависит от схемы.
Номера последовательностей
Приращение последовательности
Существует два разных способа приращения последовательности номеров в версии. Большинство продуктов свободного программного обеспечения используют непрекращаемый поток последовательных номеров: 1.7.0, 1.8.0, 1.8.1, 1.9.0, 1.10.0, 1.11.0, 1.11.1, 1.11.2, и т.д. Примером такого продукта может служить MediaWiki. В других программах используются десятичные номера: 1.7, 1.8, 1.81, 1.82, 1.9, и т.д. В таких программах после версии 1.8 будет идти версия 1.81, текущие релизы будут обозначаться 1.81a, 1.81b, и т.д.
Использование дат в версиях
Разработчики проекта Wine использовали даты при нумерации версий, они указывали год, месяц и день релиза: «Wine 20040505». Сейчас Wine использует «стандартную» нумерацию релизов, последняя версия 2010 года имеет номер 1.2. Компания Ubuntu Linux использует похожую схему нумерации, например релиз апреля 2010 года пронумерован как Ubuntu 10.04. Номера сборок Microsoft Office тоже на самом деле закодированные даты.
Здесь следует отметить, что при использовании дат в нумерации версий необходимо использовать схему ISO, то есть сначала указывается год, затем месяц, а потом день (YYYY-MM-DD), причем дефис можно опускать.
Существуют также примеры нумерации версии годом выпуска (Adobe Illustrator 88, WordPerfect Office 2003). Хотя такой ход чаще всего используется в маркетинговых целях, и настоящий номер версии все равно существует. Например, версия Microsoft Windows 2000 Server на самом деле имеет номер Windows NT 5.0.
Схема нумерации версий TeX
Система TeX использует уникальную схему нумерации версий. После появления версии номер 3, ко всем последующим обновленным версиям после точки добавляли цифру, соответствующую последовательности числа Π это одна из форм унарной системы счисления – номер версии соответствует номеру цифры в числе Π. Номер последней версии 3.1415926. Такой метод отражает стабильность системы TeX. Разработчик TeX Дональд Кнут сказал, что последняя версия выйдет после его смерти и ее номер будет полное число Π, в которой все оставшиеся недочеты станут постоянными функциями. Подобной схемы придерживается METAFONT, нумеруя версии числами из математической константы e.
Схема Apple
,Apple использует формализованную структуру нумерации версий основанную на структуре NumVersion, она состоит из номера главной версии (1-2 числа), номера второстепенной версии (1 число), номера исправленной версии («bug» version) (1 число), индикатора стадии разработки (преальфа, альфа, бета и т.д.) и номера пререлиза (0-255). При написании этих номеров версий в строке, существовало условное соглашение опускать часть номера, обозначающую нулевую или последнюю стадию разработки. На пример: 1.0.2b12, 1.0.2 (вместо 1.0.2f0), и 1.1 (вместо 1.1.0f0).
Другие схемы
Производители программного обеспечения используют различные схемы для обозначения релиза их софта. Например, операционная система Microsoft Windows появилась на рынке со стандартной числовой схемой обозначения версий (от Windows 1.0 до Windows 3.11). Позднее разработчики Microsoft начали разделять названия версий в маркетинговых целях, то есть, сначала используя год релиза (Windows 95 (4.0), Windows 98 (4.10), Windows 2000 (5.0)), потом буквенно-цифровые коды (Windows Me (4.90), Windows XP (5.1)), после чего названия брендов (Windows Vista (6.0)). Судя по последнему релизу Windows 7, Microsoft снова вернулся к стандартной числовой схеме, хотя официальное название версии Windows 7 это 6.1.
В проекте Debian для релизов операционной системы используется «major/minor» схема, а для названий программных продуктов при разработке используются имена из мультфильма «История Игрушек».
Скрытые номера версий
Продукт программного обеспечения может иметь так называемый «скрытый» номер версии, который не указан в основном названии продукта (обычно в составлении скрытого номера соблюдаются все правила нумерации версий). Например, версия Java SE 5.0 имеет внутренний номер 1.5.0, а версии Windows начиная от NT 4, продолжают внутреннюю стандартную нумерацию версий: Windows 2000 это NT 5.0, XP это Windows NT 5.1, 2003 это NT 5.2, Vista это NT 6.0 и 7 это NT 6.1.
Предварительные версии продуктов программного обеспечения
Вместе с различными схемами обозначения версий, перечисленными выше, система, обозначающая предварительные версии используется в большинстве случаев как программа, прокладывающая себе путь через все стадии разработки программного обеспечения. Программы, находящиеся на ранних стадиях разработки называются «альфа» (первая буква греческого алфавита). Более зрелые программы, но еще не готовые к релизу называются «бета» (вторая буква греческого алфавита). В основном продукты программного обеспечения «альфа» тестируются только разработчиками, в то время как продуты «бета» распространяются на публичное тестирование. Этим двум версиям продукта обычно присваивается номер меньше 1, например 0.9, так как 1.0. это уже для публичного релиза. Однако если создается предварительная версия к уже существующему продукту, то она может быть обозначена буквой «а» (значит альфа) добавленной к номеру версии готового продукта, например версия 2.5 – предварительная версия 2.5.а или 2.5а. Продукты готовые к релизу могут быть обозначены тегом «rc-#», что означает релиз кандидат (release candidate). Когда версия уже выпущена, тег убирается.
Нечетные числа в обозначении версий для разработки релиза
Между сериями 1.0 и 2.6.x, Linux kernel использовал нечетную нумерацию версий, что бы обозначить релизы в разработке, а для стабильных релизов четную нумерацию. Например Linux 2.3 была серия разработок второго главного дизайна Linux kernel, а Linux 2.4 была серия стабильных релизов, в которую перерос Linux 2.3. В номере релиза Linux kernel сначала писался номер второстепенной версии, а затем номер релиза в возрастающем порядке. Например Linux 2.4.0 → Linux 2.4.22. После релиза 2.6 kernel в 2004 году, Linux больше не использует эту систему, теперь цикл релиза намного короче. Сейчас они просто увеличивают третье число, используя четвертое при необходимости.
Apple и нечетные числа
У компании Apple были свои особенности на счет нечетных чисел, особенно во время системы MacOS. Даже тогда когда выпускались второстепенные (minor) релизы номер версии редко был больше чем 1, а если номер нужно было увеличить они перескакивали сразу на 5, предлагая при этом небольшое изменение величины между главным и второстепенным релизом (например, 8.5 значит «восемь с половиной», а 8.6 значит «восемь с половиной точка один»). Завершенная последовательность версий выглядит так: 1.0, 1.1, 2.0, 2.1, 3.0, 3.2 (3.1 пропущена), 4.0, 4.1, 5.0, 5.1, 6.0, 7.0, 7.1, 7.5, 7.6, 8.0, 8.1, 8.5, 8.6, 9.0, 9.1, 9.2.
Версия 1.0 как ключевой этап разработки
Разработчики проприетарного программного обеспечения всегда называют первый релиз программы версия 1, а затем увеличивают номер главной версии после каждого переписывания кода. Это значит, что программа может достичь версии 3 всего за несколько месяцев разработки, при этом она еще возможно не станет стабильной и надежной.
В отличие от компаний, сообщество свободного программного обеспечения используют версию 1.0 как ключевой этап разработки, обозначая тем самым, что продукт завершен, в нем есть все необходимые функции, и он достаточно надежен для публичного использования.
Согласно этой схеме, номер версии медленно приближается к 1.0 пока устраняются все недочеты в подготовке к релизу. Разработчики MAME, например, не стремятся выпускать версию 1.0 программы эмулятора, аргументируя это тем, что она никогда не будет до конца завершена, потому что аркадные игры будут появляться всегда. За версией 0.99 просто следует версия 0.100. Подобный пример Xfire, после релиза 1.99 идет 1.100. Так за 6 лет существования eMule все еще не достигли версии 0.50.
История программ
Winamp выпустил совершенно иную конфигурацию третьей версии программы, в которой отсутствовала обратная совместимость с плагинами и другими ресурсами предыдущей версии. Однако, эта версия стала полностью совместимой с версиями 2 и 3, но нумеровалась пятой, то есть 4 была пропущена… То же самое произошло с UnixWare 7, что было соединением UnixWare 2 и Open Server 5.
Как не отставать от конкурентов
В индустрии проприетарного программного обеспечения существует общая привычка перескакивать в нумерации главных и второстепенных версий в маркетинговых целях.
Это можно увидеть на примере нескольких продуктов Microsoft и America Online, а также в системе нумерации версий Sun Solaris, Java Virtual Machine, в версиях SCO Unix и Corel Word Perfect. Программные продукты filePro DB/RAD имели нумерацию от 2.0 к 3.0 к 4.0 к 4.1 к 4.5 к 4.8 к 5.0, и они уже готовят релиз 5.6, не имея при это ни одного промежуточного. Небольшую разницу можно заметить между версиями программного обеспечения AOL’s PC client, хотя они нумеруют только главные релизы — 5.0, 6.0, 7.0, и т.д. Таким же образом Microsoft Access перескочили от версии 2.0 к версии 7.0, чтобы догнать нумерацию версий Microsoft Word.
У корпорации Microsoft тоже была цель догнать нумерацию версий браузера Netscape, пропустив версию 5 и выпустив сразу шестую версию Internet Explorer.
Суеверия
У релиза 2007 программы Microsoft Office был внутренний номер версии 12. Релиз Office 2010 внутренне нумеровался уже 14, из-за плохой репутации чертовой дюжины.
Версия 13 WordPerfect Office программы Corel обозначена в продаже как «X3» (римская цифра 10 и «3»). Процедура повторилась в следующей версии X4.
Как преодолеть маркетинговые трудности
В середине 1990х быстро развивающиеся на китайском рынке CMMS и Maximo, перескакивали от версии Maximo Series 3 сразу к Series 5, пропуская Series 4, так как неправильное произношение номера 4 на китайском языке могло означать «смерть» или «неудача». Хотя это, однако, не остановило Maximo Series 5 при выпуске релиза 4.0. Следует отметить, что на этом нумерация Series остановилась, но возобновилась вполне успешно, начиная с релиза 1.0.
Значимость нумерации версий в разработке программного обеспечения
Номера версий используются в практических условиях потребителем или клиентом для того, чтобы можно было сравнить имеющуюся у них копию продукта программного обеспечения и новую версию, выпущенную разработчиком. Команда программистов и компании используют нумерацию версий для сравнения отдельных частей и секторов программного кода одних версий с другими, обычно сотрудничая с Системой контроля версий. Не существует абсолютной и определенной схемы нумерации версий продуктов программного обеспечения, поэтому очень часто нумерация зависит от личного выбора программистов.
Перевод осуществлен сотрудницей компании «Chyrius» Натальей Володиной.
Как рекламщики узнают, какие приложения вы используете
Рассказываем про идентификаторы устройств на Android и про то, как приложения злоупотребляют ими, чтобы больше зарабатывать на рекламе.
О том, как работает реклама в Интернете и как рекламные сети (и не только они) узнают, какие сайты вы посещаете, мы уже рассказывали. Но ваша виртуальная жизнь вряд ли ограничивается веб-страницами. Скорее всего, заметная ее часть проходит в мобильных приложениях, которые тоже нередко зарабатывают на рекламе. Для этого они, как и сайты, сотрудничают с рекламными сетями.
Чтобы маркетологи могли составить на вас детальное досье и показывать вам персонализированные объявления, мобильные программы отправляют им информацию о вашем устройстве. Даже ту, использовать которую в рекламных целях Google не разрешает.
Какая информация позволяет отследить ваше Android-устройство
Что приложения могут рассказать рекламной сети о вашем смартфоне? В первую очередь — то, что они на нем установлены. Получив такую информацию от нескольких программ, рекламная сеть в состоянии сделать вывод о том, чем вы интересуетесь и какие объявления могут вас «зацепить». Например, если вы пользуетесь селфи-камерой, Instagram и Snapchat, вам покажут приложения с фильтрами и эффектами для фото.
Убедиться, что та или иная программа установлена именно на вашем устройстве, рекламной сети помогают специальные коды-идентификаторы. Как правило, их у смартфона, планшета и любого другого гаджета несколько, и большинство из них придуманы не для рекламы.
Так, уникальный номер IMEI нужен, чтобы распознавать ваш телефон в сотовых сетях и, например, блокировать краденые устройства. А при помощи серийного номера можно определить все гаджеты серии, в которых обнаружен брак, и отозвать их из магазинов.
Еще один уникальный идентификатор, MAC-адрес, нужен для подключения устройства к сети, а заодно может быть использован, чтобы ограничить набор гаджетов, которые имеют право подключаться к вашему домашнему WiFi. Наконец, Android ID (он же SSAID) разработчики приложений используют, чтобы продавать лицензии на ограниченное количество копий для платных версий своих продуктов.
Долгое время какого-то отдельного идентификатора для рекламы вообще не существовало, поэтому приложения отправляли своим партнерам те, к которым имели доступ. При этом спрятаться от объявлений по интересам пользователь практически не мог: те же IMEI или MAC-адреса — это уникальные номера, по которым устройство опознается однозначно. Каждый раз, когда очередное приложение передает в рекламную сеть один из них, та понимает, что его установили именно вы.
Теоретически существует возможность изменить эти номера — в том числе при помощи специальных приложений, но это непросто, и, что хуже, подвергает опасности ваш телефон. Дело в том, что для подобных экспериментов нужны root-права, а получая их, вы делаете устройство уязвимым. К тому же в некоторых странах манипуляции вроде смены IMEI запрещены законом.
Android ID поменять проще — для этого достаточно сбросить смартфон или планшет до заводских настроек. Но после этого придется заново задавать все параметры, устанавливать приложения, авторизоваться в каждом из них и так далее. В общем, куча мороки, так что желающих делать это часто, мягко говоря, не очень много.
Рекламный идентификатор — ожидание
В 2013 году в качестве компромисса между интересами пользователей Android и рекламщиков компания Google ввела специальный рекламный идентификатор. Его задают сервисы Google Play, и пользователь при желании может сбросить его и создать новый. Делается это в меню Настройки > Google > Реклама > Сброс рекламного идентификатора. С одной стороны, такой идентификатор позволяет рекламным сетям отслеживать привычки и увлечения владельцев устройств. С другой — если же хочется избавиться от слежки рекламщиков, вы можете в любой момент без лишних трудностей его сбросить.
По правилам магазина Google Play, в рекламных целях можно использовать только этот идентификатор. Площадка не запрещает связывать его с другими ID, но для этого приложению нужно получить согласие пользователя.
В теории это должно работать так: если вам нравится реклама по интересам, вы не трогаете рекламный идентификатор и можете даже разрешить приложениям объединять его с чем угодно. Если же нет, вы запрещаете связывать эту метку с другими и периодически сбрасываете ее, таким образом отвязывая свое устройство от собранного на него досье.
Увы, в действительности все несколько иначе.
Рекламный идентификатор — реальность
Как обнаружил исследователь Серж Эгельман (Serge Egelman), более 70% приложений в Google Play используют хотя бы один дополнительный идентификатор без предупреждения. Некоторые из них, например 3D Bowling, Clean Master и CamScanner, скачали многие миллионы человек.
Чаще всего в ход идет Android ID, хотя IMEI, MAC-адреса и серийные номера разработчики тоже задействуют. Некоторые приложения отправляют партнерам сразу три идентификатора и более. Так, игра 3D Bowling — видимо, для верности — использует и рекламный идентификатор, и IMEI, и Android ID.
Такой подход делает саму идею специального рекламного идентификатора бессмысленной. Даже если вы против слежки и регулярно сбрасываете его, маркетологи при помощи более стабильной метки легко привяжут к существующему профилю новый идентификатор.
Несмотря на то что подобное поведение не соответствует правилам Google Play, вовремя отловить злоупотребляющих идентификаторами разработчиков не так-то просто. Все приложения проверяют перед публикацией, но многие не совсем честные авторы успешно обходят эту проверку. Даже майнеры то и дело попадают в магазин — что уж говорить о программах, в которых нет откровенно вредоносных функций.
При этом просто запретить приложениям доступ к идентификаторам устройства Google не может: как мы уже говорили, их используют не только для рекламы. Лишая мобильные программы, например, возможности считывать Android ID, компания Google помешала бы разработчикам защищать свой продукт от нелегального копирования, а значит, нарушила бы их права.
Борьба с навязчивой рекламой
Конечно, Google не бездействует. Компания принимает меры, чтобы ограничить возможность злоупотребления идентификаторами. Например, начиная с Android Oreo тот же Android ID для каждого приложения задается свой, так что в глазах рекламной сети, полагающейся на этот ID вместо рекламного, ваш Instagram будет установлен на одном устройстве, а Snapchat — на другом.
Однако для IMEI, серийных номеров и MAC-адресов ввести такую защиту нельзя. Да и телефонов с более старыми версиями Android на рынке немало. Поэтому рекомендуем ограничивать сбор данных, грамотно управляя приложениями.
«НомеРА» — первая социальная сеть участников дорожного движения
Версию для Android можно найти на официальном сайте
Для этого и было создано приложение «НомеРА» — первый сервис, идентификатором в котором является автомобильный номер. «Номера» для iOS появилось в конце декабря 2012 года. С этого момента в приложении зарегистрировалось более 200.000 пользователей и это все без какой-либо маркетинговой поддержки. Пользователям нравится приложение и они с удовольствием рассказывают о нем своим друзьям – именно это стало причиной его популярности. Теперь готова и долгожданная версия для платформы Андроид.
Что же представляет собой приложение?
Приложение “НомеРА” – самый удобный способ коммуникации между участниками дорожного движения, зарегистрироваться в котором могут не только автомобилисты, но и пешеходы.
Вы можете наблюдать за перемещением пользователей в режиме реального времени. Всегда будете знать, где находятся Ваши друзья, ведь возможно кто-то из них совсем рядом. Вы можете спрашивать водителей, находящихся впереди Вас, о ситуации на дороге. Если что-то случиться с автомобилем, Вы легко найдете к кому обратиться за помощью.
Пользователи регистрируются под своими реальными номерами, что позволяет отправлять сообщение людям, находящимся рядом с Вами. Вы также можете отправить сообщение владельцу любого номера – увидев его на карте или найти в приложении. Даже если нужный номер не зарегистрирован, то его владелец получит Ваше сообщение после регистрации.
Важной опцией приложения является раздел «Дорога». Вы наверняка помните чаты, которые были так популярны на заре интернета.
«Дорога» является аналогом такого чата, в котором каждый пользователь может написать свое сообщение. Для удобство пользования в «Дороге» предусмотрено разделение по городам, и Вы можете смотреть сообщения только из своего населенного пункта. Знакомиться и общаться стоя в пробке стало как никогда удобно и просто.
Мы рады сообщить, что приложение наконец стало доступно владельцам телефонов на платформе Андроид. С нетерпением ждем Вас в наших рядах!
Нашли опечатку? Выделите текст и нажмите Ctrl+Enter
Нумерация версий программного обеспечения
Жизненный цикл успешной компьютерной программы может быть очень долгим; изменения в программе бывают разными — от исправления ошибки до полного переписывания. В большинстве случаев название программы остаётся тем же, изменяется подназвание — так называемая версия.
Версия программы может быть целым числом (Corel Draw 11), дробным числом (Windows 3.11), последовательностью чисел (JDK 1.0.3), годом (Windows 2000) или текстом (Embarcadero Delphi XE). В любом случае, система версионирования выбирается по нескольким критериям:
Содержание
Схемы нумерации
Для отслеживания изменений программного обеспечения было создано большое количество схем присвоения номеров версиям программного обеспечения.
В некоторых схемах последовательные идентификаторы используются для определения значимости перемен между стадиями разработки: эти перемены классифицируются по уровням значимости. Решение о том, какую из последовательностей (в сложной нумерации версий) изменить между стадиями разработки, основано на значимости перемен на последней стадии разработки, например, в схеме, с версией, состоящей из последовательности 4 чисел, первое число может быть прибавлено только тогда, когда код полностью переписан, в то время как четвертое число изменяется при незначительных переменах в интерфейсе или документации. Эта практика позволяет пользователям (или потенциальным последователям), оценить, насколько было протестировано в реальных условиях данное программное обеспечение. Если изменения сделаны, например, между 1.3rc4 (RC — release candidate, релиз-кандидат) и продукционным выпуском 1.3, то выпуск 1.3rc4 не предполагает уровень тестирования производственного класса и, на самом деле, содержит изменения, которые не обязательно были испытаны в реальных условиях. Такой подход обычно допускает применение третьего уровня нумерации («изменения»). Например: 1.3.1, 1.3.2, 1.3.3, 1.3.4,… 1.4.1 и т. д.
В более поздних релизах, главное число (major) увеличивается, когда происходят значительные переходы в функциональности, второстепенное число (minor) прибавляется только тогда, когда были добавлены незначительные функции или внесены исправления. Номер версии изменяется, если исправлены все мелкие неполадки. Для типичного программного продукта используются следующие номера: 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 и т. д. Важной характеристикой этого подхода является соблюдение идентичности стадий разработки версий. Нельзя вносить никаких изменений между последней бета-версией и первым релиз-кандидатом или последним релиз-кандидатом и готовым продуктом. Если это сделано, необходимо выпустить другую версию на более низкой стадии разработки.
Иногда присутствие человеческого фактора в создании номеров версий приводит к ошибкам в изменении версий. Например, разработчики могут изменить последовательность между версиями, даже если ни одна строчка кода не была переписана, лишь для того чтобы создать ложное впечатление, что были внесены значительные изменения.
Другие схемы передают значение на отдельных последовательностях:
Опять же, в этих примерах отличия «существенных» от «незначительных» изменений, даются произвольно и по усмотрению автора, как то, что означает «build» или как «revision» отличается от «minor change». Аналогичные проблемы относительной значимости изменений и номенклатуры версий существуют в сфере книгоиздания, где номер издания или название может быть выбрано на основе различных критериев.
В большинстве проприетарного программного обеспечения, первая официальная версия программного продукта имеет версию 1.
Последовательные номера
Изначально программы нумеровались числами 1, 2, 3 и т. д. — аналогично изданиям книг. Впрочем, этой нумерации оказалось мало: приходится разделять малые и крупные изменения. Для этого есть несколько способов нумерации.
В схемах управления версиями, основанных на последовательной нумерации, каждому выпуску программы присваивается уникальный идентификатор, который состоит из одной или нескольких последовательностей чисел или букв. В общем случае это так, однако, схемы широко варьируются в количестве последовательностей, в смысле отдельных последовательностей, в способах увеличения значений.
Десятичная дробь
Номер версии является десятичной дробью в американском формате (через точку). Например, первая версия получает номер 1.0, следующая за ней — 1.1, с небольшим изменением — 1.11. После серьёзного дописывания выходит версия 1.5, после чего — 2.0. Сравнение версий идёт по правилам десятичных дробей: 1.01 Последовательность чисел
Этот способ принят, например, в 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 Буква в качестве младшей версии
Иногда вместо третьего числа применяется буква. Так, когда в DotA 6.42 нашли ошибку, новой версии дали название 6.42b. Это значит: игра остаётся той же, с тем же расположением препятствий и тем же балансом, но с исправленной ошибкой. Дальнейшие исправления ошибок именуются 6.42c, 6.42d и т. д.
Указание стадии разработки
Если разработчику приходится полагаться на внештатных тестеров, в версии может указываться уровень зрелости программы: альфа-версия, бета-версия, релиз-кандидат, окончательный выпуск, исправление ошибок ( service release ).
Например, 2.0 alpha1 Алфавитно-цифровое название
Чаще всего применяется ПО с долгой историей и редко выходящими версиями. Например: 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, то есть сначала указывается год, затем месяц, а потом день (YYYY-MM-DD), причем дефис можно опускать.
Внутренние версии
Экзотические схемы
Дональд Кнут нумерует версии системы компьютерной вёрстки Τ Ε Χ последовательными приближениями числа : 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.
Пропуски в версиях
Иногда разработчик пропускает номер версии, чтобы не отставать от конкурентов или других продуктов той же компании: например, 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.
Алгоритмы определения старшинства версий
Применение схем нумерации ПО в других сферах культуры
Примечания
Кент Бек • Гради Буч • Фред Брукс • Barry Boehm • Уорд Каннингем • Оле-Йохан Даль • Том Демарко • Эдсгер Вибе Дейкстра • Дональд Кнут • Мартин Фаулер • Чарльз Энтони Ричард Хоар • Watts Humphrey • Майкл Джексон • Ивар Якобсон • Craig Larman • James Martin • Мейер Бертран • Дэвид Парнас • Winston W. Royce • James Rumbaugh • Никлаус Вирт • Эдвард Йордан • Стив Макконнелл
Моделирование данных • Архитектура ПО • Функциональная спецификация • Язык моделирования • Парадигма • Методология • Процесс разработки • Качество • Обеспечение качества • Структурный анализ)
CMM • CMMI • Данных • Function model • IDEF • Информационная • Metamodeling • Object model • View model • UML
Список версий MongoDB — Значимость предмета статьи поставлена под сомнение. Пожалуйста, покажите в статье значимость её предмета, добавив в неё доказательства значимости по частным критериям значимости или, в случае если частные критерии значимости для… … Википедия
Avid Media Composer — Media Composer 4.0, запущенный на Mac OS X. Тип Видеоредактор Раз … Википедия
Бета-тестирование — В этой статье не хватает ссылок на источники информации. Информация должна быть проверяема, иначе она может быть поставлена под сомнение и удалена. Вы можете … Википедия
Система управления версиями — (от англ. Version Control System, VCS или Revision Control System) программное обеспечение для облегчения работы с изменяющейся информацией. Система управления версиями позволяет хранить несколько версий одного и того же документа, при … Википедия
Ядро Linux — Эта статья о ядре для операционных систем. О группе операционных систем, которые используют это ядро, называемых «Linux», см. в статье Linux Ядро Linux Тип … Википедия
Linux (ядро) — Эта статья о ядре для операционных систем. О группе операционных систем, которые используют это ядро, называемых «Linux», см. в статье Linux Ядро Linux Тип Ядро ОС Разработчик … Википедия
Линукс (ядро) — Эта статья о ядре для операционных систем. Об операционной системе, которая использует это ядро и библиотеки Linux Ядро Linux Тасманский дьявол Tuz, временный символ ядра Linux версии 2.6.29 Пингвин Тип Ядро ОС Разработчик … Википедия
Ядро Линукс — Эта статья о ядре для операционных систем. Об операционной системе, которая использует это ядро и библиотеки Linux Ядро Linux Тасманский дьявол Tuz, временный символ ядра Linux версии 2.6.29 Пингвин Тип Ядро ОС Разработчик … Википедия