CVS

情報システム構築
-説明と実力テスト-
金曜4校時
掛下哲郎 大月美佳
本講義の背景
来年度からの新カリキュラム
新しい実験科目(3年次開講)
オブジェクト指向ソフトウェアの協同開発演習
のための実験講義
現カリキュラムでやる上での問題
オブジェクト指向を学んでいない…
→ごりごり実地体験→上級者向け
本講義の目的
ソフトウェア協同開発の学習
開発手法の体験
eXtreme Programming
開発で使用するツールの学習
CVS, Make, CppUnit
自力で調べる力をつける
ソフトウェアの実装に必要な知識は自力で
JABEEとの関連
対応項目
A 情報システム技術者としての視野
(1) 情報システムについて,利用者,管理者,開発
者としての各視点からの知識を持っている
教科書
教科書
特になし
講義資料を配布
参考書
1. 「XPエクストリーム・プログラミング適用編―
ビジネスで勝つためのXP」(ピアソン・エデュ
ケーション) K. アウアー 他著 平鍋 健児 他
訳 ISBN:4894715554
2. 「eXtreme Programming実践レポート―XPプ
ロジェクトを実現した手法と軌跡」(翔泳社)
日本XPユーザグループ著 ISBN4798102180
その他必要に応じて提示・閲覧室に用意?
本講義の評価方法
ソフトウェア開発の成果(50点配点)
出来上がったものに対して出来を評価
グループ全員共通
開発への貢献度(50点配点)
グループメンバによる投票
口頭試問
講義スケジュール(予定)1
回数
1
2
3
4
5
6
7
日付
10/04
10/11
10/18
10/25
11/01
11/08
11/15
内容
説明と実力テスト
グループ分けとCVSの初期設定
計画ゲーム
テストケースとモックアップ作成 1
テストケースとモックアップ作成 2
Makefile作成とビルド
第1イテレーション
講義スケジュール(予定)2
回数
8
9
10
11
12
13
14
予備
日付
11/29
12/06
12/13
12/20
01/10
01/17
01/24
01/31
内容
第1イテレーション
第1イテレーションの評価
第2イテレーション
第2イテレーション
第2イテレーションの評価
第3イテレーション
第3イテレーション
最終成果報告?
何を作るのか
必須条件
指定の開発環境
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
イテレーションの管理
遅れてないか常に見張る人を用意すること
誰かをトラッカに
進捗状況管理→模造紙で貼り出す
イテレーションの最終には評価を行うこと
時間・作業の質など
作品のレビュー
ストーリー・タスクの見積もりをしなおして
次のイテレーションを開始すること
質問などの受付
教官室
7号館2階207号室(内線:8858)
電子メール
[email protected]
WWW・CVSリポジトリ
用意ができたらアナウンス
最後に
開始
実力テスト
グループ分けに使用
30分
次回は
グループ分けと登録作業
受けることにした人は
履修カードとテストを出して帰ること