1
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

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

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

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

でも日本人からみると、言語じゃなくてですよね。
image.png
まあ、どう見たって、

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

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

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

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

image.png

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

image.png

なんか、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返すのが良いかどうかはさておき
    }
}

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

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

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

さぁ、考えてみよう!

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
1
Help us understand the problem. What are the problem?