[1] [DFN[[RUBYB[[[仕様書]]]@en[specification]]]]とは、何らかの対象の[[仕様]]を定めるものです。
[DFN[[RUBYB[仕様]@en[specification]]]]とは、何らかの対象が満たすべき[[要件]]や性質の記述です。

* 仕様の性質

[2] [[仕様]]には、広く世界中で実装される基準となるものもあれば、
唯一の製品についてのみ言及しているものもあります。広く実装されるものであれば、
[[相互運用性]]の向上のために対象を詳細に記述した[[仕様書]]が必要となりますが、
ごく限られた範囲でのみ用いられるものであれば、
特定の人の脳内にのみ[[仕様]]が記憶されていることもあります。

[3] [[仕様]]を記述した[[仕様書]]が存在する場合、その体裁や内容も記述対象によって様々です。
多くの場合は何らかの[[自然言語]]による[[人間可読]]な文章として記述されていますが、
対象によっては[[機械可読]]な仕様記述言語によって記述されることもあります。

[4] [[仕様書]]は、[[標準化団体]]による[[標準]]として出版されることや、
[[政府機関]]等による公的な文書として作成されることもあれば、
[[企業]]や[[個人]]による私的な文書であることもあります。

* 仕様書の品質

[6] [[仕様書]]の品質は、様々です。[[標準化団体]]の[[標準仕様]]の場合、
その[[標準化手続き]]で定められた品質基準に沿ったものが出版されることになりますが、
その基準も様々です。

[7] 一般に「原案」よりも正式版が、古い版よりも改訂版が品質が高いことが多いですが、
一概には言えません。[[標準化団体]]ごとの色もあります。同じ[[標準化団体]]でも、
[[編集者]]ごとに様々なことがあります。

[8] [[標準化団体]]の権威や歴史の長さと品質には、相関はなさそうです。
[[仕様書]]の長さと品質にも相関はなさそうです。

[EG[
[9] [[JIS]] は[[国家標準]]ですが、[[要約JIS]]のように低品質の規格を量産する制度があります。
]EG]

[EG[
[10] 本文が短い仕様書は、短い分十分に検討されたものかもしれませんし、
細部を無視した結果短くなったのかもしれません。
]EG]

* 仕様書の読み方

[FIG(quote)[
[FIGCAPTION[
[11] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-10-15 01:48:48 +09:00]] 版) <https://html.spec.whatwg.org/#how-to-read-this-specification>
]FIGCAPTION]

>This specification [SHOULD[should]] be read like all other specifications. First, it [SHOULD[should]] be read cover-to-cover, multiple times. Then, it [SHOULD[should]] be read backwards at least once. Then it [SHOULD[should]] be read by picking random sections from the contents list and following all the cross-references.

>この仕様書は、他の色々な仕様書と同じような方法で読む[SHOULD[べきです]]。
まず、最初から最後まで、何度も繰り返し読む[SHOULD[べきです]]。
次に、最低でも一度は、最後から最初まで逆向きに読む[SHOULD[べきです]]。
加えて、目次から適当な章を選んで、そこにある相互参照をすべて辿って読む[SHOULD[べきです]]。
]FIG]

[12] という [[HTML Standard]] の(若干ネタ混じりの)規定は極端で、
実際にそんなことをしている人はほとんどいないでしょうが、
[[仕様書]]が記述する内容を理解するためにはとても重要です。
[[仕様書]]は初見で理解しやすく書くことよりも厳密に規定することをずっと重視して書かれていますから、
[WEAK[(もちろん意図的に難解に書いているわけではないでしょうが、)]]
流し読みでは正確に理解できる保証はまったくありません。

[13] [[仕様書の翻訳]]は、読むべきではありません。特に [[Web]]
などの進歩の早い分野では、日本語訳が存在すること自体が有害ですらあります。
ほとんどの日本語訳は、翻訳の品質が十分ではないか、十分であることの保証が何もありません。
しかも原文が改訂される速度に追いついていることもほとんどありません。
訳文は正しくないものとみなすのを原則とせざるを得ません。

[EG[
[20] [[JIS]] が [[ISO]] など海外の[[標準化団体]]の[[仕様書]]の[[日本語]]版を出版していることはありますが、
改訂への追随が数年遅れだったりするので、要注意です。
[[国家標準]]でありながら、分野によっては[[翻訳]]の質も微妙だったりします。
]EG]

