機能設計は、コンピュータソフトウェアや、ますます普及しつつある3D モデルなどのハードウェア デバイスとソフトウェア デバイスの設計を簡素化するために使用されるパラダイムです。機能設計では、デバイスの各モジュール部品が 1 つの役割のみを持ち、他の部品への副作用を最小限に抑えながらその役割を遂行することが保証されます。機能設計のモジュールは結合度が低い傾向があります。
利点
実装の利点は、ソフトウェア モジュールの目的が 1 つだけであれば、設計と実装が簡単になり、コストも削減できることです。
機能的に設計された部品を持つシステムは、各部品が本来の機能のみを実行するため、変更が容易です。
メンテナンスは成功したシステムの寿命の 3/4 以上を占めるため、[1]この機能は重要な利点です。また、システムの理解と文書化が容易になり、トレーニングが簡素化されます。その結果、機能システムの実質的な寿命が長くなります。
プログラム システムでは、機能モジュールはシステムの他の部分に現れる副作用が発生する可能性が低いため、再利用しやすくなります。
技術
機能設計を確実にする標準的な方法は、モジュールの説明を確認することです。説明に「and」や「or」などの接続詞が含まれている場合、設計には複数の責任があり、副作用が生じる可能性があります。機能設計を実現するには、責任を複数のモジュールに分割する必要があります。
批判と限界
すべてのコンピュータ システムには、CPU サイクルやその他のリソースをさまざまなモジュールに分配するために存在するため、機能的に純粋ではない部分があります。たとえば、ほとんどのシステムには、モジュールを起動する「初期化」セクションがあります。その他のよく知られた例としては、割り込みベクター テーブルとメイン ループがあります。
一部の関数は本質的に混合セマンティクスを持っています。たとえば、「車をガレージから移動する」関数は本質的に「車の位置」を変更する副作用を持っています。場合によっては、混合セマンティクスは、関連する概念の大きなトポロジカル ツリーまたはグラフにまで及ぶことがあります。このような特殊なケースでは、一部の権威者は機能設計を推奨していません。[要出典]代わりに、ポリモーフィズム、継承、または手続き型メソッドが好まれる場合があります。
3Dモデリングとシミュレーションに適用
最近、いくつかのソフトウェア会社が、3D モデリングとシミュレーション用のパラメトリック フィーチャ ベースのモデラーを説明する概念として機能設計を導入しました。この文脈では、パラメータが実際の設計基準に結び付けられたオブジェクトのパラメトリック モデルを意味します。たとえば、シミュレーションで材料の強度と適用される力の量に基づいて直径を調整する車軸などです。これにより、有限要素解析の結果を個々のオブジェクトの動作に直接統合することで、機械アセンブリ、さらには建築/構造アセンブリの設計プロセスの効率が向上することが期待されます。
参考文献
- ^ [1] Jussi Koskinen著「ソフトウェア保守コスト」
外部リンク
- 機能設計仕様
- 機能設計のための7つの必須ガイドライン
