200 likes | 418 Views
Chapter1 UML の概要とオブジェクト指向の基本概念. 情報工学専攻 MFM10004 奥平 健太. 1. 目次. UML とは UML の図(ダイアグラム) UML の共通の要素. 2. UML とは. Unified Modeling Language( 統一モデリング言語 ) システム間の関係をグラフィカルに表現する際に使われる言語です。 今まで統一されていなかったので記述法を統一しました。 記述法を覚えれば世界中にある UML を読むことができます。
E N D
Chapter1 UMLの概要とオブジェクト指向の基本概念 情報工学専攻 MFM10004 奥平 健太 1
目次 UMLとは UMLの図(ダイアグラム) 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の図(ダイアグラム) • クラス図 • システムを構成するクラス(概念)とそれらの間に存在する関連の構造を表現したもの。 • 各クラスが保持する属性(プロパティ)や操作(メソッド)も表現します。 • 最も使用されるダイアグラム。 図2: 汎化関係および一対多関連 (多重度) の表現 図1: 区画内の意味 9
UMLの図(ダイアグラム) • シーケンス図 • 相互作用図の一つであり、オブジェクト間のメッセージの流れを時系列に表す。 • 図の中に時間の流れが存在するため、イベントの発生順序やオブジェクト間の生存時間を記述することができる。 図1: シーケンス図の例 10
UMLの図(ダイアグラム) • コラボレーション図 • オブジェクト間のメッセージのやり取りを中心とした図。 • シーケンス図と違い、時系列が分かり難くなるので実装する際にはメッセージ番号が必要。 図1: コラボレーション図の例 1: order food 2: order food :Patron :Waiter :Cook 6: pay 4: serve wine 3: pickup 5: serve food :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:基本形 図2:パッケージ内の要素を表す場合 図3:入れ子になったパッケージの場合 図3:パッケージ間の依存関係は破線の矢印で表す 19
参考文献 • UMLの基礎と応用 • UML入門 • Wikipedia 20