#UMLは、日本人から見ると「図」
UMLって、言語だって知っていますか?
Unified Modeling Language で、ラングエッジ 、つまり言語です。
でも日本人からみると、言語じゃなくて図ですよね。
まあ、どう見たって、図。
これでも、日本人から見たら、やっぱり図ですよね。
#UMLは、英語圏の人から見ると「言語」
でも、これを英語にしてみましょう。
「A Library houses bibliothecas.」
※house:所蔵する、bibliotheca:蔵書、owner:所有者
なんか、UMLのクラス図の並びって、英語の SVO(主語・動詞・目的語) と同じじゃないですか?
はい。
UMLのクラス図って、英語の SVO を絵で描いたものになってます。
つまり、英語圏の人は、普段使う言語を図に置き換えてモデリングできるんです。
英語圏の人から見たら、そのまま言語でしょ。
Modeling Language、モデリング言語。
#「言語」でプログラミングしたら、、、
普通の感覚で言語ならば、
クラス図描いたら、
それをクラスとして実装して、
// (日本人向けの説明)本について書きます
class book
{
// (日本人向けの説明)本には、タイトルがあります
public string Title:
}
// (日本人向けの説明)図書館について書きます
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返すのが良いかどうかはさておき
}
}
みたいに、日常の言語的な感覚で、実装することができる。
日本人向けにコメント入れたけれど、英語圏の人ならコメントいらない。
これならば、不具合が少なくなるよね。
どうして、不具合が少なくなるのか?
さぁ、考えてみよう!