システムの様々な開発方法

RAD(rapid application development)

エンドユーザーと開発者による少人数構成のチームを組み、開発支援ツールを活用するなどして、とにかく短期間で開発を行う事を重要視した開発手法。

Visual basicなどのビジュアル開発環境が該当する。

プロトタイプをつくってそれを評価するサイクルを繰り返すことで完成度を高めますが、このフェーズが無制限に繰り返されないように機嫌を設けることがある。これをタイムボックスという。

タイムボックスを経過すると強制的に次のステップへ行く。固まってない要求については開発を行わない。

アジャイルとXP(Exterme programming)

スパイラルモデルの派生型。より短い反復単位を用いて迅速に開発を行う手法の総称がアジャイル。

アジャイル型の代表的な開発手法がXP。少人数の開発に適用債安いとされ、既存の開発手法が「仕様を固めて開発を行う」であったのに対して、XPは変更を許容する柔軟性を重視している。

XPでは5つの価値と19のプラクティス(実践)が定義されていて、そのうち開発プラクティスとして定められているのが次の6つ。

テスト駆動開発 実装の前にテストを定め、そのテストをパスするように実装を行う。テストは自動テストであることが望ましい
ペアプログラミング 二人一組でプログラミングを行う。
1人がコードを書き、1人がコードの検証役となる。随時互いの役割を入れ替えながら作業を進める。
リファクタリング 完成したプログラムでも内部のコードを随時改善する。冗長な構造を改めるにとどめ、外部からみた動作は変更しない。
ソースコードの共同所有 コードの作成者に断りなく、チーム内の誰もが修正を行うことができる。その代わり、チーム全員が全てのコードに対して責任を負う。
継続的インテグレーション 単体テストを終えたプログラムはすぐい結合して結合テストを行う
YAGNI YOU aren’t Going to Need itの略。今必要とされる機能だけのシンプルな実装にとどめる。

リバースエンジニアリングとフォワードエンジニアリング

  • リバースエンジニアリング:既存ソフトウェアの動作解析によって、プログラムの仕様やソースコードを導きだす
  • フォワードエンジニアリング:リバースエンジニアリングによって得られた仕様をもとに新しいソフトウェアを開発する手法

元となるソフトウェア権利者の許可なくこれを行い、新規ソフトウェアを開発販売すると、知的財産権の侵害にあたる可能性があるため注意が必要。

マッシュアップ

公開されている複数のサービスを組み合わせることで新しいサービスを作り出す手法。WEBサービス構築のためによく利用される。

タイトルとURLをコピーしました