内容を確認した日
たまにソフトウェアやアプリケーション(スマホアプリなど)でバージョン情報と思われる数字の羅列を目にしますが、実際のところバージョン情報の意味を知識として持っている人は少ないと思います。
例えば、Webブラウザの Google Chrome だと以下のようなバージョン表記がされていますね。画像は少し古いバージョンのものです。

開発が盛んな Google Chromeは、上の画像のようにかなり細かいバージョン管理がなされていることが察せられます。
-

PC版 Google Chromeのバージョン情報を確認する方法
続きを見る
もちろん、利用中のバージョンに問題がない限り、基本的にはユーザーが細かい数値のバージョンを気にする必要はありません。小数点以下になるほど共通ルールというよりも、かなり緩い感覚的な管理になっていきます。
このバージョン情報で一番話題になるのはAppleのiOSではないでしょうか。最近は革新的な新サービス・新機能が誕生することは少なくなりましたが、iPhone・iPadユーザーにとってOSのバージョンアップは常に興味のある話だと思います。そして、アプリ開発者にとってはアップデートにより何が起こるのか分からず、なかなかハラハラさせられる出来事でもありますね。
Appleはメジャーアップデートによる混乱を避けるために、開発者向けに正式版の前にアルファ版・ベータ版・ゴールデンマスター(GM)と呼ばれるリリース前のOSを段階的に提供しています。
今回は、そんな「バージョン表記」の一般的なルールについて、どのような意味・ルールがあるのかを解説したいと思います。当然、これは単なる「決めごと」なので会社やシステムによって異なります。
バージョン表記の読み方
- 「1.2.3.4」のような4つの数字は、左からメジャー・マイナー・ビルド・リビジョンと呼ぶのが一般的です
- 左の数字ほど大きな変更で、メジャーが上がるのは大きな機能追加やUIの刷新があったときです
- 3つの数字の「1.2.3」は、メジャー・マイナー・パッチの順に並べるルールがよく使われています
- 先頭の「v」や「Ver.」はバージョンの略で、付けても数字の意味は変わりません
ソフトウェア(アプリケーション)のバージョン情報とは
一般的なバージョン情報は、ピリオド区切りで多くても4つくらいの数字(パート)で構成されています。小さな規模のシステムでは2つくらいに抑えられています。
先ほどの Google Chrome の場合、「69.0.3497.100」という4つの数字で構成されていましたが、この4つの数字には下記のような意味があります。
- Major(メジャー)
- Minor(マイナー)
- Build(ビルド)
- Revision(リビジョン)
これを基にすると、先ほどの Google Chrome 69.0.3497.100 のバージョンは「メジャー 69」「マイナー 0」「ビルド 3497」「リビジョン 100」のバージョンであることが分かりますね。
ちなみに、Chrome の公式ページでは4つ目の数字を「パッチ(PATCH)」と呼んでいます。呼び方は違いますが、同じビルドの中で修正を重ねるたびに増えていく数字という点は、ここで説明するリビジョンと同じと考えてよいでしょう。
iOSやAndroidが大きく変わるときに「メジャーアップデート」と言われるのは、一番最初に出てくる「Major(メジャー)」がバージョンアップされるときの話です。システム開発に携わったことのある人には馴染みがあると思いますが、エンドユーザーとしては「メジャー」以外は触れる機会のない言葉かも知れません。

