反復とは、プロセスを繰り返して、一連の結果(場合によっては無制限)を生成し、目的または結果に近づくことを目的とする行為です。数学またはコンピューターサイエンスのコンテキストでは、反復は(関連する再帰の手法とともに)アルゴリズムの標準的な構成要素です。
コンピュータプログラミングでは、反復は英語の用語ループとも呼ばれ、特定の問題を解決するアルゴリズム内の制御構造であり、通常は次のような問題が発生するまで、一連の命令を繰り返し実行するようにコンピュータに指示します。特定の論理条件。
シーケンスと選択は、ベーム-ジャコピニの定理に従って、特定の問題をアルゴリズムで解決するための3つの基本構造の1つを構成することを強調することが重要です。反復にはいくつかの形式があります。最もよく知られているのは、MENTRE、REPEAT、およびPERです。反復は、プロセスのパフォーマンスを自動化できるプログラミングの強力なリンクであると言えます。これは、一連の命令を実行するだけでは不十分です。
いわゆる「無限ループ」は、プログラムの実行を停止するプログラミングエラーによる反復の場合ですが、一部のプログラミング手法、特にマイクロプロセッサでは、プログラム内で無限に反復するために意図的に使用されます。
ソフトウェア開発では、反復は、アプリケーションが反復と呼ばれる小さなセクションで開発されるヒューリスティックな計画および開発プロセスを記述するために使用されます。各反復は、ソフトウェアチームと潜在的なエンドユーザーによってレビューされ、批評されます。反復を批評することから得られた洞察は、開発の次のステップを決定するために使用されます。反復をプロットするためによく使用されるデータモデルまたはシーケンス図は、試行、承認、または破棄されたものを追跡し、最終的には最終製品の一種の青写真として機能します。
反復開発の課題は、すべての反復に互換性があることを保証できることです。新しい反復が承認されるたびに、開発者は後方エンジニアリングと呼ばれる手法を採用できます。これは、体系的なレビューと検証の手順であり、新しい反復ごとに後方互換性があることを確認します。反復開発を使用する利点は、エンドユーザーが開発プロセスに関与することです。アプリケーションが最終製品になるまで待つのではなく、変更を簡単に行うことができない場合は、開発の各段階で問題を特定して解決します。反復開発は、循環開発または進化的開発と呼ばれることもあります。