情報システム構築 -説明と実力テスト- 金曜4校時 掛下哲郎 大月美佳
本講義の背景 来年度からの新カリキュラム 現カリキュラムでやる上での問題 新しい実験科目(3年次開講) オブジェクト指向ソフトウェアの協同開発演習 のための実験講義 現カリキュラムでやる上での問題 オブジェクト指向を学んでいない… →ごりごり実地体験→上級者向け
本講義の目的 ソフトウェア協同開発の学習 開発手法の体験 開発で使用するツールの学習 自力で調べる力をつける eXtreme Programming 開発で使用するツールの学習 CVS, Make, CppUnit 自力で調べる力をつける ソフトウェアの実装に必要な知識は自力で
JABEEとの関連 対応項目 A 情報システム技術者としての視野 情報システムについて,利用者,管理者,開発者としての各視点からの知識を持っている
教科書 教科書 特になし 講義資料を配布
参考書 「XPエクストリーム・プログラミング適用編―ビジネスで勝つためのXP」(ピアソン・エデュケーション) K. アウアー 他著 平鍋 健児 他訳 ISBN:4894715554 「eXtreme Programming実践レポート―XPプロジェクトを実現した手法と軌跡」(翔泳社) 日本XPユーザグループ著 ISBN4798102180 その他必要に応じて提示・閲覧室に用意?
本講義の評価方法 ソフトウェア開発の成果(50点配点) 開発への貢献度(50点配点) 出来上がったものに対して出来を評価 グループ全員共通 グループメンバによる投票 口頭試問
講義スケジュール(予定)1 回数 日付 内容 1 10/04 説明と実力テスト 2 10/11 グループ分けとCVSの初期設定 3 10/18 計画ゲーム 4 10/25 テストケースとモックアップ作成 1 5 11/01 テストケースとモックアップ作成 2 6 11/08 Makefile作成とビルド 7 11/15 第1イテレーション
講義スケジュール(予定)2 回数 日付 内容 8 11/29 第1イテレーション 9 12/06 第1イテレーションの評価 10 12/13 第2イテレーション 11 12/20 12 01/10 第2イテレーションの評価 13 01/17 第3イテレーション 14 01/24 予備 01/31 最終成果報告?
何を作るのか 必須条件 対象領域は自由 指定の開発環境 指定の言語、ツールを使用 学科のコーディング規約を厳守 UNIX OS(Solaris or Red Hat Linux) 指定の言語、ツールを使用 C++ (G++), CVS, Make, CppUnit 学科のコーディング規約を厳守 GUIはWebインターフェース 対象領域は自由
たとえば ゲームでも可 案が出ない場合は上のどれか アドベンチャーゲーム 恋愛シミュレーションゲーム (対戦)カードゲーム 登録式トーナメントゲーム 案が出ない場合は上のどれか リアルタイム性の強いものは無理と思われる
eXtreme Programming 変化にすばやく対応するための開発方法 非常に短期間に開発プロセスを繰り返す コミュニケーションの重視 計画ゲーム→要求分析・設計 イテレーション→実装・単体テスト リリース→受け入れテスト コミュニケーションの重視 ペアプログラミング コード共有
計画ゲーム:仕事の確定 要求を分析し、実装する仕様を確定する ストーリーから実装を考え仕事を分割する 仕様の各項目をストーリーと呼ぶ 「表示画面には状況を表す絵と次の状況に移るための選択肢がある。選択肢を選ぶと次の状況に合った画面が表示される」 優先度の高いストーリーから実装 ストーリーから実装を考え仕事を分割する 分離可能な実装の単位をタスクとする 「CGI入力解析機能の作成」 「HTML表示機能の作成」 「状況ツリーのデータ構造およびアクセス部機能の作成」 「画像の合成機能の作成」
計画ゲーム:仕事の割り振り タスクを取り合う タスクにかかる時間を見積もる イテレーションを開始する 各タスクには2人が割り当てられる 「CGI入力解析機能の作成」には田中、山田 このペアは常に一緒にそのタスクを実装する タスクにかかる時間を見積もる とても理想的な環境でかかる時間(理想日) 「CGI入力解析機能の作成」には3理想日 イテレーションを開始する
実装の設計 実装の設計については補助 CRCカードを使用したオブジェクト指向設計 参考書 「オブジェクトモデリングプロセスガイド―オブジェクト開発を成功させるプロセスの導入」(ピアソン・エデュケーション) 杉野 博史 他著 ISBN4894711540 「実践CRCカード―ロールプレイとブレーンストーミングによる大規模システム開発手法」(ピアソン・エデュケーション) D. ベリン 他著 今野 睦 他訳 ISBN4894712776
イテレーションの掟 テストから作ること 定期的に全部を集めて構築を行うこと ソースコードはみなで共有すること コーディング規則を遵守すること →CppUnitを使え 定期的に全部を集めて構築を行うこと →Makeを使え ソースコードはみなで共有すること →CVSを使え コーディング規則を遵守すること →学科のコーディング規則を使え
CVS ソースコード共有が可能なバージョン管理システム 業務ではMicrosoftのVSSが有名 参考書 「バージョン管理システム(CVS)の導入と活用」 (ソフトバンクパブリッシング) 鯉江 英隆他著 ISBN4797310669 「入門CVS」(秀和システム) 大月美佳著 ISBN4798001058 今品薄…11月に新刊予定
Make 構築ツール ルールからプログラムなどを構築 参考書 例えばCのソースコード、TeX ファイルの依存関係を記述しておくと 再構築が必要なものだけを構築 参考書 「GNU Make」(アスキー) R. ストールマン ISBN4756139590
CppUnit 単体テストのための仕組み 単体テスト=モジュール単位のテスト 参考図書 モックアップ(はりぼて)を作る→テストコードを書く →実行→失敗→はりぼてにコードを埋めていく →徐々に成功を増やしていく→完成させる 参考図書 「eXtreme Programmingテスト技法―xUnitではじめる実践XPプログラミング」(翔泳社) 日本XPユーザグループ著 ISBN4798101281
イテレーションの管理 遅れてないか常に見張る人を用意すること イテレーションの最終には評価を行うこと 誰かをトラッカに 進捗状況管理→模造紙で貼り出す イテレーションの最終には評価を行うこと 時間・作業の質など 作品のレビュー ストーリー・タスクの見積もりをしなおして次のイテレーションを開始すること
質問などの受付 教官室 電子メール WWW・CVSリポジトリ 7号館2階207号室(内線:8858) mika@is.saga-u.ac.jp WWW・CVSリポジトリ 用意ができたらアナウンス
最後に 実力テスト 次回は 受けることにした人は グループ分けに使用 30分 グループ分けと登録作業 履修カードとテストを出して帰ること 開始 実力テスト グループ分けに使用 30分 次回は グループ分けと登録作業 受けることにした人は 履修カードとテストを出して帰ること