* 標準技術の仕様書の入手

[14] [[インターネット]]や [[Web]] に関する分野の標準技術の[[仕様書]]は、 [[Web]] 上で[[無料]]で入手できるのが一般的になってきました。

[15] 従来は[[標準化団体]]が[DFN[規格票]]を[[紙媒体]]で[[出版]]し、その[[販売]]を[[標準化団体]]の[[収益]]とするのが一般的でした。
[[規格票]]は高額で、一般書店でも流通せずその分野の専門家以外にはほとんど縁のないものでした。
今でもそのような[[ビジネスモデル]]を続けている古い[[標準化団体]]はあります。

[16] 古くからある大きな[[標準化団体]]では、
中央組織の意思と末端の[[標準化委員会]]の方針が食い違っていて、
末端委員会や編集者が独自に[[仕様書]]を [[Web]] 上で[[無料]]で公開されていることもあります。
正式版を公開することに問題があって、実質的に正式版と同じ内容の最終案がかわりに公開されていることもあります。

[22] 
[[標準化]]の目的は[[相互運用性]]の実現なのですから、
それに最適な手段で配布されるべきです。
実装者が特定少数の業者に限られるような分野では、
高額な会費が必要な業界団体への加入が[[仕様書]]の入手前提でも構わないかもしれません。
一方多種多様なプレイヤーが参画している情報分野では、
[[Web]] 上で無償公開しなければ[[仕様書]]を参照してもらえず、
[[相互運用性]]に支障が生じたり、
他の標準技術との競争に不利になったりするかもしれません。

* 仕様書に関する用語

[FIG(list short)[
- [[モジュール]]
- [[分散拡張性]]
- [[適合性]]
- [[助動詞]]
- [[適用可能な仕様書]]
- [[規定]]・[[参考]]
- [[附属書]]
- [[備考]]
- [[解説]]
- [[追補]]
- [[正誤表]]
- [[use case]]
- [[要件]]
- [[Normative Reference]]
- [[Informative Reference]]
- [[標準化手続き]]
- [[標準化機関]]・[[標準化委員会]]
- [[参照実装]]
- [[実装報告]]
- [[規格番号]]
]FIG]

[FIG(short list)[ [23] 標準仕様書の[[アンチパターン]]
- [[差分仕様書]]
- [[プロファイル]]
- [[要約規格]]
- [[新規格の先行コピペ]]
- [[layering violation]]
- [[意図的違反]]
]FIG]

* 高次の規定

[FIG(short list)[ [21] 
- [[JIS Z 8301]]
- [CITE[Infra Standard]]
- [[アルゴリズム]]
- [[プラットフォーム固有制約に関する条項]]
]FIG]

* 仕様記述言語

[FIG(list short)[
- [[BNF]]
- [[スキーマ]]
- [[UML]]
- [[仕様書生成ツール]]
]FIG]

* メモ

[5] [CITE@en-GB-x-Hixie[Hixie's Natural Log: Writing specifications: Kinds of statements]] ([TIME[2014-07-28 13:53:32 +09:00]] 版) <http://ln.hixie.ch/?start=1140242962&count=1>

[17] [CITE[''''''[''''''tech'''''']'''''' プログラムが書けない人に「仕様変更」について説明するには | Fri, Mar 1. 2013 - 氾濫原 '''['''HANRANGEN''']''']]
( ([TIME[2013-03-01 22:46:58 +09:00]] 版))
<http://lowreal.net/2013/03/01/4>

[FIG(quote)[
[FIGCAPTION[
[18] [CITE@en-us[schematron.com » ISO Schematron 2016 Released!]]
([TIME[2017-03-16 20:47:04 +09:00]])
<http://schematron.com/2016/11/iso-schematron-2016-released/>
]FIGCAPTION]

> The stan­dard’s body is only 14 pages, and 20 pages annexes.

]FIG]

[19] [[仕様書]]の短さを誇っているところには、独特の感性が感じられます。
[[仕様書]]は短ければいいとか長ければいいとかいうものではなく、
記述する対象の[[相互運用性]]の実現に[[必要十分]]な内容があることが望ましいと思うのですが。