11 月 30 日(月)〜 12 月 16 日(水)

インクリメンタルな開発

基本プログラムが完成したら,バージョンアップを少しずつ進めて行こう. ただし,必ず,プログラムを常に動く状態に保つこと. また,途中のバージョンのソースファイルをバックアップしておくこと. (開発の進め方ソースコードの管理 を再確認しよう.)

もちろん,時には,大幅な変更も必要かもしれない. この場合,変更量が最小限に収まるように, また,動く状態を壊さないように, 充分に作戦を練った上で作業しよう.

ウェブページには, 開発履歴(どんな機能を実現したか?) と 開発計画(どんな機能を追加する予定であるか?) を追加して行こう. (例:大砲ゲーム

なお,開発時間が限られているので,ある程度の妥協(取捨選択)は必要.

特に,外観設計(画面やキャラクタのデザイン)には時間がかかるので, 囚われすぎないように注意.動作を重視しよう.

今週の課題(11月30日,12月02日)

作業の進捗状況(しんちょくじょうきょう)をレポートせよ. プログラムをバージョンアップし, ウェブページも更新すること.

レポート提出 注意事項

今週の課題(12月07日,09日)

先週と同様に, 作業の進捗状況をレポートせよ. プログラムをバージョンアップし, ウェブページも更新すること.

レポート提出 注意事項

今週の指令(12月14日)

来週の完成に向けて,プログラムとウェブページを仕上げて行こう. (今週,課題レポートはありません.)

特に,プログラムについては,機能の向上だけでなく, バグの退治にも努めよう:

また,ソースコードの美化にも取り組もう:

ウェブページについては, 他人でもわかるように, 親切な説明文を心がけよう.


開発プロセスについての補足資料

主な開発プロセスの概要について,Fig.1 にまとめてみた.

Fig.1. 開発プロセス各種

インクリメンタル開発では, 開発作業(プログラミング)を進めながら, 設計変更(設計の修正,機能の向上)も施して行く. 一方,他の開発方法では,設計を事前に確定しておく必要があるのだが, それは,現実的には難しい. 設計上の不備が開発途中で発見されることが多く, 開発の混乱・遅延を引き起こしがちである.

業界人の意見:


(上級者向け)分割ソースファイルの公開方法

ソースファイルを分割して開発している場合,ユーザ(開発者以外)にとっては, ウェブページから複数のファイルを個別にダウンロードするのが非常に面倒である. そこで,次のように作業すると良い. (以下の作業例では,開発中のプログラム名を gameディレクトリ名を game-X として説明を進める.)

複数ファイルの連結・圧縮

準備として,ダウンロードには不要なファイルをディレクトリ内から削除しておく:

$  cd  game-X/	# ディレクトリへ入る(既に入っている場合,無視)

$  rm  game		# プログラムファイルを削除
$  rm  *.o		# オブジェクトファイルを削除

$  cd  ..		# ディレクトリから出る

ディレクトリ game-X/ 内の複数のファイルをすべて, 1個の圧縮ファイルにまとめる:

$  tar  zcvf  game-X.tgz  game-X/*
または
$  zip  game-X.zip  game-X/*

実は,これらの作業も Makefile で自動化できる:

$  cd  game-X/

$  vim  Makefile
...

.PHONY:  clean  tgz  zip

clean:
	rm  *.o  game

tgz: clean
	( cd ..; tar  zcvf  game-X.tgz  game-X/* )

zip: clean
	( cd ..; zip  game-X.zip  game-X/* )

これで,コンパイルだけでなく,圧縮までの作業も楽に実行できてしまう:

$  make  tgz
または
$  make  zip

$  cd  ..

ウェブページへの掲載

ウェブページには,圧縮ファイルへのリンクの他, ディレクトリへのリンクも掲載する:

$  vim  index.html
...
<ul>
<li>Ver.X 圧縮ソースファイル:<A HREF="game-X.tgz">game-X.tgz</a></li>
<li>Ver.X ソースディレクトリ:<A HREF="game-X/">game-X/</a></li>
</ul>
...

ダウンロードして利用したい人は,圧縮ファイルをクリックすれば良いし, 個々のソースファイルを読みたいだけの人は,ディレクトリをクリックすれば良い.

圧縮ファイルの展開

ユーザは,圧縮ファイルをダウンロードしたら, 元の複数ファイルへ復元する:

$  tar  zxvf  game-X.tgz
または
$  unzip  game-X.zip

復元後,圧縮ファイルは不要になるので削除:

$  rm  game-X.tgz
または
$  rm  game-X.zip

コンパイルし,実行するには:(もし,Makefile が含まれていれば...)

$  cd  game-X/
$  make

$  ./game

(c) 2015, yanagawa@kushiro-ct.ac.jp