UML(統一モデリング言語)リテラシー

1.UMLの概要

            UML(統一モデリング言語、統一モデリング言語)は、オブジェクト指向ソフトウェアシステムモデリングの現在の標準言語であり、多くのソフトウェアモデリングテクノロジの利点を組み合わせ、一連の標準グラフィックシンボルを通じてシステムを記述します。

            UMLは、プログラミング言語とは異なる汎用のビジュアルモデリング言語であり、いくつかの標準的なグラフィックシンボルとテキストを使用してシステムをモデル化し、ソフトウェアの記述、視覚的な処理、構築、およびソフトウェアシステム製品のドキュメントの確立に使用されます。 。UMLは、さまざまなソフトウェア開発方法、ソフトウェアライフサイクルのさまざまな段階、さまざまなアプリケーションフィールド、さまざまな開発ツールに適しています。UMLは、過去のモデリングテクノロジーの経験を要約し、今日の最良の結果を吸収する一連の標準モデリング方法です。

2.UML構造構成

            UMLは、主にグラフィックシンボルで表現されるモデリング言語であり、その構造は主に次​​の4つの部分で構成されています。

    (1)ビュー:UMLビューは、さまざまな角度からモデル化されるシステムを表すために使用されます。ビューは、多くのグラフィックで構成される抽象的なコレクションです。システムモデルを構築する場合、複数のビューを定義するだけで、各ビューはシステムの特定の側面を示し、システムの完全な青写真を構築できます。ビューはモデリングも使用します。言語開発のために選択された方法とプロセスへのリンク。UMLビューには、ユーザービュー、構造ビュー、動作ビュー、実現ビュー、および環境ビューが含まれます。

    (2)図:UML図は、UMLビューの内容を説明する図です。UML2.0は、ユースケース図、クラス図、オブジェクト図、パッケージ図、複合構造図、状態図(状態図)、アクティビティ図(アクティビティ図)、シーケンス図(シーケンス図)、通信図(シーケンス図)の13の図を提供します。通信図)、タイミング図(Timimg図)、相互作用図(相互作用図)、コンポーネント図(コンポーネント図)、および展開図(展開図)は、相互に組み合わせることで、モデル化するシステムのすべてのビューを提供できます。

    (3)モデル要素:モデル要素は、UMLダイアグラムで使用されるいくつかの概念を参照します。これらは、クラス、オブジェクト、属性などの一般的なオブジェクト指向の概念、および関連付け関係、依存関係、一般化などのこれらの概念間の関係に対応します。等 同じモデル要素を複数の異なるUMLダイアグラムで使用できますが、どのダイアグラムが含まれていても、同じモデル要素は同じ意味を維持し、同じ記号を持っている必要があります。

    (4)一般的なメカニズム:UMLによって提供される一般的なメカニズムは、モデル要素の追加の注釈、セマンティクス、およびその他の情報を提供します。これらの一般的なメカニズムは、新しいモデリング要素の定義など、ユーザーがUMLを拡張できる拡張メカニズムも提供します。元の要素、モデル要素のルール記述を拡張するためのTianjianの新しい特別な情報など、特定のメソッドまたはプロセス、組織、またはユーザーに適しています。

3.クラスとクラスのUML表現

       UML 2.0の13のグラフィックの中で、クラス図は最も広く使用されているグラフィックの1つであり、システムに含まれるクラスとそれらの間の関係を説明するために使用されます。クラス図は、システムの理解を簡素化するのに役立ちます。これは、システム分析と設計段階の成果であり、システムコーディングの重要なモデル基盤でもあります。

       1.クラス

           システムでは、各クラスに特定の責任があります。責任とは、クラスが実行する必要のある機能の種類と、クラスが実行する必要のある義務の種類を指します。クラスには複数の責任があり、適切に設計されたクラスには通常1つだけの責任があります。クラスを定義するとき、クラスの責任はクラスの属性と操作(つまりメソッド)に分解されます。クラスの属性はクラスのデータの責任であり、疲れる操作はクラスの動作の責任です。

           クラス図は、システムに表示されるさまざまなクラスを使用して、システムの静的構造を記述します。これは、さまざまなクラスとそれらの間の関係を記述するために使用されます。

       2.クラスのUML図

           UMLでは、クラスは、クラス名、属性、および分割線のある操作を含む長方形で表されます。以下に示すように:

                                                  

          この図は、属性name、age、address、および操作work()とeat()を含むPersonクラスを示しています。図に対応するコードは次のとおりです。          

