光冠 さんが書きました:
ほとんど初めましてですが横から失礼します。
computer scienceの大学生で前学期にやったところなので復習も兼ねてちょっと書いてみます。
授業の取り方にもよりますが大体3年~4年にとる授業でそのような事を学びます。
一応plan-driven,agile,waterfall,spiral開発技法は少し習いましたが、一番重心を置いていたのはXP(extreme programming)ですね。
実際にXPを使ってPhotranにrefactoringを足したりしました。
設計技法といわれるとよく分かりませんがframeworkやDesign patternのことでいいのかな?
Adapter,command,composite,observer,strategy等色々習いましたが実際に使ったわけではないので、
実際に使ってやってみろと言われてもあんまり自信ないですね(汗
後はテスト技法ですが…
基本的にblackbox,whitebox,unit testingですかね。
後は駄目なテストの仕方とかcode coverageとかmetricを少しって感じでした。
参考になれば幸いです。
長文失礼しました。
はじめまして、光冠さん。書き込み有難うございます。
やはり、学部によっては勉強されるんですね。
少し実践が乏しい感じですが、やはり時間が足らないってのが現実で理論優先って感じでしょうか。
実践しないと身につかないですよね。
あまりにも難しい用語だらけになったので、今まで出た単語も含めて少し解説してみます。
解説に間違いがあったら指摘してください。
[サンドボックス]
子どもの砂場遊びから。砂場は子どもに取って安全な場所ってことらしい。
そこから転じて、保護された領域内でプログラムを動作させること。
変なことするとするとすぐ怒られたり、止められてしまう。
そういう意味では、ネイティブ動作するC言語は保護されない野生児。
[Haskell(ハスケル)]
純粋関数型プログラミング言語。私は苦手。
http://ja.wikipedia.org/wiki/Haskell
[アジャイル(agile)開発] 開発技法群?
適応的開発に分類される仕様変更の多いゲーム向き?と思わえる開発技法。
開発対象を多数の小さな機能に分割して、実際動くソフトのバージョンアップを週単位など短い期間で繰り返すことで、ソフトを完成させていくことを主眼とする。
http://ja.wikipedia.org/wiki/%E3%82%A2% ... B%E7%99%BA
[リファクタリング(refactoring)] アジャイル開発の工程の中にも含まれている。
コードの再利用性を高めるため、動作は同じままソースコードを整理すること。
ちゃんとしたテストを行わないとデグレード(品質低下)する危険性が高い。
http://ja.wikipedia.org/wiki/%E3%83%AA% ... 3%82%B0%29
[コードレビュー]
複数の人間でソースコードをレビュー(チェック・検査)すること。
http://ja.wikipedia.org/wiki/%E3%82%B3% ... 5%E3%83%BC
仲間に見せるので恥ずかしい(^^;
[マスターアップ]
商品となるソフトウェア(ゲーム)が完成し、ディスクの生産などに提出すること。
マスターアップするとバグが出るという伝説がある。
[フレームワーク(framework)] これは開発技法ではありません。
ライブラリに似ているが、使い方の枠と言うか主体が逆転しているのがフレームワーク。
ライブラリはユーザープログラムがライブラリを呼び出す。
フレームワークは、フレームワークが必要に応じてユーザーコードを呼び出す。
MFCとか.NetFrameWorkが本来のフレームワークの形。
と一旦ここまでにしておきます。