複雑なアルゴリズムはモジュールと呼ばれる小さな部分に分割され、分割のプロセスはモジュール化として知られています。 モジュール化は、アルゴリズム設計の複雑さを大幅に減らし、そのプロセスを設計および実装することをより簡単にします。 モジュラープログラミングは、各機能が互いに異なり、独立して機能する、機能の形でプログラムを設計および作成する技法です。 関数の内容はまとまりがあり、モジュール間の結合は低いです。
比較表
比較基準 | トップダウンアプローチ | ボトムアップアプローチ |
---|---|---|
基本 | 大きな問題を小さな部分問題に分割します。 | 基本的な低レベルの問題を解決し、それらをより大きな問題に統合します。 |
プロセス | サブモジュールは単独で分析されます。 | どのデータをカプセル化するかを検討し、情報を隠すという概念を暗示します。 |
コミュニケーション | トップダウンアプローチでは必要ありません。 | 特定量のコミュニケーションが必要です。 |
冗長性 | 冗長な情報を含みます。 | 冗長性を排除することができます。 |
プログラミング言語 | 構造/手続き指向プログラミング言語(すなわちC)はトップダウンアプローチに従う。 | オブジェクト指向プログラミング言語(C ++、Javaなど)はボトムアップアプローチに従います。 |
主に使用される | モジュールのドキュメント、テストケースの作成、コードの実装、そしてデバッグ。 | テスト |
トップダウンアプローチの定義
トップダウンアプローチは基本的に複雑な問題やアルゴリズムを複数の小さな部分(モジュール)に分割します。 これらのモジュールは、結果として得られるモジュールが基本的に理解される基本プログラムになるまでさらに分解され、さらに分解することはできません。 ある程度のモジュール性を達成した後、モジュールの分解は中止されます。 トップダウンアプローチは、効率的な方法でプログラムを体系化してコード化するために、大きなプログラムモジュールをより単純なモジュールと小さなモジュールに分割する段階的なプロセスです。 このアプローチにおける制御の流れは常に下方向です。 トップダウンアプローチは、関数を使用することによって「C」プログラミング言語で実装されています。
したがって、トップダウン方式は抽象設計から始まり、次にこの設計は、追加の改良の必要がなくなるまで、より具体的なレベルを作成するために順次改良される。
ボトムアップアプローチの定義
ボトムアップアプローチは、トップダウンアプローチと正反対の方法で機能します。 最初に、最も基本的な部分の設計が含まれており、これらの部分が組み合わされて、より高いレベルのモジュールが作られます。 より高いレベルのモジュールへのサブモジュールとモジュールのこの統合は、必要な完全なアルゴリズムが得られるまで繰り返し実行されます。
ボトムアップアプローチは抽象化層で機能します。 ボトムアップアプローチの主な用途は、各基本モジュールを大きいものにマージする前に最初にテストすることです。 テストは特定の低水準関数を使って行われます。
トップダウンアプローチとボトムアップアプローチの主な違い
- トップダウンアプローチでは大きなタスクを小さなサブタスクに分解しますが、ボトムアップアプローチではまずタスクのさまざまな基本部分を直接解決してから、それらの部分をプログラム全体に結合します。
- 各サブモジュールは、トップダウン方式で別々に処理されます。 反対に、ボトムアップアプローチでは、カプセル化するデータを調べることによって情報隠蔽の概念を実装します。
- トップダウン方式のさまざまなモジュールは、あまり通信を必要としません。 反対に、ボトムアップアプローチでは、後で結合するために個別の基本モジュール間の対話が必要です。
- ボトムアップアプローチは冗長な情報を含まないが、トップダウンアプローチは冗長性を生み出すことができる。
- Fortran、COBOL、Cなどの手続き型プログラミング言語は、トップダウン方式を採用しています。 対照的に、C ++、Java、C#、Perl、Pythonなどのオブジェクト指向プログラミング言語は、ボトムアップアプローチを採用しています。
- ボトムアップアプローチは、以前はテストで使用されていました。 逆に、トップダウンアプローチはモジュールの文書化、テストケースの作成、デバッグなどで利用されています。
結論
トップダウンアプローチおよびボトムアップアプローチは、トップダウンがシステムを高レベルの仕様から低レベルの仕様に分解する従来のアプローチであるアルゴリズム設計方法です。 一方、ボトムアップ・アプローチはより効率的であり、プリミティブ・コンポーネントが最初に設計されてから上位レベルに進むという逆の方法で機能します。
トップダウンアプローチでは、通信の識別と再利用の概念を無視しながら、サブモジュールの分離(モジュール間の結合の低さを意味します)を強調しています。 ボトムアップアプローチでは、情報の隠蔽と再利用が重要な要素です。