public class Person {

    public String name;
    private int age;
    private String address;

    public void work() {

    }

    public String eat() {
        return "rice";
    }
}

          UMLクラス図では、クラスは通常3つの部分で構成されます。

        (1)最初の部分はクラス名です。各クラスには名前が必要であり、クラス名は文字列です。

        (2)2番目の部分は疲れた属性です。属性はクラスの性質、つまりクラスのメンバー変数を参照します。クラスは通常、任意の数の属性を持つことも、属性を持たないこともできます。

                 UMLは、属性表現が次のとおりであることを規定しています。

[可见性] 名称 : 类型 [ = 默认值 ]

                 その中で:

                    ①「可視性」は、パブリック(パブリック)、プライベート(プライベート)、プロテクト(保護)の3つのタイプを含む、クラス外の要素に属性が表示されるかどうかを示します。UMLクラス図で「+」と「-」を使用します。 "#" 手段。Java言語では、デフォルトのパッケージの可視性も追加されます。パッケージの可視性は、UMLモデリングツールでは記号「*」で表されます。

                    ②「名前」とは、文字列で表される属性名を意味します。

                    ③「タイプ」は、属性のデータ型を示します。基本データ型またはユーザー定義型のいずれかです。

                    ④「デフォルト値」はオプション項目、つまり属性の初期値です。

         (3)3番目の部分は、クラスの操作です。操作は、クラスの任意のインスタンスオブジェクトが使用できる動作であり、クラスのメンバーメソッドです。

                   UMLは、操作が次のように表現されることを規定しています。

[ 可见性 ] 名称 ([参数列表]) [ : 返回类型 ]

                  その中で:

                      ①「可視性」の定義は、属性の可視性の定義と同じです。

                      ②「名前」はメソッド名または操作名で、文字列で表されます。

                      ③「パラメータ一覧」とは、メソッドのパラメータを意味します。構文は属性の定義と同様です。パラメータの数は任意で、複数のパラメータはコンマ「、」で区切ります。

                      ④「戻り値の型」は、特定のプログラミング言語に依存するメソッドの戻り値の型を意味するオプションです。基本データ型、ユーザー定義型、または空の型のいずれかです。工法、戻り値の型はありません。

        3.クラス間の関係

             ソフトウェアシステムでは、クラスは分離して存在しません。クラス間にはさまざまな関係があります。関係のタイプが異なれば、UMLはさまざまな表現を提供します。

             1.協会

                 アソシエーション関係は、クラス間で最も一般的に使用される関係です。つまり、あるタイプのオブジェクトと別のタイプのオブジェクトの間に接続があります。車やタイヤの先生や生徒など。UMLクラス図では、関連するオブジェクトに対応するクラスを接続するために実線が使用されます。Javaでは、あるクラスのオブジェクトは通常、別のクラスのメンバー変数として使用されるか、クラスの属性の形式で表示されます。クラス図を使用して関連付け関係を表す場合、関連付け行に役割名をマークできます。関係の両端は2つの異なる役割を表します。したがって、2つの役割名を関連付け関係に含めることができます。役割名は次のとおりです。必要ではなく、ニーズに基づくことができます。増加、目的はクラス間の関係をより明確にすることです。

                 たとえば、生徒と教師の間で、各教師は多くの生徒に教えることができます。各生徒には複数の教師がいる場合もあります。これらは双方向の関連付けです。

                    

                 コードは次のとおりです。

public class Teacher {

    private String name;
    private List<Student> stus;

    public void teaching(){}
}

public class Student {

    private String name;
    private List<Teacher> teas;

    public void study(){}
}

              2.集約

                  集約関係は、全体と一部の関係を表します。集約関係では、メンバーオブジェクトはオブジェクト全体の一部ですが、メンバーオブジェクトはオブジェクト全体から独立して存在できます。UMLでは、集約関係は白抜きのひし形の直線で表されます。たとえば、自動車のエンジンは自動車のコンポーネントですが、自動車のエンジンは独立して存在できるため、自動車とエンジンは集約された関係にあります。

                 集計関係を図に示します。

                       

                 コードが集約関係を実装する場合、通常、メンバーオブジェクトが構築メソッドとして使用され、Setterメソッドまたはビジネスメソッドのパラメーターがオブジェクト全体に挿入されます。

                 コードは次のように表示されます。

