Civil Engineer's Forum-FORUM8 このページをスタートページに設定する スマートフォンサイト モバイルサイト QR

Facebook - FORUM8

Twitter - FORUM8

YouTube - FORUM8

 Powered by Google

 サイトマップ | ご利用条件 | お問い合わせ | FAQ | F8ツールバー 英語翻訳サイト | Japanese | English | Korean | CHS/CHT | Vietnam | Francais | Europe

 誌上セミナー ●情報化講座 (10)
監修 :
田中 成典 教授
関西大学
総合情報学部
Vol.10 デザインパターン入門

●デザインパターンとは
 ソフトウェア設計において、ある問題を解決するための手順や方法を整理して、再利用しやすいようにしたパターンのテンプレートのことです。
 パターンは、オブジェクト指向に基づいて記述され、基本要素として、パターン名・問題・解法・結果からなり、オブジェクトを組み合わせて作成されています。デザインパターンを利用することで、再利用性が高く、柔軟な設計を行うことができます。デザインパターンの起源は、建築家Christopher Alexander が建築技法として形にしたアイデアですが、建築の分野では反応がなく、ソフトウェアの分野に大きな影響を与えています。


●オブジェクト指向とは
 ソフトウェア開発・設計などで、処理の機能よりも処理の対象物に重点を置く考え方のことで、プログラムの機能をオブジェクトという単位でまとめて記述していく方法のことです。
 既存のオブジェクトであれば、それを機能させるよう定義するだけで利用でき、内部構造などを知る必要が無いことから再利用が容易であり、これが最大の利点と言われます。オブジェクト指向の記述をサポートしたプログラム言語はJava,C++,VB.NRT, Rubyなどが挙げられます。


●デザインパターンの種類
 デザインパターンにはいくつか種類がありますが、その中でも特に有名なものとして、GoF(と呼ばれる4人)著作「オブジェクト指向における再利用のためのデザインパターン」があり、目的に応じた基本的な23のパターンが紹介されています。

また、IFC 2xはISO国際規格/STEPに準拠した規格(ISOのPASを取得)となっています。
生成に関するパターン
  Abstract Factory , Builder , Factory Method , Prototype , Singleton
構造に関するパターン
  Adapter , Bridge , Composite , Decorator , Facade , Flyweight , Proxy
振る舞いに関するパターン
  Chain of Responsibility , Command , Interpreter , Iterator , Mediator , Memento , Observer , State , Strategy , Template Method ,
  Visitor


●オブジェクトのインターフェイス規定
 デザインパターンにおいては、オブジェクトの操作は、インターフェイスを介して行います。特定の具象クラスを使用すると柔軟さが失われますので、具体的な処理内容は、インターフェイスを実装したオブジェクトで定義するようにします。インターフェイスは、名前・型・戻り値から宣言されます。


●デザインパターンのCALS関連システムでの利用
 電子納品・電子入札・情報共有システムにおいては、共通の部分や複数の機能が存在します。
 たとえば、ユーザからの複雑な要求があったり、自治体ごとにサービスや情報公開方法が異なったりするといったような場合です。そこで、その機能をクラスとして表現した場合、共通の処理を用いた拡張や再利用は困難となってきます。このような際、機能の切り替えや拡張を容易にするために、システム設計に「コンポジション」や「継承」を用いることで、様々なサービス提供につながっていきます。

継承:
スーパークラスの機能を受け継ぎ、それを再利用することです。必要部分の多くを既存のクラスから継承することで、大幅に手間を省くことが出来る反面、スーパークラスへの依存度が高まる為、スーパークラスの変更があった場合や、継承部の変更を行なう場合の柔軟性を考え、次のコンポジションの方法が推奨されます。
コンポジション:
継承の代替案であり、オブジェクトをまとめたり、合成したりすることで、新しい機能を得る方法です。
※これらは、再利用を目的として作成されるデザインパターンでは、重要な技法です。

 CALS関連システムにおいて利用が有効だと思われるパターンは下記の通りです。

