4

今日、「C++ でのコーディングの相当な経験と、構造化設計原則の完全な基礎」を必要とする職務記述書を目にしたので、これらの原則とは何かを考えてみました。最初はC++と「構造化設計」を一言で言うとちょっと変だなと思ったのですが、C++はマルチパラダイムプログラミング言語なので、Cと同じように使われているのかなと思いました。ウィキペディアのページも調べて読みました例外処理とステート マシンについては、構造化されていない設計 (当然のことです) ですが、まだ多くのことが不足しているように感じます。では、構造化ソフトウェアの設計で最も重要な原則は何ですか?

4

3 に答える 3

5

構造化プログラミングと構造化設計は、必ずしも同じものではありません。一般的に、構造化されたデザインは、物事を構造化された要素に分解することに焦点を当てます。ここでは同等に有効なアプローチがたくさんありますが、それらのほとんどは情報の隠蔽に焦点を当てていると言えます。

  • オブジェクト指向設計は明らかに、操作とデータをオブジェクトに分解し、階層内で関連する緊密に結合されたクラスにまとめます。
  • 抽象データ型は、本質的にオブジェクト指向設計とは異なり、データと操作が一緒に保持される非 OO の同等物です。階層と継承は、少なくとも私が見たものでは、ADT では役割を果たしません。
  • メタプログラミングは、ジェネリック型を構築し、特定のデータ型に合わせて適切に特殊化することに重点を置いています
  • コントラクトへのプログラミングは、直接継承を避けることに重点を置いています。通常、複数のクラスの構成による実装とコントラクト インターフェイスを組み合わせます。
  • 設計パターンは、OO 設計の議論で最も一般的に見られるものですが、ほとんどすべてのコンテキストで実装できる高レベルのメタ設計 (パターン) に焦点を当てています。

複数のパラダイムでプログラムを構築する方法を知ることは、常に貴重な知識になります。デザインの構造について話す方法を知ることは、より厄介ですが、最終的にはさらに価値があります.

于 2010-01-26T21:51:35.137 に答える
4

MyersおよびYourdon と Constantineによる複合/構造化設計に関する古典的な著作では、最も重要な 2 つの原則は次のとおりです。

  • カップリング (異なるモジュールが互いにどのように関連するか)

  • Cohesion (モジュールが内部でどのように構成されているか)

広告の作者はおそらく手がかりを欠いているというマイク・バートンに同意しますが、「モジュールの結合」と「モジュールの結束」については十分に簡単にブラッシュアップできます。図書館でそれらを入手できれば、その本は読む価値があります。元の論文は IBM の有料サイトでしか入手できません。

于 2010-01-27T02:30:12.387 に答える
1

私がいつも参照しているのは、1981 年 10 月の IEEE Micro Magazine に掲載された Bell Telephone Laboratories の GD Bergland による古い記事です。信じられないかもしれませんが。約 13 ページの長さで、知っておく必要のあるほとんどすべての情報が記載されています。問題は、IEEE であっても、メンバーであっても、それを見つけることができない可能性があることです。

Amazon で、Peter Freeman (編集者) による別の非常に優れた (ただし古い) 本「Tutorial on Software Design Techniques」を見つけることができます。

http://www.amazon.com/gp/offer-listing/0818605146/ref=dp_olp_0?ie=UTF8&redirect=true&condition=all

于 2011-01-24T00:00:32.803 に答える