public class Car {

    private Engine engine;

    public Car(Engine engine) {
        this.engine = engine;
    }
    
    public void setEngine(Engine engine){}
    
}

public class Engine {
    ........
}

               3.組み合わせ関係

                   構成関係は、クラス間の全体的および部分的な関係も表しますが、構成関係では、オブジェクト全体がメンバーオブジェクトのライフサイクルを制御できます。オブジェクト全体が存在しなくなると、メンバーオブジェクトは存在しなくなり、メンバーオブジェクトとオブジェクト全体の間の同じ関係です。生と死の関係。UMLでは、組み合わせの関係は実線のひし形の直線で表されます。たとえば、人間の頭と口、口は頭の構成要素の1つであり、頭がなくなると口もなくなるため、頭と口は結合した関係になります。UMLを図に示します。

                      

                   コードが構成関係を実現すると、通常、メンバークラスはクラス全体の構築メソッドで直接インスタンス化されます。コードは次のとおりです。

public class Head {
    
    private Mouth mouth;
    
    public Head(){
        mouth = new Mouth();
    }
}

public class Mouth{
    ......
}

                  4.依存関係

                      依存関係は一種の使用関係です。特定の事物の変更は、その事物を使用する他の事柄に影響を与える可能性があります。依存関係は、ある事物が別の事物を使用することを示す必要がある場合に使用されます。一般に、依存関係は、別のクラスのオブジェクトをパラメーターとして使用する特定のクラスのメソッドに反映されます。UMLでは、矢印の付いた点線は、従属関係者から従属関係者への依存関係を示すために使用されます。たとえば、ドライバーが車を運転する場合、CarタイプオブジェクトがDriverクラスのdrive()メソッドのパラメーターとして渡されるため、車のmove()メソッドをdrive()メソッドで呼び出すことができます。ドライバーのdrive()メソッドは車のmove()メソッドに依存するため、DriverクラスはCarクラスに依存します。以下に示すように:

                      

                        コードの実装では、依存関係は通常3つの方法で実装されます。1つ目はあるクラスのオブジェクトをクラスのメソッドのパラメーターとして使用する方法、2つ目の方法は別のクラスのオブジェクトをメソッドのメソッドとして使用する方法です。ローカル変数。3番目の方法は、別のクラスのメソッドで別のクラスの静的メソッドを呼び出すことです。

                   5.一般化 

                       一般化関係は、サブクラスと親クラスの関係を表すために使用される継承関係です。UMLでは、一般化関係は白抜きの三角形の線で表されます。たとえば、TeacherとStudentの両方をPersonのサブクラスにすることができ、移動()と発言()の両方を行うことができます。UMLは次のようになります。

                           

                         対応するコードは次のとおりです。

public class Person {

    public String name;
    private int age;

    public void move() {
        ......
    }

    public void say() {
        ......
    }
}

public class Teacher extends Person {

    private String teacherNo;

    public void teach(){
        .......
    }
}

public class Student extends Person{

    private String studentNo;

    public void study(){
        ......
    }
}

                  6.インターフェースと実装の関係

                      実現関係は、インターフェースと実装クラスの間の関係です。この関係では、クラスはインターフェイスを実装し、クラスの操作はインターフェイスで宣言されたすべての抽象操作を実装します。UMLでは、クラスとインターフェースの間の実現関係は、白抜きの三角形の付いた破線で表されます。たとえば、抽象操作move()を含む車両インターフェースVehicleを定義します。move()操作はShipクラスとCarクラスに実装されていますが、具体的な詳細は異なる場合があります。UMLを次の図に示します。

                       

                       コードは次のように表示されます。

public interface Vehicle {

    void move();
}

public class Ship implements Vehicle {

    @Override
    public void move() {

    }
}

public class Car implements Vehicle{

    @Override
    public void move() {

    }
}

上記は今日あなたと共有したい内容です。UMLにはあまりにも多くのものがあります。クラス図は最も一般的に使用されるもののほんの一部です。他のさまざまな図を研究して使用する必要があります。

       ご覧いただきありがとうございます。メッセージを残して交換し、一緒に進歩してください。

 

おすすめ

転載: blog.csdn.net/zhourui_1021/article/details/100174535