今更ですが、言葉って大切ですよね。


使い方一つで、伝わり方が変わります。


そんな曖昧な言葉を使って、なにげなくソフトウェアを作ってます。


そう考えると、仕様変更が発生することは自然に感じますね。


と、納得したとこですが、逆らいたくなるのが人の性(?)♣


同じく逆らいたくなった人は読んでみてくださいねにひひ

DDD(ドメイン駆動設計)の考えの一つに、ユビキタス言語があります。


ユビキタス言語は、開発者とユーザーとの間で共通の厳格な意味

表すために使用する用語である。


用語というのは、共通の認識を得るために大切です。



例えば、仕様書を作成する際に、人によって同じ意味を表すのに、

使う用語が異なることがある。


また、同じ用語ですが異なる意味合いで使うこともある。


例えば、


 1、”戦争と平和”は素晴らしい本だ。

 2.あーあ、この本の表紙はボロボロだねえ。



は同じ「本」という用語を使っているが、意味合いが異なります。


 1は、「本」は「著書」を表している。

 2は、物理的な「モノ」を指している。



このような同じ用語でも、異なる意味で使わないようにすることが大切です。



仕様書のレビューや実装、ユーザーとの打ち合わせ等を進めていく中で、

この用語の使い方で認識の相違が生まれる。


これらを気にせず進めていくと、結果としてお互い認識があっていると

思っていたが、後で異なっているなんてことになる。


そうすると、ユーザーと認識が異なるため、仕様変更が発生する。


これらのことを防ぐために、用語集等を作成する必要がでてきます。



ここで、問題がでてきます。


この用語を仕様書などで利用するのはいいのですが、プログラムに

適用するときに困ります。


なぜかというと...


それは、DDD(ドメイン駆動設計)を考えた人が使う言語が英語で、


下記のようになものを扱うのも英語(または ローマ字)だからです。


 ・ソースコード
 ・データベースのテーブルやカラム
 ・XMLの要素名や値


英語で用語を統一して、仕様書、プログラム等の両方に統一して

使うことができますが、私たちは”日本語”を使いますので、

英語、もしくはローマ字に変換して使う必要がります。


全員が英語で正しいニュアンスのものを使うことは難しく、

ローマ字にも訓令式とヘボン式の種類がある。


これらの違いを統一するためにも、ルールと英語 または、ローマ字に

変換したものを用語集に載せる必要があります。



これらのように用語の統一、使い方をあわせることによって、

仕様の認識の相違を少なくし、その用語をプログラム上でも

使うことにより、保守性も向上し、品質も向上することでしょう。