Chapter1 UMLの概要とオブジェクト指向の基本概念 情報工学専攻 MFM10004 奥平 健太 1 目次 1. UMLとは 2. UMLの図(ダイアグラム) 3. UMLの共通の要素 2 UMLとは Unified Modeling Language(統一モデリング言語) • システム間の関係をグラフィカルに表現する際に使われる言語です。 • 今まで統一されていなかったので記述法を統一しました。 • 記述法を覚えれば世界中にあるUMLを読むことができます。 • しかし結局はシステムを俯瞰的に可視化するための道具なので、記述する 際にはあらかじめシステム間の関連性を理解していなければいけません。 3 UMLとは ・例:UML自身をクラス図で表した、ちょっとおもしろい図 ※矢印の意味や位置関係についてはchapter3で後述されます。 4 UMLとは UMLとオブジェクト指向の関係 • UMLはオブジェクト指向の考え方を取り入れ設計されました。 • どちらも一定の事象にそってモデル化するというルールがあります。 • 一定の事象にそって表記されているので、上流、下流にとらわれずに同じ扱い方が できます。(これがオブジェクト指向のメリットです) ※扱い方というのはデータの変更、追加、削除等の処理の事です。 ・下図は”オブジェクト指向”と画像検索で一番上に出てきたもの ・形は違えども本質は同じです ・状況に応じて最適な図(ルール)を 選ぶのが一般的 5 UMLとは 反復型開発プロセス • システムが複雑化してる現在では反復型開発プロセスが一般的。 • 開発、テストを反復して行い、徐々に改良を加え最終的にシステムを実装す るというスタイル。 • 各工程を目に見える構造として表現しやすいオブジェクト指向と相性がいい。 反復型開発プロセスの概要図: 6 UMLの図(ダイアグラム) UML図の概要 • 基本的に開発プロセスの分析設計の際に図が用いられます。 • UML 2.0 以降では13種類の図があります。 • 大きくわけて、システムの静的な構造を示す構造図と、システムの振る舞い を示す振る舞い図に分類されます。 ではそれぞれのダイアグラムの概要を見ていきましょう 7 UMLの図(ダイアグラム) ユースケース図 • システムに要求される機能を、ユーザの視点から示したもの。 • システムには、どのようなアクタ(利用者)が存在するのか、 それぞれのアク タはどういった操作(ユースケース)をするのか、を記述します。 • 一般的にユースケース図はシステムの要求を定義する際に利用されます。 図1: ユースケース図の例 8 UMLの図(ダイアグラム) クラス図 • システムを構成するクラス(概念)とそれらの間に存在する関連の構造を表 現したもの。 • 各クラスが保持する属性(プロパティ)や操作(メソッド)も表現します。 • 最も使用されるダイアグラム。 図1: 区画内の意味 図2: 汎化関係および一対多関連 (多重度) の表現 9 UMLの図(ダイアグラム) シーケンス図 図1: シーケンス図の例 • 相互作用図の一つであり、オブジェ クト間のメッセージの流れを時系列に 表す。 • 図の中に時間の流れが存在するた め、イベントの発生順序やオブジェク ト間の生存時間を記述することができ る。 10 UMLの図(ダイアグラム) コラボレーション図 • オブジェクト間のメッセージのやり取りを中心とした図。 • シーケンス図と違い、時系列が分かり難くなるので実装する際にはメッセー ジ番号が必要。 図1: コラボレーション図の例 1: order food :Patron 6: pay 2: order food :Waiter 4: serve wine 5: serve food :Cook 3: pickup :Cashier 11 UMLの図(ダイアグラム) ステートチャート図 • 一つのオブジェクトの状態(ステート)に着目し、その変化を表現したもの。 • 開始状態は必須だが、終了状態は存在しないこともある。 図1: ステートチャート図の見方 図2: 商品を注文する場合のステートチャート図 12 UMLの図(ダイアグラム) 図1:勤怠入力システムのアクティビティ図 アクティビティ図 • システムなどのフローを記述する。 • 特に使用目的は決められていない。 名前 意味 初期ノード ダイアグラムの開始地点 最終ノード ダイアグラムの終了地点。複数の終了地点が存在してもよい。 アクティビティ 実行する処理 フロー 処理の流れを表す矢印 条件 フローに付ける条件。条件を満たした場合にのみ次の処理に進む。 決断 分岐地点。分岐先それぞれに条件を明示する。 表記法 ● → [条件] 13 UMLの図(ダイアグラム) コンポーネント図 • 物理的な構成要素 (ファイル、ヘッダ、ライブラリ、モジュール、実行可能フ ァイルやパッケージなど) からシステムの構造を表現する。 • 規模が大きなプロジェクトにおいて、システム全体を俯瞰する際に有用であ る。 図1: 大学システムのコンポーネント図 14 UMLの図(ダイアグラム) 配置図 • システム実行時のコンピュータシステムの構成を表現したもの。 •ハードウェアやその上で動作する各種コンポーネントの依存関係を可視化 するのに役立つ。 図1:勤怠入力システムの配置図 15 UMLの共通の要素 ノート • UMLの要素に対して、コメント、制約、メソッド、タグ付置などの情報を付加 する際に使用します。 • 点線(アンカ)をつけることにより、どの要素に対する情報なのかを明確にで きます。右上を折った長方形で描く。 図1:ノートの使用例 購入予定の商品を入れておく。 買い物かご ノート 16 UMLの共通の要素 インスタンス • UMLではモデル要素に、型/インスタンスという2面性を持たせています。 • 型は一般的な記述でインスタンスは具体的な記述をします。 • 他の例に、クラス/オブジェクト、関連/リンクがある。 • インスタンス要素の名前に下線を引いて表す。 図1:型とインスタンス(クラスとオブジェクト) 商品 インスタントラーメン:商品 17 UMLの共通の要素 ステレオタイプ • UMLの拡張機能の一つで、役割や用法上の違いなどをモデル要素に修飾 することができる。 • ギュメ<<type>>を用いて、ステレオタイプ名を囲み、UML要素の名前の上 部または前方に置く。 図1:ステレオタイプ <<boundary>> 一覧画面 <<entity>> 商品リスト 18 UMLの共通の要素 パッケージ • プログラム全体の概要を把握するのに用いられる。 • タブ付きのフォルダアイコンで描かれ、階層化、依存関係を表せる。 図1:基本形 図3:入れ子になったパッケージの場合 図2:パッケージ内の要素を表す場合 図3:パッケージ間の依存関係は破線の矢印で表す 19 参考文献 • UMLの基礎と応用 • UML入門 • Wikipedia 20
© Copyright 2024 ExpyDoc