pbl as a service
TRANSCRIPT
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBL及びPBL教育のためのクラウドコンピューティング活用
大阪大学大学院情報科学研究科文部科学省「ソフトウェアイノベーション
先導のための研究教育プログラムの開発」プロジェクト特任准教授
井垣 宏Twitter @hirocell
1
ソフトウェアイノベーションプロジェクトにおける
~PBL as a Serviceを目指して~
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
ソフトウェアイノベーション先導のための研究教育プログラムの開発
2
産学連携、大学間連携による実践的なICT教育• H20-組込みシステム産業振興機構関経連所属企業,大学,研究機関連携実践的な社会人教育 「組込み適塾」
• H18-21 9大学,4企業の連携による先導的ITスペシャリスト育成推進プログラム「ITスパイラル」
信頼できるIT基盤構築• 安心・安全• 利用者に適応
ソフトウェアデザイン技術を核とした高度なIT技術を開拓しソーシャルイノベーションを引起すための研究教育プログラムの推進
IT, 数学、経済の知識を背景としたファイナンスの教育研究•金融・保険教育研究センター
ITによる問題解決と価値の創造• ITを核とした新しい価値創造
• 深い専門知識• ITの長短所を理解して世界と戦える 大阪大学の
特色・強み
社会のニーズ
情報科学の研究・教育基盤• 情報科学研究科を中心とした研究・教育
• ソフトウェア工学研究世界30位• 高度副プログラム(ITスパイラル、高度情報ネットワーク実践スペシャリスト)
• PRIUS(融合科学を国際的視野で先導する人材育成 )
• GCOE(アンビエント情報社会基盤創成拠点)
教養
デザイン力
国際性• 産学連携に基づく実践的技術開発産学連携領域
• 分野融合連携によるブレークスルー分野融合領域
大阪大学の教育理念
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
イノベーションプロジェクトの教育目標
3
提供コース・授業 育成される人材像領域
産学連携領域
大規模適応設計コース
クラウドコンピューティング,プロジェクトマネジメント,組込みソフトウェア開発についての実践的な講義・演習プログラム
高度な実践的・総合力を持つソフトウェア設計技術者(修士20人/年)
クラウドや組込み開発の実践力を持つソフトウェア技術者(修士・社会人42人/年)
分野融合領域
IT社会基盤基礎論IT社会基盤、リスクマネジメント、開発工程、障害回復技術、セキュリティ
ITの強みや弱みを分かり利活用できる企業人(学士70人/年)
ファイナンスソフトウェアコース
ファイナンス計算アルゴリズム、金融リスク管理、金融データ解析
高いIT知識と実践力を備えた金融工学の専門家(修士15人/年)
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
大規模適応設計コース(クラウド)
コース修了時の学生に期待すること
• クラウドについての基礎知識を保有し,クラウドシステムのメリット/デメリットを判断できる
• クラウドシステムをそのメリット/デメリットにもとづいて利用可否の判断を下せる
• クラウドを前提としたソフトウェア開発プロセスを理解し,実施できる
• ツールとしてのクラウドを理解し,利活用するための素養を身につける
4
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
クラウドの定義(NIST)
• Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.
• 5つの主要な特徴
– On-demand self-service, Broad network access, Resource pooling, Rapid Elasticity, Measured Service
• 3つのサービスモデル
– SaaS, PaaS, IaaS
• 4種類のデプロイメントモデル
– プライベートクラウド,コミュニティクラウド,パブリッククラウド,ハイブリッドクラウド,(バーチャルプライベートクラウド)
5*National Institute of Standards and Technology:A NIST Definition of Cloud Computing,http://csrc.nist.gov/publications/nistpubs/800-145/SP800-145.pdf (2011). Special Publications 800-145.
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
・・・のためのクラウド活用
• PBLのためのクラウド活用
– Projectの題材や開発対象のインフラとして学生がクラウドを活用する
• PBL教育のためのクラウド活用
– 指導・評価といったPBL運用において教員がクラウドを活用する
クラウドを活用したPBLの課題解決を目指す
6
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
Project-based Learning*
7
コンテンツ主体
プロセス(プロジェクトマネジメント)主体
何を開発するか教員が決め,プロジェクトマネジメントも教員が行う
開発対象は学生が決めるが,プロジェクトマネジメントは教員が行う
何を開発するか教員が決め,プロジェクトマネジメントは学生が行う
開発対象もプロジェクトマネジメントも学生がコントロールする
Hadj Batita, “A model for an innovative project-based learning management system for engineering education,” CALIE'2001 - Computer Aided Learning in Engineering Education, 2001
• 有期性がある
• 価値の創造に繋がる開発体験を伴う
• 教員による統制された管理・支援を伴う
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
産学連携プロジェクト型演習教育講座としての位置づけ*
• 教育枠組み
– 教育目標
• 作業遂行
• 計画的プロセス改善
– 自律的時限性チーム演習
– 成績評価
• 中間・最終成果レポート
• プロジェクト定量評価
8
• 産学役割
– 大学側
• 講義
• 演習
– 連携企業側
• 演習補助
• 問題設定
– テーマ
• ケーススタディ
– 期間
• 1.5ヶ月
*鷲崎 弘宣, “情報処理推進機構(IPA)におけるPBLに関する取り組みの成果と早稲田大学の実践研究事例,” 第2回PBLシンポジウム, 2013
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBLにおける課題(学生視点)
• 成果物の品質
– デモのときに動けばOK
• 時間管理
– (モチベーションの高い)学生はサービス残業大好き
– デスマーチ
• 開発プロセス
– 学生が実装以外の工程にコストをかけたがらない
• 結果的にうまくいけば過程はどうでも良い
– タスク割り当てが偏る
• ->得られる経験が偏る
• ->特定の学生に負荷が集中する 9
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBL教育における課題(教員視点)
• PBL開発環境
– 開発環境の統一が困難
– セットアップや保守対応といった運用が困難
• プロジェクトの評価やフィードバック
– プロジェクトの進捗管理・監視が困難
– プロダクト・プロセスの評価が困難
• 定性評価が中心
• PBL教育体制
– (モチベーションの高い一部の)教員がサービス残業
• 特定の教員に負荷が集中
10
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBL as a Service
• PBL提供のための枠組み構築を目指す
– クラウドを活用することで,PBL教育における課題の解決を目指す
• クラウドの特徴
– Resource pooling
– On-demand self-service
– Broad network access
– Rapid Elasticity
– Measured Service
11
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBLにおけるResource
12
ソフトウェア開発環境(eclipse, jdk等)
学生
開発支援環境(Subversion, Trac等)
ドキュメント(仕様書,帳票等)
教員
ProjectのResource
利用利用
監視
評価フィードバック
環境構築
PBLのResource
必要なResourceをPool(貯蔵)しておき,Network越しにAccessする環境を構築する
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
DaaS*(Desktop as a Service:デスクトップ仮想化)
• クラウド上に仮想化されたデスクトップ環境を配置し,インターネットを介してユーザに提供するための枠組み
– 同一環境を容易に複数構築可能
– Internetを介して常に同じ環境を利用可能
13
学生
複製
仮想デスクトップイメージ
仮想デスクトップインスタンス
複製
複製
RDP
RDP
RDP
*Dwayne Lessner, Kanuj Behl, Phil Ditzel, Jason Langone, Steve Kaplan, “Desktops as a Service: Building the Model,” Red Fox Partners, LLC, 2012
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
クラウド化によるPBL開発環境改善
14
ソフトウェア開発環境(eclipse, jdk等)
学生
開発支援環境(Subversion, Trac等)
ドキュメントの電子化
教員
DaaS BADER†
• 開発環境の統一
• 運用の簡易化
監視
環境構築
†DaaS Based Advanced Development EnviRonment for SDPBL
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
DaaS BADER利用の流れ
• Step1: VMイメージの作成
• Step2: VMイメージをDaaSBADERに登録
• Step3: 教員もしくは学生自身が必要に応じてVMを起動し,利用する
– On-demand Self-service
– Resource Pooling
– Broad NetworkAccess
15
VMイメージ
教員作成
登録
学生
起動依頼起動 起動
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
DaaS BADERのメリット
• 全学生の環境が同一
– >環境の差異によるトラブル削減
• 全環境にInternetからアクセスできる
– >保守が容易
16
VMイメージ
教員作成
登録
学生
起動依頼起動 起動
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
クラウドを利用したプロジェクトモニタリング
• クラウド化されたPBL開発環境を利用し,プロジェクト状況のモニタリング機構(Droid)を構築
– PBLにおける学生のあらゆる振る舞いを計測
17
学生
ソフトウェア開発環境(eclipse, jdk等) 開発支援環境
(Subversion, Trac等)
RITE SAVRE†(モニタリングサーバ)
ファイル操作アプリ操作
アクセスログ
Droid
Droid
教員監視
† Software development ActiVity Retrospection Environment for Reality-based IT Education
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
モニタリング環境: Droid + RITE SAVRE
• 誰がいつからいつまで何を行ったかを詳細に記録し,可視化する
– > Measured Service(PBL)
• プロジェクトの進捗管理・監視の容易化 18
アップデート13:03
時間
版管理システム操作
アプリケーション操作
ファイル操作編集13:15
作成13:05
編集13:45
IDEブラウザ
コミット13:50
着手13:02
13:02 13:52 14:15
IDE終了14:15 http://....
タスク #1
タスクの履歴
ブラウザ
タスク
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBL定量評価のための制約
• 一般的なプロジェクトでは,以下の3つの制約条件を満たし,かつプロジェクト目標を達成すること=プロジェクトの成功– Quality(品質)
• 成果物の高い品質を確保すること
– Cost(コスト)
• すべてのタスクを決められたコストの範囲内で行うこと
– Delivery(納期)
• 決められた期間内で行うこと
• 我々のPBLでは– Quality(品質):必要なタスクを十分に実施する
• レビュー・テストなど
– Delivery(納期):仕様を満たしたプロダクトを期間内に計画的に実装する
– Assignment(割り当て):タスクが適切に分担されている
• 各自が分担するタスクの量や種類がメンバー間で均等であること
– >全員が同じ能力で同じタスクができることではない19
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
PBL as a Serviceの試行
• 対象と環境
– 7大学の修士学生35名(6グループ)
– DaaS BADER(35の仮想デスクトップと6の仮想サーバが利用された),Droid, RITE SAVRE(モニタリングサーバ)をedubase Cloud*上で実際に運用
• PBL内容
– ウェブアプリケーション開発(Java EE & Struts)• 詳細設計書を学生に配布
– チケット駆動開発にもとづく開発プロセス
– 評価基準として3つの制約(QCA)を事前に開示
– 10ユースケース、約8KLOCの開発
– 1.5ヶ月の開発期間で実装~結合試験
20* edubase Cloud, http://edubase.jp/cloud/
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
チケット駆動開発*
• チケット
– 開発者が行ったタスク内容が記録されるもの
• チケット駆動開発
– タスクの決定,割り当て,実行といった開発に必要なマネジメントをチケットに対する操作と組み合わせて行う開発手法
21
PM役受講生A作成
割り当て
着手
チケット
受講生X
終了
成果物:class A種類:実装着手時刻:終了時刻:見積時間:総時間:担当者:マイルストーン:UC01
成果物:class A種類:実装着手時刻:終了時刻:見積時間:総時間:担当者:受講生Xマイルストーン:UC01
成果物:class A種類:実装着手時刻:13:00終了時刻:見積時間:0.5H総時間:担当者:受講生Xマイルストーン:UC01
成果物:class A種類:実装着手時刻:13:00終了時刻:14:00見積時間:0.5H総時間:1.0H担当者:受講生Xマイルストーン:UC01
* 小川 明彦, 阪井 誠, "チケット駆動開発," 翔泳社, 2012.
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
開発実践演習(2012年度)への適用
説明
対面開発MS1
振り返り
発表
対面開発MS3
振り返り
発表
対面開発MS5
振り返り
成果報告会
遠隔開発MS2
遠隔開発MS4
遠隔開発MS6~8
10/19 10/26 11/9 11/3010:30
12:0013:00
17:50
22
遠隔開発においてもグループごとに振返りを実施
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
超えなければならなかったハードル
• ネットワーク
– 一箇所に集まって行う場合,無線LANでは帯域不足だった
– ネットワーク負荷のモニタリング
– 有線LAN環境構築
• ライセンス
– VM化する上でのOS・ソフトウェアライセンス処理
• クラウドシステムに関する教員側スキル
– VMイメージの作成,操作方法
– VM操作APIを用いたアプリケーション開発
23
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
プロジェクトの定量評価
• QADそれぞれについて,定量的かつ客観的な評価が可能となった
– クラウド化だけではダメ
– 評価基準の明確化と開示が必要
– 評価基準は相互にConflictするように決めることが望ましい
24
Quality
Assignment
Delivery
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
開発の推移
2000
3000
4000
5000
6000
7000
8000
test
jsp
xml
java
UC01 UC02UC0304 UC05 UC0607 UC08 UC09 UC10
LOC
• 版管理システムのログを収集・分析
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
開発の推移
2000
3000
4000
5000
6000
7000
8000
test
jsp
xml
java
UC01 UC02UC0304 UC05 UC0607 UC08 UC09 UC10
LOC
• 版管理システムのログを収集・分析
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
実施されたタスク数(Quality)
27
• レビューやテストが必要な量実施されているか
– タスク管理ツールの記録を収集・分析
Ga Gb Gc Gd
修正(テスト) 16 13 11 17
修正(ソース) 43 38 48 34
結果分析 37 39 37 53
レビュー 79 69 62 73
作成(テスト) 21 26 22 30
作成(ソース) 47 52 56 43
0
50
100
150
200
250
300
タスク数
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
コミット時のビルド成功率(Quality)
Ga Gb Gc Gd
ビルド失敗回数 16 10 42 10
ビルド成功回数 210 185 198 185
0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
28
• 自動ビルドツールのログを収集・分析
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
Branch カバレッジ(Quality)
29
Ga Gb Gc Gd
未テスト条件# 250 260 244 250
テスト済み条件# 74 76 84 74
0
50
100
150
200
250
300
350
400
• 最終版のカバレッジ計測結果を分析
Branch数
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
タスクの偏り(Assignment)
• タスク種別ごとの作業割り当ての分散を計算
– 割り当てが均等なほど数値が小さくなる
30
Ga Gb Gc Gd
作成(ソース) 0.89 1.69 1.01 1.8
作成(テスト) 0.68 1.24 1.59 0.68
レビュー 0.76 1.24 0.97 1.06
結果分析 1.21 1.21 1.32 0.76
0
0.5
1
1.5
2
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
納期遵守状況(Delivery)
• ユースケース毎の結合テスト終了時刻と納期を比較
31
UC01~UC05までの納期と結合試験終了までの時間差(分)の累計 (停電期間は除く)
UC01 UC02 UC0304
UC05 UC0607
UC080910
遅れ
Ga × ○ × ○ × ○ -3.8日
Gb × ○ ○ ○ ○ ○ -0.6日
Gc × ○ × ○ × ○ 13.9日
Gd × × × ○ × ○ 6.3日
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
その他評価項目
• マイルストーン毎の振り返り内容
– K(Keep: 良かったので今後も実施すること), P(Problem: 問題), T(Try: 問題を解決するために今後実施すべきこと)
• 定量的な根拠にもとづいて振り返りが行えているか
• 記述が具体的で再現可能であるか
• 実際の振り返り事例紹介
32
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
評価以外のフィードバック
• 開発時間,行数,ビルド回数,SNS発言数,コピペ行数等をフィードバックし,どのような経験が得られたのかを学生に認識してもらった
33
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
のべ開発時間
• 各VMでアプリケーションを起動し,何らかの作業を行なっていた時間を集計
34
Ga Gb Gc Gd
後半 410 307 410 326
前半 241 288 241 245
0
100
200
300
400
500
600
700
時間
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
グループ作業時間推移• グループ内全開発者の作業時間合計の推移
– ○はマイルストーンごとの終了時刻
35
0
15
30
45
60
0
15
30
45
60
0
15
30
45
60
時間
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
開発時間ランキング
• 1位 228時間
• 2位 169時間
• 3位 158時間
360
40
80
120
160
200
240eclipse以外開発時間
eclipse開発時間
36
時間
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
開発行数ランキング(総合)
• 1位 1,537行
• 2位 1,304行
• 3位 1,250行
0
400
800
1200
1600
test
jsp
xml
java
37
LOC
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
コピペ行数ランキング
0
200
400
600
800
1000
1200
1400
1600
1800
2000
38
LOC
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
コミュニケーション
Ga Gb Gc Gd
yammer会話数 398 1104 378 489
yammerLike数 250 59 73 100
0
200
400
600
800
1000
1200
39
• SNS(yammer)におけるグループごとの会話数とLikeが押された回数
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
yammer発言数ランキング
• 1位 387回
• 2位 372回
• 3位 263回
40
0
50
100
150
200
250
300
350
400
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
yammer被Like数ランキング
• 1位 112回
• 2位 80回
• 3位 62回
41
0
20
40
60
80
100
120
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
フィードバックシート• グループ/個人それぞれのフィードバックを行った
42
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
学生の感想ポジティブな意見
• 他の人と自分の開発の進め方(主に時間の使い方)が全然違うため,タスク割り振りにはなるべく余裕をもって,かつ,自分はなるべく早く作業を終わらせて周囲の迷惑にならないように開発していくことが大事だと感じました
• 能力が違う人と作業を進める大変さ、楽しさを知れてよかったかと思います
• 楽しく、面白くすすめることができました。関わって下さった全員に感謝します
• プログラミングのスキルが身に付くと思い参加しましたが、チケット駆動を用いた開発手法を主として学べたように思います
• こういったチームでの作業の同期をはかるための手法は、システム開発に関わらずどのような作業でも役に立つと思います。そういった意味でも、参加してよかったと思います
• 他大学の人と交流する少ない機会なので,大学毎の違いなどが聞けて面白かった
ネガティブな意見
• DaaSの環境が重かった
• Libre OfficeよりMS Officeのほうを使いたかった43
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
まとめ
• PBL教育におけるクラウド活用として,PBL as a Service環境構築を行った
– DaaS BADER, RITE SAVRE, Droid
– クラウドの特徴を活かしたPBL支援が可能となった
• On-demand Self-service
• Broad Network Access
• Resource Pooling
• Measured PBL
• (Rapid Elasticity)
• プロジェクトの定量的な評価や学生への具体的なフィードバックが可能となった 44
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
今後の課題
• PBL教育体制の改善
– クラウド環境を利用して負荷を多くの教員に分散させる方法を考え中
– 教員ResourceのPoolingが可能かどうか
• データ分析結果を用いたPBLそのものの改善
– 評価とフィードバックだけでなく,PBL改善のための定量データにもとづく仮説検証
• どのような学生がプロジェクトにおいて主導的な立場になりえるのか
• SNSにおける発言数と実装スキルに相関はあるか
• グループ設定の際に考慮すべき学生メトリクスは何か
45
大阪大学大学院情報科学研究科 文部科学省「ソフトウェアイノベーション先導のための研究教育プログラムの開発」
• 何かあればお気軽に!
• Twitter @hirocell
– https://twitter.com/hirocell
46