Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Uml速習会

6,858 views

Published on

UML速習会の発表資料です。

Published in: Education
  • Login to see the comments

Uml速習会

  1. 1. UML速習会 図で表現するということ 住友孝郎/Takao Sumitomo
  2. 2. シゴトでココロオドル • 住友 孝郎(Takao Sumitomo) • たぶんAndroidアプリ開発者 • その他 – 電子工作 – OpenCV – 技術同人誌の執筆 • Twitter:@cattaka_net • ウォンテッドリー株式会社所属 自己紹介
  3. 3. シゴトでココロオドル UMLとは
  4. 4. シゴトでココロオドル • Unified Modeling Languageの略 • 複数の図から構成される表現方法 • OMG(Object Management Group)が管理 • 様々な側面から対象を描くことができる 概要
  5. 5. シゴトでココロオドル • 一般的な表記法 – フローチャート – バブルチャート – データフロー図 • 主な問題 – 表現力が弱い – オレオレ記法を入れざるを得ない なぜUMLか
  6. 6. シゴトでココロオドル • オレオレ記法が入ると、、、 – 描いた人にしかわからない – 矛盾が発生しやすい • なので、こなれた表記法を使いましょう – すなわちUMLを用いる なぜUMLか
  7. 7. シゴトでココロオドル • スケッチとして • 設計図として • プログラミング言語として 何に使えるか
  8. 8. シゴトでココロオドル • 紙に描けないものは実装できない • 実装できても正しく動いてるか確認できない 主張 もちろん設計の全てを描き出す必要はない
  9. 9. シゴトでココロオドル • 主語-動詞-目的語の関係 – 例:「ファイル送信機能」は「チャット機能」を拡張する • 物やデータの移動の関係 – 例:「商品」を「倉庫」からお客様のところへ配送する 余談:オレオレ記法に見られる矢印 これらを区別なく描くとグラフを見た人が混乱する
  10. 10. シゴトでココロオドル UMLの使った開発の進め方
  11. 11. シゴトでココロオドル • 実装は大きく3つの側面がある 実装の三面図 実装 振る舞い 構造 相互作用
  12. 12. シゴトでココロオドル • 実装の幻を思い浮かべる 実装 の幻 開発の進め方1
  13. 13. シゴトでココロオドル • 3つの側面の図を描く 開発の進め方2 実装 の幻 振る舞い図 構造図 相互作用図
  14. 14. シゴトでココロオドル • お互いの図に矛盾が無いことを確認する 開発の進め方3 振る舞い図 構造図 相互作用図
  15. 15. シゴトでココロオドル • 実際の実装を作っていく 開発の進め方4 振る舞い図 構造図 相互作用図 本物 の 実装
  16. 16. シゴトでココロオドル UMLの各図の紹介
  17. 17. シゴトでココロオドル • 構造図 – オブジェクト図 – クラス図 – パッケージ図 – コンポーネント図 – コンポジット構造図 – 配置図 UMLの図の種類 • 振る舞い図 – ユースケース図 – アクティビティ図 – ステートマシン図 • 相互作用図 – コミュニケーション図 – シーケンス図 – タイミング図 – 相互作用概要図
  18. 18. シゴトでココロオドル • ユーザー視点でシステムの振る舞いを描く • システムの要件とその関連の整理に便利 振る舞い図:ユースケース図
  19. 19. シゴトでココロオドル • ユーザー視点でシステムの振る舞いを描く • システムの要件とその関連の整理に便利 振る舞い図:ユースケース図
  20. 20. シゴトでココロオドル • 書き方 – 登場人物を洗い出す – ユースケース(やりたいこと)をリストアップする – 登場人物とユースケースを図に描き出す – それぞれの関連の線を引く 振る舞い図:ユースケース図
  21. 21. シゴトでココロオドル 振る舞い図:ユースケース図
  22. 22. シゴトでココロオドル • 順次処理や並列処理を表記できる • フローチャートに似た表記法である • 開始ノードから終了ノードへの一連の流れで表す 振る舞い図:アクティビティ図
  23. 23. シゴトでココロオドル • 描き方 – 登場人物を洗い出す – 登場人物のアクション(やること)をリストアップす る – アクションを図に描き出す – それぞれの順序の線を引く 振る舞い図:アクティビティ図
  24. 24. シゴトでココロオドル 振る舞い図:アクティビティ図
  25. 25. シゴトでココロオドル • 相互作用の順序を厳密に表すことが出来る • 横方向にオブジェクトを並べて表記する • 上から下へ時系列順に表記する • マルチスレッド処理の記述に威力を発揮する 相互作用図 :シーケンス図
  26. 26. シゴトでココロオドル • 描き方 – 登場人物を洗い出す – 登場人物間のメッセージ(やりとり)をリストアップ する – メッセージの順番を整理する – 登場人物のライフラインを引く – メッセージをライフライン上に描いていく 相互作用図:シーケンス図
  27. 27. シゴトでココロオドル • オブジェクト間の相互作用を表す • オブジェクト間の接続(関係)を表す 相互作用図:コミュニケーション図
  28. 28. シゴトでココロオドル • 描き方 – 登場人物を洗い出す – 登場人物間のメッセージ(やりとり)をリストアップ する – 登場人物を図に描く – 登場人物間で関連があるものに線を引く – 番号を振りならがメッセージを書き込んでいく 相互作用図:コミュニケーション図
  29. 29. シゴトでココロオドル • システムの構造を表現する • システム全体の構成を見渡せる 構造図:コンポーネント図
  30. 30. シゴトでココロオドル • 描き方 – コンポーネントを洗い出す – 各コンポーネントが提供する機能を洗い出す – 各コンポーネントが必要とする機能を洗い出す – 提供する機能と必要とする機能を繋いでいく 構造図:コンポーネント図
  31. 31. シゴトでココロオドル • クラス間の構造や関連を表現する • ER図のように多重度の表現にも強い 構造図:クラス図 リンク コンポジション
  32. 32. シゴトでココロオドル • 描き方 – 登場するクラスを洗い出す – 関連するものに線を引く – ユースケースなどから多重度を決定する – 必要な属性や操作を埋めていく 構造図:クラス図
  33. 33. シゴトでココロオドル 例:反社チェックをUMLで描く 実装 の幻 振る舞い図 構造図 相互作用図
  34. 34. シゴトでココロオドル 反社チェックをアクティビティ図で描く
  35. 35. シゴトでココロオドル 反社チェックをシーケンス図で描く
  36. 36. シゴトでココロオドル 例:Syncの全体設計をUMLで描 く 実装 の幻 振る舞い図 構造図 相互作用図
  37. 37. シゴトでココロオドル Syncの全体設計をユースケース図をUMLで描く
  38. 38. シゴトでココロオドル Syncの全体設計をコンポーネント図をUMLで描く
  39. 39. シゴトでココロオドル 例:認証の流れをUMLで描く 実装 の幻 振る舞い図 構造図 相互作用図
  40. 40. シゴトでココロオドル 認証の流れをアクティビティ図
  41. 41. シゴトでココロオドル 認証の流れをシーケンス図
  42. 42. シゴトでココロオドル 認証の流れをコミュニケーション図
  43. 43. シゴトでココロオドル 実装 の幻 振る舞い図 構造図 相互作用図 例:Syncアプリの構成をUMLで 描く
  44. 44. シゴトでココロオドル Syncアプリの構成をクラス図で描く
  45. 45. シゴトでココロオドル Syncアプリの状態遷移をステートマシン図で描く
  46. 46. シゴトでココロオドル 実習:UMLで書こう
  47. 47. シゴトでココロオドル • コンソールアプリの三目並べ • 先手と後手が交互に入力する • 勝負がつくと終了する お題:三目並べ
  48. 48. シゴトでココロオドル ユースケース図
  49. 49. シゴトでココロオドル アクティビティ図
  50. 50. シゴトでココロオドル クラス図
  51. 51. シーケンス図
  52. 52. シゴトでココロオドル まとめ
  53. 53. シゴトでココロオドル • メリット – 矛盾が発生しにくい – 一つの事象を複数の方面から捉えられる – 他人との意思疎通に使える • デメリット – 冗長な表記が多い – 図の数が多い UMLについて
  54. 54. シゴトでココロオドル • UMLに限らず物事をモデル化して捉えよう • 自身の思考のモデルを増やそう • 意思疎通を取る手段を増やそう 最後に
  55. 55. シゴトでココロオドル ご清聴ありがとうございました

×