CloudSpiral 2013年度 UML講義 2日目

3,785 views

Published on

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,785
On SlideShare
0
From Embeds
0
Number of Embeds
2,550
Actions
Shares
0
Downloads
23
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

CloudSpiral 2013年度 UML講義 2日目

  1. 1. 分野・地域を越えた実践的情報教育協働ネットワーク UML講義 2日目 神戸大学 まつ本 真佑 中村 匡秀 佐伯 幸郎 山本 晋太郎 高橋 昂平 大櫛 章裕 Cloud Specialist Program Initiative for Reality-based Advanced Learning
  2. 2. Cloud Specialist Program Initiative for Reality-based Advanced Learning 復習:ICONIXプロセスの流れ* 動的 *ユースケース駆動開発実践ガイド 2日目(来週) 夏合宿 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 1日目 (今日) テスト計画 ロバストネス図 静的 ドメインモデル ドメインモデル (更新済) 分野・地域を越えた実践的情報教育協働ネットワーク クラス図 © Cloud Spiral partners 2013 ソースコード テストコード 2013/5/24 2
  3. 3. Cloud Specialist Program Initiative for Reality-based Advanced Learning 前回の復習 紙芝居  プロジェクト内でのwhatの共通認識形成  非UML,やり方は様々 ユースケース図  Whatを一定の粒度で整理する ドメインモデル図  システム内で扱う「モノ」を整理する  用語集 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 3
  4. 4. 分野・地域を越えた実践的情報教育協働ネットワーク 宿題講評 Cloud Specialist Program Initiative for Reality-based Advanced Learning
  5. 5. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 5
  6. 6. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 6
  7. 7. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 7
  8. 8. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 8
  9. 9. Cloud Specialist Program Initiative for Reality-based Advanced Learning 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 9
  10. 10. Cloud Specialist Program Initiative for Reality-based Advanced Learning ユースケース図 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 10
  11. 11. Cloud Specialist Program Initiative for Reality-based Advanced Learning ユースケース図 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 11
  12. 12. Cloud Specialist Program Initiative for Reality-based Advanced Learning (参考) ユースケース図 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 12
  13. 13. Cloud Specialist Program Initiative for Reality-based Advanced Learning (参考) ユースケース図 演習題材 説明題材 総合 演習題材 宿題 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 13
  14. 14. Cloud Specialist Program Initiative for Reality-based Advanced Learning (参考) ドメインモデル図 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 14
  15. 15. Cloud Specialist Program Initiative for Reality-based Advanced Learning ICONIX 流れの確認 動的 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 テスト計画 ロバストネス図 静的 ドメインモデル ドメインモデル (更新済) 分野・地域を越えた実践的情報教育協働ネットワーク クラス図 © Cloud Spiral partners 2013 ソースコード テストコード 2013/5/24 15
  16. 16. Cloud Specialist Program Initiative for Reality-based Advanced Learning ユースケース記述 目的:各ユースケースの具体化・詳細化  ユーザとシステムの相互作用を記述する ユースケース記述 ユースケース図 ログインする 一般ユーザ 分野・地域を越えた実践的情報教育協働ネットワーク UC:ログインする 【基本コース】 ・ユーザはログインリンクをクリックする. ・システムはログインページを表示する. ・ユーザはユーザIDとパスワードを入力し… 【代替コース】 ユーザIDが間違っている場合: ・システムは… © Cloud Spiral partners 2013 2013/5/24 16
  17. 17. Cloud Specialist Program Initiative for Reality-based Advanced Learning 2つのシナリオ 【基本コース】  正常系のシナリオ  単一 【代替コース】  異常系・分岐系のシナリオ  複数 UC:ログインする 【基本コース】 ・ ユーザはログインリンクをクリックする. ・ システムはログインページを表示する. ・ ユーザはユーザIDとパスワードを入力し… … 【代替コース】 ユーザIDが間違っている場合: ・ システムはエラーメッセージを表示し,直前 のページを表示する パスワードが間違っている場合: ・ システムは… 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 17
  18. 18. Cloud Specialist Program Initiative for Reality-based Advanced Learning ① ログインページ 例:「ログインする」のUC記述 cspiral2013 ****** UC:ログインする ログイン UC名 画面操作 画面表示 入力 ログイン処理 画面表示 【基本コース】 • ユーザは任意のページからログインリンクをクリックする. • システムはログインページを表示する. • ユーザはユーザIDとパスワードを入力し,ログインボタンをクリックする. • システムはアカウントリストから指定のユーザIDが存在するかを確認し, 一般ユーザアカウントを取り出す. • システムは入力パスワードと一般ユーザアカウントのパスワードの一致を 確認する. • システムは歓迎メッセージとともに,直前のページを表示する. 【代替コース】 ユーザIDが正しくない場合: • システムは「ユーザ名またはパスワード」が間違っていることを示すメッ セージとともに,直前のページを表示する. パスワードが正しくない場合: • システムは「ユーザ名またはパスワード」が間違っていることを示すメッ セージとともに,直前のページを表示する. 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 18
  19. 19. Cloud Specialist Program Initiative for Reality-based Advanced Learning UC記述作成時のポイント SVOで記述する  「ユーザは~を~する」 「システムは~を~する」  「ユーザは~を~し,~を~する」 ユーザとシステムの対話を具体的に書く  ただしアルゴリズムの詳細を書かない ドメインモデル(用語集)の言葉を使う 代替コースをよく考える 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 19
  20. 20. Cloud Specialist Program Initiative for Reality-based Advanced Learning 演習:UC記述の作成 20m UC記述を作成してください アカウント登録 ページ  題材:UC 「アカウントを登録する」  基本コース: 代替コース: cspiral2013 ****** ****** UC「ログインする」 ユーザは任意のペー ジからログインリンク をクリックする ユーザIDが間違っている場合 システムはログイン ページを表示する … 分野・地域を越えた実践的情報教育協働ネットワーク 登録 ユーザは「ユーザID が間違っている」メッ セージを表示する … パスワードが 間違っている場合 … © Cloud Spiral partners 2013 2013/5/24 20
  21. 21. Cloud Specialist Program Initiative for Reality-based Advanced Learning ICONIX 流れの確認 動的 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 テスト計画 ロバストネス図 静的 ドメインモデル ドメインモデル (更新済) 分野・地域を越えた実践的情報教育協働ネットワーク クラス図 © Cloud Spiral partners 2013 ソースコード テストコード 2013/5/24 21
  22. 22. Cloud Specialist Program Initiative for Reality-based Advanced Learning ロバストネス図 目的:UC記述の洗練  UC記述を可視化,分析しその妥当性を確認する  WhatとHowの橋渡し ロバストネス図 UC記述 UC:ログインする 【基本コース】 ・ユーザは… ・システムは… 【代替コース】 ~が間違っている場合: ・システムは… ログインページを表示する 一般ユーザ マスタ アカウントリスト ログイン ページ ユーザIDが 存在するか? 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 22
  23. 23. Cloud Specialist Program Initiative for Reality-based Advanced Learning 記法 ステレオタイプ    バウンダリ: システム内部と外部の境界=画面 エンティティ: ドメインモデル上のモノ=オブジェクト コントローラ: 上2つの接着剤 ステレオタイプ間の関係  必ずコントローラと接続する 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 23
  24. 24. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 24
  25. 25. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク 基本コース ユーザアカウントを 取得する はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 25
  26. 26. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する はい パスワードが 一致するか? 代替コース 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 26
  27. 27. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する 処理フロー はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 27
  28. 28. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい 画面 生成・遷移 いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 28
  29. 29. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する ユーザの アクション マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 29
  30. 30. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のロバストネス図 ログインを クリック 任意のページ ログインページを 表示する マスタ アカウントリスト ユーザ アカウント ユーザIDとパスワードを 入力しログインを クリック 一般ユーザ ログイン ページ はい いいえ 利用 ユーザIDが 存在するか? いいえ 「ユーザ名またはパスワードが無効」 メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク ユーザアカウントを 取得する はい パスワードが 一致するか? 歓迎メッセージを 表示する © Cloud Spiral partners 2013 2013/5/24 30
  31. 31. Cloud Specialist Program Initiative for Reality-based Advanced Learning ロバストネス図作成のポイント まずUC記述をそのまま貼り付ける UC記述をそのまま図に書き直す  基本コース・代替コースの両方を書き込む UC記述も同時に修正する  ここが目的 矢印の意味を考えすぎない 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 31
  32. 32. Cloud Specialist Program Initiative for Reality-based Advanced Learning 演習:ロバストネス図の作成 50m ロバストネス図を作成してください  題材:UC 「アカウントを登録する」  コントローラ: バウンダリ・エンティティ: ログインページ を表示する ログインペー ジ マスタアカウ ントリスト ユーザIDとパスワードを 入力し「ログイン」を クリック ユーザIDが 存在するか? いいえ 分野・地域を越えた実践的情報教育協働ネットワーク はい ユーザアカウン トを取得する © Cloud Spiral partners 2013 2013/5/24 32
  33. 33. Cloud Specialist Program Initiative for Reality-based Advanced Learning ICONIX 流れの確認 動的 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 テスト計画 ロバストネス図 静的 ドメインモデル ドメインモデル (更新済) 分野・地域を越えた実践的情報教育協働ネットワーク クラス図 © Cloud Spiral partners 2013 ソースコード テストコード 2013/5/24 33
  34. 34. Cloud Specialist Program Initiative for Reality-based Advanced Learning シーケンス図 目的:クラスの責務割り当て クラス名 属性  目的は処理フローの記述ではない  クラスの責務=属性と振る舞い 振る舞い シーケンス図 ロバストネス図 一般ユーザ ログインページを表示する 自動化 可能 一般ユーザ ログイン ページ ユーザIDが 存在するか? 分野・地域を越えた実践的情報教育協働ネットワーク ログインページ ログインボタンを 押下 マスタアカウントリスト 指定のユーザIDが 存在するか ユーザアカウントの 取得 © Cloud Spiral partners 2013 2013/5/24 34
  35. 35. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のシーケンス図 一般ユーザ ログインページ ユーザIDとパスワードを 入力しログインボタンを 押下 マスタアカウントリスト ユーザアカウント 指定のユーザIDが 存在するか ユーザアカウントの 取得 歓迎メッセージを 表示する パスワードが一致するか 「ユーザ名またはパスワード が無効」メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 35
  36. 36. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のシーケンス図 一般ユーザ ログインページ ユーザIDとパスワードを 入力しログインボタンを 押下 マスタアカウントリスト ユーザアカウント ロバストネス中のバウンダリとエンティティ 指定のユーザIDが 存在するか ユーザアカウントの 取得 歓迎メッセージを 表示する パスワードが一致するか 「ユーザ名またはパスワード が無効」メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 36
  37. 37. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のシーケンス図 一般ユーザ ログインページ ユーザIDとパスワードを 入力しログインボタンを 押下 マスタアカウントリスト ユーザアカウント ロバストネス中のバウンダリとエンティティ 指定のユーザIDが 存在するか コントローラ ユーザアカウントの 取得 歓迎メッセージを 表示する パスワードが一致するか 「ユーザ名またはパスワード が無効」メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 37
  38. 38. Cloud Specialist Program Initiative for Reality-based Advanced Learning 例:UC「ログインする」のシーケンス図 一般ユーザ ログインページ 基本コース ユーザIDとパスワードを 入力しログインボタンを 押下 ユーザアカウント ロバストネス中のバウンダリとエンティティ 指定のユーザIDが 存在するか コントローラ ユーザアカウントの 取得 歓迎メッセージを 表示する 代替コース マスタアカウントリスト パスワードが一致するか 「ユーザ名またはパスワード が無効」メッセージを表示する 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 38
  39. 39. Cloud Specialist Program Initiative for Reality-based Advanced Learning シーケンス図作成のポイント まずロバストネス図をそのまま貼り付ける  ロバストネス図のバウンダリとエンティティを書き込む  コントローラを矢印に書き換える 活性区間,返り値,分岐を書かない  あるいは無視する ログインページ マスタアカウントリスト ユーザアカウント アカウントの取得() 生成 アカウント 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 39
  40. 40. Cloud Specialist Program Initiative for Reality-based Advanced Learning クラス図 クラスの責務(属性と振る舞い)を構造化する クラス図 クラス名 シーケンス図 属性 振る舞い 一般ユーザ ログインページ ボタン押下 マスタアカウントリスト - アカウント: List + ユーザIDが存在するか(String): boolean + アカウントを取得する(String): Account マスタアカウントリスト 指定のユーザIDが 存在するか アカウントの 取得 自動化 可能 アカウント - ユーザID: String - パスワード: String + パスワードが正しいか(String): boolean 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 40
  41. 41. Cloud Specialist Program Initiative for Reality-based Advanced Learning クラス図の作成 シーケンス図からほぼ自動的に作成できる  エンティティをクラスに  矢印を振る舞いに クラス図 マスタアカウントリスト シーケンス図 アカウント: List ユーザIDが存在するか(String): boolean アカウントを取得する(String): Account 一般ユーザ ログインページ マスタアカウントリスト ボタン押下 指定のユーザIDが 存在するか アカウントの 取得 アカウント ユーザID: String パスワード: String パスワードが正しいか(String): boolean 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 41
  42. 42. Cloud Specialist Program Initiative for Reality-based Advanced Learning 演習:クラス図・シーケンス図の作成 40m 2つの図を作成してください シーケンス図 一般ユーザ ログインページ クラス図 アカウントリスト マスタアカウントリスト -アカウント: List ボタン押下 指定のユーザID が存在するか 分野・地域を越えた実践的情報教育協働ネットワーク + ユーザIDが存在するか(String):boolean + アカウントを取得(String):Account © Cloud Spiral partners 2013 2013/5/24 42
  43. 43. Cloud Specialist Program Initiative for Reality-based Advanced Learning さらなるステップ 責務の割り当てを再検討する  UC「アカウントを登録する」の例 一般ユーザ アカウント登録ページ ユーザアカウント ユーザIDとパスワード, 確認用パスワードを入力し 登録ボタンを押下 2つのパスワードが 一致しているか ユーザIDの書式が 正しいか バウンダリ(画面)の 責務として不適切 パスワードの書式が 正しいか 画面にやらせすぎ 生成 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 43
  44. 44. Cloud Specialist Program Initiative for Reality-based Advanced Learning さらなるステップ 対処1:ドメインオブジェクトに責務を割り当てる  Domain Model 一般ユーザ アカウント登録ページ ユーザアカウント ユーザIDとパスワード, 確認用パスワードを入力し 登録ボタンを押下 生成(uid, pass1, pass2) 2つのパスワードが 一致しているか ユーザIDの書式が 正しいか パスワードの書式が 正しいか 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 44
  45. 45. Cloud Specialist Program Initiative for Reality-based Advanced Learning さらなるステップ 対処2:専用コントローラに責務を割り当てる  Transaction Script 一般ユーザ アカウント登録ページ アカウント登録 ユーザアカウント コントローラ ユーザIDとパスワード, 確認用パスワードを入力し 登録ボタンを押下 実行 2つのパスワードが 一致しているか ユーザIDの書式が 正しいか パスワードの書式が 正しいか 生成 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 45
  46. 46. Cloud Specialist Program Initiative for Reality-based Advanced Learning その後の流れ 詳細設計レビューの実施  責務を割り当ての再検討  使用フレームワークやパターンとの兼ね合い(Spring, Seaser, Struts, …)  全ての機能要求が満たされているか確認 … テスト計画の作成 クラス図からコードのひな形生成 実装,レビュー,テスト,… 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 46
  47. 47. Cloud Specialist Program Initiative for Reality-based Advanced Learning ICONIX おさらい 動的 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 テスト計画 ロバストネス図 静的 ドメインモデル ドメインモデル (更新済) 分野・地域を越えた実践的情報教育協働ネットワーク クラス図 © Cloud Spiral partners 2013 ソースコード テストコード 2013/5/24 47
  48. 48. Cloud Specialist Program Initiative for Reality-based Advanced Learning 総合演習 120m UC記述~クラス図までの作成を実践してください  題材:UC「チケットを予約する」 動的 Test 2 Test 1 紙芝居 ユースケース図 シーケンス図 テスト計画 ロバストネス図 静的 ドメインモデル 分野・地域を越えた実践的情報教育協働ネットワーク ドメインモデル (更新済) クラス図 ソースコード テストコード © Cloud Spiral partners 2013 2013/5/24 48
  49. 49. 分野・地域を越えた実践的情報教育協働ネットワーク 宿題(2日目) Cloud Specialist Program Initiative for Reality-based Advanced Learning
  50. 50. 分野・地域を越えた実践的情報教育協働ネットワーク その他資料 Cloud Specialist Program Initiative for Reality-based Advanced Learning
  51. 51. Cloud Specialist Program Initiative for Reality-based Advanced Learning 参考図書  『はじめて学ぶUML』  『ユースケース駆動開発実践ガイド』  『ユースケース入門―ユーザマニュアルからプログラムを作る』  『オブジェクト指向でなぜつくるのか』  OMGによるUMLの仕様書  http://www.uml.org/ 分野・地域を越えた実践的情報教育協働ネットワーク © Cloud Spiral partners 2013 2013/5/24 51

×