完全なドキュメント
Win32 実行可能ファイル
これは Visual Basic 6 のデスクトップ アプリケーションであり、GERT ネットワークの形式で危険なオブジェクトの構造を記述し、各ノードの危険因子の推定値を計算できます。このシステムは、Visual C++ / ATL で実装された COM オブジェクトに基づくエンジンに基づいており、危険を評価するためのプラグイン システムがあります。各プラグインは COM オブジェクトです。また、Mathcad に統合するための COM オブジェクトの形式のシステム ファサードもあります。
使用されている危険性評価スケールは大きすぎます (11 ポイント)。手動で評価を簡単に行うことはできません。したがって、システムの重要な部分は、計算の自動化コンポーネントです (図 5.1 を参照)。この目的のために、次の段落で概説する特別な技術が提案され、実装されます。特定された危険の多くは、安全技術者が使用する危険と重複していることが判明しました。これは、開発されたモデルの重要な利点を意味しており、それは、状態、労働安全衛生を評価する方法が、多くの危険因子に比較的簡単に適応できるという事実に表れています。既存の方法により、GOST、危険な生産施設に関する規制および文書に基づいて、対象物のさまざまな定量的特性を決定し、それらを普遍的な尺度(スコアリング)に変換できることが重要です。これらの手法の存在とテストは非常に重要であり、推定値を計算するための手法を開発するという非常に労働集約的なプロセスを簡素化します。提案された方法論は多くの場合に使用できますが、常に使用できるわけではなく、すべての専門家がこのアプローチに満足するわけではありません。したがって、より大きな柔軟性が必要となります。このため、ハザードに関連する外部コンポーネントとして評価モジュールの実装に基づいてアーキテクチャが開発されました。この柔軟性を提供するには、ユーザー (通常は専門家) に独自の価値推定アルゴリズムを実装し、独自の構造とデータベースを使用できる機能を提供する必要があります。このようなモジュールとハザード システム間の接続の種類は単純であるため、製品に Visual Basic for Applications を負担させることはお勧めできません。このようなアルゴリズムの開発の詳細は、複雑なデータ構造を扱う必要性によって決まります。したがって、Hosting スクリプトは、構造化データを処理するのではなく、オブジェクトを管理するアルゴリズムを実装するように設計されているため、不適切であり、不当に製品が重くなります。ここでの最適な概念は、COM テクノロジを使用して実装された拡張モジュール (プラグイン) の概念です。このようなモジュールは通常、非常にコンパクトです (サイズが小さく、さまざまなライブラリやコンポーネントへの依存性がほとんどなく、リソースの消費もほとんどありません)。これらは、COM テクノロジを使用してコンポーネントを開発できるツールが存在する任意の言語で実装できます。これにより実装の柔軟性が向上しますが、それ自体はタスクに重大な技術的な複雑さをもたらしません。このコンポーネントを低レベルのツールや言語 (たとえば、Visual C++ を使用) で実装すると、労力と複雑さが大幅に増加します。しかし、熟練していないプログラマでもアクセスでき、労力が最も少なく、非常に効果的な方法として、Visual Basic での実装が提案されています。 Hazard との通信の種類は非常に単純で、コンポーネントに必要なのは、IFactorAssign インターフェイスを実装し、IDispatch インターフェイスと MGertNet デュアル インターフェイスを使用して COM クライアントとして機能できるインプロセス COM サーバーであることだけです。 Visual Basic 6 を使用して、インプロセス COM サーバーによって実装されるこのような COM オブジェクトの作成は簡単で、基本的に自動化されているため、熟練していないプログラマでも簡単に実行できます。拡張機能の開発について定式化された本質によって、拡張機能の仕様の内容が決まります。コンポーネントが Hazard によって認識され、接続され、対話できるようにするには、次のものが必要です。
一例として、ユニバーサル拡張機能が (Visual Basic 6 で) 実装されました。これは非常に複雑な製品であり、加重平均技術を実装しています。加重平均法を使用して実装された評価モジュールは汎用的であるため、洗練されたグラフィカル インターフェイス、複雑な動的データ構造、およびそれらのエディターを使用して、広範囲の OPO を効果的に記述することができます。したがって、これは典型的な例ではありません。ただし、すでに示したように、これらの困難はすべて、ハザードとの相互作用のメカニズムに関係するものではなく、この実装の特徴であり、(汎用商用製品としての)実装の特定の要件です。特殊な場合 (公式の使用) については、Visual Basic を使用して熟練していないプログラマでも効果的に開発できる静的構造を持つ単純なモジュールを作成することが提案されています。
Hazard は、Visual Basic 6 を使用してアウトプロセス COM サーバー (ActiveX EXE) として実装され、COM クラス Hazard.HazardApp で表されます。ハザード コアには、危険な生産施設での事故発生モデルのコード、モデル実行および最適化アルゴリズムのコードが含まれており、Visual C++ 6.0 (ATL) を使用してインプロセス COM サーバー (ActiveX DLL) として実装されます。 ) であり、COM クラス GERTNETLib.MGertNet で表されます。 Hazard は OLE オートメーション クライアントで使用でき、Hazard.HazardApp を作成することで独自のインスタンスを作成する機能を提供します。 HazardApp クラスには、Hazard の機能への限定的なアクセスを提供する多数のパブリック プロパティとメソッドがあり、OLE オートメーション サーバー モードでの動作の特殊性を考慮して、特別なレイヤー (非常に「粗雑」ではありますが) が実装されています。この層は、関数の正しい実行だけでなく、Hazard コアへのアクセスも保証します。後者は、Hazard を実行せずに MGertNet のインスタンスを作成することで、直接使用することもできます。 GERTNETLib ライブラリのインターフェイスとクラスのほとんどはオープンで作成されています (パブリック、作成可能) が、インターフェイスへのポインターから実装する C++ オブジェクトの型への拡張変換が行われるため、その実装では、そこに記述されているインターフェイスの実装に大幅な制限が課せられます。が実施されます。したがって、Hazard コアを直接使用する場合は、次の厳密なルールに従う必要があります。 Hazard インスタンスの作成:
Dim m_haApp As HazardApp
Set m_haApp = CreateObject( "Hazard.HazardApp" )
非同期操作の進行状況をクライアントに通知するために、HazardApp と MGertNet は、ICallBack インターフェイスを備えたシンクの接続ポイントを提供します。 HazardApp インスタンスに含まれるオブジェクトを見てみましょう。 GertNetMain (読み取り専用) – インシデント開発モデル。モデルがない場合 (ロードされていないか、新しいモデルが作成された場合)、空 (何もありません) になります。 GertNetMainDsp (読み取り専用) – インシデント開発モデルの IDispatch インターフェイス。モデルがない場合 (ロードされていないか、新しいモデルが作成された場合)、空 (何もありません) になります。
GN_Opt (読み取り専用) – 最適化に使用されるモデルのコピー。最適化実行中にのみ設定します。
GN_Rang (読み取り専用) – ランキングに使用されるモデルのコピー。ランキング実施中のみ設定します。
GN_Run (読み取り専用) – 実行中に使用されるモデルのコピー。 run実行時のみ設定します。
Rep1 (読み取り専用) – モデル (実行、モデル) に関するレポートのコレクション。
Rep2 (読み取り専用) – 一連の対策 (最適化、複合体、一連の対策の試行適用) に関するレポートのコレクション。
XCollection (読み取り専用) – セキュリティ向上対策のコレクション。各複合体は、アクティビティのコレクション (CollSF) によって記述されます。各イベント (SafetyPreciation) には、モデルに対する影響のコレクション (FChange) が含まれています。複合メジャーにアクセスするには、もう 1 つのパブリック プロパティ SFnn(n) があります。インデックスが付けられており、読み取り専用です。
列挙子(読み取り専用) – 列挙子のコレクション。
因子(読み取り専用) – 危険因子のコレクション。このコレクション内の各要素には、Enumerators コレクションの列挙子が割り当てられます。
OptimizResultsGetAndClear (読み取り専用) – SAFEARRAY(IDispatch)。最適化が実行された後に使用されます。このプロパティが呼び出されると、セキュリティ向上対策のコレクションの IDispatch インターフェイスへのポインターの配列が返されます。この場合、呼び出し元のクライアントがコレクションの所有者になり、Hazard コアはコレクションへの参照を解放します。したがって、呼び出すことができるのは 1 回だけです。各コレクションには、最適化問題に対する考えられる解決策となるアクティビティの選択が含まれています。
モデルエディタ | スコアテーブルエディター |
セキュリティ強化エディター | パッケージモニターの測定 |