アジャイル開発とは
あじゃいるかいはつ
数週間程度の短い期間の反復を繰り返し、そのたびに動くソフトウェアを作って利用者の意見を取り入れ、変化する要求に合わせて計画を見直していく開発の進め方の総称。代表的な手法にスクラムやエクストリームプログラミング(XP)がある。
「アジャイル開発」は、1分野の2問の練習問題に出てきます(ソフトウェア開発とプロジェクト管理など)。
この用語の分野: ソフトウェア開発とプロジェクト管理
あじゃいるかいはつ
数週間程度の短い期間の反復を繰り返し、そのたびに動くソフトウェアを作って利用者の意見を取り入れ、変化する要求に合わせて計画を見直していく開発の進め方の総称。代表的な手法にスクラムやエクストリームプログラミング(XP)がある。
「アジャイル開発」は、1分野の2問の練習問題に出てきます(ソフトウェア開発とプロジェクト管理など)。
この用語の分野: ソフトウェア開発とプロジェクト管理
アジャイル開発の考え方は、2001年に発表されたアジャイルソフトウェア開発宣言にまとめられています。宣言は、プロセスやツールよりも個人と対話を、包括的なドキュメントよりも動くソフトウェアを、契約交渉よりも顧客との協調を、計画に従うことよりも変化への対応を価値とするとしています。右側の項目にも価値があることを認めたうえで、左側の項目をより重視するという書き方で、ドキュメントや計画が不要だという意味ではありません。
ウォーターフォールモデルでは、最初に要件を確定させて全体を1回の流れで作るので、利用者が動くものを見られるのは開発の終わり近くになります。アジャイル開発では、優先度の高い機能から少しずつ作って短い間隔で動くものを見せるので、要求の誤解や変化に早く気づけます。その代わり、最終的な範囲や費用を最初に固めにくく、契約の形や、利用者が開発に継続して関わる体制が必要になります。どちらが良いかは、要求の確かさや、変更にかかる費用によって決まります。
チップや基板は作り直しに大きな費用と時間がかかるので、ハードウェアそのものの開発では、仕様を早く固める計画型の進め方が中心です。一方、ファームウェアやドライバ、EDAのスクリプト、検証環境などのソフトウェアでは、継続的インテグレーションと自動テストを組み合わせたアジャイル開発がよく使われます。実機がまだない段階では、シミュレータやFPGAの試作機の上でソフトウェアを先に動かし、ハードウェアの日程とソフトウェアの反復を組み合わせて進めます。
正解:C. リファクタリング
リファクタリングは、重複したコードをまとめる、長い関数を分ける、名前を分かりやすくするなどして、機能を変えずにコードの構造を改善する作業です。振る舞いが変わっていないことを確かめるため、自動化したテストを用意し、少しずつ変更してはテストを実行します。ペアプログラミングは2人が1台のコンピュータで一緒にプログラムを書くXPのプラクティスです。リバースエンジニアリングは、既存のプログラムを解析して仕様や設計を明らかにすることです。
書かないわけではありません。アジャイルソフトウェア開発宣言は、包括的なドキュメントよりも動くソフトウェアを重視するとしていますが、ドキュメントの価値も認めています。保守や安全性の説明に必要な文書は、必要な分だけ、ソフトウェアと一緒に更新しながら作ります。
スクラムはアジャイル開発の代表的な枠組みの1つです。アジャイル開発は短い反復で価値を届ける考え方の総称で、スクラムのほかに、テスト駆動開発やペアプログラミングなどのプラクティスをもつエクストリームプログラミング(XP)などがあります。
反復して利用者の意見を取り入れるのはアジャイル開発などの反復型、試作品で要求を確かめるのはプロトタイピングモデルの特徴です。
ソフトウェア開発のウォーターフォールモデルの特徴として、適切なものはどれか。Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。
ウォーターフォールモデル アーンドバリューマネジメント(EVM) SLA(サービスレベル合意) 境界値分析 クリティカルパス法(CPM) CI/CD(継続的インテグレーション・継続的デリバリー) スクラム WBS(作業分解構成図) テスト駆動開発(TDD) 同値分割