1
/
5

UML(Unified Modeling Language)のどこが言語(Language)なのか?

Photo by Stefan on Unsplash

UMLは、日本人から見ると「図」

UMLって、言語だって知っていますか?
Unified Modeling Language で、ラングエッジ 、つまり言語です。

でも日本人からみると、言語じゃなくてですよね。


まあ、どう見たって、

これでも、日本人から見たら、やっぱりですよね。


「図書館は、蔵書を所蔵する。」

UMLは、英語圏の人から見ると「言語」

でも、これを英語にしてみましょう。


「A Library houses bibliothecas.」
※house:所蔵する、bibliotheca:蔵書、owner:所有者


なんか、UMLのクラス図の並びって、英語の SVO(主語・動詞・目的語) と同じじゃないですか?

はい。

UMLのクラス図って、英語の SVO を絵で描いたものになってます。

つまり、英語圏の人は、普段使う言語を図に置き換えてモデリングできるんです。

英語圏の人から見たら、そのまま言語でしょ。
Modeling Language、モデリング言語

「言語」でプログラミングしたら、、、

普通の感覚で言語ならば、
クラス図描いたら、
それをクラスとして実装して、

book.cs

// (日本人向けの説明)本について書きます
class book
{
// (日本人向けの説明)本には、タイトルがあります
public string Title:
}

library.cs

// (日本人向けの説明)図書館について書きます
class library
{
// (日本人向けの説明)図書館には、蔵書リストがあります。蔵書リストは、bookのリストです。
List<book> Bibliothecas = new List<book>():

// (日本人向けの説明)図書館には、蔵書を追加できます
public void AddBibliotheca(book newBook)
{
// (日本人向けの説明) 蔵書リストに追加する、新しい本を
Bibliothecas.Add(newBook);
}

// (日本人向けの説明)図書館では、タイトルから蔵書を検索できます
public book SearchBook(string targetBookTitle)
{
// (日本人向けの説明)ある本、蔵書リストの中にある
foreach( book bibliothea in this.Bibliothecas ){
// (日本人向けの説明) その本のタイトルが同じ、探している本のタイトルと、
if( bibliothea.Title.Equals(targetBookTitle){
// (日本人向けの説明) 戻す、その本を
return bibliothea; // この辺は、Linqで書けばいいのかな.
}
}
return null: // null返すのが良いかどうかはさておき
}
}

みたいに、日常の言語的な感覚で、実装することができる。
日本人向けにコメント入れたけれど、英語圏の人ならコメントいらない。

これならば、不具合が少なくなるよね。

どうして、不具合が少なくなるのか?

さぁ、考えてみよう!

※転載元の情報は上記執筆時点の情報です。
 上記執筆後に転載元の情報が修正されることがあります。



執筆者のページはこちらから


株式会社豆蔵では一緒に働く仲間を募集しています
同じタグの記事
今週のランキング
このストーリーが気になったら、直接話を聞きに行こう