基本プログラムが完成したら,バージョンアップを少しずつ進めて行こう. ただし,必ず,プログラムを常に動く状態に保つこと. また,途中のバージョンのソースファイルをバックアップしておくこと. (開発の進め方, ソースコードの管理 を再確認しよう.)
ウェブページには, 開発履歴(どんな機能を実現したか?) と 開発計画(どんな機能を追加する予定であるか?) を追加して行こう. (例:大砲ゲーム)
なお,開発時間が限られているので,ある程度の妥協(取捨選択)は必要.
作業の進捗状況(しんちょくじょうきょう)をレポートせよ. プログラムをバージョンアップし, ウェブページも更新すること.
先週と同様に, 作業の進捗状況をレポートせよ. プログラムをバージョンアップし, ウェブページも更新すること.
来週の完成に向けて,プログラムとウェブページを仕上げて行こう. (今週,課題レポートはありません.)
特に,プログラムについては,機能の向上だけでなく, バグの退治にも努めよう:
また,ソースコードの美化にも取り組もう:
ウェブページについては, 他人でもわかるように, 親切な説明文を心がけよう.
主な開発プロセスの概要について,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