1) Strategy:
モジュールの独立度を重視してシステムの切り替えを行うパターンです。内容は、それを実装したクラスで定義して、処理はインターフェイスで記述します。電子納品のCAD図面がバージョンや適用基準・要領によって書き方が異なる場合、データのチェックや処理の仕方、そして再利用する方法が重要となります。Strategyパターンを使用すると、処理方法の切り替えが多い電子納品・電子入札システムの切り替えが容易に有効となります。
2) Chain of Responsibility:
ある処理を持ったオブジェクトをつなぎ合わせて、複雑な処理要求に対処するパターンです。たとえば、電子納品のファイル命令規則であったり、禁則文字チェックというファイル形式のチェックを行う際は、チェック処理のつながりであるチェックシステムを使用します。Chain of Responsibilityパターンを使用すると、処理が分担している電子納品・電子入札システムでの機能に有効となります。
3) Decorator:
内容とそれを修飾する飾りを同一オブジェクトとして表現するパターンです。電子納品システムにおいては、表示部分のレイアウトを変更したり、再利用をしたりすることが必要となります。Decoratorパターンを使用すると、表示方法をユーザによって変化させたり、または、同一レイアウトを用いて統一したりすることが可能となり、メールの署名や書き出しフォーマットといった確認などのメールの統一と再利用も可能となります。
4) Adapter:
あるオブジェクトのインターフェイスを異なるインターフェイスへ変換するパターンです。たとえば、既存の電子納品や電子入札システムなどに新しい機能を追加するといったように、システムのインターフェイスと利用するインターフェイスが異なることがよくあります。Adapterパターンを使用すると、運用中のシステムに影響が少なく、機能を追加できるため、テスト済みの既存システム信頼性を保つことができます。


●当社での利用事例
 FORUM8では、任意形立体骨組み構造を対象とした、3次元解析プログラム「UC-win/FRAME(3D)」において、多くの場面でデザインパターンを採用しています。
 一例を挙げますと、UC-win/FRAME(3D)にはコピーという機能があり、そこで、Prototypeパターンを使用しています。Prototypeは、原型となるインスタンスを管理して、新たなインスタンスはコピーして作成するパターンです。
具体的には、荷重ケースのコピー、断面のコピー、アウトラインのコピー、M−φ特性のコピー、ヒステリシスのコピー、横拘束材料のコピー、材料のコピー、ばね特性のコピー、地震波のコピーなどで使用しています。


参考 : ケンセツ21 CALS/JAPAN 情報化講座 デザインパターン入門
     


  
前ページ    インデックス 次ページ
(Up&Coming '08 盛夏の号掲載)
戻る
Up&Coming

FORUM8


お問合せ窓口




[ ユーザー紹介 ]
中国船級社
[ お知らせ ]
FORUM8デザインフェスティバル2017-3Days+Eveのご案内






>> 製品総合カタログ


>> プレミアム会員サービス
>> ファイナンシャルサポート

最近リリースした製品
UC-win/Road (Simulink連携
プラグイン・オプション)
FEMLEEG Ver.8
洪水吐の設計計算 Ver.3
H29道示対応
UC-BRIDGE橋台橋脚
ラーメン橋脚設計ラーメン橋脚
設計計算
震度フーチング
基礎深礎フレーム
UC-win/Road(ログデータUDP
受信オプション)

キャンペーン実施中
H29道路橋示方書対応リリース
記念、複数同時購入割引
UC-win/Road Ver.12 PSQ
認証取得
オータムFPBポイント倍増

セミナー・イベントカレンダー
開催間近のセミナー
10/20  Engineer's Studio(R)活用
10/24  レジリエンスデザイン・ 
 CIM系解析支援体験
10/26  UC-win/Roadクリエイター
 入門(岩手)
10/27  下水道耐震設計体験

ソフトウェア/支援サービス
VRソフト(バーチャルリアリティ)
《UC-winシリーズ》
・道路・シミュレータ
・ドライブ・シミュレータ
・マイクロ・シミュレーション
・避難解析・シミュレーション
>>その他VRソフト
FEM解析ソフト
・3次元プレート動的非線形解析
・2次元動的非線形解析
・総合有限要素法解析システム
>>その他FEM解析ソフト
土木・建築・設計ソフト
《UC-1シリーズ》
・構造解析/断面
・橋梁上部工
・橋梁下部工
・基礎工
・仮設工
・道路土工
・港湾
・水工
・地盤解析
・CALS/CAD
・維持管理・地震リスク
・建築/プラント
・船舶/避難
>>その他土木・建築・設計ソフト
SaaS/クラウド
《スパコンクラウド®》
・スパコンクラウドサービス
《VR-Cloud®》
・リアルタイムVRシステム
《UC-1 for SaaS》
・FRAME面内
・FRAMEマネージャ
・RC断面計算
・UC-Draw
・電子納品支援ツール
・グループウェア/事務処理
・ファイル転送サービス機能
・UC-1 クラウドサービス
解析支援サービス/サポート
・UC-win/Roadサポートシステム
・設計成果チェック支援サービス
・Engineer's Studio®解析支援
・地盤解析支援サービス
・EXODUS/SMARTFIRE解析支援
・xpswmm解析支援サービス
・建物エネルギーシミュレーション
・3Dレーザスキャン・モデリング
・3D模型サービス
・3D報告書・図面サービス
>>その他支援サービス
各種ソリューション
・耐震診断/解析
・鋼橋設計
・橋梁新工法
・建築設計
・自治体
・医療系VRシステム
・パーキングソリューション
・ECOソリューション
>>その他ソリューション