それでは、それぞれの言葉の意味を確認していきましょう。
Major(メジャー)
最初の「Major(メジャー)」ですが、これは一番分かりやすいですね。アプリやシステムが初めて世の中にリリースされるときは、必ず1から始まります。まだ正式版ではない場合、バージョン0にしてテスト配布やパイロットユーザーを募っているようなこともありますね(iOSで言うTestFlightです)。
このメジャーバージョンは、下記のようなケースでアプリやシステムが大きく変わるときに数字が繰り上がります。
- 新しい技術や基準によりアーキテクチャに大きな変更があったとき
- 大きな機能追加や削除があったとき
- 用途や処理、UI(User Interface, ユーザーインターフェース)に変更があったとき
メジャーバージョンは、上記のような大きな変更・改修が入ったときに数字が繰り上がります。
Minor(マイナー)
次の「Minor(マイナー)」ですが、これは下記のような場合にバージョンアップされます。
- サービスパックをリリースしたとき(最初から完璧なソフトウェアは存在しないため)
- バグフィクスや特別な機能をサポートしたとき
マイナーのバージョンアップはメジャーほど大きくはない機能追加やバグフィクスがメインです。これはWindowsでも数字とアルファベットを組み合わせたバージョン情報として目にする人も多いと思います。
Build(ビルド)
Major, Minor に続く3番目にあるのは「Build(ビルド)」です。ここからは利用者側に見せないケースも出てくるパートですね。
これはシステム開発ライフサイクル(SDLC, Systems Development Life Cycle)において、ソフトウェアがどのポイントまで到達しているかを示します。通常、開発チームが採用するウォーターフォール・モデル、スパイラル・モデル、アジャイル、反復型などの開発モデルにおいては、実際の開発工程を分割してモジュールを完成させていきます。
一つの工程が完了してユーザーアクセプタンス(User Acceptance)やQAに進むたび、このBuildのバージョンは繰り上げることになります。要するに、開発工程が進むとBuildの数字が上がっていき、それがマイナーアップデートにつながるということですね。
Revision(リビジョン)
最後の 「Revision(リビジョン)」は3つ目の Build(ビルド)の改訂数を示します。
どのような開発チームも最初から完璧な開発(ビルド)を出せることはありません。そのため、バグの発生・発見やバグ修正を繰り返しながら開発を進めることになります。そして、そのビルドのための改修を繰り返すたびにリビジョンは繰り上がっていくことになります。
バージョンとリビジョンの違い
「バージョン」と「リビジョン」はどちらも“版”を表す言葉なので、混同しやすいですよね。違いをひと言で言うと、大きな区切りがバージョン、その中の細かい直しの回数がリビジョンです。
この記事の4つの数字で言えば、「1.2.3.4」の全体がバージョンで、一番右の「4」がリビジョンにあたります。ソフトウェア以外でも、設計図や資料を少し直すたびに「Rev.1」「Rev.2」と改訂の回数を付けることがあります。大きく変えたら新しいバージョン、手直しならリビジョンを1つ進める、と覚えておけば迷わないでしょう。
「1.2.3」の3つの数字はメジャー・マイナー・パッチ
最近のアプリやWebサービスでよく見かけるのは、「1.2.3」のような3つの数字のバージョンです。これはセマンティック バージョニングというルールに沿っていることが多く、それぞれの数字は下記の意味になります。
- メジャー(1):今までと互換性のない変更をしたときに上げる
- マイナー(2):互換性を保ったまま機能を追加したときに上げる
- パッチ(3):互換性を保ったままバグを修正したときに上げる
上の位が上がったら下の位は0に戻すので、1.9.0 の次のマイナーアップデートは 1.10.0 です。小数ではないので「1.9 の次は 2.0」とはならないんですね。
4つの数字のルールとは数え方が違いますが、左の数字ほど大きな変更という考え方は同じです。
セマンティック バージョニングは国の規格のような公式の標準ではありませんが、多くの開発者が使っている決まりなので、迷ったらこれに合わせておけば間違いないでしょう。正式なルールはセマンティック バージョニング 2.0.0で確認できます。
「v1.2.3」「Ver.1.2」の書き方
バージョンを書くとき、先頭に「v」や「Ver.」を付けることもありますね。どちらも英語の version の略なので、付けても付けなくても数字の意味は変わりません。
セマンティック バージョニングの公式ページでも、「v1.2.3」の「v」はバージョン番号だと示すための接頭辞で、バージョンそのものは「1.2.3」だと説明されています。
「Ver.」のピリオドの有無や大文字・小文字にも決まった書き方はありません。資料やファイル名に付けるなら、書き方が混ざると探しにくくなるので、1つの書き方に決めておきましょう。
あくまでもバージョニングの一例です
冒頭にも書いたとおり、ご紹介したバージョニングの方法は一般的ではありますが、国際的に標準化されているようなルールもなくあくまでも一つの方法・考え方に過ぎません。
会社によってはメジャーとマイナーのバージョン管理のみであったり、大掛かりな開発でない場合はビルドまでの管理だったりします。さらには、ソフトウェアのバージョンをリリースした西暦にするような管理をする会社もあり、実務的には開発会社の文化に合せるという他はないでしょう。
また、コンシューマー向けのシステムの場合、開発のバージョン管理とエンドユーザーに見せるものが異なることもあります。分かりやすいように、ユーザー向けにはメジャーとマイナーまでを公開するようにしているわけですね。
今回の記事がシステム開発のバージョニングに関する一つの参考になれば幸いです。
参考:SOFTWARE VERSIONING AND RELEASE NUMBERS - Zapbuild








