エクストリームプログラミング
短い開発周期で動くソフトウェアを作り、利用者の意見を次の作業へ反映するアジャイル開発の手法。二人でコードに取り組むペアプログラミングや、テストを先に書いて実装と改善を繰り返すテスト駆動開発などを組み合わせ、要求の変化に対応する。
イマシルちゃんの解説
エクストリームプログラミング(XP)は、小さく作って確かめる作業を短い周期で繰り返す開発方法だよ。
まず利用者と必要な機能や作る順番を決めるんだ。
開発中は二人でコードを確認したり、先に用意したテストを通るように書いたりして、間違いを早く見つけるよ。
動くものができたら利用者に見てもらい、その意見を次に作る機能へ反映するの。
動作の確認と利用者とのやり取りをこまめに重ねるから、求めるものが途中で変わっても対応しやすいんだ。
この解説はわかりやすかったですか?
より深い解説
どのような開発手法か
XP(eXtreme Programming)は、要求の変更を受け入れながらソフトウェアを開発するアジャイル系の手法である。短い期間で動くソフトウェアを作り、テストと利用者からの意見を次の作業に反映させる。
単に作業を急ぐ方法ではない。変更を頻繁に取り込むために、品質を保つ実践方法と短いフィードバックの周期を組み合わせる。
代表的なプラクティス
| プラクティス | 役割 |
|---|---|
| ペアプログラミング | 二人で同じコードに取り組み、実装中に考えや問題を確認する |
| テスト駆動開発 | テストを先に書き、必要な実装と改善を繰り返す |
| 継続的インテグレーション | 変更を頻繁に統合し、自動テストなどで確かめる |
| リファクタリング | 外から見える動作を変えずに内部構造を整理する |
| 小規模リリース | 小さな成果を短い間隔で利用者に届ける |
| シンプルな設計 | まだ必要でない仕組みを先回りして作り込みすぎない |
開発の進め方の例
- 利用者が必要とする機能を、小さな要求に分ける。
- 優先度の高い要求を選び、必要なテストと実装を行う。
- 変更を頻繁に統合して、ほかの機能が壊れていないか調べる。
- 完成した小さな機能を見てもらい、フィードバックを次の開発に反映する。
要求の変更を最後まで保留するのではなく、各回の開発で優先順位を調整できるようにする。
ほかのプログラミングの分類との違い
| 用語 | 分類の観点 |
|---|---|
| XP | 開発の進め方とプラクティスの組合せ |
| 構造化プログラミング | 分岐や反復などを整理したコードの記述方法 |
| コンポーネント指向 | 部品の再利用を重視する設計 |
| ビジュアルプログラミング | 図形などで処理を表現する方法 |
XPは特定のプログラミング言語を指さない。コードの記述方法だけでなく、テスト、協働、統合、リリースまでを含む開発手法である。
実際の試験ではここに出る!全1問
ネットワークスペシャリスト
- 午前Ⅱ