Dokumentasi lengkap
Eksekusi Win32
Ini adalah aplikasi desktop dalam Visual Basic 6 yang memungkinkan Anda mendeskripsikan struktur objek berbahaya dalam bentuk jaringan GERT dan menghitung perkiraan faktor risiko untuk setiap node. Sistem ini didasarkan pada mesin berdasarkan objek COM yang diimplementasikan dalam Visual C++ / ATL, dan terdapat sistem plugin untuk menilai bahaya. Setiap plugin adalah objek COM. Juga terdapat fasad sistem berupa objek COM untuk diintegrasikan ke dalam Mathcad.
Skala penilaian bahaya yang digunakan terlalu besar (11 poin) sehingga penilaian mudah dilakukan secara manual. Oleh karena itu, bagian penting dari sistem adalah komponen otomatisasi perhitungannya (lihat Gambar 5.1). Untuk tujuan ini, teknik khusus diusulkan dan diterapkan, yang diuraikan dalam paragraf berikutnya. Ternyata banyak bahaya yang teridentifikasi tumpang tindih dengan bahaya yang digunakan oleh para insinyur keselamatan. Hal ini menyiratkan keuntungan yang signifikan dari model yang dikembangkan, yang terlihat dalam kenyataan bahwa metode untuk menilai kondisi, kesehatan dan keselamatan kerja, dapat dengan relatif mudah diadaptasi untuk berbagai faktor bahaya. Penting bahwa metode yang ada memungkinkan, berdasarkan GOST, peraturan dan dokumentasi untuk fasilitas produksi berbahaya, untuk menentukan berbagai karakteristik kuantitatif suatu objek, mengubahnya menjadi skala universal (skor). Kehadiran dan pengujian metode-metode ini sangat penting, menyederhanakan proses pengembangan metodologi penghitungan perkiraan yang sangat memakan waktu. Metodologi yang diusulkan dapat digunakan dalam banyak kasus, namun tidak selalu, dan tidak semua pakar akan puas dengan pendekatan ini. Oleh karena itu, diperlukan fleksibilitas yang lebih besar. Inilah sebabnya mengapa arsitektur dikembangkan berdasarkan implementasi modul penilaian sebagai komponen eksternal dalam kaitannya dengan Bahaya. Untuk memberikan fleksibilitas ini, pengguna (biasanya pakar) perlu diberikan kemampuan untuk mengimplementasikan algoritma estimasi nilai mereka sendiri dan menggunakan struktur dan database mereka sendiri. Karena jenis koneksi antara modul tersebut dan sistem Hazard sederhana, tidak disarankan untuk membebani produk dengan Visual Basic for Applications. Kekhususan pengembangan algoritma tersebut ditentukan oleh kebutuhan untuk bekerja dengan struktur data yang kompleks. Oleh karena itu, skrip Hosting juga tidak cocok dan tidak dapat dibenarkan membuat produk menjadi lebih berat, karena skrip ini dirancang untuk mengimplementasikan algoritme untuk mengelola objek, dan bukan memproses data terstruktur. Konsep optimal disini adalah konsep modul ekspansi (plugin) yang diimplementasikan dengan menggunakan teknologi COM. Modul seperti itu biasanya sangat kompak (berukuran kecil, tidak terlalu bergantung pada berbagai perpustakaan dan komponen, dan hanya menggunakan sedikit sumber daya). Mereka dapat diimplementasikan dalam bahasa apa pun yang memiliki alat yang memungkinkan pengembangan komponen menggunakan teknologi COM. Hal ini memberikan fleksibilitas implementasi yang lebih besar, namun tidak menimbulkan kompleksitas teknologi yang signifikan pada tugas tersebut. Intensitas dan kompleksitas tenaga kerja meningkat secara signifikan ketika mengimplementasikan komponen ini dalam alat dan bahasa tingkat rendah, misalnya menggunakan Visual C++. Namun, sebagai metode yang dapat diakses oleh pemrogram tidak terampil, paling tidak padat karya dan sangat efektif, diusulkan penerapan dalam Visual Basic. Jenis komunikasi dengan Hazard sangat sederhana dan komponennya hanya diperlukan server COM dalam proses yang mengimplementasikan antarmuka IFactorAssign dan dapat bertindak sebagai klien COM menggunakan antarmuka IDispatch dan antarmuka ganda MGertNet. Membuat objek COM seperti itu, diimplementasikan oleh server COM yang sedang dalam proses, menggunakan Visual Basic 6 adalah hal yang sepele dan dapat dengan mudah dilakukan oleh pemrogram yang tidak terampil, karena pada dasarnya otomatis. Esensi yang dirumuskan dari pengembangan suatu ekstensi menentukan isi spesifikasinya. Agar komponen dapat dikenali oleh Hazard, terhubung dan dapat berinteraksi dengannya, diperlukan hal-hal berikut:
Sebagai contoh, ekstensi universal diimplementasikan (dalam Visual Basic 6), yang merupakan produk yang sangat kompleks dan mengimplementasikan teknik rata-rata tertimbang. Modul evaluasi yang diterapkan menggunakan metode rata-rata tertimbang bersifat universal, oleh karena itu modul ini menggunakan antarmuka grafis yang canggih, struktur data dinamis yang kompleks, dan editornya, yang memungkinkan Anda mendeskripsikan berbagai OPO secara efektif. Oleh karena itu, ini bukanlah contoh yang khas. Namun, sebagaimana telah disebutkan, semua kesulitan ini tidak berhubungan dengan mekanisme interaksi dengan Hazard, namun merupakan fitur dari implementasi ini, persyaratan tertentu untuk itu (sebagai produk komersial universal). Untuk kasus-kasus khusus (penggunaan resmi), diusulkan untuk membuat modul sederhana dengan struktur statis yang dapat dikembangkan secara efektif oleh pemrogram tidak terampil menggunakan Visual Basic.
Hazard diimplementasikan sebagai server COM di luar proses (ActiveX EXE) menggunakan Visual Basic 6 dan diwakili oleh kelas COM Hazard.HazardApp. Inti Bahaya, yang berisi kode untuk model pengembangan insiden di fasilitas produksi berbahaya, kode untuk menjalankan model dan algoritme pengoptimalan, diimplementasikan sebagai server COM dalam proses (ActiveX DLL), menggunakan Visual C++ 6.0 (ATL ) dan diwakili oleh kelas COM GERTNETLib.MGertNet. Hazard dapat digunakan oleh klien OLE Automation, yang menyediakan kemampuan untuk membuat instance sendiri dengan membuat Hazard.HazardApp. Kelas HazardApp memiliki sejumlah properti dan metode publik yang menyediakan akses terbatas ke kemampuan Hazard, yang lapisan khusus telah diimplementasikan (walaupun cukup “kasar”), dengan mempertimbangkan kekhasan bekerja dalam mode server otomatisasi OLE. Lapisan ini memastikan tidak hanya pelaksanaan fungsi yang benar, tetapi juga akses ke inti Bahaya. Yang terakhir ini juga dapat digunakan secara langsung - dengan membuat instance MGertNet tanpa menjalankan Hazard. Sebagian besar antarmuka dan kelas perpustakaan GERTNETLib terbuka dan dibuat (publik, dapat dibuat), tetapi implementasinya sebagian besar memberlakukan pembatasan pada implementasi antarmuka yang dijelaskan di sana, karena perluasan konversi pointer ke antarmuka ke jenis implementasi objek C++ sedang dilaksanakan. Oleh karena itu, penggunaan inti Bahaya secara langsung harus mengikuti aturan yang ketat: Membuat instance Bahaya:
Dim m_haApp As HazardApp
Set m_haApp = CreateObject( "Hazard.HazardApp" )
Untuk memberi tahu klien tentang kemajuan operasi asinkron, HazardApp dan MGertNet menyediakan titik koneksi untuk sink dengan antarmuka ICallBack. Mari kita lihat objek yang disertakan oleh instance HazardApp. GertNetMain (hanya baca) – model pengembangan insiden. Jika tidak ada model (tidak dimuat atau dibuat baru), maka kosong (Tidak Ada). GertNetMainDsp (hanya baca) – Antarmuka IDispatch dari model pengembangan insiden. Jika tidak ada model (tidak dimuat atau dibuat baru), maka kosong (Tidak Ada).
GN_Opt (hanya baca) – salinan model yang digunakan untuk optimasi. Tetapkan hanya saat optimasi sedang berjalan.
GN_Rang (hanya baca) – salinan model yang digunakan untuk pemeringkatan. Tetapkan hanya saat pemeringkatan sedang berlangsung.
GN_Run (hanya baca) – salinan model yang digunakan selama proses. Ditetapkan hanya selama eksekusi dijalankan.
Rep1 (hanya baca) – kumpulan laporan model (berjalan, model).
Rep2 (hanya baca) – kumpulan laporan tentang serangkaian tindakan (optimasi, kompleks, uji coba penerapan serangkaian tindakan).
XCollection (hanya baca) – kumpulan langkah-langkah peningkatan keamanan. Setiap kompleks dijelaskan oleh kumpulan aktivitas (CollSF). Setiap peristiwa (SafetyPrecaution) berisi kumpulan dampak (FCchange) pada model. Untuk mengakses tindakan yang kompleks, ada satu lagi properti publik: SFnn(n). Itu diindeks dan hanya-baca.
Enumerator (read-only) – kumpulan enumerator.
Faktor (hanya baca) – kumpulan faktor bahaya. Setiap faktor dalam koleksi ini diberi enumerator dari koleksi Enumerator.
OptimizResultsGetAndClear (hanya baca) – SAFEARRAY(IDispatch). Digunakan setelah optimasi dilakukan. Saat properti ini dipanggil, serangkaian penunjuk ke antarmuka IDispatch berisi kumpulan tindakan peningkatan keamanan akan dikembalikan. Dalam hal ini, klien panggilan menjadi pemilik koleksi, dan inti Hazard merilis referensi ke koleksi tersebut. Oleh karena itu, hanya dapat dipanggil satu kali. Setiap koleksi berisi pilihan aktivitas - solusi yang mungkin untuk masalah optimasi.
Penyunting model | Editor Tabel Skor |
Editor Peningkatan Keamanan | Ukur monitor paket |